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

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

スポンサーサイト

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

時刻間高値安値リバ-スストラテジ-

時刻間高値安値リバ-スストラテジ-を作ります。

str_time_HL_break のエントリーラインを変更して作ります。

一度エントリーラインを抜けてから反転して逆に抜けたところでエントリーします。

  安値ラインの上ブレイクで買いエントリー
  高値ラインの下ブレイクで売りエントリー

続きを読むにソースコードを掲載します。

参考になったらクリックよろしく 人気blogランキング
    
検証にはGFTのdealbook360を使っています
GFT

これまでの開発システムソースコード:
モジュール目次

システム売買ルール

自前の検証をお勧めします
口座開設はこちらから
サザインベストメント
/*時刻間高値安値リバ-スストラテジ- */

strategy str_time_HL_reverse;
input barminute=15, open_hour=7,start_hour=13,end_hour=18,entry_endhour=23,delta=0,
entryrange=0.7,ave_days=3 ,limit=0.02,
trend=true,smaperiod=196,
fixexit=false, profit_ratio=0.25, loss_ratio=0.3,
trail_0=true, exbar_0=3, trail_1=true, exbar_1=1, trail_2=true, exbar_2=1,
lots=1 ;
vars i(number),lst(number),sma_line(series),smatrend(number),
top_line_0(series),bottom_line_0(series),
top_line_1(series),bottom_line_1(series),
top_line_2(series),bottom_line_2(series),
buy_line(series), sell_line(series),bar(number),c_range(series),AV_range(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_0,1) ;{ 直近安値(高値)更新での手仕舞いに使います }
top_line_0 := ind_range_break.top_line ;
bottom_line_0 := ind_range_break.bottom_line ;

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

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

ind_time_HL_reverse(start_hour, end_hour, ave_days, limit,
profit_ratio,loss_ratio, delta);

//利確、損きりラインを定義します
prflong_line1 := ind_time_HL_reverse.prflong_line1;
prflong_line2 := ind_time_HL_reverse.prflong_line2;
losslong_line := ind_time_HL_reverse.losslong_line;
prfshort_line1 := ind_time_HL_reverse.prfshort_line1;
prfshort_line2 := ind_time_HL_reverse.prfshort_line2;
lossshort_line := ind_time_HL_reverse.lossshort_line;

// エントリ-ラインを定義します
buy_line := ind_time_HL_reverse.buy_line;
sell_line := ind_time_HL_reverse.sell_line;

//値幅インジケタの呼び出し
ind_DayRange_bar(open_hour , ave_days , limit);
c_range := ind_DayRange_bar.range_bar ;
AV_range := ind_DayRange_bar.AV_Range ;

//単純移動平均の呼び出し
Mov_Avg_Simple(close, smaperiod, 0, 1) ;
sma_line := Mov_Avg_Simple.line ;
smatrend := sma_line[lst]-sma_line[lst-1] ;

//損切りラインでの損切り
if long() and close[lst] < losslong_line[lst] then exitlong();
if short() and close[lst] > lossshort_line[lst] then exitshort() ;


/*エントリ- */
//値幅フィルタ
if c_range[lst-1] < AV_range[lst-1]*entryrange then begin

//トレンドフィルタ有効
if trend = true then begin
{ エントリー終了時刻が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] and smatrend < 0
then sell(lots) ;
if close[lst] >= buy_line[lst] and close[lst-1] < buy_line[lst-1] and smatrend > 0
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] and smatrend < 0
then sell(lots) ;
if close[lst] >= buy_line[lst] and close[lst-1] < buy_line[lst-1] and smatrend > 0
then buy(lots) ;
end;
end;

//トレンドフィルタ無効
end else begin
{ エントリー終了時刻が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;
end;
end;

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

 //買いの利確1ライン未満、売りの利確1ライン以上での手仕舞
if trail_0 = true then begin  { この機能の有効無効を切り替える }
if close[lst] <= prflong_line1[lst] then begin
if close[lst] < bottom_line_0[lst] and close[lst-1] >= bottom_line_0[lst-1] then exitlong() ;
end;
if close[lst] >= prfshort_line1[lst] then begin
if close[lst] > top_line_0[lst] and close[lst-1] <= top_line_0[lst-1] then exitshort() ;
end;
end;
//買いの利確1ライン以上・利確2ライン未満、売りの利確1ライン以下・利確2ライン以上での手仕舞
if trail_1 = true then begin  { この機能の有効無効を切り替える }
if close[lst] > prflong_line1[lst] and close[lst] <= prflong_line2[lst] then begin
if close[lst] < bottom_line_1[lst] and close[lst-1] >= bottom_line_1[lst-1] then exitlong() ;
end;
if close[lst] < prfshort_line1[lst] and close[lst] >= prfshort_line2[lst] then begin
if close[lst] > top_line_1[lst] and close[lst-1] <= top_line_1[lst-1] then exitshort() ;
end;
end;
//買いの利確2ライン以上、売りの利確2ライン以下での手仕舞
if trail_2 = true then begin { この機能の有効無効を切り替える }
if close[lst] > prflong_line2[lst] then begin 
if close[lst] < bottom_line_2[lst] and close[lst-1] >= bottom_line_2[lst-1] then exitlong() ;
end;
if close[lst] < prfshort_line2[lst] then begin
if close[lst] > top_line_2[lst] and close[lst-1] <= top_line_2[lst-1] then exitshort() ;
end;
end;

/* 利確ラインでの手仕舞い */
if fixexit = true then begin { この機能の有効無効を切り替える }
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] > 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() ;{ 利確 }
end;

/*時刻強制手仕舞い */
bar := func_barminute();
if hour(timestamp[lst]) = start_hour-1 and minute(timestamp[lst]) = 60 - 2*bar then begin
exitlong();
exitshort();
end;
end.

参考になったらクリックよろしく 人気blogランキング
    
検証にはGFTのdealbook360を使っています
GFT

これまでの開発システムソースコード:
モジュール目次

システム売買ルール

自前の検証をお勧めします
口座開設はこちらから
サザインベストメント
スポンサーサイト

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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