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

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

スポンサーサイト

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

アジア時間高値安値ブレイクストラテジーのCTL

”アジア時間高値安値ブレイクストラテジー”のCTLを掲載します。

以下のインジケータが予めインストールされている必要があります。
  アジア時間の高値安値インジケタ ind_asia_time_highlow_a
  4本値インジケタ ind_day_4price
  アジア時間高値安値ブレイクインジケータ ind_asia_time_highlow_break_3av
  直近高値安値インジケータ ind_range_break


インストールされていないと動作しません。

入力項目の意味:
barminute 分足の数値(15分足チャートなら15にします)
start hour 高値安値を表示する時間帯の初めの時刻
end hour 高値安値を表示する時間帯の終わりの時刻
entry endhour エントリーが可能な時間帯の終わりの時刻
delta エントリーラインをアジア高値安値ラインからシフトする割合です
       0.1を入力すると平均値幅の10%だけシフトします
profit ratio 利益確定のレベルを決めます
       0.5を入力すると利確ラインをエントリーラインから平均値幅の50%だけ離して設定します
loss ratio 損きりのレベルを決めます
       0.35を入力すると損きりラインをエントリーラインから平均値幅の35%だけ離して設定します
exbar トレールストップの直近バー本数
trail トレールストップの有効無効設定、1で有効、1以外で無効
lots 売買数量、1で1万通貨

エントリー:
start hourからend hourまでの期間の高値上抜け、安値下抜けでエントリーします

手仕舞い:
3種類の手仕舞い方法があります

1 利確ライン抜け、損きりライン抜け
2 直近高値安値インジケータのトップライン抜け、ボトムライン抜け(トレールストップ)
  例) 買いでexbarが2の場合、2本前までのバーの安値ラインを下抜けすると手仕舞い
3 NYクローズ時刻で手仕舞い
  買いstart hourの30分前、売りstart hourの15分前


CTLは続きを読むを参照してください

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

FX



/*アジア時間高値安値ブレイクストラテジ- */

strategy str_asia_highlow_break_3av;
input barminute=15,start_hour=6,end_hour=16,entry_endhour=3,delta=0,
profit_ratio=0.45,loss_ratio=0.35,exbar=2,trail=1, lots=1 ;
vars i(number),lst(number),top_line(series),bottom_line(series),
buy_line(series), sell_line(series),
prflong_line1(series), prfshort_line1(series),
losslong_line(series), lossshort_line(series),
prflong_line2(series),prfshort_line2(series);
begin
lst := back(close) ;
if lst < front(close)+(4*1440/barminute) then return;

ind_range_break(exbar,1) ;{ 直近安値(高値)更新での手仕舞いに使います }
top_line := ind_range_break.top_line ;
bottom_line := ind_range_break.bottom_line ;

ind_asia_time_highlow_break_3av(barminute,start_hour,end_hour,delta,
profit_ratio,loss_ratio);
{ 利確、損きりラインを定義します }
prflong_line1 := ind_asia_time_highlow_break_3av.prflong_line1;
prflong_line2 := ind_asia_time_highlow_break_3av.prflong_line2;
losslong_line := ind_asia_time_highlow_break_3av.losslong_line;
prfshort_line1 := ind_asia_time_highlow_break_3av.prfshort_line1;
prfshort_line2 := ind_asia_time_highlow_break_3av.prfshort_line2;
lossshort_line := ind_asia_time_highlow_break_3av.lossshort_line;
{ エントリ-ラインを定義します }
buy_line := ind_asia_time_highlow_break_3av.buy_line;
sell_line := ind_asia_time_highlow_break_3av.sell_line;

/*エントリ- */

{ エントリー終了時刻が23時台以前の場合 }
if entry_endhour<=23 and entry_endhour>=end_hour then begin
if hour(timestamp[lst]) <= entry_endhour and hour(timestamp[lst]) >= end_hour then begin

if close[lst] <= sell_line[lst] and close[lst-1] > sell_line[lst-1] then sell(lots) ;
if close[lst] >= buy_line[lst] and close[lst-1] < buy_line[lst-1] then buy(lots) ;
end;
end;
{ エントリー終了時刻が0時以降の場合 }
if entry_endhour<=start_hour then begin
if hour(timestamp[lst]) <= entry_endhour or hour(timestamp[lst]) >= end_hour then begin
if close[lst] <= sell_line[lst] and close[lst-1] > sell_line[lst-1] then sell(lots) ;
if close[lst] >= buy_line[lst] and close[lst-1] < buy_line[lst-1] then buy(lots) ;
end;
end;

/* 直近安値(高値)ブレイクでの手仕舞い(トレ-ルストップ) */

if trail = 1 then begin  { この機能の有効無効を切り替える、1で有効、1以外で無効 }
if close[lst] > prflong_line1[lst] then begin { 買いの利確1ライン以上で有効になる }
if close[lst] < bottom_line[lst] and close[lst-1] >= bottom_line[lst-1] then exitlong() ;
end;
if close[lst] < prfshort_line1[lst] then begin { 売りの利確1ライン以下で有効になる }
if close[lst] > top_line[lst] and close[lst-1] <= top_line[lst-1] then exitshort() ;
end;
end;

/* 利確、損きりラインでの手仕舞い */

if close[lst] < prflong_line2[lst] and close[lst-1] >= prflong_line2[lst-1] then exitlong() ;{ 利確 }
if close[lst] < prflong_line1[lst] and close[lst-1] >= prflong_line1[lst-1] then exitlong() ;{ 利確 }
if close[lst] < losslong_line[lst] and close[lst-1] >= losslong_line[lst-1] then exitlong() ;{ 損きり }
 
if close[lst] > lossshort_line[lst] and close[lst-1] <= lossshort_line[lst-1] then exitshort() ;{ 損きり }
if close[lst] > prfshort_line1[lst] and close[lst-1] <= prfshort_line1[lst-1] then exitshort() ;{ 利確 }
if close[lst] > prfshort_line2[lst] and close[lst-1] <= prfshort_line2[lst-1] then exitshort() ;{ 利確 }
 

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

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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