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

 
ワシリー・ソコロフ
キャスティングを完全に入れ替えるという話はなかった。
そう、可能性を切り開いたのです。
 
ワシリー・ソコロフ

書き込み/読み取りバイナリによる任意のキャス...消灯。これ以上読む必要はない...

もっといい案があるのでしょうか?
 
ワシリー・ソコロフ

p.s. あなたのコードを拝見しました。

書き込み/読み取りバイナリによる任意のキャス...消灯。これ以上読まないで...。

カスタムコンストラクタやコピー演算子なしで、ユニオンを介した任意のキャスト(単純な構造体)が可能です。このリソースに含まれるすべての記事に対して、このキャスティングは有効です。

template <typename T>
class CASTING
{
public:
  template <typename T1>
  static const T Casting( const T1 &Value )
  {
    union CAST
    {
      T1 Value1;
      const T Value2;

      CAST( const T1 &Value)
      {
        this.Value1 = Value; // кастомный оператор может все испортить
      }
    };

    const CAST Union(Value);

    return(Union.Value2);
  }
};

#define _C(A, B) CASTING<A>::Casting(B)

void OnStart()
{
  MqlTick Tick = {0};
  
  Tick = _C(MqlTick, Tick); // Tick = (MqlTick)Tick;
}

しかし、キャスティングを100%カバーしたいのであれば、ファイル経由がおすすめです。選択肢はある。

 
コンビナート です。
もっといい案があるのか?
構造体や代入演算 子でカスタムコンストラクタを使用しないことは明らかです。簡単なコードを書く。
 
ワシリー・ソコロフ
構造体や代入演算 子でカスタムコンストラクタを使用しないことは明らかです。簡単なコードを書く。
その場合、構造体のconstフィールドを使用するべきではありません。
 

人気のあるテストです

if (ArrayResize(Array, NewSize) == NewSize)
// ....

は全く同じではありません。

if (ArrayResize(Array, NewSize) == ArraySize(Array))
// ....
 

実際には、ArrayResize() は

戻り値

成功すれば,リサイズ後の配列に含まれる全要素の数を返す。そうでなければ,-1 を返し,配列はリサイズさ れない。


 
ロフィルド

実際には、ArrayResize() は

1年前に動作を変更しました。今週のヘルプで明確化されました。
 
インジケータのみ非同期のCopyTicks

これで、指標の要求は1つだけになり、手持ちのデータでは失敗するようになりました。そして、ページングはそれ自体で機能します。

専門家とスクリプトは少し違うアプローチをしています。そこで、必要なデータを待つために、何度か試行錯誤が行われる。データが入ってくる限り、試行錯誤が繰り返される。接続に問題が発生すると、すぐに接続を解除する

 

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

5月に開催される「MetaQuotes-Demo Championship」の参加登録について

ウラジミール・カルプトフ さん 2017.05.05 11:54

追加されました。はい、端末の信号基盤全体を循環させる必要がありますね。

シグナルベーストータル

端末で利用可能なシグナルの総数を返します。


ちなみに、この実行の前に(特に他のサーバーから切り替えたときや起動直後)、ターミナルの「シグナル」タブを少なくとも1回クリックすることをお勧めします - これで実際のデータベースのページングが有効になるはずです。


理由: