mql4でOnTradeTransaction()の代わりになるものは何ですか? - ページ 9

 
Dmitry Fedoseev:

OnTradeTransaction() でイベントが発生し、その後に何らかのアクションを実行する必要があるが、そのアクションを最初に実行しようとしたときにエラーが発生したとする。どうすればいいのか? 明らかに、我々は再びそれをしようとする必要があり、そのためには、これらのアクションの繰り返しの必要性に関するデータをどこかに保存する必要があります - ほとんどの場合、このデータは、エキスパートアドバイザのグローバル変数または静的関数に保存されています。そして突然、端末を再起動しなければならなくなった...。データが消えてしまう。

そして、現状と歴史を分析すると......何もかもがうまくいかなくなっている。

端末がクラッシュした場合、OnInit()で再起動した後、フルインベントリを実施するのが通例です。

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
 
Vitaly Muzichenko:

これは不完全な OnTrade() として使用することもできます。

void OnTrade()
 {
  ...
 }

static __OTotal = -1;
static __HTotal = -1;
int OT=OrdersTotal();
int HT=OrdersHistoryTotal();
  if(OT!=__OTotal || HT!=__HTotal) // если изменилось - выполняем
   {
     OnTrade(); // здесь дёргаем текущую ситуацию на счёте и заполняем структуры
     __OTotal=OrdersTotal(); // запомним текущее количество
     __HTotal=OrdersHistoryTotal(); // запомним количество в истории
   }

はい、このスレッドをすべて読み、このソリューションはシンプルで信頼性が高く、「安価」であるという結論に達しました。今一度、mql4の全機能に目を通してみて、何か発見があれば、この投稿に追記します。ありがとうございました。

また、メタトレーダー4ターミナルのログを思い出しましたが、そこには原則としてすべてのトレードイベントが追加されています。また、トレードイベントに関する携帯端末への 通知もあります。upd: 残念ながら、これらのイベントもDLLなしではアクセスできません。

Мобильные приложения MetaTrader 5 для iPhone/iPad и Android
Мобильные приложения MetaTrader 5 для iPhone/iPad и Android
  • www.metatrader5.com
Мобильный трейдинг в MetaTrader 5 — это возможность торговать на Форексе, фондовой бирже, а также фьючерсами в любое время из любой точки мира. Имея смартфон или планшет с установленным приложением MetaTrader 5 для iOS или Android, вы всегда будете в курсе рыночной ситуации и сможете совершать торговые операции 24 часа в сутки. Все возможности...