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

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

スポンサーサイト

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

function PlusDI のマルチタイムフレーム化 5

Directional Movement のマルチタイムフレーム化です。

高値のマルチタイムフレーム化はできました。
ここで実現目標のfunction PlusDI のソースコードを見てみます。

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

function PlusDI;
input period(number);
result res(series);
vars i(number), pdm(series), tmp(number);
begin
for i := 1 + front(high) to back(high) do begin
tmp := high[i] - high[i - 1]; { 高値の引き算をしています }
if tmp < 0 then
tmp := 0;
pdm[i] := tmp;
end;
res := 100 * mma(pdm, period) / mma(truerange(), period); { ここが問題です }
end.
//////////////////////////

truerange() というのが使われています。
これはchart studioに初めからある、値幅を計算するファンクションです。
計算しようとするバーの高値から安値を引けば値幅がでますが、
時々1つ前のバーの終値が次のバーの始値にならないことが発生します。
これにより例えば、高値が1つ前の終値よりも低いといったことが起きます。
truerange() はこの現象も含めて計算しています。
ソースコードは以下になります。

///////////////////////////
function TrueRange;
result r(series);
vars truehigh(number), truelow(number), i(number), f(number);
begin
f := front(close);
if back(close) >= f then
r[f] := high[f] - low[f];
for i := f + 1 to back(close) do begin
truehigh := close[i - 1];
if truehigh < high[i] then
truehigh := high[i];
truelow := close[i - 1];
if truelow > low[i] then
truelow := low[i];
r[i] := truehigh - truelow;
end;
end.
////////////////////////

今回のマルチフレーム化にあたって、この truerange は単純な「高値-安値」を使うことにします。
truerangeまで考慮すると複雑になりそうで、全体が出来上がった段階で考えることにします。


参考になったらクリックよろしく 人気blogランキング

検証にはGFTのdealbook360を使っています
GFT
GFTの紹介ブログ記事

システム売買ルール

モジュール集の目次

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

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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