FX取引ルール確立のために

取引方針が定まらぬ臆病者の外国為替証拠金取引の行方。 取引ルールの柱にテクニカルな売買サインを導入中。システム開発状況を全て公開。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

mma平均値幅連動ピボットストラテジー

mma平均値幅連動ピボットストラテジー
str_day_pivot_mma

概要:
ピボットインジケータ(ind_PivotPoints_mmaPP)を使用したストラテジーです。
順張り/逆張りを切換られます。

使い方:
1 Reverse/Forward
   逆張りか順張りかを選択します
2 starthour 
  1日のスタート時刻。通常は7時、サマータイム6時。
3 endhour
  エントリーできる最終時刻。3なら3時台までエントリーできる。
4 ave_days
  平均期間、標準は3。1にすると前日値幅になる。
5 limit
  平均値幅計算時の値幅上限、標準はドル円で2円。
  この値以上の値幅は、この値に変更して計算する。
6 エントリーと手仕舞いは、ソースコード参照
7 1日の終りの最後のバーで強制手仕舞いします。

注:
1 誤ったサインを防止するため、スタート時刻と次のバーではエントリーできない。
2 func_barminuteというファンクションがインストールされている必要がある。
こちらを参照
3 分足チャートにのみ対応しています

これは面白いと思ったら、励みのクリックよろしく 人気blogランキング
banner_11.gif

検証にはGFTのdealbook360を使っています
GFT
自前の検証をお勧めします
dealbook360口座開設はこちらから
FX


/*平均値幅連動、順張り逆張り切換
分足のみに対応 */

strategy str_day_pivot_mma;
input Reverse=true, Forward=false, starthour=6, endhour=3,ave_days=3, limit=2.0, lots=1;

vars s1(series),s2(series),r1(series), pv(series),
r2(series),s3(series),r3(series), lst=1,
res(number), bar(number),oneday(number),smaline(number) ;

begin
lst := back(close) ;
res :=func_barminute();
if lst < front(close)+ 13 then return; {これがないと動作しない}
oneday :=1440/res ;
if lst < front(close)+ oneday *ave_days then return;

ind_PivotPoints_mmaPP(starthour, ave_days, limit);
s1 := ind_PivotPoints_mmaPP.s1;
s2 := ind_PivotPoints_mmaPP.s2;
s3 := ind_PivotPoints_mmaPP.s3;
r1 := ind_PivotPoints_mmaPP.r1;
r2 := ind_PivotPoints_mmaPP.r2;
r3 := ind_PivotPoints_mmaPP.r3;
pv := ind_PivotPoints_mmaPP.pp;


/*逆張り */
if Reverse=true then begin

    { エントリー時刻制限 }
if hour(timestamp[lst]) <= endhour or hour(timestamp[lst]) >= starthour
and not(hour(timestamp[lst])=starthour and minute(timestamp[lst])<=res)
then begin

if crossup(close, s1) then buy(lots);
if crossdown(close, r1) then sell(lots);
end;

{ s1 r1で利確後、再度反対方向にエントリーする可能性がある }

if crossdown(close, r3) then exitlong(); { 利確 }
if crossdown(close, r2) then exitlong(); { 利確 }
if crossdown(close, r1) then exitlong(); { 利確 }
if crossdown(close, pv) then exitlong(); { 利確 }
if crossdown(close, s2) then exitlong(); { 損きり }

if crossup(close, r2) then exitshort(); { 損きり }
if crossup(close, pv) then exitshort(); { 利確 }
if crossup(close, s1) then exitshort(); { 利確 }
if crossup(close, s2) then exitshort(); { 利確 }
if crossup(close, s3) then exitshort(); { 利確 }

end;

/*順張り */
if Forward = true then begin

{ エントリー時刻制限 }
if hour(timestamp[lst]) <= endhour or hour(timestamp[lst]) >= starthour
and not(hour(timestamp[lst])=starthour and minute(timestamp[lst])<=res)
then begin

if crossup(close, r1) then buy(lots);
if crossdown(close, s1) then sell(lots);
end;

if crossdown(close, r3) then exitlong(); { 利確 }
if crossdown(close, r2) then exitlong(); { 利確 }
if crossdown(close, pv) then exitlong(); { 損きり }

if crossup(close, pv) then exitshort(); { 損きり }
if crossup(close,s2) then exitshort(); { 利確 }
if crossup(close, s3) then exitshort(); { 利確 }
end;

/*時刻強制手仕舞い */
if hour(timestamp[lst]) = starthour-1
and minute(timestamp[lst]) >= 60-res*2 then begin
exitlong();
exitshort();
end;
end.
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://fxrun.blog55.fc2.com/tb.php/1088-22bcfdb6
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。