エラー、バグ、質問 - ページ 2826

 

こんにちは。正しい枝を選べばいいのですが。

ビジュアルテスターでは、EAが使用するインジケーターウィンドウはほとんど作成されず、エラーも表示されず、その他はすべて動作しています。

EAのイニシャライザーでSleep(1)を開いた場合のみ、インジケータが表示され、レンダリングされます。

何が問題なのでしょうか?

カスタムインジケータのChartWindowFind(0, short_name)がチャートの左側で動作しなくなるため、Sleep()が使えません。

ここで、私が問題にしている簡単な例を挙げます。

int MACDHandle=INVALID_HANDLE;
double macd_value[];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   MACDHandle=iMACD(_Symbol,0,12,26,9,PRICE_CLOSE);
//Sleep(1);
   ArraySetAsSeries(macd_value, true);
//--- Нужно проверить, не были ли возвращены значения Invalid Handle
   if(MACDHandle<0)
     {
      Alert("Ошибка при создании индикатора MACD - номер ошибки: ",GetLastError(),"!!");
      return(-1);
     }
   else
     {
      Print("MACD инициализирован, handle: ", MACDHandle);
      return(INIT_SUCCEEDED);
     }
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- Освобождаем хэндлы индикаторов
   IndicatorRelease(MACDHandle);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   CopyBuffer(MACDHandle, 0, 0, 1, macd_value);
   Print("macd_value: ", macd_value[0]);
  }
//+------------------------------------------------------------------+
mt5ビルド2572
 
fxsaber:

それは私が考えていた回避策です、ありがとうございます。それしかないようです。

何かが変わったかどうかは分かりませんが、この記事を 書いた時点では、このコードは普遍的に動作します。

FileOpen(filename, FILE_READ | FILE_TXT | FILE_ANSI, 0, CP_UTF8);
Синтаксический анализ MQL средствами MQL
Синтаксический анализ MQL средствами MQL
  • www.mql5.com
Суть программирования заключается в формализации и автоматизации неких процессов с помощью языков общего или специального назначения. Торговая платформа MetaTrader позволяет применять программирование для решения самых разных задач трейдера, благодаря встроенному языку MQL. И обычно процесс программирования строится на анализе и обработке...
 
テスト中のEAでカーネル番号を調べる方法を教えてください。MQL APIにはありませんが、誰かがエージェントのパスをパースしたのだと思います。そこでは、テスターでどのようにフォルダが統一されているかは不明です。
 
Stanislav Korotky:
テスト中のEAでカーネル番号を調べる方法を教えてください。MQL APIにはありませんが、誰かがエージェントのパスをパースしたのだと思います。そこでは、テスターでどのようにフォルダが統一されているかは不明です。

https://www.mql5.com/ru/forum/1111/page2660#comment_15183572

 

ありがとうございます、試してみます。ただし、ポート番号は5桁(標準サービスでは予約とされているが厳密には4桁以下)でも可能なので、自分なりに抽出方法を修正することにする。

 

ごきげんよう。

例えば、あるEAを開発 中にデバッグモードで動作させたとします。入力変数の1つのデフォルト値が、コード内で変更されたところです。ただし、その実行時の値は、前回のストラテジーテスターの入力セットから挿入される。

という疑問が湧いてきます。同期がとれない地獄はともかく、デバッグモードがコードよりセットを優先させるのはなぜ?

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
 
Nikolai Karetnikov:

ごきげんよう。

例えば、あるEAを開発 中にデバッグモードで動作させたとします。入力変数の1つのデフォルト値が、コード内で変更されたところです。ただし、その実行時の値は、前回のストラテジーテスターの入力セットから挿入される。

という疑問が湧いてきます。同期がとれていないのはともかく、なぜデバッグモードではコードよりセットが優先されるのですか?

要するに、この機能を検討すればいいのです。

 

情報を共有する、戦闘トレーディングEAのEX5ファイルのサイズを教えてください。

私は、明示的または暗黙的な(静的配列)リソースなしで、GUIなし〜1250Kb(EX4 - 450Kb)の(単一の(符号なし)取引ロジック)を持っています。同時に、テスター版(実世界のラッパーなし)は、〜250Kbです。

 
fxsaber:

シェア情報、戦闘用EAのEX5ファイルのサイズを教えてください。

150kb インジケータなし