OnTradeTransaction - ページ 5 123456789 新しいコメント prostotrader 2016.12.04 21:00 #41 Anatoli Kazharski: ええ、そんなもんです。ただ、まだそのようなテストはしていません。試してみてください...によって追加されました。case TRADE_TRANSACTION_DEAL_ADD: if (trans.order != my_order_ticket) { if(trans.symbol==Symbol()) { if(проверяем магик) { //Сработал SL или TP } } }break; Andrey Dik 2016.12.04 21:02 #42 prostotrader:この方法の何が問題なのでしょうか?case TRADE_TRANSACTION_DEAL_ADD: if (trans.order != my_order_ticket) { //Сработал SL или TP }break;なぜなら、最後に判明したSLとTPの位置が取引価格と 一致しない場合があり、比較するものがなくなってしまうからです。 そして、自分のコードは公開しないのに、他人のコードは嬉しそうに見ている...。これは、必ずしもうまくいくとは限りません。int G_LastTicket = 0; //Последний известный тикетdouble G_LastSLlevel = 0.0; //Последний известный уровень SLdouble G_LastTPlevel = 0.0; //Последний известный уровень TP//——————————————————————————————————————————————————————————————————————————————void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции const MqlTradeRequest &request, // структура запроса const MqlTradeResult &result) // структура ответа{ if(trans.type == TRADE_TRANSACTION_DEAL_ADD) { if(PositionsAny (G_Symbol)) { G_LastSLlevel = GetSLlevel (G_Symbol); G_LastTPlevel = GetTPlevel (G_Symbol); Print ("SLlevel: " + G_LastSLlevel); Print ("TPlevel: " + G_LastTPlevel); } if(trans.deal != G_LastTicket) { if(trans.price == G_LastSLlevel) Print ("Сработал SL"); if(trans.price == G_LastTPlevel) Print ("Сработал TP"); } }} OnTradeTransaction MetaEditor build 1490 mql5言語の特徴、微妙なニュアンスとテクニック Anatoli Kazharski 2016.12.04 21:02 #43 prostotrader: 試してみてください... 今度、必ず試してみます。ありがとうございます。今は他の業務で忙しいので。 fxsaber 2016.12.04 21:04 #44 prostotrader:この方法の何が問題なのでしょうか?my_order_ticketを 格納する必要があります。 prostotrader 2016.12.04 21:05 #45 fxsaber:my_order_ticketを 保持する必要があります。自分が何を言っているのか分かっているのだろうか?my_order_ticket - この注文は、 あなたが持っている 場合、住む場所があります。 そして、あなたはそれを守る義務があります。 Andrey Dik 2016.12.04 21:06 #46 fxsaber:my_order_ticketを 格納する必要があります。 それだけではありません。 prostotrader 2016.12.04 21:08 #47 Anatoli Kazharski: 今度、試してみますね。ありがとうございます(苦笑)。今は他の業務で忙しいので。 コードを使って頑張ってください fxsaber 2016.12.04 21:18 #48 Andrey Dik: それだけではありません。はい、実際にはOnTradeTransactionが生成するものと比較しながら、実際の環境そのものを維持・保存することが提案されています。これでは解決にならない。 prostotrader 2016.12.04 21:25 #49 fxsaber:はい、実際にはOnTradeTransactionが生成するものと比較しながら、実際の環境そのものを維持・保存することが提案されています。これでは解決にならない。あなたがこの話題についていけてないだけです。:)元のトピックスターターが書いています。"OnTradeTransaction()でSL/TPがトリガーされたことを知るにはどうしたらいいですか?"何を解決すべきなのか?を条件に、位置そのもの以外は全く記憶せず、確認しないことも可能でした。他の注文は操作しなかったのかcase TRADE_TRANSACTION_DEAL_ADD: if (!PositionSelect(Symbol()) { //Сработал SL или TP }break; Andrey Dik 2016.12.04 21:30 #50 prostotrader:あなたがこの話題についていけてないだけです。:)元のトピックスターターが書いています。むしろ不用意なのはあなたの方で、私はトピックスターターでは ありません。また、このようなコードを表示する必要があります。//——————————————————————————————————————————————————————————————————————————————void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции const MqlTradeRequest &request, // структура запроса const MqlTradeResult &result) // структура ответа{ } まあ、何が問題なのか - 誰がそれを必要とし、それを自分で仕上げ、それを好きではない - ジョバがある!そうなんですか? 123456789 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ええ、そんなもんです。ただ、まだそのようなテストはしていません。
試してみてください...
によって追加されました。
if (trans.order != my_order_ticket)
{
if(trans.symbol==Symbol())
{
if(проверяем магик)
{
//Сработал SL или TP
}
}
}
break;
この方法の何が問題なのでしょうか?
if (trans.order != my_order_ticket)
{
//Сработал SL или TP
}
break;
なぜなら、最後に判明したSLとTPの位置が取引価格と 一致しない場合があり、比較するものがなくなってしまうからです。
そして、自分のコードは公開しないのに、他人のコードは嬉しそうに見ている...。
これは、必ずしもうまくいくとは限りません。
double G_LastSLlevel = 0.0; //Последний известный уровень SL
double G_LastTPlevel = 0.0; //Последний известный уровень TP
//——————————————————————————————————————————————————————————————————————————————
void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции
const MqlTradeRequest &request, // структура запроса
const MqlTradeResult &result) // структура ответа
{
if(trans.type == TRADE_TRANSACTION_DEAL_ADD)
{
if(PositionsAny (G_Symbol))
{
G_LastSLlevel = GetSLlevel (G_Symbol);
G_LastTPlevel = GetTPlevel (G_Symbol);
Print ("SLlevel: " + G_LastSLlevel);
Print ("TPlevel: " + G_LastTPlevel);
}
if(trans.deal != G_LastTicket)
{
if(trans.price == G_LastSLlevel)
Print ("Сработал SL");
if(trans.price == G_LastTPlevel)
Print ("Сработал TP");
}
}
}
試してみてください...
この方法の何が問題なのでしょうか?
my_order_ticketを 保持する必要があります。
自分が何を言っているのか分かっているのだろうか?
my_order_ticket - この注文は、 あなたが持っている 場合、住む場所があります。
そして、あなたはそれを守る義務があります。
my_order_ticketを 格納する必要があります。
今度、試してみますね。ありがとうございます(苦笑)。今は他の業務で忙しいので。
それだけではありません。
はい、実際にはOnTradeTransactionが生成するものと比較しながら、実際の環境そのものを維持・保存することが提案されています。
これでは解決にならない。
はい、実際にはOnTradeTransactionが生成するものと比較しながら、実際の環境そのものを維持・保存することが提案されています。
これでは解決にならない。
あなたがこの話題についていけてないだけです。:)
元のトピックスターターが書いています。
"OnTradeTransaction()でSL/TPがトリガーされたことを知るにはどうしたらいいですか?"
何を解決すべきなのか?
を条件に、位置そのもの以外は全く記憶せず、確認しないことも可能でした。
他の注文は操作しなかったのか
if (!PositionSelect(Symbol())
{
//Сработал SL или TP
}
break;
あなたがこの話題についていけてないだけです。:)
元のトピックスターターが書いています。
むしろ不用意なのはあなたの方で、私はトピックスターターでは ありません。
また、このようなコードを表示する必要があります。
void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции
const MqlTradeRequest &request, // структура запроса
const MqlTradeResult &result) // структура ответа
{
}
まあ、何が問題なのか - 誰がそれを必要とし、それを自分で仕上げ、それを好きではない - ジョバがある!そうなんですか?