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

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

スポンサーサイト

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

アジアブレイクの改良ストラテジジーの8回目(追加変更1)

アジアブレイクの改良ストラテジジーの8回目です。
これまで以下の4つの変更をしてきましたが、
今回は追加の改定を行いたいと思います。

改定内容:
1 ポジション保有時、エントリーライン抜けで反対売買サインが点灯したらドテンする
2 アジア時間帯レンジの値幅が大きい場合、エントリーするかどうか選択できる
3 トレール手仕舞の動作領域を選択できるようにする
4 移動平均フィルターの使用を選択できる
追加 高値安値設定時刻を自由に変更できるようにする

これまで高値安値設定時刻は、「start hour=7or6 end hour=17前後」ということで検証してきました。
読者の方の提案もあって start hourをもっと遅くしようとしたところ、
8時以上の設定が出来ないことが分かりました。

今回はこれを自由に設定できるように改善します。

/////////////////////////
変更点:
高値安値設定時刻を自由に変更できるようにする

自由に変更できない原因:

「str_asia_highlow_break_3av」というストラテジーには、インジケータとして
「ind_asia_time_highlow_break_3av」が使われています。
そのインジケータでは、「ind_asia_time_highlow_a」が使われています。

このind_asia_time_highlow_aに問題がありそうでした。
このインジケータのプログラムは結構面倒なことをやっていて、
問題があるならこの辺だという自己開発者の勘です。

まずind_asia_time_highlow_aの単純化を行います。

ある時刻間の高値安値を示すインジケータにind_market_HLがあります。
http://fxrun.blog55.fc2.com/blog-entry-1048.html#more
これは1日を3つの時間に分けて高値安値を示すインジケータです。
これを1つの時刻間の高値安値を求めて、その後の時間帯にもラインを引くようにします。

以下にソースコードを掲載します。

////////////////////////

//指定した時刻間の高値安値ラインを表示する

indicator ind_time_HL;
input start_time = 13, end_time = 18;
draw time_high("time high"), time_low("time low");
vars old(number), new(number), i(number), j(number), k(number),
current_high(number), current_low(number);
begin
old := front(close);
new := back(close);
if new < old then return;

current_high := close[old];
current_low := close[old];
j := old;

for i := old to new do begin
if hour(timestamp[i]) = start_time and minute(timestamp[i]) = 0 then begin
   { スタート時刻になると実行します }

//過日のラインを引く
for k := j to i-1 do begin
if i > 0 then begin
time_high[k] := current_high;
time_low[k] := current_low;
end;
end;
//初期設定
current_high := close[i];
current_low := close[i];
j := i;{ jは期間の初めのインデックス }
end;

//指定期間内の高値安値更新
   if hour(timestamp[i]) >= start_time and hour(timestamp[i])< end_time then begin
     { この行がind market HLと違うところです }

if high[i] > current_high then current_high := high[i];
if low[i] < current_low then current_low := low[i];
   end;
end;

//本日のラインを引く
for k := j to new do begin
time_high[k] := current_high;
time_low[k] := current_low;
end;
end.

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

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

システム売買ルール

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

コメント

こんにちは。
以前ind_asia_time_highlow_aを改造して、レンジの外側に61.8%はみ出したラインを表示するようにしてたことがあって、それが密かにログファイルに0除算エラーを残していたので使うのを止めていたのですが、思い出してこちらにマージしてみました。時間枠を変更してリロードしている範囲ではログが作られないようで、モヤモヤが解消しそうです。ありがとうございます。

  • 2009/12/20(日) 22:58:31 |
  • URL |
  • AL #CVA7xI/A
  • [ 編集]

コメントの投稿


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

トラックバック

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

FC2Ad

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