mql5言語の特徴、微妙なニュアンスとテクニック - ページ 220

 
Nikolai Semko #:

は、戦闘モードでは、最小化せずにすべての無意味なグラフィックをオフにする必要があることを意味します。ウィンドウが表示されたままでアクティブでない場合、グラフィックスをフリーズさせる。
そして、マウスがアクティブでないとき、たとえば 1分間、自動的にすべてのグラフィックスをオフにして削除するほうが、簡単でよいように思います。マウスがアクティブになると同時に、グラフィックスが再開されます。

これでは全然ダメです。ここでは、2分間グラフを見て、1分前にグラフが死んでいます。では、その必要性とは何でしょうか?

 
Vitaly Muzichenko #:

これでは全然ダメです。2分間グラフを見ていると、1分前にグラフが死んでいる。では、何に使うのでしょうか?

もちろん、そのモードには "自動非表示 "スイッチが必要なんですけどね。

 
Nikolai Semko #:

は、戦闘モードでは、最小化せずにすべてのグラフィックのオーバーヘッドをオフにする必要があることを意味します。

チャート自体のカンヴァスは最小化されずに描画されます。VPSの負荷が最小になるような端末の動作モードを経験的に発見した。

 

正しいテーマで書いていればいいのですが。

1.複数のペアで同時にテストを実行する、マルチカレンシー

質問:各ペアの結果を得るにはどうしたらよいですか?

2複数のペアに対して同時に最適化を 行う

質問:各ペアの結果を得るにはどうしたらいいですか?

---

少し前、3年くらい前にテスターに搭載すると約束してくれたのですが、今のところ何もないですね。それとも私が見つけられていないのでしょうか?

 

例えば、Market AdvisorやSignal Serviceの動作を停止させる合法的な方法があります。何らかの理由でアクセスがないとします - VPS。

この方法は、取引サーバーに制限が ある場合に有効です。ただ、すべてを保留注文で埋める必要がありますが、慎重に、そうでなければ、オープンポジションを閉じることが不可能になります。


もしかしたら、誰かがそんな緊急市場製品を書いてくれるかもしれない...。

 

MQL5です。MESSAGE BOXは、「エキスパート」ログのメッセージと重複しています。無効化する方法を教えてください。***

ありがとうございました。

 

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

mql5言語の特徴、微妙なニュアンスとコツ

fxsaber さん 2017.09.22 20:43

POSITION_TIME_UPDATE は、ポジションのロットを変更する場合にのみ関係します。例えば、あらゆる種類の口座のポジションの部分的な決済やネッティングのアドオンなどです。

SL/TP レベルの変更は POSITION_TIME_UPDATE に影響を与えない。

言い換えると、POSITION_TIME_UPDATEは、取引履歴-取引に反映された修正にのみ影響されます。SL/TPレベルはこのような修正には適用されないので、影響を受けません。

ロットサイズが変更されても、POSITION_TIME_UPDATE_MSC == POSITION_TIME_UPDATEとなる場合がある。

 
 
fxsaber #:
構造体の配列を簡便にソート する


アプリケーション


結果

こんにちは、そしてシェアしてくれてありがとうございます

これがうまくいけば完璧なんですけどね。しかし、.mq5スクリプトに貼り付けて実行すると、残念ながら以下のエラーが発生します。

  • ローカルクラスでテンプレート宣言ができない ArraySortStruct.mq5 87 4
  • (コードを少し 変更した後): テンプレート宣言はグローバル、名前空間、またはクラススコープでのみ許可されます ArraySortStruct.mq5 90 4 )

直していただけませんか?あなたにとっては簡単なことでしょうが、私にとっては何から始めたらいいのかわかりません :-)

 
Bodolino #:

こんにちは、そしてシェアしてくれてありがとうございます

これがうまくいけば完璧なんですけどね。しかし、.mq5スクリプトに貼り付けて実行すると、残念ながら以下のエラーが発生します。

  • ローカルクラスでテンプレート宣言ができない ArraySortStruct.mq5 87 4
  • (コードを少し 変更した後): テンプレート宣言はグローバル、名前空間、クラススコープでのみ許可されます ArraySortStruct.mq5 90 4 )

直していただけませんか?あなたにとっては簡単なことでしょうが、私にとっては何から始めたらいいのかわかりません :-)

機能性(サブフィールドやメソッド)と使い勝手をどう維持するのかがわからない。もしかしたら、この1枚があなたのニーズに合うかもしれません。

// Сортировка массива структур и указателей на объекты 
по полю.
#define  ArraySortStruct_Define(TYPE, FIELD)                                      \
namespace TYPE##FIELD                                                            \
{                                                                                \
  class SORT                                                                     \
  {                                                                              \
  private:                                                                       \
    template <typename T>                                                        \
    static void Swap( T &Array[], const int i, const int j )                     \
    {                                                                            \
      const T Temp = Array[i];                                                   \
                                                                                 \
      Array[i] = Array[j];                                                       \
      Array[j] = Temp;                                                           \
                                                                                 \
      return;                                                                    \
    }                                                                            \
                                                                                 \
    template <typename T>                                                        \
    static int Partition( T &Array[], const int Start, const int End )           \
    {                                                                            \
      int Marker = Start;                                                        \
                                                                                 \
      for (int i = Start; i <= End; i++)                                         \
        if (Array[i].##FIELD <= Array[End].##FIELD)                              \
        {                                                                        \
          SORT::Swap(Array, i, Marker);                                          \
                                                                                 \
          Marker++;                                                              \
        }                                                                        \
                                                                                 \
       return(Marker - 1);                                                       \
    }                                                                            \
                                                                                 \
    template <typename T>                                                        \
    static void QuickSort( T &Array[], const int Start, const int End )          \
    {                                                                            \
      if (Start < End)                                                           \
      {                                                                          \
        const int Pivot = Partition(Array, Start, End);                          \
                                                                                 \
        SORT::QuickSort(Array, Start, Pivot - 1);                                \
        SORT::QuickSort(Array, Pivot + 1, End);                                  \
      }                                                                          \
                                                                                 \
      return;                                                                    \
    }                                                                            \
                                                                                 \
  public:                                                                        \
    template <typename T>                                                        \
    static void Sort( T &Array[], int Count = WHOLE_ARRAY, const int Start = 0 ) \
    {                                                                            \
      if (Count == WHOLE_ARRAY)                                                  \
        Count = ::ArraySize(Array);                                              \
                                                                                 \
      SORT::QuickSort(Array, Start, Start + Count - 1);                          \
                                                                                 \
      return;                                                                    \
    }                                                                            \
  };                                                                             \
}

#define  ArraySortStruct(TYPE, ARRAY, FIELD) TYPE##FIELD::SORT::Sort(ARRAY)


アプリケーションです。

ArraySortStruct_Define(MqlRates, open)
ArraySortStruct_Define(MqlRates, high)
ArraySortStruct_Define(MqlRates, time)

void OnStart()
{
  MqlRates Rates[];
  
  CopyRates(_Symbol, PERIOD_CURRENT, 0, 5, Rates); // Взяли бары
  
  Print("\nБары без сортировки - как получили.");
  ArrayPrint(Rates);
  
  Print("\nСортируем по open-цене.");
  ArraySortStruct(MqlRates, Rates, open);
  ArrayPrint(Rates);

  Print("\nСортируем по high-цене.");
  ArraySortStruct(MqlRates, Rates, high);
  ArrayPrint(Rates);

  Print("\nСортируем по времени.");
  ArraySortStruct(MqlRates, Rates, time);
  ArrayPrint(Rates);
}