Советник написан, допустим, на мувингах. Когда заканчиваешь тестировать его в тестере, использованные мувинги (с использованными параметрами) появляются в окне. Это ок.
Вопрос.
А когда заливаешь тот же советник на маркет, и пользователь скачивает демо - у него по завершению теста, так же они появятся? Или у mql есть какая-то политика конфиденциальности в этом плане?
Покупка торгового робота в MQL5 Маркете имеет одно большое преимущество перед всеми другими подобными предложениями - вы можете устроить комплексную проверку предлагаемой автоматической системы прямо в терминале MetaTrader 5. Каждый советник перед покупкой можно и нужно тщательно прогнать во всех неблагоприятных режимах во встроенном тестере торговых стратегий, чтобы получить о нем максимально полное представление.
Помогите подправить индикатор. Он рисует шаг/сетку цены от указанного значения. Проблема в том, что когда я его удаляю, на графике остаются линии. Также я не могу на график добавить второй такой же индикатор. В общем, как сделать так, чтобы он удалялся полностью с графика и можно такой же индикатор кинуть на график с другими значениями.
#property link"https://www.forexsystems.biz"#property version"1.00"#property indicator_chart_window//---- для расчёта и отрисовки индикатора использовано ноль буферов#property indicator_buffers0//---- использовано всего ноль графических построений#property indicator_plots0//--- входные параметры inputint count = 500; //количество линий вверх вниз от ценыinputint step = 100; //шаг линий inputdouble pr = 1.1; //цена от которой пляшем//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- indicator buffers mapping//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
Comment("");
}
//+------------------------------------------------------------------+ //| Создает горизонтальную линию | //+------------------------------------------------------------------+ bool HLine(conststring name="HLine",double price=0)
{
//--- создадим горизонтальную линию if(!ObjectCreate(0,name,OBJ_HLINE,0,0,price))
{
Print(__FUNCTION__,
": не удалось создать горизонтальную линию! Код ошибки = ",GetLastError());
return(false);
}
//--- установим цвет линии ObjectSetInteger(0,name,OBJPROP_COLOR,clrDodgerBlue);
ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
return(true);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
double price=pr;
//--- создадим горизонтальную линию for(int i=0;i<=count;i++)
{
HLine("HLine"+(string)i,price+step*i*_Point);
HLine("HLine"+(string)(i+count+1),price-step*i*_Point);
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+
Помогите подправить индикатор. Он рисует шаг/сетку цены от указанного значения. Проблема в том, что когда я его удаляю, на графике остаются линии. Также я не могу на график добавить второй такой же индикатор. В общем, как сделать так, чтобы он удалялся полностью с графика и можно такой же индикатор кинуть на график с другими значениями.
В OnDeinit нужно делать ObjectsDeleteAll - удалять по префиксу (в Вашем случае префикс - это "HLine")
intObjectsDeleteAll(
long chart_id, // идентификатор графикаconststring prefix, // префикс имени объектаint sub_window=-1, // индекс окнаint object_type=-1// тип объекта для удаления
);
В OnDeinit нужно делать ObjectsDeleteAll - удалять по префиксу (в Вашем случае префикс - это "HLine")
intObjectsDeleteAll(
long chart_id, // идентификатор графикаconststring prefix, // префикс имени объектаint sub_window=-1, // индекс окнаint object_type=-1// тип объекта для удаления
);
intObjectsDeleteAll(
long chart_id, // идентификатор графикаconststring HLine, // префикс имени объектаint sub_window=-1, // индекс окнаint object_type=-1// тип объекта для удаления
);
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Всем привет!
Ситуация.
Советник написан, допустим, на мувингах. Когда заканчиваешь тестировать его в тестере, использованные мувинги (с использованными параметрами) появляются в окне. Это ок.
Вопрос.
А когда заливаешь тот же советник на маркет, и пользователь скачивает демо - у него по завершению теста, так же они появятся? Или у mql есть какая-то политика конфиденциальности в этом плане?
TesterHideIndicatorsПомогите подправить индикатор. Он рисует шаг/сетку цены от указанного значения. Проблема в том, что когда я его удаляю, на графике остаются линии. Также я не могу на график добавить второй такой же индикатор. В общем, как сделать так, чтобы он удалялся полностью с графика и можно такой же индикатор кинуть на график с другими значениями.
Помогите подправить индикатор. Он рисует шаг/сетку цены от указанного значения. Проблема в том, что когда я его удаляю, на графике остаются линии. Также я не могу на график добавить второй такой же индикатор. В общем, как сделать так, чтобы он удалялся полностью с графика и можно такой же индикатор кинуть на график с другими значениями.
В OnDeinit нужно делать ObjectsDeleteAll - удалять по префиксу (в Вашем случае префикс - это "HLine")
В OnDeinit нужно делать ObjectsDeleteAll - удалять по префиксу (в Вашем случае префикс - это "HLine")
А в какой строчке "HLine" писать?
А в какой строчке "HLine" писать?
Что именно не ясно?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Вопросы от начинающих MQL5 MT5 MetaTrader 5
Vladimir Karputov, 2021.09.10 15:53
В OnDeinit нужно делать ObjectsDeleteAll - удалять по префиксу (в Вашем случае префикс - это "HLine")
Что именно не ясно?
Вот я сделал, он все равно не удаляет.
в prefix находятся имена создания графических меток
префикс знаете что означает?
в prefix находятся имена создания графических меток
префикс знаете что означает?
Я вообще в MQL не разбираюсь.... думал, пару строчек подправлю и все.
Я вообще в MQL не разбираюсь.... думал, пару строчек подправлю и все.
код выше должен помочь, иначе смотрите с каким префиксом создаются объекты