記事"MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第10部): MQL4との互換性 - ポジションオープンイベントと指値注文発動イベント"についてのディスカッション - ページ 6

 
Sam Zabil:
こんにちは。あなたは確かに偉大で必要な仕事をした。あなたには心から感謝している!しかし、質問があります。口座で作業しているときにテストに使用しているExpert Advisorは、通貨ペアのマジクや違いに関係なく、すべての注文とポジションを修正します。例えば、ユーロバックスを置いて、同時に別のフクロウが別の通貨に立ち、そこで注文とポジションを保持します。利益やストップのアドバイザーの修正をクリックすると、ユーロバックスだけでなく、ターミナルにあるすべてのものを引き出します。これは健全ではありません。ご理解ありがとうございます。

こんにちは。このExpert Advisorは記事の内容をテストするためのものです。各記事にはテスト用Expert Advisorが付属しており、各Expert Advisorは、そのExpert Advisorが取り出されたファイルから、記事で説明されているライブラリ、つまり、そのExpert Advisorのために作られたものだけをテストすることができます。

一連の記事がすべて終了すると、説明されているライブラリを使用して独自のプログラムを簡単に作成できるようになります。

 
Alexey Viktorov:

アルテム 私は状況を再現した。

スクリプトは昨日のオープンポジションをすべてクローズしました。私は口座に注文を出していませんが、昨日の注文は閉じられています。注文を削除した記録があります。しかも1つだけではない。このイベントはすでにリストにあります」という記録が3回あった。

その後、私はさらに3つのポジションを置き、再びスクリプトで閉じました。すべてが再び起こった。3つのポジションをクローズ.すでに履歴にあるポジションを3回削除しようとした。

ログがお嫌いなようなので、「エキスパート」タブから直接載せます。

USDJPYオープンの瞬間(記録の最下行)には、オープンポジションと未決注文は なかった。

再現、発見、修正。

CEventCollectionクラスのRefresh()メソッドに233行目を追加 する必要があります:

//--- アカウント履歴にイベントがある場合
   if(is_history_event)
     {
      //--- 過去の注文数が増えている場合(MQL5、MQL4)
      if(new_history_orders>0 #ifdef __MQL4__ && new_market_pendings<0 #endif )
        {
         //--- 削除された未決注文のみのリストを取得する
         CArrayObj* list=this.GetListHistoryPendings(list_history);
         if(list!=NULL)
           {
この修正は記事12に含まれます。
 
ありがとう。追加したよ。行番号は変わっていない。
 
Alexey Viktorov:
ありがとう。追加しました。行番号は変わっていません。

良い

 

私は別の線で書いている。

アルテム、このような素晴らしく有益な連載記事をありがとう。

 
Aleksei Mikhanoshin:

私は違う路線で書いている。

アルテム、このような素晴らしく有益な連載記事をありがとう

どういたしまして、アレクセイ。私たちは長い間、ファーストネームで呼び合う間柄だった......。

 
ご回答ありがとうございました。このパネルの目的は完全に理解している。ただパネルが気に入っただけです。ところで、私はマジックでポジションシートとオーダーをソートすることで疑問を解決しました。正直、すぐにコードに手を出すのが億劫でした。
 
Sam Zabil:
ご回答ありがとうございました。このパネルの目的は完全に理解している。ただパネルが気に入っただけです。ところで、私はマジックでポジションシートとオーダーをソートすることで疑問を解決しました。正直、すぐにコードに手を出すのが億劫でした。

まあ、それはいい。

たしかに、すべてのリストを取得することはすでに可能だし、そこから任意のオブジェクトを取得することもできる。そしてリストは必要に応じて並べ替えたり、任意の値でフィルタリングしたりできる。これを行うには、CSelect()を取得したリストに使用する。

その結果、簡単なアクセス、選択、フィルタリングが整理されます。今のところ、必要なデータベースの作成だけが進行中である。

 
アイデアはいい。でも、すでにfxsaberによって実装されていると思う。
 
Sergey Seriy #:
アイデアはいい。でも、すでにfxsaberによって実装されていると思う。

fxsaberの作品を使うことができる。