Анализ размера свечи и тени свечи. В OnTradeTransaction отлавливаем открытие (DEAL_ENTRY_IN) и закрытие позиций (DEAL_ENTRY_OUT), а также закрытие по Stop loss (DEAL_REASON_SL).
voidOnTradeTransaction(constMqlTradeTransaction &trans,
constMqlTradeRequest &request,
constMqlTradeResult &result)
{
//--- get transaction type as enumeration valueENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in historyif(type==TRADE_TRANSACTION_DEAL_ADD)
{
long deal_entry =0;
string deal_symbol ="";
long deal_magic =0;
long deal_reason =-1;
if(HistoryDealSelect(trans.deal))
{
deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL);
deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
deal_reason=HistoryDealGetInteger(trans.deal,DEAL_REASON);
}
elsereturn;
if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
if(deal_entry==DEAL_ENTRY_OUT)
{
if(deal_reason==DEAL_REASON_SL)
SendNotification ("Закрыл позицию > StopLoss");
if(deal_reason==DEAL_REASON_TP)
SendNotification ("Закрыл позицию > TakeProfit");
}
}
}
Versuchen Sie es (I habe es nicht getestet)
ありがとうございます、後で確認します。
機能を正しく配置するために、ご協力をお願いします。
...
しかし、どこにどのように挿入するのか
ストップロスやテイクプロフィットに 到達したときにメッセージを送るには?
同じことを言ってるのか?
OnTradeTransactionで SLの出口を追跡する例を見つけました。https://www.mql5.com/ru/code/21147。
同じEAを2種類の楽器で使用する
こんにちは!助けていただけませんか?
ドラッグしたチャート上で動作するEAがあります(Symbol()の 値はシンボルの名前として扱われます)。
しかし、このEAでは、設定された注文のチケットを格納するticket_exist変数も持っており、ticket_existが0でなければ、ここで注文が設定 されたと理解します。
質問:このようなEAを2つの異なる機器で開いた場合、一方の機器でticket_exist変数がゼロに等しくなければ、同じ名前の変数はもう一方の機器でもゼロに等しいままでしょうか。
SUです。
同じEAを2種類の楽器で使用する
こんにちは!助けていただけませんか?
ドラッグしたチャート上で動作するEAがあります(Symbol()の 値はシンボルの名前として扱われます)。
しかし、このEAでは、設定された注文のチケットを格納するticket_exist変数も持っており、ticket_existが0でなければ、ここで注文が設定 されたと理解します。
質問:このようなEAを2つの異なる機器で開いた場合、一方の機器でticket_exist変数がゼロに等しくなければ、同じ名前の変数はもう一方の機器でもゼロに等しいままでしょうか。
SUです。
あるEAの変数値が、別のEAで利用できない。要は、シンボルかマジックのどちらか、あるいは両方が違うということです。
ティック単位で何時か教えてください。サーバータイムか UTCか?
どこかで読んだ記憶があるのですが、思い出せません...。
あるEAの変数値が、別のEAで利用できない。要は、シンボルか魔法か、あるいはその両方が違っていればいいんです。
ありがとうございます! 私が正しく理解していれば、異なるシンボルで動作するEA(2つの全く同じもの)の競合を得るために、それらの変数はグローバル(ターミナル全体)として設定されるべきであるか、例えば、注文はそのシーケンス番号または単にその存在の事実によってアクセスされるべきであるか?
これを試してみてください(テストはしていません)
うまくいかず、コンパイルエラーになる。
この方法で試したところ、問題なくコンパイルできましたが、リンクを閉じた状態でのテストができません
明日からまた頑張るぞ。
を実行すると、コンパイルエラーが発生します。
この方法で試したところ、問題なくコンパイルできましたが、リンクが閉じているとテストができません
明日には完成させます。
コードが 正しく入力されていません。
少し直したら動くようになった。
コードが 正しく入力されていません。
少し修正したら、動くようになりました(確認しました)。
ここで、SLやTPによって取引がきっちり成立した事実をトレースする必要がある。また、OnTradeTransactionを 使用することで、取引終了後にすぐにデータを取得することができます。
TimeCurrentで クローズした取引が複数ある場合、どのような結果を返すべきでしょうか?また、利益があるからといって、SLやTPで取引が終了したわけではありません。これは先ほども言ったように、トラッキングが必要です。そこで、OnTradeTransactionを 使用するのが最も簡単な解決 策です。
ここで、取引がSLまたはTPで正確に決済されたことを追跡する必要もあります。
取引成立のお知らせと理解していたのですが、もしかしたら勘違いしていたかもしれません...。
ミハイル・マトコフスキージ
TimeCurrentで 複数の取引が決済された場合、どのような結果が返ってくるのでしょうか? 。
わからない、確認が必要