記事"MQL5でのティックインディケーターの作成"についてのディスカッション
興味深い記事をありがとう。
データのバッファリングにファイルを使用することは必須だったのでしょうか?
スタティスの配列を使って、履歴データをメモリ上にバッファリングすることはできなかったのですか?
ありがとうございます。
こんにちは!
ローソク足は数秒(5秒、6秒、10秒、12秒、15秒)です。時間に対する価格の変化を見るためです。
誤字?
記事の本文中に ある 。例では AskBufferが 正しいです。こんにちは!
テスターでの仮想ティックの作成を無効にし、時間によるインストゥルメント価格のデータの同期を 行う一方で、提案されたインジケーターが受信したティックファイルをテスターでの多通貨テストに使用することは可能でしょうか?
ありがとうございます。
- www.mql5.com
こんにちは!
ローソク足は数秒(5秒、6秒、10秒、12秒、15秒)です。時間に対する価格の変化を見るためです。
こんにちは!
テスターでの仮想ティックの作成を無効にし、時間によるインストゥルメント価格のデータの同期を 行う一方で、提案されたインジケーターが受信したティックファイルをテスターでの多通貨テストに使用することは可能ですか?
ありがとうございます。
インジケーターが作成した気配値のファイルは、もちろん他の目的に使用することができます。不要な機能(例えば、チャートの描画)やデータ処理(例えば、異なる商品のデータの同期)を無効にすることをお勧めします。ちなみに、私見では、このようなExpert Advisorの助けを借りて、気配値をファイルに書き込む方が簡単だと思います(添付ファイルにもあります):
int h; void OnInit() { string s; StringConcatenate(s,Symbol(),".txt"); h=FileOpen(s,FILE_READ|FILE_WRITE|FILE_ANSI|FILE_SHARE_READ); FileSeek(h,0,SEEK_END); } void OnTick() { string s; StringConcatenate(s,TimeCurrent()," ",DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_BID),_Digits)," ",DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_ASK),_Digits)); FileWrite(h,s); FileFlush(h); } void OnDeinit(const int reason) { FileClose(h); }
同僚のDima_Sが 提案したように、インディケータを初期化する際に、バッファを何かで満たす価値があります。
そして、TickIndicator.mq5の コードがあります:
//+------------------------------------------------------------------+ //| OnInit()関数| //+------------------------------------------------------------------+ void OnInit() { // 配列BidBuffer[]は指示バッファ SetIndexBuffer(0,BidBuffer,INDICATOR_DATA); // AskBuffer[]配列は指示バッファ SetIndexBuffer(1,AskBuffer,INDICATOR_DATA); // 入札ラインのゼロ値は描画されない PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); // アスク・ラインのゼロ値は描画されない。 PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0); }
以下の行を挿入する必要があります:
ArrayInitialize(BidBuffer,0); ArrayInitialize(AskBuffer,0);


新しい記事 MQL5でのティックインディケーターの作成 はパブリッシュされました:
本記事では価格のティックチャートをプロットするティックインディケーターと指定ティック数でロウソク足をプロットするTickロウソク足インディケーターの2つのインディケーター作成を考えます。 各インディケーターは受信価格をファイルに書き、このインディケーターのリスタート後にその保存データを使用します。 (これらのデータは他のプログラムでも使用されます)
作者: Denis Zyatkevich