Целый тип char занимает в памяти 1 байт (8 бит) и позволяет выразить в двоичной системе счисления 2^8 значений=256. Тип char может содержать как положительные, так и отрицательные значения. Диапазон изменения значений составляет от -128 до 127. uchar # Целый тип uchar также занимает в памяти 1 байт, как и тип char, но в отличие от него, uchar...
intOnInit()
{
//-создадим хэндл индикатораhandle=iAO(name,period);
//-если не удалось создать хэндлif(handle==INVALID_HANDLE)
{
...
return(INIT_FAILED);
}
Предположим, что нам вдруг наскучил классический MQL5-доступ к индикаторам и захотелось сравнить скорость доступа в сравнении с альтернативными вариантами. Например, сравним его с доступом к индикаторам в стиле MQL4 без кэширования и с кэшированием. Идеи с доступом в MQL4-стиле были взяты из статьи LifeHack для трейдера: готовим фастфуд из...
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
MQL5 iBarShift
mql5のドキュメントによると、iBarShift関数はint型の値を返します。
int#
int型のサイズは4バイト(32ビット)である。最小値は-2 147 483 648、最大値は2 147 483 647です。
iBarShiftが99999より大きい値を 指定しようとしません。
チャートにトレンドラインを引くと、次のスクリプトはラインの開始時刻を取得し、その時刻のバー番号を出力します。
ある時点で行が履歴で後ろにずれると、出力値が99999で止まり、もし
boolexact=false// モード
を true に変更すると、-1 が表示され、GetLastError = 0 となります。
どうしたんですか?
私は別のブローカーの異なるチャートを試してみました、私はPERIOD_M1をM5に変更した場合、ラインからの時間は、例えば、私は99999に到達するために歴史の中でさらに移動する必要があり、正しく読んでいる
MQL5 iBarShift
mql5のドキュメントによると、iBarShift関数はint型の値を返します。
int#
int型のサイズは4バイト(32ビット)である。最小値は-2 147 483 648、最大値は2 147 483 647です。
iBarShiftが99999より大きい値を 指定しようとしません。
チャートにトレンドラインを引くと、次のスクリプトはラインの開始時刻を取得し、その時刻のバー番号を出力します。
ある時点で行が履歴で後ろにずれると、出力値が99999で止まり、もし
boolexact=false// モード
を true に変更すると、-1 が表示され、GetLastError = 0 となります。
どうしたんですか?
異なるブローカーの異なるチャートを試しましたが、ラインからの時間は正しく読み取れ、例えばPERIOD_M1をM5に変更すると、99999に達するには、さらに履歴を移動させる必要があります。
まず、端末の設定でバーの最大数を確認してください。
まず端末の設定で、バーの最大数を確認します。
ありがとうございました。
10000だったのを無制限に変更したらうまくいった。
当たり前ではないけれど...。
ハンドル作成に 役立つ
ここがポイント
質問:ハンドルの番号(桁)はどのようなパラメータから割り当てられるのでしょうか?
端末を再起動すると違うことがあるのでしょうか?
チャートの再初期化後に異なることがありますか?
どのような場合に変化するのでしょうか?
ハンドル作成に 役立つ
ここがポイント
質問:ハンドルの番号(桁)はどのようなパラメータから割り当てられるのでしょうか?
端末を再起動すると違うことがあるのでしょうか?
チャートの再初期化後に異なることがありますか?
どのような場合に変化するのでしょうか?
インジケーターが1つしかない場合は、常にハンドルが10になります。連続したものは前のもの+1となり、全てはハンドルが作ら れた順番で決まります。 前のものがエラーになった場合のみ変更可能です。
インジケーターが1つあれば、必ずハンドルは10になります。次の1つは前の1+1に等しく、すべてはハンドルが作成さ れた順番に依存します。前のものがエラーになった場合のみ変更可能です。
なるほど、多少なりとも理解できたようです。ありがとうございました。
ハンドル作成に 役立つ
こんなのあるんだ
質問:ハンドルの番号(桁)はどのようなパラメータから割り当てられるのでしょうか?
端末を再起動すると違うことがあるのでしょうか?
チャートの再初期化後に異なることがありますか?
どのような場合に変化するのでしょうか?
回答が見つかりました
多次元 配列を関数に正しく渡す方法を教えてください。
ヘッダにMyFun( &Mas[][] )を指定しただけでは、関数本体で配列要素Mas[j][k]にアクセスすると、コンパイラがエラーを発生するのですが...。でも、どうやって?
一次元のものでも問題はなさそうです。
多次元 配列を関数に正しく渡す方法を教えてください。
ヘッダにMyFun( &Mas[][] )を指定しただけでは、関数本体で配列要素Mas[j][k]にアクセスすると、コンパイラがエラーを発生するのですが...。でも、どうやって?
一次元配列の場合は問題ないようです。
2番目と次の配列の次元をダイナミックにすることはできません。従って、例えば、int Mas[][7] のように配列として宣言された MyFun(int &Mas[][7]) でなければならないので、受信する必要がある。