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

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

スポンサーサイト

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

時刻間高値安値トレンドストラテジ-

時刻間高値安値トレンドストラテジ- を作ります。

違うエントリーラインでそれぞれ1つづつのポジションを取る関係で、
手仕舞管理に評価損益(fpl)と保有ポジション量(positionvolume)を使います。

リアル口座ではlots=1あたり1万通貨です。
fplの計算は、1pipsあたり 
  fpl=最小単位* 10000* lots
になります。

lotsが1ならドル円の場合は
  0.01*10000*1=100

ユーロドルなら
  0.0001*10000*1=1
になります。

positionvolume は、買いポジションはプラス、売りポジションはマイナスになります。
1万通貨保有なら買いで10000、売りなら-10000です。

単純移動平均線の傾きにより同じエントリーラインを上抜けすれば買い、下抜けすれば売りエントリーします。
従って、移動平均線の傾きが小さい場合、
買いエントリー後価格が下がると移動平均線の傾きが下向きになり、
買い手仕舞する前に売りエントリーすることがあります。
これを防止するため、条件を追加しています。
以下にその部分を示します。

if not short() and close[lst] >= low_line[lst] and close[lst-1] < low_line[lst-1] then buy(lots) ;

if not long() and close[lst] <= low_line[lst] and close[lst-1] > low_line[lst-1] then sell(lots) ;


全体のソースコードは、続きを読むに掲載します。

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

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

システム売買ルール

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

strategy str_time_HL_trend;
input barminute=15, open_hour=7,start_hour=7,end_hour=18,entry_endhour=23,
entryrange=0.7, smaperiod=196, ave_days=3 ,limit=0.02,
profit_ratio=0.25, exbar_0=3, exbar_1=1, lots=1 ;
vars lst(number),sma_line(series),smatrend(number),
top_line_0(series),bottom_line_0(series), top_line_1(series),bottom_line_1(series),
high_line(series), low_line(series),bar(number),c_range(series),AV_range(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_time_HL2_all(open_hour, start_hour, end_hour);

// エントリ-ラインを定義します
high_line := ind_time_HL2_all.time_high;
low_line := ind_time_HL2_all.time_low;
//値幅インジケタの呼び出し
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 c_range[lst-1] < AV_range[lst-1]*entryrange then begin
//単純移動平均線の傾きが上向きの場合
if smatrend > 0 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 not short() and close[lst] >= low_line[lst] and close[lst-1] < low_line[lst-1] then buy(lots) ;
if not short() and close[lst] >= high_line[lst] and close[lst-1] < high_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 not short() and close[lst] >= low_line[lst] and close[lst-1] < low_line[lst-1] then buy(lots) ;
if not short() and close[lst] >= high_line[lst] and close[lst-1] < high_line[lst-1] 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 not long() and close[lst] <= low_line[lst] and close[lst-1] > low_line[lst-1] then sell(lots) ;
if not long() and close[lst] <= high_line[lst] and close[lst-1] > high_line[lst-1] then sell(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 not long() and close[lst] <= low_line[lst] and close[lst-1] > low_line[lst-1] then sell(lots) ;
if not long() and close[lst] <= high_line[lst] and close[lst-1] > high_line[lst-1] then sell(lots) ;
end;
end;
end;
end;

/* 直近安値(高値)ブレイクでの手仕舞い(トレ-ルストップ) */
if positionvolume() = -10000*lots or positionvolume() = 10000*lots then begin

if fpl() < AV_range[lst]* 10000* lots* profit_ratio then begin
if close[lst] < bottom_line_0[lst] and close[lst-1] >= bottom_line_0[lst-1] then exitlong() ;
if close[lst] > top_line_0[lst] and close[lst-1] <= top_line_0[lst-1] then exitshort() ;
end;
if fpl() >= AV_range[lst]* 10000* lots* profit_ratio then begin
if close[lst] < bottom_line_1[lst] and close[lst-1] >= bottom_line_1[lst-1] then exitlong() ;
if close[lst] > top_line_1[lst] and close[lst-1] <= top_line_1[lst-1] then exitshort() ;
end;
end;

if positionvolume() = -20000*lots or positionvolume() = 20000*lots then begin

if fpl() < AV_range[lst]* 20000* lots* profit_ratio then begin
if close[lst] < bottom_line_0[lst] and close[lst-1] >= bottom_line_0[lst-1] then exitlong() ;
if close[lst] > top_line_0[lst] and close[lst-1] <= top_line_0[lst-1] then exitshort() ;
end;
if fpl() >= AV_range[lst]* 20000* lots* profit_ratio then begin
if close[lst] < bottom_line_1[lst] and close[lst-1] >= bottom_line_1[lst-1] then exitlong() ;
if close[lst] > top_line_1[lst] and close[lst-1] <= top_line_1[lst-1] then exitshort() ;
end;
end;

/*時刻強制手仕舞い */

if hour(timestamp[lst]) = open_hour-1 and minute(timestamp[lst]) = 60 - 2*barminute then begin
exitlong();
exitshort();
end;
end.
/////////////////////////////////
参考になったらクリックよろしく 人気blogランキング
    
検証にはGFTのdealbook360を使っています
GFT

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

システム売買ルール

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

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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