В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
voidOnTrade()
{
...
}
static __OTotal = -1;
static __HTotal = -1;
int OT=OrdersTotal();
int HT=OrdersHistoryTotal();
if(OT!=__OTotal || HT!=__HTotal) // если изменилось - выполняем
{
OnTrade(); // здесь дёргаем текущую ситуацию на счёте и заполняем структуры
__OTotal=OrdersTotal(); // запомним текущее количество
__HTotal=OrdersHistoryTotal(); // запомним количество в истории
}
Мобильный трейдинг в MetaTrader 5 — это возможность торговать на Форексе, фондовой бирже, а также фьючерсами в любое время из любой точки мира. Имея смартфон или планшет с установленным приложением MetaTrader 5 для iOS или Android, вы всегда будете в курсе рыночной ситуации и сможете совершать торговые операции 24 часа в сутки. Все возможности...
OnTradeTransaction() でイベントが発生し、その後に何らかのアクションを実行する必要があるが、そのアクションを最初に実行しようとしたときにエラーが発生したとする。どうすればいいのか? 明らかに、我々は再びそれをしようとする必要があり、そのためには、これらのアクションの繰り返しの必要性に関するデータをどこかに保存する必要があります - ほとんどの場合、このデータは、エキスパートアドバイザのグローバル変数または静的関数に保存されています。そして突然、端末を再起動しなければならなくなった...。データが消えてしまう。
そして、現状と歴史を分析すると......何もかもがうまくいかなくなっている。
端末がクラッシュした場合、OnInit()で再起動した後、フルインベントリを実施するのが通例です。
これは不完全な OnTrade() として使用することもできます。
はい、このスレッドをすべて読み、このソリューションはシンプルで信頼性が高く、「安価」であるという結論に達しました。今一度、mql4の全機能に目を通してみて、何か発見があれば、この投稿に追記します。ありがとうございました。
また、メタトレーダー4ターミナルのログを思い出しましたが、そこには原則としてすべてのトレードイベントが追加されています。また、トレードイベントに関する携帯端末への 通知もあります。upd: 残念ながら、これらのイベントもDLLなしではアクセスできません。