@Rigal ok dude
Доработка советников: общая тема📌
От Garfik, 4 августа, 2011 в Уголок Программиста
30 минут назад, Искандар сказал:Доброго времени суток. Уважаемые программисты! Помогите!! У меня есть советник написан по моей стратегии в mql4, нужно переписать в mql5. Прикладываю годовой тест советника.
прогони робота на нормальных котировках(99% качества) и твой 2022_грааль превратится в 2022_слив
1 час назад, Lozovoy сказал:прогони робота на нормальных котировках(99% качества) и твой 2022_грааль превратится в 2022_слив
обозначь дату прогона, проверим
Изменено 22 января, 2023 пользователем Искандар
Ребята кодеры, подскажите пожалуйста, как закодировать импульс из одинаковых свечей (одноцвет) минимум три
Изменено 29 января, 2023 пользователем drobayura
В 29.01.2023 в 05:58, drobayura сказал:
Что значит "закодировать"?
bool isLastCandleBoolish = (iClose(NULL, NULL, 1) > iOpen(NULL, NULL, 1));
int impulseLength = 1;
for(int i = 2; i < 100; i++) {
bool isCandleBoolish = (iClose(NULL, NULL, i) > iOpen(NULL, NULL, i));
if(isCandleBoolish != isLastCandleBoolish)
break;
impulseLength++;
}
Print("Last ", impulseLength, " candles are all ", (isLastCandleBoolish ? "boolish" : "bearish");
16 часов назад, Rigal сказал:Что значит "закодировать"?
bool isLastCandleBoolish = (iClose(NULL, NULL, 1) > iOpen(NULL, NULL, 1));
int impulseLength = 1;
for(int i = 2; i < 100; i++) {
bool isCandleBoolish = (iClose(NULL, NULL, i) > iOpen(NULL, NULL, i));
if(isCandleBoolish != isLastCandleBoolish)
break;
impulseLength++;
}
Print("Last ", impulseLength, " candles are all ", (isLastCandleBoolish ? "boolish" : "bearish");
Короче у меня не получается. Поможете доделать экспертика, а? Смысл такой - определяем импульс минимум из трех свечей и по середине выставляем лимитный ордер в зависимости от направления импульса SL на экстремум импульса ТР равен 2*SL.
Изменено 31 января, 2023 пользователем drobayura
В 30.01.2023 в 20:29, Rigal сказал:Что значит "закодировать"?
bool isLastCandleBoolish = (iClose(NULL, NULL, 1) > iOpen(NULL, NULL, 1));
int impulseLength = 1;
for(int i = 2; i < 100; i++) {
bool isCandleBoolish = (iClose(NULL, NULL, i) > iOpen(NULL, NULL, i));
if(isCandleBoolish != isLastCandleBoolish)
break;
impulseLength++;
}
Print("Last ", impulseLength, " candles are all ", (isLastCandleBoolish ? "boolish" : "bearish");
Начал делать, но что то пошло не так.
5 часов назад, drobayura сказал:
что-то пошло сильно не так.
Я не вижу смысла в написаном никакого, к сожалению - даже если опустить тот факт, что вы зачем-то поменяли стартовую точку цикла со второй на третью свечку.
Вы, может, прокомментируете, что вы этими строчками пытаетесь сделать - потому что я ничего осмысленного не обнаружил.
59 минут назад, Rigal сказал:что-то пошло сильно не так.
Я не вижу смысла в написаном никакого, к сожалению - даже если опустить тот факт, что вы зачем-то поменяли стартовую точку цикла со второй на третью свечку.
Вы, может, прокомментируете, что вы этими строчками пытаетесь сделать - потому что я ничего осмысленного не обнаружил.
чтобы импульс считать с трёх свечей одинакового цвета. На середине импульса выставляются лимитки, ТР и SL выставляются на начало и конец импульса.
Изменено 4 февраля, 2023 пользователем drobayura
1 час назад, drobayura сказал:
Да, я уже видел это сообщение ранее и на него пока никто не откликнулся.
Поэтому вы решили потратить еще немного чьего-нибудь времени, притворившись, что какая-то версия алгоритма уже написана и нужно просто понять, почему она не работает.
В приложенном вами фрагменте кода нет ничего полезного, от слова совсем - это копипаст функций открытия и подсчета ордеров и набор бессмыслленных манипуляций несвязанными между собой переменными в точке входа.
Мне непонятно, зачем вы это делаете...
Если никто не заинтересовался написанием вашего советника с нуля, те же люди в еще меньшей степени заинтересуются, глянув на код, который вы выложили - ибо он лишь подчеркивает, насколько плохо вы разбираетесь в вопросе.
4 часа назад, Rigal сказал:Да, я уже видел это сообщение ранее и на него пока никто не откликнулся.
Поэтому вы решили потратить еще немного чьего-нибудь времени, притворившись, что какая-то версия алгоритма уже написана и нужно просто понять, почему она не работает.
В приложенном вами фрагменте кода нет ничего полезного, от слова совсем - это копипаст функций открытия и подсчета ордеров и набор бессмыслленных манипуляций несвязанными между собой переменными в точке входа.
Мне непонятно, зачем вы это делаете...
Если никто не заинтересовался написанием вашего советника с нуля, те же люди в еще меньшей степени заинтересуются, глянув на код, который вы выложили - ибо он лишь подчеркивает, насколько плохо вы разбираетесь в вопросе.
Если б разбирался, я бы к Вам не обращался.
В 04.02.2023 в 13:56, Rigal сказал:Да, я уже видел это сообщение ранее и на него пока никто не откликнулся.
Поэтому вы решили потратить еще немного чьего-нибудь времени, притворившись, что какая-то версия алгоритма уже написана и нужно просто понять, почему она не работает.
В приложенном вами фрагменте кода нет ничего полезного, от слова совсем - это копипаст функций открытия и подсчета ордеров и набор бессмыслленных манипуляций несвязанными между собой переменными в точке входа.
Мне непонятно, зачем вы это делаете...
Если никто не заинтересовался написанием вашего советника с нуля, те же люди в еще меньшей степени заинтересуются, глянув на код, который вы выложили - ибо он лишь подчеркивает, насколько плохо вы разбираетесь в вопросе.
Здравствуйте уважаемый Rigal, вы мне помогли с тралом, но у меня в нем выходит ошибка «массив вне диапазона» в строке lots[OrderType()] += OrderLots();
Помогите пожалуйста исправить, моих знаний не хватает для исправления ошибок такого рода. Заранее спасибо ?
Это связанно с парой audusd и подобным. Хотелось услышать эксперта
Изменено 27 февраля, 2023 пользователем Pavel888
Приветствую, кто-нибудь может помочь разобраться с форекс ЕА генератором? Никак не могу понять как собрать Мартина!
2023.02.27 07:23:40.669 Trailer AUDUSD,M5: array out of range in 'Trailer.mq4' (49,14)
даже если сделать так: lots[], все удалив, все равно выходит такая ошибка почему то если больше 10 ордеров. А в тестере работает нормально. Если убрать #property strict, то ошибка пропадает и уже срабатывает нормально
Изменено 27 февраля, 2023 пользователем Lexa000
15 часов назад, Lexa000 сказал:2023.02.27 07:23:40.669 Trailer AUDUSD,M5: array out of range in 'Trailer.mq4' (49,14)
даже если сделать так: lots[], все удалив, все равно выходит такая ошибка почему то если больше 10 ордеров. А в тестере работает нормально. Если убрать #property strict, то ошибка пропадает и уже срабатывает нормально
Не связано это ни с AUDUSD ни с подобным, ни с property strict, ни с количеством ордеров.
У вас, вероятно, отложки открыты на счете?
Я не хочу искать и копировать свое старое сообщение, если честно - было бы здорово, если бы вы прикрепили код, с которым у вас проблема, файлом.
Я поправлю.
16 минут назад, Rigal сказал:Не связано это ни с AUDUSD ни с подобным, ни с property strict, ни с количеством ордеров.
У вас, вероятно, отложки открыты на счете?
![]()
Я не хочу искать и копировать свое старое сообщение, если честно - было бы здорово, если бы вы прикрепили код, с которым у вас проблема, файлом.
Я поправлю.
Да, скорей всего отложки. С такой ситуацией в первый раз встретился. Спасибо за помощь
забирайте
Приветствую вас дорогие друзья! Недавно приобрёл Forex ea Generator, и всё бы ничего если бы дело касалось простых советников, однако при попытке собрать бота по Мартингейлу я упёрся в тупик непонимания! Может быть кто-то сможет помочь и объяснить, как собираются блоки по этой стратегии? Буду очень признателен!
В 28.02.2023 в 00:17, Rigal сказал:
Rigal, этот советник писали ВЫ. Можно его маленько доделать?
Если Получили SL "RiskPercent" удваиваем, получили ПРОФИТ возвращаемся к первоначальному значению.
Изменено 27 апреля, 2023 пользователем drobayura
В 27.04.2023 в 06:56, drobayura сказал:
покажите отчет теста, который наводит вас на мысль, что в этом может быть смысл.
На приличном промежутке времени.
В отчете тестера будут все цифры, которые нужны для обоснования такой идеи
В 28.04.2023 в 14:47, Rigal сказал:покажите отчет теста, который наводит вас на мысль, что в этом может быть смысл.
На приличном промежутке времени.
В отчете тестера будут все цифры, которые нужны для обоснования такой идеи
Сделал тест на 16 месяцах с 03.01.22 по сегодняшний день.
Обратите внимание на количество непрерывных проигрышей всего шесть если начать с риска 0,2%, то можно позволить до восьми
непрерывных проигрышей.
2 часа назад, drobayura сказал:
Я не понимаю, что вы считаете в табличке выше - возможно, в этом есть какое-то зерно, но его нужно прорастить.
Сдается мне, вы говорите о том, сколько умножений выдержит депозит.
А в контексте гораздо более осмысленно было бы оценить, может ли эта система приносить больше прибыли за счет умножения.
Если я неправильно вас понял - вы меня поправьте, пожалуйста?
Процент риска в целом не имеет значения, можно рассматривать систему с постоянным лотом и множить лот.
У вас максимальное число непрерывных проигрышей выше числа непрерывных выигрышей.
Более того, средний непрерывный выигрыш один, а средний непрерывный проигрыш - 3.
Такой баланс предлагает считать, что после проигрыша выгоднее делить риск пополам, а не умножать, потому, что после проигрыша гораздо более вероятен проигрыш.
Ну и у вас статистика из 67 сделок и не видно, какой интервал протестирован - даже этот малоинтересный результат вполне может быть результатом cherry picking.
Давайте вы, если хотите, чтобы кто-то сел и поработал, вы как-то сядьте и поработайте сперва, чтобы убедиться хотя бы для себя, что эта работа имеет смысл?
Изменено 29 апреля, 2023 пользователем Rigal
Что важнее: процент проигрышных и выигрышных сделок - в районе трети.
То есть система может быть прибыльна только за счет высокого RR.
Такие системы имеют отрицательное матожидание с мартингейлом.
1 час назад, Rigal сказал:То есть система может быть прибыльна только за счет высокого RR.
Герчиком потянуло.
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем





