MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 175

 
-Aleks-:

1つのバーに対応するエントリーは1つなのか、そうでないのか?

はい、3月29日のバーでPERIOD_D 1のヒストグラムの1本となります。

29.03.2017.574391

 

日付がこのように書かれていれば、棒グラフは正しく設定されます。

int shift=iBarShift(Symbol(),PERIOD_D1,"29.03.2017");
Range_Buffer[shift]= str_b1;

が、このように書くと設定されない。

str_dat1= StringSubstr(str,0,10);//

int shift=iBarShift(Symbol(),PERIOD_D1,str_dat1);

Range_Buffer[shift]= str_b1;

日付(str_dat1)が正しく印刷される。

その理由はですか?



 
mila.com:

whileループを削除すると、最初の行は次のようになります。

何が問題なのか、教えてください。

str_dat1変数に何が入っているか確認する必要があります。

実際には、iBarShiftは文字列ではなく、datetime型の 日付を渡す必要があります。もしかしたら、日付としてきれいな文字列を受け入れ、変数を受け入れないのでは?

受信した文字列をdatetime型に変換するのがよいでしょう。


ps そして、完全にクレイジーなアイデアで、次のように書いてテストしてみました。

int shift=iBarShift(Symbol(),PERIOD_D1, (string)str_dat1);

しかし、これは純粋にmql4のオプション性をあてにしているに過ぎない。

 
mila.com:

日付がこのように書かれていれば、棒グラフは正しく設定されます。

が、このように書くと設定されない。

日付(str_dat1)が正しく印刷される。

その理由は でしょ うか




iBarShift()関 数はdatetime変数型を渡す必要がありますが、あなたはString型を渡すからです。

datetime  str_dat1=StringToTime(StringSubstr(str,0,10));// это дата
double str_b1=StringToDouble(StringSubstr(str,12,6)); // это значение

int shift=iBarShift(Symbol(),PERIOD_D1,str_dat1);

Range_Buffer[shift]=str_b1;

...

 
Alexey Viktorov:
受信した行をdatetime型に変換するのがよいでしょう。

ありがとうございます、棒グラフを貼ってください。

ファイルの全行に対してヒストグラムを作成する方法について質問です。

ヘルプを 見ると、次の行にジャンプするのはFileSeek()

しかし、次の行にスキップする方法がわかりません。

 
mila.com:

ありがとうございます、棒グラフを貼ってください。

ファイルの全行に対してヒストグラムを作成する方法について質問です。

ヘルプを 見ると、次の行にジャンプするのはFileSeek()

しかし、次の行にスキップする方法がわかりません。

今のところ1列のみ


ヘルプ )

ループの前にファイルを開き、最後まで閉じなかった場合、ループの反復ごとに次の行が読み込まれます。そして、ループの終了後にファイルを 閉じることができます。

FileSeek()は、ポインタを次の行ではなく、ファイルの先頭、末尾、または現在のポインタ位置から指定されたバイト数だけ移動させるものである。

正しく動かすには、書き込まれたファイルの中で1行が何バイトを占めるかを知る必要があります。

 
mila.com:

ありがとうございます、棒グラフを貼ってください。

ファイルの全行に対してヒストグラムを作成する方法について質問です。

ヘルプを 見ると、次の行にジャンプするのはFileSeek()

しかし、次の行にスキップする方法がわかりません。

今のところ1列のみ


ヘルプ )

例を挙げて説明している記事へのリンクをあげました。読めなかったようだ...。
 
Sergey Gritsay:


その理由は、iBarShift() 関数が datetime 変数型を渡す必要があるのに対し、あなたが文字列型を渡すからです。

...

ありがとうございます、そうさせていただきます。

 
Alexey Viktorov:

ループの前にファイルを開き、閉じない場合は、ループの繰り返しごとに次の行が読み込まれます。そして、ループの終了後にファイルを 閉じることができます。


うまくいきました、ありがとうございます。

 
Artyom Trishkin:
例を挙げて説明している記事へのリンクをあげました。読めなかったようだ...。

読みましたが、ループの前にファイルを 開くとは思いもよりませんでした )

たぶん、よく読んでないんだろうけど )