OrderGetTicket

さらに関数を使用して作業するための注文を自動的に選択して対応するチケットを返します。

ulong  OrderGetTicket(
  int  index      // 注文リスト内の番号
  );

パラメータ

index

[in]  現在の注文リスト内での注文の番号

戻り値

ulong 型の値(関数が失敗した場合は 0 )

注意事項

現在の未決注文はクライアント端末の「ツールボックス」の「取引」タブに表示されているポジションと混乱されてはなりません。注文とはトランザクションを実行するリクエストです。ポジションは 1 つまたは複数の約定の結果です。

ポジションの『ネッティング』計算時(ACCOUNT_MARGIN_MODE_RETAIL_NETTINGACCOUNT_MARGIN_MODE_EXCHANGE)各シンボルにつき常に一つのポジションのみ(1つ以上の取引の結果である)保有することができます。ポジションと『ツールボックス』パネルの『取引』タブに表示される有効な未決注文と混同しないようにしてください。

ポジションに制限がない場合(ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)各シンボルごとに同時に複数のポジションを保有することができます。

OrderGetTicket() 関数は、注文に関するデータをプログラム環境にコピーし、OrderGetDouble()OrderGetInteger()OrderGetString() の呼び出しは既に複製されたデータを返します。つまり、注文自体はもはや存在しなくても(または始値、決済逆指及び決済指レベルまたは期限が変更されても)、注文に関するデータはまだ取得することが出来ます。取得した注文情報が最新であるように、OrderGetTicket() を参照直前に呼び出すことが推奨されています。

例:

void OnStart()
 {
//--- 注文プロパティから値を返す変数
  ulong    ticket;
  double   open_price;
  double   initial_volume;
  datetime time_setup;
  string   symbol;
  string   type;
  long     order_magic;
  long     positionID;
//--- 現在の未決注文数
  uint     total=OrdersTotal();
//--- ループで注文をみる
  for(uint i=0;i<total;i++)
    {
    //--- リスト内の位置によって注文を返す
    if((ticket=OrderGetTicket(i))>0)
       {
        //--- 注文プロパティを返す
        open_price    =OrderGetDouble(ORDER_PRICE_OPEN);
        time_setup    =(datetime)OrderGetInteger(ORDER_TIME_SETUP);
        symbol       =OrderGetString(ORDER_SYMBOL);
        order_magic   =OrderGetInteger(ORDER_MAGIC);
        positionID    =OrderGetInteger(ORDER_POSITION_ID);
        initial_volume=OrderGetDouble(ORDER_VOLUME_INITIAL);
        type          =EnumToString(ENUM_ORDER_TYPE(OrderGetInteger(ORDER_TYPE)));
        //--- 注文についての情報を準備して表示する
        printf("#ticket %d %s %G %s at %G was set up at %s",
               ticket,                 // 注文チケット
               type,                   // 種類
               initial_volume,         // 注文のボリューム
               symbol,                 // シンボル
               open_price,             // 指定された始値
              TimeToString(time_setup)// 注文の出された時刻
               );
       }
    }
//---
 }

参照

OrdersTotal()OrderSelect()OrderGetInteger()