Ошибки, баги, вопросы - страница 2800

Nikolai Karetnikov:

Согласен, интеллекту IntelliSense требуется доведение до ума, так сказать )

А что касается моего примера, видите


при наборе __FUN подсказка отображается снизу. При открытии скобки в операторе printf( подсказка отображается сверху

А если я печатаю __FUN после того, как открыл скобку в printf(, то уже никакой подсказки внизу не увижу

Попробуйте просто Print(

Да и printf  отрабатывает вроде.
В printf первым параметром указывается тип выводимого значения.


Vitaly Muzichenko:

А что мешает соединить 2 стратегии в один советник?

Код очень ёмкий. На каждого советника выделено по 8 слотов. Он мультисистемный. Боимся багов в работе.

Roman:

Попробуйте просто Print(

Да и printf  отрабатывает вроде.
В printf первым параметром указывается тип.


Каким редактором пользуетесь, ели не секрет? Судя по скриншотам, на MetaEditor он мало похож. Хотя, подсветка синтаксиса присутствует...

Mihail Matkovskij:

Каким редактором пользуетесь, ели не секрет? Судя по скриншотам, на MetaEditor он мало похож. Хотя, подсветка синтаксиса присутствует...

Это ME в тёмной теме виндовс.

Тут писал.
https://www.mql5.com/ru/forum/306688/page33#comment_14741796

Roman:

Попробуйте просто Print(

Да и printf  отрабатывает вроде.
В printf первым параметром указывается тип выводимого значения.


Print работает! Спасибо! ))

А вот printf не всегда 


хочу отобразить один символ на канвасе и двигать его, исходник:

#property indicator_chart_window
#property indicator_plots 0

#include <Canvas\Canvas.mqh>


CCanvas canvas;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
   canvas.CreateBitmapLabel(ChartID(), 0, "canvas", 0, 0, 900, 400);
   canvas.FontSet("Courier New", 32);
   canvas.Erase(0);
   canvas.Update();
   EventSetMillisecondTimer(250);
//---
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
//---

//--- return value of prev_calculated for next call
   return(rates_total);
}
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
{
   static int x = 0;
   static const uint col_black = ColorToARGB(clrBlack);
   static const uint col_red = ColorToARGB(clrRed);
   canvas.TextOut(x, 100, "S", col_black);
   x+=10;
   canvas.TextOut(x, 100, "S", col_red);
   canvas.Update();
}
//+------------------------------------------------------------------+


почему я предыдущее выведенное изображение затираю черным, а остаются артефакты ?


Igor Makanu:

хочу отобразить один символ на канвасе и двигать его, исходник:


почему я предыдущее выведенное изображение затираю черным, а остаются артефакты ?


лучше сразу весь канвас перезаливать. Все равно потом он весь перерисовывается.

Andrey Barinov:

лучше сразу весь канвас перезаливать. Все равно потом он весь перерисовывается.

это я уже думал, но вопрос чисто технический

вроде как получается, что сглаживание шрифтов так работает? да и цель спрайты подвигать, в общем разобраться хочу почему так работает

не знаю куда копать, может кто подскажет направление для поисков. пишу индикатор, но после первого нажатия на "компилировать", расчётная часть выдаёт чушь, компилирую повторно, вроде похоже на правду.

2020.07.13 14:12:05.987 ZigZag_MP (USDJPY,M15)  Average wave size = -2147483648 points; less then average: 1/100 min=99999999.0 max=107.1 steps=-2147483648
2020.07.13 14:12:27.179 ZigZag_MP (USDJPY,M15)  Average wave size = 273 points; less then average: 65/100 min=106.422 max=107.848 steps=57

2020.07.13 14:18:38.001 ZigZag_MP (USDJPY,M15)  Average wave size = -2147483648 points; less then average: 1/100 min=99999999.0 max=107.1 steps=-2147483648
2020.07.13 14:18:46.751 ZigZag_MP (USDJPY,M15)  Average wave size = 273 points; less then average: 65/100 min=106.422 max=107.848 steps=57

ничего сверхъестественного не делаю - обсчитываю 100 последних колен зиг-зага. код переворошил не раз, но ведь в том-то и дело, что он один и тот же, а результат разный. может пару тиков за это время проходит, но текущий бар игнорируется, так что не верится, что в этом дело.

предвидя одну из возможных версий: индикаторные буфера принудительно инициализирую, мусора в них нет.

Igor Zakharov:

предвидя одну из возможных версий: индикаторные буфера принудительно инициализирую, мусора в них нет.

вопрос где инициализируете

если по условию prev_calculated == 0 , тогда все ОК, если в OnInt() , то будет глючить при переключении ТФ и при компиляции