Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором. Индексом массива может быть только целое число. Допускаются не более чем четырехмерные массивы. Нумерация элементов массива...
Функция ArrayResize() позволяет задать для массива размер с некоторым запасом для его будущего увеличения без физического перераспределения памяти. Это сделано для улучшения быстродействия, так как операции по распределению памяти...
ごあいさつ何か教えていただけませんか?
変数の値ではなく、名前を取得することは可能でしょうか?例えば、変数名を表示する。
#define PRINTVAR(x) Print(" " ##x); Print(x)
void OnStart()
{
long anyvar=(long)TimeLocal();
PRINTVAR(anyvar);
}
の結果です。
2020.08.24 14:46:05.394 test (USDCHF,H1) anyvar
2020.08.24 14:46:05.394 test (USDCHF,H1) 1598280365
C "に類似した未発表の機能であるが、まだ使用できない可能性がある。
変数名そのものを取得する必要があります。
名前がわからなければ、そして見分けがつかなければ、これはできない。例えば、5に等しいすべての変数の名前を取得し、その名前を、見つかった、印刷することができます。または、すべての文字列変数の名前。しかし、いずれにせよ変数の羅列である。
Maxim Kuznetsov ありがとうございます。
そうですね、名前で変数を選択するのも問題ですね。
例えば、変数a1, a2, a3, a4, a5などがあります。この変数も検索して、"a "と5があるものを選んで使わなければならない。
となると、ほとんどありえない。変数名は、プリプロセッサ(#macros)からのみアクセス可能です。
変数の代わりに名前のオブジェクトハッシュ配列を使うなど、内部ロジックを変更する必要があります。そうすると、キーと値の両方が一度に利用できるようになります。また、長期保存の場合はSQLiteを使用します。あるいは組み合わせる :-)
でもそうなんですよね、アルゴリズムの知識がないと、アドバイスも無駄になります。
そうですね、名前で変数を選択するのも問題ですね。
例えば、変数a1, a2, a3, a4, a5などがあります。これらの変数も列挙して、"a "と "5 "を持つものを選び、使う必要があります。
名前を配列に書き、配列の中を通り抜ける。
皆さんこんにちは!私の質問はMT4テスター、mql4言語についてです
配列を初期化するとき、私の間違いは何ですか教えてください。750個の要素を持つ1次元の配列を作成しました。750個の要素をすべて値50.0で初期化した。
これは、最初と次のティックにおいて、インデックス0を持つ最初の配列項目は 値50.0でなければならず、インデックス749を持つ最後の配列項目は値50.0でなければならないことを意味します。
実際、配列の最後の項目は値0であることが判明しています。そして、最初の1枚は、当然のように50.0です。
質問です。初期化後、配列のすべての値(最後の値を含む)を値50.0にする方法
以下は私のコードです。
Print("===================== ",S_L[749]," =0= ",S_L[0]).S_L[749]は "749 "を意味します。
}
ジャーナルからのPrint() 値の下にある
2020.08.24 17:43:55.427 GBPUSD,M1: 52255 tick イベント (1440 バー、53256 バーステート) 0:00:00.047 で処理 (合計時間 0:00:02.422)
2020.08.24 17:43:55.407 2010.01.04 00:00:53 tester(b.org) gbpusd,m1: ========================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:52 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:50 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:47 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:45 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:43 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:41 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:40 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:37 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:35 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:32 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:30 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:28 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:26 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:25 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:22 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:20 tester(b.ord) gbpusd,m1: ========================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:17 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:15 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:13 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:11 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:10 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:07 tester(b.ord) gbpusd,m1: ========================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00:05 tester(b.ord) gbpusd,m1: ========================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:02 tester(b.ord) gbpusd,m1: ======================= 0 = 0= 50
2020.08.24 17:43:55.407 2010.01.04 00:00 tester(b.ord) gbpusd,m1: ========================= 0 = 0= 50
2020.08.24 17:43:55.385 2010.01.01 00:00:00 Tester(B.ORD.) テストを開始しました。
ありがとうございました
これが私のものです。
どこで?)
どこが?)
私の編集した記事の一番上にあります。回答ありがとうございました。
ANDREY:
質問です。初期化後に配列のすべての値(最後の値を含む)を50.0に するにはどうすればよいですか?
ご指摘ありがとうございます。ところで、私ははっきりさせたかったのですが......。Kovalevのチュートリアルでは、配列は 特別な関数なしに、その宣言と同時に(私がしたように)初期化 することができると書かれています。コバレフのチュートリアルが多少古くなっていることは承知しています。Q. mql4では、配列の初期化は関数で行うように なったということでよろしいでしょうか?
ありがとうございます。