記事"の処理 トレードイベント in Expert Advisor を使って OnTrade() 関数"についてのディスカッション

 

新しい記事 の処理 トレードイベント in Expert Advisor を使って OnTrade() 関数 はパブリッシュされました:

MQL5は様々なタイプのイベント (タイマーイベント、トレードイベント、カスタムイベントなど)を含め、非常に多くの革新をもたらしました。イベントを取り扱う性能で全く新しいタイプの自動・準自動の売買プログラムを作成できます。本記事ではトレードイベントを考え、トレードイベントを処理するOnTrade() 関数のコードを書きます。

図 1. アラート

作者: KlimMalgin

 


コンパイル時に、'数値' から '文字列' への暗黙の変換エラーが発生します。

_alerts += "ペア "+PositionList[i].symbol+"で、ストップロスが "+PrevPositionList[i].sl +"から "+PositionList[i].sl +" \n "に変更されました;

 
sergey1294:


コンパイル時に、'数値' から '文字列' への暗黙の変換エラーが発生します。

_alerts += "ペア "+PositionList[i].symbol+"で、ストップロスが "+PrevPositionList[i].sl +"から "+PositionList[i].sl +" \n "に変更されました;

これはエラーではなく、この行に数値から文字列への 暗黙の変換が含まれているという警告です。このような場合、コンパイラは変換について警告し、プログラマはこの変換がエ ラーかどうかを判断しなければなりません。

この警告を消すには、明示的に変換を行わなければならない:

_alerts += "スチームで"+PositionList[i].symbol+" からストップロスを変更した。+ (string)PrevPositionList[i].sl +" on "+ (string)PositionList[i].sl +"\n";
 
KlimMalgin:

これはエラーではなく、この行に数値から文字列への 暗黙の変換が含まれているという警告です。このような場合、コンパイラは変換について警告し、プログラマはこの変換がエラーであるかどうかを判断しなければなりません。

この警告を取り除くには、明示的に変換を行う必要があります:

ありがとうございます。
 

どういうわけか正しく動作せず、ポジションは利益確定でクローズしましたが、それに関する情報はありません。以下はログです。

DS 0 TradeControl (EURUSD,M5) 22:36:06 取引イベント受信
EJ 0 TradeControl (EURUSD,M5) 22:36:06 エラー番号 4751
PN 0 TradeControl (EURUSD,M5) 22:36:06 876874 受注処理
DH 0 TradeControl (EURUSD,M5) 22:36:08 取引イベント受信
IS 0 TradeControl (EURUSD,M5) 22:36:08 エラー #4751 注文 876874 が見つかりません!
HK 0 TradeControl (EURUSD,M5) 22:36:08 エラー#4751 状態:4
RQ 0 TradeControl (EURUSD,M5) 22:36:08 0 注文成立、取引に進む
OD 0 TradeControl (EURUSD,M5) 22:36:08 876874 注文発生 貿易番号 #947094
RS 0 TradeControl (EURUSD,M5) 22:36:08 EURUSD の買いポジションをオープン
DQ 0 TradeControl (EURUSD,M5) 22:36:08 取引イベント受信
DI 0 TradeControl (EURUSD,M5) 22:36:08 貿易イベント受信
KQ 0 TradeControl (EURUSD,M5) 22: 41:45 イベントを受信 貿易
KI 0 TradeControl (EURUSD,M5) 22:41:45 貿易イベント受信
KQ 0 TradeControl (EURUSD,M5) 22:41:45 貿易イベント受信

 
この記事では、利食いと損切りを伴うポジションの決済は扱って いない。記事の冒頭で示した事象のみを考慮する。
 
KlimMalgin:
この記事では、利食いと損切りを伴うポジションの決済は扱っていない。記事の冒頭で示された事象のみが考慮されている。

なるほど、それらが考慮されていないのは残念です。 同様の記事が出るのを待つか、それに従ってあなた自身の記事を追加してください。MT4用の記事の類似はこちらhttps://www.mql5.com/ru/articles/1399。

  1. ポジションを建てる
    • 「マーケットポジション
      • 買い
      • 売り
    • 未決注文
      • 買い指値
      • 売り指値
      • 買い逆指値
      • 売り逆指値
  2. 注文のトリガー
    • 買い指値
    • 売り指値
    • 買い指値
    • 売り逆指値
  3. ポジションクローズ
    • 「成行ポジション
      • 買い
        • ストップロス
        • 利食い
        • マニュアル(ストップロス、テイクプロフィットではない)
      • 売り
        • ストップロス
        • 利益確定
        • 手動
    • 未決注文(削除)
      • 買い指値
        • 有効期限
        • 手動
      • 売り指値
        • 有効期限
        • 手動
      • 買い指値
        • 有効期限
        • 手動
      • 売りストップ
        • 有効期限
        • 手動
  4. ポジション変更
    • 「マーケットポジション
      • 買う
        • ストップロス
        • 利食い
      • 売り
        • 損切り
        • 利食い
    • 未決注文
      • 買い指値
        • 始値
        • ストップロス
        • 利益確定
        • 有効期限
      • 売り指値
        • 始値
        • ストップロス
        • 利益確定
        • 有効期限
      • 買いストップ
        • 始値
        • ストップロス
        • 利益確定
        • 有効期限
      • 売り逆指値
        • 始値
        • ストップロス
        • 利益確定
        • 有効期限
События в МetaТrader 4
События в МetaТrader 4
  • 2006.05.29
  • Andrey Khatimlianskii
  • www.mql5.com
Статья посвящена программному отслеживанию событий в терминале МetaТrader 4, таких как открытие, закрытие и модификация ордеров, и рассчитана на пользователя, обладающего базовыми навыками работы с терминалом и программирования на MQL 4.
 

HistorySelect()==falseの 処理がない!よくあるケース

 
KlimMalgin:
この記事では、利食いと損切りを伴うポジションの決済は扱っていない。記事の冒頭で示された事象のみが考慮されている。
無駄になるはずだ...。ストップ・ハンドリングの例だけを求めて、この記事を待っていたのに...。
 

MQL5はイベント処理モードを提供しています、

なぜイベントのパラメータを提供しないのですか?

OnChartEvent(......)の ように、イベントIDとパラメータを供給して ほしい!

 
DxdCn:
OnChartEvent(......)の ように、イベントIDとパラメータを 指定してください!

OnChartEventは Creating Active Control Panels in MQL5 for Tradingの 記事で使用されています。