インディケータ: Setka (グリッド) - ページ 4

 

なぜかわからないが、縦線を引くコードで

line_counter++;

TimeToStruct(time[i],str);

StringConcatenate(line_name,IntegerToString(str.hour,2,'0'),":",IntegerToString(str.min,2,'0'),"_N",line_counter);

SetVLine(line_name,time[i],line_colour);

最後の行を次の行に置き換える:

SetVLine(IntegerToString(str.hour,2,'0')+": "+IntegerToString(str.min,2,'0')+"_N "+IntegerToString(line_counter),time[i],line_color);

とすれば、すべてその通りに動作する。

StringConcatenateで 行の後にline_name変数を Printして印刷すると、 行の名前がターミナルに正しく書き込まれます。

なぜか、StringConcatenateで 得たこの変数を SetVLine 関数に 代入すると、 線は描画されず、描画関数呼び出しのコードで線名を直接計算することだけが機能する。

そして、それはまさにビルド3021以降に現れました。

追伸:ターキーを起動しましたが、ターミナルに「ゴキブリ」が住み着いています。

 

ビルド 3090 の StringConcatenate 関数のバグを修正してくれた開発者に感謝する。

https://www.mql5.com/ru/forum/380121

これで、インジケーターは元のコードで問題なく動作するようになりました。

Новая версия платформы MetaTrader 5 build 3090: Улучшения в работе
Новая версия платформы MetaTrader 5 build 3090: Улучшения в работе
  • 2021.10.20
  • www.mql5.com
В четверг 21 октября 2021 года будет выпущена обновленная версия платформы MetaTrader 5...