ブログタイトルを「FX自動売買システム開発部」から「autoFX」に変更しました!

OnCalculate()の引数の配列にご注意を

混乱を招く仕様

インジケーターの作成を頼まれて、せっかくだからOnCalculate()を使おうとした時の話です。

自分としては、完璧に作ったはずなのに、テストすると全然意図した通りに動かない。「なぜだろう…」とPrint()で色々とログを取得して数時間。

原因がようやく分かりました。

OnCalculate()の引数close[]は時系列配列ではなく、通常の配列だったんです!

Close[]等の時系列配列では、チャートの右端の位置(現在)が0で、過去に遡るほどインデックスが増える仕様です。しかし、close[]では、チャートの左端の位置(一番過去)が0で、現在に向かうほどインデックスが増える仕様になっているのです。つまり、全く逆の動きをするわけです。

詳しくは豊嶋さんの下記サイトをご覧ください。※2018/7/21追記:サイトが削除されてしまったようなのでリンクを解除しました。

ttp://system-trading.jp/toyoshima/index.php?ID=162
[MQL5]OnCalculate()関数の使い方

ttp://system-trading.jp/toyoshima/index.php?ID=125
MQL5でカスタム指標プログラム(1)

これを知らなくて、ハマっていたわけです。これでハマった人は私以外にも沢山いるはずです。

なぜ、こんな開発者を罠に嵌めるような仕様に変更したのか、不満たらたらの管理人なのでした。

MQL4プログラミングの最新記事8件

>完全放ったらかしEA 「AutoEndlessCatchRange」

完全放ったらかしEA 「AutoEndlessCatchRange」

「本業が忙しい!」「でも資産運用したい!」そんなあなたに最適なEAです。兼業トレーダーの方はチャートを毎日みて分析してトレードする時間はなかなか確保できないものです。トレードは本EAに任せて、本業やプライベートの時間をもっと増やしませんか?元々は自分自身のために開発したEAですので、手抜き無しのガチものです。

CTR IMG