異なる通貨ペアのデータを取得する関数
今回は異なる通貨ペアのデータを取得する為の関数について説明します。
異なる通貨ペアのデータを取得するには前回と同様に以下関数を使用する必要があります。
以下関数を使って現在表示されている通貨ペアのデータを取得する事も可能です。
データの種類 |
関数 |
内容 |
始値
|
iOpen()
|
指定した通貨ペア・時間軸の始値取得
|
高値
|
iHigh()
|
指定した通貨ペア・時間軸の高値取得
|
安値
|
iLow()
|
指定した通貨ペア・時間軸の安値取得
|
終値
|
iClose()
|
指定した通貨ペア・時間軸の終値取得
|
Tick出来高
|
iVolume()
|
指定した通貨ペア・時間軸の出来高取得
|
オープン時間
|
iTime()
|
指定した通貨ペア・時間軸のオープン時間取得
|
とりあえずこの関数を使って、現在表示中の通貨ペアの終値を取得してみましょう。
結果:
Test_GetTimeSeries_OtherSymbol USDJPY,Weekly: 104.29
これは現在チャートに表示されている通貨ペアと時間軸を指定しているので、
時系列配列に直接アクセスする
Close[0]と取得内容が同じになります。
シフトの値は時系列配列のインデックスと同じだと思って下さい。
シフトの値を0にすると、その指定した時間軸の最新のバーの値を取得します。
シフトの値を1にすると、その指定した時間軸の一つ前バーの値を取得します。
ドルストレートのデータを取得する
それではさっそくドルストレートのデータを取得してみましょう。
具体的にはEURUSDのデータを取得します。
「EURUSDのデータを取得する」という目的なので、現在表示されている通貨ペアに関係無く「EURUSDのデータ」を取得しなければなりません。
やる事は非常に簡単です、上の例では
Symbol()関数で現在の通貨ペアを取得して設定をしていましたが、
文字列でEURUSDと指定します。
結果:
Test_GetTimeSeries_OtherSymbol USDJPY,H4: 1.18279
ちょっと分かりにくいかもしれませんが、USDJPYのチャートでEURUSDの終値を取得しています。
銘柄名についての注意点
異なる通貨ペアを
文字列で指定するのですが、
業者によって通貨ペアの名称が異なる場合があるので注意が必要です。
特にCFDは業者によって全然名称が異なります。
例えばある業者のライブ口座では
このように通貨ペア名の末尾に「-a」がついています。
デモ口座ではこれが付いていません。
その為、
デモ口座 :"USDJPY"
ライブ口座:"USDJPY-a"
と、口座毎に名称指定の方法を変える必要があります。
この問題について対策していないと、デモ口座や他業者では動作するのに一部業者のライブ口座だけ動作しないという事が発生します。
まぁ単純に現在表示している通貨ペア名を取得して、通貨ペア名がCFD以外だった場合に
StringLen()で文字列の長さを取得して7文字以上なら、
StringSubstr()で余分な部分を取得して、
指定する通貨ペア名に付ける事で対策出来ます。
結果:
TestProgram USDJPY-a,H4: 仮引数 :EURUSD
TestProgram USDJPY-a,H4: 表示銘柄:USDJPY-a
TestProgram USDJPY-a,H4: 戻り値 :EURUSD-a