こんにちは。
私のEAでストップ実行を検出しようとしています。残念ながら、MqlTradeTransaction が OnTradeTransaction に渡すDEAL_ENTRY_IN しか得られないのです。
これはバックテストの場合のみと思われます。
どなたか、バックテストでトリガーされたストップを 確実に検出する方法をご存知の方、価格と(部分的な)利益とともにベストな方法を教えてください。
ありがとうございます。
OnTradeTransaction で、. をチェックする必要があります。
trans.order_state = ORDER_STATE_PLACED;
を持つ別のトランザクションが続いている。
trans.type = TRADE_TRANSACTION_DEAL_ADD;
OnTradeTransactionで、:
その後に、別の取引で:
こんにちは、Angevoyageur。
私のダンプをご覧ください。このダンプは、すべての取引をファイルに出力します。私のEAはとてもシンプルです。私のEAは非常にシンプルで、ストップとターゲットを指定して売買します。残念ながら、ログにはストップやターゲットに関連するトランザクションは見当たりません。
トリガーされたストップやターゲットに関連するログを見つけることができません。
20130507 00:26:59:672 entry short at 1.32176 <- entry short 20130507 00:26:59:672 symbol=EURUSD price=1.3217600 volume=0.01 sl=1.3229200 tp=1.3202000 order=2 deal=2 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 20130507 00:26:59:672 symbol=EURUSD price=1.3217600 volume=0.01 sl=1.3229200 tp=1.3202000 order=2 deal=0 entry-type=IN trans-type=ORDER_DELETE order_type=SELL deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 20130507 00:26:59:672 symbol=EURUSD price=1.3217600 volume=0.00 sl=1.3229200 tp=1.3202000 order=2 deal=0 entry-type=IN trans-type=HISTORY_ADD order_type=SELL deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 20130507 00:26:59:672 symbol= price=0.0000000 volume=0.00 sl=0.0000000 tp=0.0000000 order=0 deal=0 entry-type=IN trans-type=REQUEST order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 /// before the entry long, the stop or target of entry short should be triggerd. /// The EA does not allow to enter new trade before latest is closed, simply by check current positions for symbol before open an entry tradde. 20130507 00:26:59:674 entry long at 1.32140 <- entry long 20130507 00:26:59:674 symbol=EURUSD price=1.3214000 volume=0.01 sl=1.3200900 tp=1.3231100 order=3 deal=3 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 20130507 00:26:59:674 symbol=EURUSD price=1.3214000 volume=0.01 sl=1.3200900 tp=1.3231100 order=3 deal=0 entry-type=IN trans-type=ORDER_DELETE order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 20130507 00:26:59:674 symbol=EURUSD price=1.3214000 volume=0.00 sl=1.3200900 tp=1.3231100 order=3 deal=0 entry-type=IN trans-type=HISTORY_ADD order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 20130507 00:26:59:674 symbol= price=0.0000000 volume=0.00 sl=0.0000000 tp=0.0000000 order=0 deal=0 entry-type=IN trans-type=REQUEST order_type=BUY deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit=0.00 /// As you can see, my entry short shows transaction BUY, SELL, SELL what ever the purpose of this confusing transactions is. /// No a bit about stop or target orders
では、ストップとターゲットの取引を取得する方法は?私はここでバックテストについて話して います。本番環境でもそうなのかどうかはわかりません。
こんにちは、Angevoyageur。
私のダンプをご覧ください。このダンプはすべての取引をファイルに出力します。私のEAは非常にシンプルです。ストップとターゲットを指定して売買します。残念ながら、ログにはストップやターゲットに関連するトランザクションは見当たりません。
トリガーされたストップやターゲットに関連するログを見つけることができません。
では、ストップとターゲットの取引を取得する方法は?私はここでバックテストについて話しています。本番環境でもそうなのかどうかはわかりません。
OK、すみません、最初の質問を誤解していました。「トリガーされたストップ」と言われたとき、私は保留中の注文(買いのストップまたは売りのストップ)を考えていました。
本当に取引を監視する必要があるのでしょうか?一度に1つの取引しか行わないのであれば、PositionSelect(_Symbol)でオープンしたポジションを確認するだけでよいのです。
OK、最初の質問を誤解してすみません。「トリガーされたストップ」と言われたとき、私は保留中の注文(買いストップまたは売りストップ)を想像していたのです。
本当に取引を監視する必要があるのでしょうか?もし、一度に一つの取引しかしないのであれば、PositionSelect(_Symbol)でオープンしたポジションを簡単に確認することができます。
こんにちは。
ポジションが開いているかどうかを確認するために、私はすでにCPositionInfo.Selectを実行しています。
しかし、ストップやターゲットがトリガーされた場合、どのように実行されたストップやターゲット価格を取得するのでしょうか?スマートな方法はありますか?
取引履歴を確認されてはいかがでしょうか?
もっと詳しく教えてください。約定したストップまたはターゲット価格が必要です。ターゲットまたはストップをトリガーした(トランザクションとして渡されない)取引IDまたはチケットを持っていません。
履歴はDEAL_PRICEを 提供しますが、私は取引番号または チケットが必要です。どのチケットまたはディールを取るべきですか? ありがとうござい ます。

- www.mql5.com
もっと詳しく教えてください。約定したストップまたはターゲット価格が必要です。ターゲットまたはストップをトリガーした(トランザクションとして渡されない)取引IDまたはチケットを持っていません。
履歴はDEAL_PRICEを 提供しますが、私は取引番号または チケットが必要です。どのチケットまたはディールを取るべきですか? ありがとうござい ます。
ストップやスプレッドのトリガーがかかると、取引の反対側の取引が追加されます。例えば、0.25ロットの買いポジションを保有しているとします。SL/TPがトリガーされると、売りタイプの取引が発生します。OnTradeTransactionを使用してこれを監視するか、またはポジションがクローズされたことが分かった時点で取引の履歴を確認するだけです。
コード例は こちらをご覧ください。
SlまたはTpがトリガーされると、取引の反対側と取引が追加されます。例えば、0.25ロットの買いポジションを保有しているとします。この場合、OnTradeTransactionを使用して、この取引を監視するか、またはポジションがクローズされたことを確認したら、取引の履歴を確認することができます。
コード例は こちらをご覧ください。
こんにちは、angevさん。
これは私の問題です:明らかに私はOnTradeTransactionを使用することはできません。上記の私のログをご覧ください。そこにはストップやターゲットの注文は記載されていません。つまり、ストップやターゲットに関連する取引は実行されていないのです。
再び、私はバックテストについて話します。
こんにちは、angevです。
これは私の問題です:明らかに私はOnTradeTransactionを使用することはできません。上記の私のログをご覧ください。そこにはストップやターゲットの注文は記載されていません - 従って、ストップやターゲットに関連する取引は実行されていません ダンプはOnTradeTransactionに渡された各トランザクションに対して作成されます。
もう一度言いますが、私はバックテストについて話しています。
あなたがそれを提供する場合、私ができる唯一の考えは、あなたのコードをテストすることです。私はそのような問題を持っていない。
こんにちは、angevoyageurさん。
この問題を説明する簡単なEAを添付します。このEAは、ストップとターゲットと共にロングをオープンし、その後ショート、ロングと続きます。
また、ダンプ方法も含まれています。EUR.USD 1 minute 1 week を適用して、バックテストログの トランザクションダンプを見るだけです。
助けてくれてありがとうございます。

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
こんにちは。
私のEAでストップ実行を検出しようとしています。残念ながら、MqlTradeTransaction が OnTradeTransaction に渡すDEAL_ENTRY_IN しか得られないのです。
これはバックテストの場合のみと思われます。
どなたか、バックテストでトリガーされたストップを確実に検出する方法をご存知の方、価格と(部分的な)利益とともにベストな方法を教えてください。
ありがとうございます。