一部のブローカーで[tp]タグが削除された? - ページ 3

 
cameofx:

[...] MT4&MT5でOrderCloseReason()とか導入されてるのはなぜ?

わからない・・・。でも、解決可能だから、たいしたことない。
 
gordon:
どうなんだろう・・・。でも、解決可能なことなので、大したことではありません。

ああ...それならOrderComment()のSL&TPの更新はどこに置けばいいんだろう?

MT5にはたくさんの新機能があり、不満よりも賞賛の声が多いですね。

 
cameofx:

ああ...じゃあ、SLとTPの更新はどこでできるんだ、OrderComment()?

Na, 私はそれをお勧めしません (IMHO)。サーバーがコメントを上書きすることについては、以前私が書いた記事を参照してください(https://www.mql5.com/en/forum/123668/page2#267154)。この投稿をした後、6文字以上がサーバによって上書きされるケースを発見しました (例えば ->https://www.mql5.com/en/forum/124167)。したがって、私は完全に信用しません。


仮想TP/SLであれば、その値を配列で保持すればいいだけです。ただし、EAに永続化機能を組み込まないと、完全な障害(Terminal restart, power out, etc.)の場合、これらの値は失われる。

 
gordon:

Na, I don't recommend it (IMHO).サーバーによるコメントの上書きについては、以前の私の発言(https://www.mql5.com/en/forum/123668/page2#267154) を参照してください。この記事を書いてから、6文字以上がサーバによって上書きされるケースを発見しました (例えば ->https://www.mql5.com/en/forum/124167) ので、私は完全に信用しません。


仮想TP/SLであれば、その値を配列で保持すればいいだけです。ただし、EAに永続化機能を組み込まないと、完全な障害(Terminal restart, power out, etc.)の場合、これらの値は失われる。

"...If it's virtual TP/SL..." 私たちはまだ、注文がSL/TP/Otherによって閉じられたかどうかをチェックするというテーマで話していますよね?もしそれがバーチャルなら、私たちは終値とそれがどのように閉じられたかを知っているはずです。

Gordonさんは、永続層の機能を解決されましたか?ありがとうございます。

 
cameofx:

"...If it's virtual TP/SL..." 私たちはまだ、注文がSL/TP/Otherによって閉じられたかどうかをチェックするというテーマで話していますね?もしバーチャルなら、終値とどのようにクローズしたかがわかるはずだ。

その通りです。サーバーサイドのTP/SLがあり、さらにEAがある状況下で手動で注文をクローズするかしないか...という問題が発生するだけです。


ゴードンの永続化レイヤーの機能は解決したのでしょうか?

もちろんです。このトピックについては、こちらで良い議論がなされています→https://www.mql5.com/en/forum/119716。
 

ありがとうございます。

https://forum.mql4.com/25078。 - は多くの素晴らしい洞察を提供してくれますが、私がそこから得られる一つのことは、MT4(多分-5も、今日まで)は、「自動取引」の多くの側面に対応していない、ということです。

今、私が実現しようとしているのは、できるだけ「不安」のない「事実上の 自動売買」です。fbjのようなベテランでさえハックする必要があるような多くの予防的回避策を、私は(まだ)単に行うことはできません。もし、開発者がトレーダーが本当に 自動売買をするための説明責任を 果たす準備ができているなら、ぜひとも私は数ヶ月/数年間無人でライブ口座にEAを解き放つでしょう。

 
gordon:

うーん...。何か見落としているのかもしれませんが、以下のようなものでは不十分な場合があるのでしょうか?

   // select the closed order first and then do this:
   
   double sl_diff = MathAbs(OrderClosePrice() - OrderTakeProfit()),
          tp_diff = MathAbs(OrderClosePrice() - OrderStopLoss());
   
   if ( sl_diff > tp_diff )
      Print("order closed at tp");
   else
      Print("order closed at sl");
 

// ここで、sl_diffとtp_diffが等しくなることはありえないということでよろしいでしょうか......?

実際、クローズドオーダーのシナリオは3つあります。

1.価格がTakeProfit値にヒットしました。(TP)
2.価格がStopLossの値にヒットした。(SL)
3.しばらくして、トレーダーはTP/SLにヒットすることなく注文を手動でクローズした。

質問なのですが、ヒストリカルオーダーの3種類のクローズ理由を知るにはどうしたらいいのでしょうか?ありがとうございます。


 
スレッド内で回答されています。cloudbreakerさんの回答はこちら→https://www.mql5.com/en/forum/123668。 ここに近道はありません、これしかないのです。
 
OK、ありがとうございます。gordonさんこの方法をよく勉強してみます。実際、私は今それを理解していません。
 

色からオーダークローズ理由を知ることはできますか?

というのも、私は見つけました。

1. SLによって注文が閉じられた場合、ストップロスの値の色は赤になります。
2.2. もし注文がTPによってクローズされた場合、takeprofitの値の色は緑です。
3.3. 注文が手動で閉じられた場合、値の色は変更されません。

ありがとうございます。