ストップロス注文が決済されたかどうかを確認する方法 - ページ 2

 

何を言っているのかわかる方のみお答えください。

これはMT5/mql5に関する トピックですので、関係のない投稿は削除 します。

MT5で履歴に逆指値がない。

 

mql5(ヘッジ口座)での主な問題は、ポジションの履歴がないため、ポジションを決済する際に、ストップロス価格を知ることです。HistorySelectByPosition() を使えば、最初のストップロス(最初の注文のストップロス)を見つけることができますが、そのストップロスを後で変更した場合、同じPOSITION_IDを持たない新しい注文を生成して、それを行うため、HistorySelectByPosition()関数で選ばれないため、最後に置いたストップロスを知ることが非常に難しくなります。

バグと言えるかどうかわかりませんが、もしそうでないなら、そうすべきです。

よろしくお願いします。

Documentation on MQL5: Trade Functions / HistorySelectByPosition
Documentation on MQL5: Trade Functions / HistorySelectByPosition
  • www.mql5.com
Trade Functions / HistorySelectByPosition - Reference on algorithmic/automated trading language for MetaTrader 5
 
Jose Francisco Casado Fernandez:

mql5(ヘッジ口座)での主な問題は、ポジションの履歴がないために、ポジションがクローズされたときのストップロス価格を知ることです。 HistorySelectByPosition() を使えば、最初のストップロス(最初の注文のストップロス)を見つけることができるのですが・・・。

いいえ、そうではありません。

現在のStoplossは履歴のどこにもありません。

 
Alain Verleyen:

いいえ、あなたはできませんか、私はあなたを誤解していました。

ストップロスは歴史上どこにもありません。

HistorySelectByPosition() でPOSITION_IDを指定して、そのPOSITION_IDの最初の注文を見つけて、その注文のストップロスをチェックすることができます(HistoryOrderGetDouble(ticket, ORDER_SL).私はこれでうまくいきましたが
.問題は、そのStop Lossを後で修正する場合です。
 
Jose Francisco Casado Fernandez:
HistorySelectByPosition() でPOSITION_IDを指定して、そのPOSITION_IDの最初の注文を見つけ、その注文のストップロスをチェックすることができます(HistoryOrderGetDouble(ticket, ORDER_SL)).私はこれでうまくいきましたが
.問題は、そのStop Lossを後で修正する場合です。

わかりました、その通りです。

 
Jose Francisco Casado Fernandez:
HistorySelectByPosition() でPOSITION_IDを指定して、そのPOSITION_IDの最初の注文を見つけて、その注文のストップロス(HistoryOrderGetDouble(ticket, ORDER_SL))をチェックすればいいのでは?私の場合はうまくいきましたが
.問題は、そのStop Lossを後で修正する場合です。
そして ORDER_POSITION_IDが DEAL_POSITION_IDに 等しい ことを確認
DEAL_ENTRYを確認 OUT, HystoryDealGetDouble(ticket,DEAL_PRICE)
取得 します

DEAL_PRICEHistoryOrderGetDouble(ticket,ORDER_SL)等しい 場合 その注文は ストップロスにより決済 れた ことを 意味 します

以下は私の意見です。

 
Alain Verleyen:

なるほど、その通りだと理解しました。

あと、Stop Lossを 後で変更した場合、そのために生成された新しい注文が同じPOSITION_IDを示さないのはなぜかわかりますか?この件に関しては完璧な解決策だと思うのですが。バグなのでしょうか?ありがとうございます。
 
Roberto Jacobs:

DEAL_PRICEHistoryOrderGetDouble(ticket,ORDER_SL) と等しい 場合 その注文は ストップロスにより決済 れた ことを 意味 します

スリッページはどうなりますか?
 
Roberto Jacobs:
そして ORDER_POSITION_IDが DEAL_POSITION_ IDと等しい ことを確認し、
DEAL_ENTRYを確認 もし OUT, HystoryDealGetDouble(ticket,DEAL_PRICE)
取得 します

DEAL_PRICEHistoryOrderGetDouble(ticket,ORDER_SL)等しい 場合 その注文は ストップロスにより決済 れた ことを 意味 します

これが私の意見です。

はい、私が言っていたことです。そうしたら、うまくいったのですが、最初のStop Lossを 修正すると、同じPOSITION_IDを持たない新しい注文が生成されます。なぜなんでしょう。私はそれがバグであると思います。ありがとうございました。
 
honest_knave:
スリッページはどうなりますか?

注文がクローズして おり クローズ価格は HystoryDealGetDouble(ticket, DEAL_PRICE) になって いるので スリッページを見る必要は ありません
もしクローズして いない 状態で クローズ 注文を 出す場合はどの程度 スリッページが 発生するか検討 エラーが発生 しない ようにする必要があります