エラー、バグ、質問 - ページ 1925

 

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

バグ、バグ、質問

fxsaber さん 2017.07.10 20:16

MqlTradeRequest-structureを正しく記入することに関する多くの質問を軽減するために、ターミナルでF9を押してフィールドを手入力する際に、脚注「詳細」を作成し、対応する取引構造のすべてのフィールドを表示することをお勧めします(ワンクリックコピーオプション付き)。この構造は、F9-windowアクションを押した後、OnTradeTransactionで キャッチすれば、完全に利用できるようになりました。

失敗した。OnTradeTransactionで充填された構造体をキャッチする実装は、こちらで ご覧いただけます。

 
Yury Kirillov:

少なくともビルド1625から、MT5がテスト時に落ちるようになりました。

作品番号1626

少なくとも "every tick... "と "all ticks "モードでは再生されます。


午後再生のための手順が必要。エキスパート/インジケーターとテスト設定が 必要。servicedeskにお書きください。

 
Alexander:

こんにちは。再生のための手順が必要。エキスパート/インジケーターとテスト設定が 必要。servicedeskにお書きください。


TA#1794147に 書き込みました。

HistoryDealGetTicket(i)を使用する際に、利用可能なトランザクション数よりも大きなパラメータを指定すると、クラッシュが発生するようです。

 
Yury Kirillov:

TP#1794147に 書き込みました。

HistoryDealGetTicket(i)に、利用可能なトランザクション数よりも大きなパラメータを指定すると、クラッシュが発生するようです。

はい、見ました。感謝

 

エラーメッセージ なし

struct A {
        int z;
};
void OnStart()
{
        int const b; //'b' - 'const' variable must be initialized
        A   const a; //нет сообщения об ошибке //по сути равнозначно записи: int const а.z; 
}
明示的なコンストラクタか初期化シーケンスのどちらかが存在すること
 

コンストラクタのため。だから大丈夫なんです。

 
fxsaber:

コンストラクタのため。だから大丈夫なんです。

何もしないコンストラクタのせい?

struct A {
        A() {}
        int a;
}; 
void OnStart()
{
        const A a; //нормально
}

もし、const int A::a を初期化しないことが可能であれば、先のケースで const int b を必ずしも初期化する必要はないのでは?

 
A100:

何もしないコンストラクタのせい?

はい、デフォルトの コンストラクタが空だからです。

const int A::a を非初期化できるのであれば、先のケースで const int b を必ずしも初期化する必要はないのでは?

Warningではなく、Errorと表示されるのはなぜですか?まあ、このようにすることもできます。

void OnStart()
{
  int a;
  const int b = a;
}

単純な型のconst変数が初期化されていない場合は、Warningが必要です。また、OrderSendの 値がチェックされていない場合は、Warningが発生しないはずです。しかし、これは開発者の見解として正しいもののようです。つまり、理由が主観的なのです。

 
fxsaber:

Warningではなく、Errorと表示されるのはなぜですか?結局のところ、このようにすればいいのです

初期化されていない定数変数を使用することは意味がないため、エラーとなります(ランダムな値が含まれており、後で変更することはできません)。

 
A100:

初期化されていない定数 変数を使用することは意味がないため、エラーになる(ランダムな値が含まれており、それ以上使用すると見つけにくいエラーになる)。

引用の際に一文字消しましたが、今後、読み取り専用の操作しかない場合でも意味は変わりません。constでない場合はWarning、constの場合はErrorとなります。これは、開発者の議論の的となる決定のひとつに過ぎないのです。