ドル円とポンドルの双方からポン円のsell buyポイントを判定する。

ドルが基軸通貨である以上、ポンド円の動きは、ドル円とポンドドルのそれぞれの動きから影響を受けるとみなすことができると思います。( クロス円をメインにトレードされている人にとっては常識ですよね.. )


ポンド円をトレードする際は、ドル円もポンドドルも同じ方向に動いている時に仕掛ければ、より高確率でトレンドを捉まえることができると考えるのは自然な流れです。そこから、チャートを3枚並べて、見比べながら売買するというスタイルが流行る(?)訳ですが、どうせ2つの通貨ペアの動く方向しか気にしないのなら、ポンド円のチャート上に方向を示すようにすれば良いのでは?・・・・ を試してみたのが今回のインジケータです。

このチャートでは、単純にドル円、ポンドドルの移動平均の傾きの方向が一致した点に◆印をつけています。
一見しただけでは、役に立つのか微妙に分からないですが、傾きの大きさでフィルタリングする等すれば、有効なツールになるかも?知れません...。
クロス円を分解する以外にも、ユーロドルのチャートで、ドル円、ドルスイスが逆方向に傾くのを見ることもできます。



このようなインジケータを使う際に注意すべき点は、ポンド円のチャートだけを開いた状態では、ドル円とポンドドルは過去2048本までしか自動で取得されません。(Build や業者の違いで本数は変わるかもしれませんが..)
なので、古いデータを検証したい場合は、ドル円とポンドドルのチャートも開いて、バーチャル洗濯ばさみ等で事前に取得しておく必要があります。


それから、、インジケータを作る場合は、それぞれの通貨ペアによってヒストリカルデータの本数が異なってる点に加えて、昨日の記事に書いたように、それぞれのペアに固有の抜けが存在する可能性がある点にも気をつけなくてはなりません。
ポンド円の5000本前の時刻と、ドル円、ポンドドルの5000本前の時刻は異なる可能性がある..ということです。


i 本前の移動平均の値を知りたい場合に、

double gbpjpy = iMA("GBPJPY",0,MAPeriod,0,MAMethod,PRICE_TYPICAL,i);
double gbpusd = iMA("GBPUSD",0,MAPeriod,0,MAMethod,PRICE_TYPICAL,i);
double usdjpy = iMA("USDJPY",0,MAPeriod,0,MAMethod,PRICE_TYPICAL,i);

のように書くと、時刻のずれた値を取得するので あまり好ましくありません。
より正確な値を取得する為には、

double gbpjpy = iMA("GBPJPY",0,MAPeriod,0,MAMethod,PRICE_TYPICAL,i);
int i_ = iBarShift("GBPUSD",0,iTime("GBPJPY",0,i));
double gbpusd = iMA("GBPUSD",0,MAPeriod,0,MAMethod,PRICE_TYPICAL, i_ );
i_ = iBarShift("USDJPY",0,iTime("GBPJPY",0,i));
double usdjpy = iMA("USDJPY",0,MAPeriod,0,MAMethod,PRICE_TYPICAL, i_ );

のように書きます。


iBarShift を使うと、ポンド円の特定の時刻が、ポンドドルの何本目のBar に相当するか?(一致するBar が無ければ、もっとも近いBar ) が分かるので、抜けによるズレの誤差を抑えることができます。


…そうは言っても、抜けから生じる移動平均値のズレ自体が直る訳ではないので、入手したデータの品質には常に気をつけたほうが良いでしょう..。