デベロッパーズ!作ったものをテストしたりもするのですか? - ページ 9

 
Mikalas:

C-4 私の考えでは、運用情報を得ることの方がはるかに重要です。

歴史より面白いこの楽器について、2つのことを知る必要があります。

1.ワラント

2.ポジション

トレードは最下層にあり、それによってオーダーやポジションを知ることができるので、トレードを分析することの方がずっと重要なように思えますが、逆はありません。しかし、その逆はない。

あなたの場合、OnInit()はプログラムの最初に一度だけ実行されます。しかし、チェックのブロックは1つだけでなければならない。EAの状態を現状に同期させるものです。また、新しいデータは、初期化時の注文履歴、実行時の履歴、OnTradeTransactionイベントのどこから来たかは関係ありません。その結果も、担当するブロックは1つだけなので、同一になるはずです。

 

Vasiliy - これは「原始的」なコードの一部です。

注文を受けてから作業するというシンプルなものですが...。

my_order = temp_order;

一行で!?

 
papaklass:

OnTradeTransaction イベントは、現在の形式で必要なのでしょうか?

そうではないことがわかったのは、やはり歴史から情報を取る必要があるからです。
 

Mikalas:

今気づいたのですが、この製品はテストしなければならないのですね!(MY自腹でテストしています。)

話がそれてしまったようですね。

それで、雑誌とコードを教えてくれるの?

私はここで助けたい気分なんです。

 
C-4:
そうではないことがわかったのは、やはり歴史から情報を取る必要があるからです。

なんてことだ!歴史の中で有効なのか?

papaklassは、おそらくOnTradeTransactionが エラーを返すという意味でしょうか。

 

sergeev→ここは助けて あげたい気分です。

申し訳ないが、助けはいらない。

 
Mikalas:

sergeev→ここは助けて あげたい気分です。

申し訳ないが、助けはいらない。

なぜ9ページもヨダレが出るんだ?
 
Mikalas:

Vasiliy - これは「原始的」なコードの一部です。

注文を受けてから作業するというシンプルなものですが...。

一行で!?

一行か百行かの問題ではないのです。アプローチの仕方についてです。A.k. 以下に、私が言いたいことを理解するための例として、コードを示します。TradeTransactionイベントの有無にかかわらず、初期化でも新規注文が来ても把握できることが保証されています。

/*Какое бы событие не наступило, оно будет обработано OnRefresh()*/

OnInit()
{
    OnRefresh();
}

void OnTimer(void)
{
    OnRefresh();
}

void  OnTradeTransaction(
      const MqlTradeTransaction&    trans,
      const MqlTradeRequest&        request,
      const MqlTradeResult&         result
   )
{
     OnRefresh();
}

///
/// Следит за поступлением новых трейдов и ордеров.
///

void OnRefresh()
{
    HistorySelect(0, TimeCurrent());
    for(; ordersCountNow < HistoryOrdersTotal(); ordersCountNow++)
    {  
       printf(HistoryOrderGetTicket(dealsCountNow));
    }
}

///
/// Текущее количество ордеров.
///
int ordersCountNow;
 
papaklass:

そういうことなんです。

なぜこのOnTradeTransactionは別のイベントに分離されていないのでしょうか。

- OnOrderCreate //注文を発行する。

- OnOrderModify // アクティブな注文の変更。

- OnOrderDelete //注文を削除する。

- OnPositionOpen //ポジションをオープンする。

- OnPositionModify //ストップの設定・変更、ポジションボリュームの 変更。

- OnPositionClosed //ストップロスまたは成行注文を使用してポジションを閉じます。

といった具合に。

このアプローチでは、トレーダーは自分の興味のあるイベントにサブスクライブして処理することになる。

気になるイベントは全部ゲットしていますよ!そこは割り切りですね。
 

C-4、はもちろん処理されますが、なぜOnRefresh()が必要なのでしょうか?

全てはOnTradeTransaction() の中で共有されます。情報には事欠きません。