Цена пересекла индикатор сверху вниз(цена Open анализируемого бара выше линии индикатора, а цена Close - ниже), но индикатор растет (слабый сигнал на отбой от линии индикатора). Цена пересекла индикатор нижней тенью (цены Open и Close анализируемого бара выше линии индикатора, а цена Low ниже) и индикатор растет (сигнал на отбой от линии...
Как правильно сделать ограничение на оптимизацию параметров, что бы они друг на друга не залазили, слишком много лишних переборов.
inputint Profit_Lev1 = 5; // | 1-я фиксация прибыли sinputstring _p1="";//---inputint Profit_Lev2 = 7; // | 2-я фиксация прибыли sinputstring _p2="";//---inputint Profit_Lev3 = 10; // | 3-я фиксация прибыли
Имеем 3 уровня фиксации прибыли, 1 -й не должен быть больше 2-го и 3-го и 2-й не больше 3-го
//+------------------------------------------------------------------+//| Проверяет внешние параметры |//+------------------------------------------------------------------+bool CheckInputParameters()
{
if(Profit_Lev1 >= Profit_Lev2 || Profit_Lev1 >= Profit_Lev3 || Profit_Lev2 >= Profit_Lev3)
{
Print(_Symbol,
": 1-й уровень профита ("+IntegerToString(Profit_Lev1)+") ""должен быть больше 2-го и 3-го уровня профита ("+IntegerToString(Profit_Lev2)+" "+IntegerToString(Profit_Lev3)+")!");
return(false);
}
//--- Параметры корректныreturn(true);
}
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- Проверим внешние параметрыif(!CheckInputParameters())
return(INIT_PARAMETERS_INCORRECT);
//--- Инициализаия прошла успешноreturn(INIT_SUCCEEDED);
}
Запускаю оптимизацию
В журнале начинает сыпаться куча ошибок, наверное то что сбрасывает прогон
Но дело в том что, робот оптится 20 минут и оптимизация прекращается, хотя если не задавать то ограничение и пустить все на самотек где первый может быть и выше второго, то тогда оптимизация идет полноценно больше суток.
Что я делаю не так, хочу именно что бы тейки шли по порядку и не перескакивали выше друг друга т.к. в алгоритме на каждый уровень ТП завящано еще несколько логик работы в виде БУ и переноса БУ по этим уровням.
Как правильно сделать ограничение на оптимизацию параметров, что бы они друг на друга не залазили, слишком много лишних переборов.
Имеем 3 уровня фиксации прибыли, 1 -й не должен быть больше 2-го и 3-го и 2-й не больше 3-го
Ввести не три "уровня прибыли", а "базовый уровень", "превышение второго уровня над базовым" и "превышение третьего уровня над вторым".
Все. Делаем полный перебор.
Если надо, чтобы все три уровня помещались в какой-то фиксированный диапазон, тогда вводим переменные "ширина диапазона" и две "границы между уровнями", причем, первая граница - это доля от диапазона, а вторая граница - доля от оставшейся (после первой границы) части диапазона.
Ввести не три "уровня прибыли", а "базовый уровень", "превышение второго уровня над базовым" и "превышение третьего уровня над вторым".
Все. Делаем полный перебор.
Если надо, чтобы все три уровня помещались в какой-то фиксированный диапазон, тогда вводим переменные "ширина диапазона" и две "границы между уровнями", причем, первая граница - это доля от диапазона, а вторая граница - доля от оставшейся (после первой границы) части диапазона.
Я бы так делал...
Дак от перемены мест слагаемого разве будет разница, что я первый уровень проверяю со вторым и третьим, что третий уровень с первым и вторым проверю, смысл то один и тот же.
Konstantin Seredkin: Дак от перемены мест слагаемого разве будет разница, что я первый уровень проверяю со вторым и третьим, что третий уровень с первым и вторым проверю, смысл то один и тот же.
у тебя некорректные параметры когда первый левел больше второго и т.д., а в предложенном варианте такие проверки отпадут, и все наборы будут корректными.
Konstantin Seredkin: Дак от перемены мест слагаемого разве будет разница, что я первый уровень проверяю со вторым и третьим, что третий уровень с первым и вторым проверю, смысл то один и тот же.
Вроде как вопрос был, как перебрать "без пересечений". Если первый уровень, например, 10% от диапазона - то второй уровень уже никак на него не залезет, поскольку он измеряется в оставшихся 90%.
Вроде как вопрос был, как перебрать "без пересечений". Если первый уровень, например, 10% от диапазона - то второй уровень уже никак на него не залезет, поскольку он измеряется в оставшихся 90%.
Всеравно не понимаю.
Это же не просто какие то статичные переменные, это внешние переменные в которые я задаю 3 тейк профита
Робот торгует 3-мя лотами
через 100п я хочу закрыть 1 лот = это первый уровень профита
через 200 еще один лот = второй уровень профита
через 300 еще один лот = третий уровень профита
Но при первом уровне робот ставит стоп лос в безубыток
А при втором уровне робот этот стоп переносит на 1-й уровень профита.
Небыло бы безубытка, пофиг как там оптимизатор бы подобрал эти уровни, пусть хоть 1- й будет 300 второй 50п третий 150
но методу безубытка нужна четкая очередность, вот я и не хочу что бы оптимизатор подбирал мне вот так
300 50 150
50 300 150
и т.д.
а нормально все шло
50 100 200
150 160 170
и т.д.
Делая проверку на корректность введенных параметров
//+------------------------------------------------------------------+//| Проверяет внешние параметры |//+------------------------------------------------------------------+bool CheckInputParameters()
{
if(Profit_Lev1 >= Profit_Lev2 || Profit_Lev1 >= Profit_Lev3 || Profit_Lev2 >= Profit_Lev3)
{
Print(_Symbol,
": 1-й уровень профита ("+IntegerToString(Profit_Lev1)+") ""должен быть больше 2-го и 3-го уровня профита ("+IntegerToString(Profit_Lev2)+" "+IntegerToString(Profit_Lev3)+")!");
return(false);
}
//--- Параметры корректныreturn(true);
}
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- Проверим внешние параметрыif(!CheckInputParameters())
return(INIT_PARAMETERS_INCORRECT);
//--- Инициализаия прошла успешноreturn(INIT_SUCCEEDED);
}
При оптимизации там пишет что на куче прогонов были пропуски, это хорошо что он сбрасывает настройки которые нельзя применить, но оптимизатор работает несколько минут и отключается.
Видно нужно эту проверку как то по другому обыграть
То что вы предлагаете я не могу сообразить без примера о чем вы говорите.
Это же не просто какие то статичные переменные, это внешние переменные в которые я задаю 3 тейк профита
Робот торгует 3-мя лотами
через 100п я хочу закрыть 1 лот = это первый уровень профита
через 200 еще один лот = второй уровень профита
через 300 еще один лот = третий уровень профита
Но при первом уровне робот ставит стоп лос в безубыток
А при втором уровне робот этот стоп переносит на 1-й уровень профита.
Небыло бы безубытка, пофиг как там оптимизатор бы подобрал эти уровни, пусть хоть 1- й будет 300 второй 50п третий 150
но методу безубытка нужна четкая очередность, вот я и не хочу что бы оптимизатор подбирал мне вот так
300 50 150
50 300 150
и т.д.
а нормально все шло
50 100 200
150 160 170
и т.д.
Делая проверку на корректность введенных параметров
При оптимизации там пишет что на куче прогонов были пропуски, это хорошо что он сбрасывает настройки которые нельзя применить, но оптимизатор работает несколько минут и отключается.
Видно нужно эту проверку как то по другому обыграть
То что вы предлагаете я не могу сообразить без примера о чем вы говорите.
в input задавайте не сами уровни, а дистанции между ними.
input uint firstLevel=20 ;// пунктов от цены до первого ТП
input uint secondDistance=30; // пунктов от первого ТП до второго
input uint thirdDistance=50; // пунктов от второго ТП до конечного
тогда оптимизатор физически не сможет поменять уровни местами
Добрый день, есть значит ребята которые по удалёнке ставят на вм машину на яндекс облаке советника на мт4, который автоматом торгует. Можно ли каким-то образом его от туда "Взять", что типа как скопировать игру на свой жёсткий и чтоб всё работало. Спс
P.s сори за моё косноязычие, не разбираюсь в терминологии и сути этих вещей.
Решил написать советника. В связи с этим появилась необходимость в изменении сигналов, по которым эксперт будет открывать ордера. Например, индикатор DeMarker - нужно, чтобы советник открывал ордера только тогда, когда данный индикатор пересекает значение 0.3 снизу вверх (buy) и значение 0.7 сверху вниз (sell). Я правильно понимаю, что править нужно файл SignalDeMarker.mqh (участки кода с комментариями "Voting" that price will grow. и "Voting" that price will fall.)?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Здравствуйте. Подскажите пожалуйста, какой сигнал на вход в рынок у этого советника, и где он находится в коде?
Модуль сигналов пользовательского индикатора Вы подключаете в строке
а здесь Вы можете проверить торговые сигналы данного индикатора
На данный момент информации достаточно и Вам нужно её переварить. Также рекомендую к прочтению статьи
Ребята, есть такой вопрос
Как правильно сделать ограничение на оптимизацию параметров, что бы они друг на друга не залазили, слишком много лишних переборов.
Имеем 3 уровня фиксации прибыли, 1 -й не должен быть больше 2-го и 3-го и 2-й не больше 3-го
Запускаю оптимизацию
В журнале начинает сыпаться куча ошибок, наверное то что сбрасывает прогон
Но дело в том что, робот оптится 20 минут и оптимизация прекращается, хотя если не задавать то ограничение и пустить все на самотек где первый может быть и выше второго, то тогда оптимизация идет полноценно больше суток.
Что я делаю не так, хочу именно что бы тейки шли по порядку и не перескакивали выше друг друга т.к. в алгоритме на каждый уровень ТП завящано еще несколько логик работы в виде БУ и переноса БУ по этим уровням.
Ребята, есть такой вопрос
Как правильно сделать ограничение на оптимизацию параметров, что бы они друг на друга не залазили, слишком много лишних переборов.
Имеем 3 уровня фиксации прибыли, 1 -й не должен быть больше 2-го и 3-го и 2-й не больше 3-го
Ввести не три "уровня прибыли", а "базовый уровень", "превышение второго уровня над базовым" и "превышение третьего уровня над вторым".
Все. Делаем полный перебор.
Если надо, чтобы все три уровня помещались в какой-то фиксированный диапазон, тогда вводим переменные "ширина диапазона" и две "границы между уровнями", причем, первая граница - это доля от диапазона, а вторая граница - доля от оставшейся (после первой границы) части диапазона.
Я бы так делал...
Ввести не три "уровня прибыли", а "базовый уровень", "превышение второго уровня над базовым" и "превышение третьего уровня над вторым".
Все. Делаем полный перебор.
Если надо, чтобы все три уровня помещались в какой-то фиксированный диапазон, тогда вводим переменные "ширина диапазона" и две "границы между уровнями", причем, первая граница - это доля от диапазона, а вторая граница - доля от оставшейся (после первой границы) части диапазона.
Я бы так делал...
Дак от перемены мест слагаемого разве будет разница, что я первый уровень проверяю со вторым и третьим, что третий уровень с первым и вторым проверю, смысл то один и тот же.
у тебя некорректные параметры когда первый левел больше второго и т.д., а в предложенном варианте такие проверки отпадут, и все наборы будут корректными.
Дак от перемены мест слагаемого разве будет разница, что я первый уровень проверяю со вторым и третьим, что третий уровень с первым и вторым проверю, смысл то один и тот же.
Вроде как вопрос был, как перебрать "без пересечений". Если первый уровень, например, 10% от диапазона - то второй уровень уже никак на него не залезет, поскольку он измеряется в оставшихся 90%.
Вроде как вопрос был, как перебрать "без пересечений". Если первый уровень, например, 10% от диапазона - то второй уровень уже никак на него не залезет, поскольку он измеряется в оставшихся 90%.
Всеравно не понимаю.
Это же не просто какие то статичные переменные, это внешние переменные в которые я задаю 3 тейк профита
Робот торгует 3-мя лотами
через 100п я хочу закрыть 1 лот = это первый уровень профита
через 200 еще один лот = второй уровень профита
через 300 еще один лот = третий уровень профита
Но при первом уровне робот ставит стоп лос в безубыток
А при втором уровне робот этот стоп переносит на 1-й уровень профита.
Небыло бы безубытка, пофиг как там оптимизатор бы подобрал эти уровни, пусть хоть 1- й будет 300 второй 50п третий 150
но методу безубытка нужна четкая очередность, вот я и не хочу что бы оптимизатор подбирал мне вот так
300 50 150
50 300 150
и т.д.
а нормально все шло
50 100 200
150 160 170
и т.д.
Делая проверку на корректность введенных параметров
При оптимизации там пишет что на куче прогонов были пропуски, это хорошо что он сбрасывает настройки которые нельзя применить, но оптимизатор работает несколько минут и отключается.
Видно нужно эту проверку как то по другому обыграть
То что вы предлагаете я не могу сообразить без примера о чем вы говорите.
Всеравно не понимаю.
Это же не просто какие то статичные переменные, это внешние переменные в которые я задаю 3 тейк профита
Робот торгует 3-мя лотами
через 100п я хочу закрыть 1 лот = это первый уровень профита
через 200 еще один лот = второй уровень профита
через 300 еще один лот = третий уровень профита
Но при первом уровне робот ставит стоп лос в безубыток
А при втором уровне робот этот стоп переносит на 1-й уровень профита.
Небыло бы безубытка, пофиг как там оптимизатор бы подобрал эти уровни, пусть хоть 1- й будет 300 второй 50п третий 150
но методу безубытка нужна четкая очередность, вот я и не хочу что бы оптимизатор подбирал мне вот так
300 50 150
50 300 150
и т.д.
а нормально все шло
50 100 200
150 160 170
и т.д.
Делая проверку на корректность введенных параметров
При оптимизации там пишет что на куче прогонов были пропуски, это хорошо что он сбрасывает настройки которые нельзя применить, но оптимизатор работает несколько минут и отключается.
Видно нужно эту проверку как то по другому обыграть
То что вы предлагаете я не могу сообразить без примера о чем вы говорите.
в input задавайте не сами уровни, а дистанции между ними.
input uint firstLevel=20 ; // пунктов от цены до первого ТП
input uint secondDistance=30; // пунктов от первого ТП до второго
input uint thirdDistance=50; // пунктов от второго ТП до конечного
тогда оптимизатор физически не сможет поменять уровни местами
Добрый день, есть значит ребята которые по удалёнке ставят на вм машину на яндекс облаке советника на мт4, который автоматом торгует. Можно ли каким-то образом его от туда "Взять", что типа как скопировать игру на свой жёсткий и чтоб всё работало. Спс
P.s сори за моё косноязычие, не разбираюсь в терминологии и сути этих вещей.
Добрый день!
Решил написать советника. В связи с этим появилась необходимость в изменении сигналов, по которым эксперт будет открывать ордера. Например, индикатор DeMarker - нужно, чтобы советник открывал ордера только тогда, когда данный индикатор пересекает значение 0.3 снизу вверх (buy) и значение 0.7 сверху вниз (sell). Я правильно понимаю, что править нужно файл SignalDeMarker.mqh (участки кода с комментариями "Voting" that price will grow. и "Voting" that price will fall.)?