オーダー_ポジション_ID - ページ 2

 
もっと文脈(コード)が必要。このチケットはどこから来て、このコードが実行される前に何に相当するのでしょうか?
 
Rosh:

これは、ORDER_POSITION_IDが注文実行直後で、取引サーバーがまだ取引に関する情報を送信する時間がないときに要求さ れるためと思われます。

記事を読むMetaTrader 5のトレードイベント


例としてコードの断片を挙げましたが、実際にはIDを取得する関数は次のようになります。

//+------------------------------------------------------------------+
//| Get order position ID function                                   |
//+------------------------------------------------------------------+
long GetOrderPosId( const ulong ticket )
{
  long pos_id = 0;
  
  if ( OrderSelect( ticket ) )
  {
    string pos_symbol = OrderGetString( ORDER_SYMBOL );
    
    if ( PositionSelect( pos_symbol ) )
    {
      return( long( OrderGetInteger( ORDER_POSITION_ID ) ) );
    }
  }
  
  return( pos_id );
}

P/S Roshさん、記事を読むために私を追い出さないでください。

信じてください、私はたくさん読みました、そして、私がたくさん聞いているということは

質問、それはドキュメントに曖昧な部分が多いからです。

 
marketeer:
もっと文脈(コード)が必要だ。このチケットはどこから来て、このコードが実行される前に何に相当するのでしょうか?

オーダーが選択された場合、そのチケットは何だと思いますか?

そして、取引サーバーで注文が受理されたことを受けて、インターネットからチケットが取り出された。

 
Mikalas:

オーダーが選択された場合、そのチケットは何だと思いますか?

そして、取引サーバーで注文が受理されたことを受けて、インターネットからチケットが取り出された。

そして、あなたが何をどこから得ているのか、私たちがどうやって知ることができると思うのですか?チケットの内容、リクエストがどのように実行されたかについて何も言わないコードをまだ見せていて、例えばデバッグプリントなどを使って、変数に左辺の数字が含まれていないことを確認していない(手始めに、じゃあrequest.actionは何に相当するのか?)バグはどこにでも忍び込む。
 
marketeer:
何を得て、どこから来たのか、どうやって知ることができると思う?あなたはまだ、チケットの内容、リクエストがどのように実行されたかについて何も言わないコードを表示していますし、例えば、デバッグプリントなどを使って、変数に左辺の数字が含まれていないことを確認していません(手始めに、ではrequest.actionは何に相当するのでしょうか)。バグはどこにでも忍び込む。
ありがとうございます、ご指摘の通りです。
 
Mikalas:
ありがとうございます、ご指摘の件、了解しました。
どういたしまして。言いたいことがよくわからない。リクエストの非同期実行とチケットの受け取りは、すでにヒントを得ています。いつどのように処理するのか、コードを示すまでは、この質問はテレパスに宛てたものであることが判明します。
 
marketeer:
どういたしまして。そして、あなたの言いたいことが理解できない。リクエストの非同期実行とチケットの受け取りは、すでにヒントがありますね。いつ、どのように処理するのか、コードを示すまでは、この質問はテレパスに宛てたものであることが判明します。

説明しよう。

上のコードから、全ては明らかです。

どのチケット(単独での注文)でもかまいません。よく見てください(チケットごとの注文と、この注文で一部約定した注文記号ごとのポジション)。

印刷だけでなく、段階的にプログラムを実行

になると

return( long( OrderGetInteger( ORDER_POSITION_ID ) ) );

0 "を返します。

問題は、MQL5でプログラムできるかできないかではなく(プログラムのトレースも)、です。

問題は、ドキュメントに書いてあることと、実装が違う場合です(サービスデスクはいつも通り沈黙しています)。

あるいは、ORDER_POSITION_IDに関する ドキュメントに記載されている説明を正しく解釈していたかもしれません。

(私の3つの投稿を読んでください)。

 
Mikalas:

説明しよう。

上のコードから、全ては明らかです。

どのチケット(単独での注文)でもかまいません。よく見てください(チケットごとの注文と、この注文で一部約定した注文記号ごとのポジション)。

印刷だけでなく、段階的にプログラムを実行

になると

0 "を返します。

問題は、MQL5でプログラムできるかできないかではなく(プログラムのトレースもそうですが)、その中身です。

問題は、ドキュメントに書いてあることと、現実に出てくることが違う場合です(サービスデスクはいつも通り沈黙しています)。

あるいは、ORDER_POSITION_IDに関する ドキュメントに記載されている説明を正しく解釈していたかもしれません。

(私の3回の投稿を読んでください)。

再び25.どの順番で、どのように配置するかが重要です。もしかしたら、例えば(まだすべてが謎なので仮に)振り子があったとして、そのとき、位置IDはどうなり得るのか。

上のコードは何の意味もない。

 
marketeer:

25をもう一度。どの順番で、どのように配置するかが重要です。例えば(まだすべてが謎なので仮に)振り子があったとして、その位置IDはどうなるのでしょうか?

上のコードは何の意味もない。

申し訳ありませんが、私たちは「異なる」言語を話している、またはあなたはラインの向こう側を読んでいます。

保留中の注文はONEで、 まだ有効この注文によって ポジションが一部開放 されました。

プログラムをトレース すると、return( long( OrderGetInteger( ORDER_POSITION_ID )) )となる );

 
Mikalas:

申し訳ありませんが、あなたと私は「異なる」言語で話しているか、あるいは行間を読んでいるのです。

保留中の注文はONEで、 この注文によって ポジションが一部開放 され、現在も有効 です。

プログラムをトレース すると、return( long( OrderGetInteger( ORDER_POSITION_ID )) )となる );

この部分的に実行された命令を観察するのです。どこにあるんだ?取引一覧の中か、約定した注文の中か?