ArrayCopyRates() также изменила свое поведение, раньше она производила виртуальное копирование в массив double[][6], теперь же производится виртуальное копирование в массив MqlRates[]. Для совместимости осталось копирование в массив double[][6], но это копирование не виртуальное, а реальное.
同僚、コンパイル時に警告メッセージがポップアップします。
初期化されていない変数 'PipStep' が使用されている可能性があります。
このような塊に対して
すべての変数がdoubleで初期化されていますが、何がいけないのでしょうか?
double 型の変数を宣言した場合、初期化とは宣言した変数に 値を代入することです。
double PipStep=0 ; make
よくわからないのですが、555ビルドのインジケーターデモがテストできないのは私だけでしょうか、それともマーケットデビューには全く関係ない問題なのでしょうか?
は、5でテストされているのでしょうか?
ArrayCopyRates() также изменила свое поведение, раньше она производила виртуальное копирование в массив double[][6], теперь же производится виртуальное копирование в массив MqlRates[]. Для совместимости осталось копирование в массив double[][6], но это копирование не виртуальное, а реальное.
https://www.mql5.com/ru/forum/148325
価格、数量、スプレッド情報を格納する構造体。
https://www.mql5.com/ru/docs/constants/structures/mqlrates
MetaTrader 4のMqlRatesは、配列または構造体を構築するのですか?
ヘルプにあるこの例(MetaTrader 4 build 555)は、関数CopyRates がないため、動作しない。
5でテストしているのでしょうか?
5でもテストしない人がいるのですか?
double 型の変数を宣言した場合、初期化とは宣言した変数に値を代入することです。
double PipStep=0 ; do
うまくいった!!!
ライブ・アンド・ラーニング!
ありがとうございました。
MetaTrader 4のMqlRatesは、配列または構造体を構築するのですか?
ヘルプにあるこの例(MetaTrader 4 build 555)は、関数CopyRates がないため、動作しない。
これはどちらか動作しません、我々はMqlRatesとMetaTrader 4ビルド555で動作する例を見ることができますか?MqlRates- 構造
MqlRates[] - 構造体の配列.
MqlRates構造体の動作例については、period_converter_newスクリプトを参照してください。
ArrayCopyRatesの操作例(ドキュメントは更新される予定です。)
MQL4での変更点
DLLを使用するExpert Advisorは相当数あり、ずいぶん前にお客様にお渡ししています。DLLへのパラメータの受け渡しに 配列 double[][6] を使用し 、初期化時に ArrayCopyRates() で 仮想的にコピーして いた。そして、DLLから関数を呼び出す際には、これらの配列と現在のサイズがパラメータとして参照渡しされていました。
端末が新しいバージョンに更新されると、これらのEAがすべて動作しなくなることが判明しました。これは残念なことです。
DLLコードを変更せずに動作させるには、DLLから関数を呼び出す前にArrayCopyRates()を呼び出す必要があると理解してよいでしょうか。
DLLを使ったEAが相当数あるのですが、それらはずいぶん前にお客様に引き渡されています。DLLにパラメータを渡すために、 double[][6] という配列を使い 、初期化時に ArrayCopyRates() 関数 で時系列を仮想的にコピーして います。そして、DLLから関数を呼び出す際に、これらの配列と現在のサイズがパラメータとして参照渡されていました。
端末が新しいバージョンに更新されると、これらのEAがすべて動作しなくなることが判明しました。これは残念なことです。
DLLコードを変更せずに動作させるためには、DLLから関数を呼び出す前にArrayCopyRates()を呼び出す必要があるという理解で合っていますか?
もう少し複雑なんです。また、DLLがとる構造も変化しています。
そこで、ArrayCopyRatesをMqlRates 構造体配列に書き換える必要があります。また、あなたのDLLでは、対応する構造体の記述を置き換える必要があります。