Мне кажется вы подаете больше 1 параметра функции, в этом ошибка.
К моему сожалению, всё равно не понимаю - вызываю функцию VLine(IntegerToString(i),Time[i]); Если убераю параметр Time[i], ошибок не выдает, но и линий не рисует. Если уберу IntegerToString(i), выдает предупреждение:
неявное преобразование числа в строку. Сделав же VLine(IntegerToString(Time[i])) - это,я так понимаю, и есть явное преобразование? - опять же,ошибок не выдает,но и линий не рисует.
Так я ничего и не понял, и не добился. Просто отказался от идеи рисовать линии, сделал, чтоб при наступлении заданных стратегией условий выдавался алерт. Это проще, но для анализа дольше - больше "телодвижений".
вопрос не самого большого нуба, но кто как использует так сказать каталогизирование функционала? например у меня в роботе большое кол-во разного функционала,
открывая первую страницу сложно искать там, ту самую функцию, хорошо если она подключена как класс, но не все же так оформлять
7 include уже есть, функционал большой, работают раздельно стратегии в одном роботе через input (можно оптимизировать различные варианты), в будущем попробую нейросеть на основе функционала
Так я ничего и не понял, и не добился. Просто отказался от идеи рисовать линии, сделал, чтоб при наступлении заданных стратегией условий выдавался алерт. Это проще, но для анализа дольше - больше "телодвижений".
Всё равно, всем вовлечённым спасибо.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 02.07.2008 |//| Описание : Установка объекта OBJ_VLINE вертикальная линия |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ("" - время открытия текущего бара) |//| t1 - время (0 - время открытия текущего бара) |//| st - стиль линии (0 - простая линия) |//| wd - ширина линии (1 - по умолчанию) |//+----------------------------------------------------------------------------+void SetVLine(color cl, string nm="", datetime t1=0, int st=0, int wd=1) {
if (nm=="") nm=DoubleToStr(Time[0], 0);
if (t1<=0) t1=Time[0];
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_VLINE, 0, 0,0);
ObjectSet(nm, OBJPROP_TIME1, t1);
ObjectSet(nm, OBJPROP_COLOR, cl);
ObjectSet(nm, OBJPROP_STYLE, st);
ObjectSet(nm, OBJPROP_WIDTH, wd);
}
//+----------------------------------------------------------------------------+
Это пример скрипта как рисовать линию на 3 баре от начала.
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---
SetVLine (Red, IntegerToString(Time[2]), Time[2] );
}
//+------------------------------------------------------------------+//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 02.07.2008 |//| Описание : Установка объекта OBJ_VLINE вертикальная линия |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ("" - время открытия текущего бара) |//| t1 - время (0 - время открытия текущего бара) |//| st - стиль линии (0 - простая линия) |//| wd - ширина линии (1 - по умолчанию) |//+----------------------------------------------------------------------------+void SetVLine(color cl, string nm="", datetime t1=0, int st=0, int wd=1) {
if (nm=="") nm=DoubleToStr(Time[0], 0);
if (t1<=0) t1=Time[0];
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_VLINE, 0, 0,0);
ObjectSet(nm, OBJPROP_TIME1, t1);
ObjectSet(nm, OBJPROP_COLOR, cl);
ObjectSet(nm, OBJPROP_STYLE, st);
ObjectSet(nm, OBJPROP_WIDTH, wd);
}
//+----------------------------------------------------------------------------+
GetMaxLotFromOpenPos - Возвращает максимальный размер лота из открытых позиций. GetArrowInterval - Возвращает интервал установки сигнальных указателей. ExistInHistoryToDay - Возвращает флаг наличия ордера или позиции в истории за сегодня
вопрос не самого большого нуба, но кто как использует так сказать каталогизирование функционала? например у меня в роботе большое кол-во разного функционала,
открывая первую страницу сложно искать там, ту самую функцию, хорошо если она подключена как класс, но не все же так оформлять
7 include уже есть, функционал большой, работают раздельно стратегии в одном роботе через input (можно оптимизировать различные варианты), в будущем попробую нейросеть на основе функционала
ВСЕГО ? :-)
вследствие скажем так, особенностей MQL, для каждого проекта делаю Includes.mqh который состоит из предварительных объявлений всех классов, объявления перечислений и include каждого требуемого mqh. Любой другой файл mql/mqh содержит только один #include "Includes.mqh"
тогда с матом пополам, оно работает и это можно поддерживать. И , да, это донельзя криво. Но библиотек/модулей тут нет и интерфейсы с имплементами в одном флаконе. У меня есть большие подозрения что компиляции тут вообще нет, это маркетинг.
вследствие скажем так, особенностей MQL, для каждого проекта делаю Includes.mqh который состоит из предварительных объявлений всех классов, объявления перечислений и include каждого требуемого mqh. Любой другой файл mql/mqh содержит только один #include "Includes.mqh"
тогда с матом пополам, оно работает и это можно поддерживать. И , да, это донельзя криво. Но библиотек/модулей тут нет и интерфейсы с имплементами в одном флаконе. У меня есть большие подозрения что компиляции тут вообще нет, это маркетинг.
есть еще штатные trade 2, и универсальные функции типа - еррор коды, с работой по времени достаточно объемная тоже в include, гарантированная загрузка истории(из справки)
в каждому include еще 100-500 строк, я же не windows-2 пишу
для меня это уже много и не удобно,
Максим, ключевое слово "проект", а тут в одном, в котором можно весь функционал через input протестировать, во всех вариациях, а в последующем возможно и в нейросеть запустить, может это ошибка
Компиляция вашего варианта выдает ошибку: 'VLine' - wrong parameters count.
Мне кажется вы подаете больше 1 параметра функции, в этом ошибка.
Мне кажется вы подаете больше 1 параметра функции, в этом ошибка.
неявное преобразование числа в строку. Сделав же VLine(IntegerToString(Time[i])) - это,я так понимаю, и есть явное преобразование? - опять же,ошибок не выдает,но и линий не рисует.
Не стучите лысиной по паркету - и так ясно, что специалист вы "так себе", а самомнение выше рогов вашей аватарной "коровки".
Не стучите лысиной по паркету - и так ясно, что специалист вы "так себе", а самомнение выше рогов вашей аватарной "коровки".
Так я ничего и не понял, и не добился. Просто отказался от идеи рисовать линии, сделал, чтоб при наступлении заданных стратегией условий выдавался алерт. Это проще, но для анализа дольше - больше "телодвижений".
Всё равно, всем вовлечённым спасибо.
перенес из темы для новичков
---
вопрос не самого большого нуба, но кто как использует так сказать каталогизирование функционала? например у меня в роботе большое кол-во разного функционала,
открывая первую страницу сложно искать там, ту самую функцию, хорошо если она подключена как класс, но не все же так оформлять
7 include уже есть, функционал большой, работают раздельно стратегии в одном роботе через input (можно оптимизировать различные варианты), в будущем попробую нейросеть на основе функционала
Так я ничего и не понял, и не добился. Просто отказался от идеи рисовать линии, сделал, чтоб при наступлении заданных стратегией условий выдавался алерт. Это проще, но для анализа дольше - больше "телодвижений".
Всё равно, всем вовлечённым спасибо.
Вот функция с которой понятно как рисовать линии. Вот тема в которой есть много полезных функций https://www.mql5.com/ru/forum/131859
Это пример скрипта как рисовать линию на 3 баре от начала.перенес из темы для новичков
---
вопрос не самого большого нуба, но кто как использует так сказать каталогизирование функционала? например у меня в роботе большое кол-во разного функционала,
открывая первую страницу сложно искать там, ту самую функцию, хорошо если она подключена как класс, но не все же так оформлять
7 include уже есть, функционал большой, работают раздельно стратегии в одном роботе через input (можно оптимизировать различные варианты), в будущем попробую нейросеть на основе функционала
ВСЕГО ? :-)
вследствие скажем так, особенностей MQL, для каждого проекта делаю Includes.mqh который состоит из предварительных объявлений всех классов, объявления перечислений и include каждого требуемого mqh. Любой другой файл mql/mqh содержит только один #include "Includes.mqh"
тогда с матом пополам, оно работает и это можно поддерживать. И , да, это донельзя криво. Но библиотек/модулей тут нет и интерфейсы с имплементами в одном флаконе. У меня есть большие подозрения что компиляции тут вообще нет, это маркетинг.
ВСЕГО ? :-)
вследствие скажем так, особенностей MQL, для каждого проекта делаю Includes.mqh который состоит из предварительных объявлений всех классов, объявления перечислений и include каждого требуемого mqh. Любой другой файл mql/mqh содержит только один #include "Includes.mqh"
тогда с матом пополам, оно работает и это можно поддерживать. И , да, это донельзя криво. Но библиотек/модулей тут нет и интерфейсы с имплементами в одном флаконе. У меня есть большие подозрения что компиляции тут вообще нет, это маркетинг.
есть еще штатные trade 2, и универсальные функции типа - еррор коды, с работой по времени достаточно объемная тоже в include, гарантированная загрузка истории(из справки)
в каждому include еще 100-500 строк, я же не windows-2 пишу
для меня это уже много и не удобно,
Максим, ключевое слово "проект", а тут в одном, в котором можно весь функционал через input протестировать, во всех вариациях, а в последующем возможно и в нейросеть запустить, может это ошибка
На сайте не нашел.
MQL4 или MQL5
Как программно сохранять отчет тестера по окончании тестирования ?