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

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

スポンサーサイト

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

売買サインがでない原因

レンジブレイクにフィルターを加えたストラテジーを作っている
verify okなのだが売買サインがでない
原因究明のためCTL文から少しづつ条件文を削除しながらサインがでるかどうか試した。
結局原因は以下だった。

サインが出ないCTL文(抜粋)
Directional_Movement_ADXR(ADXR_period);
a_line := Directional_Movement_ADXR.line ;
lst := back(close);
if lst <=front(close) then return ;
if a_line[lst-2] > 20 and a_line[lst-2] < a_line[lst-1] then begin
1 ADXR.lineを条件に使っている。
2 チャートの初めには、計算の都合上ADXR.lineがない(約40バーぐらい)
3 無いものは使えないのでそこで終わってしまう???かどうかは知らないが、
  結果はサインなしとなる

試行錯誤でif lst <= front(close) + 50 then return ; に変更するとサインがでる。
どうも計算対象領域に使用するインジケータが全部そろっていないとサインは出ないようです。
そこで( )内のインデックスをcloseからa_lineに変更
if lst <= front(a_line) + then return ; にするも駄目
lstはback(close)と同じなのでalst := back(a_line) を追加して
if alst <= front(a_line) + then return ; とするとサインが出た。

つまり誤動作防止用といわれている上記return文は、使用しているインジケータの変数を( )内に入れる、ということにすると動くようです。
使用する全てのインジケータについてreturn文が必要かどうかは良く分からない。

結構、苦労した。本質的な所が分かっていないということです。
dealbook360関連のシステムトレードブログも増えてきました。こちらから

スポンサーサイト

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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