и правда топор)))
вы не указали на каком периоде работает и с каким инструментом но запустил на 4 часовом фунт доллар картинка примерно такая но с меньшим количеством зубцов . с первого января до сегодня.
если программа не удваивает и не известно почему. я обычно после нужного мне действия для отладки пишу команду "print "где в скобках указываю параметры которые нужно посмотреть . и так перемещая команду принт по телу программы нахожу где работает не правильно . Очень часто ошибки бывают если забываешь что есть величины "инт" и Double и нужно учитывать и переходить от одной к другой . еще можно использовать для отладки в реальном времени команду "алерт " и тогда можно проследить где собака зарыта
примерно опишите что в каком блоке происходит где должно быть удваивание ? блок обработки ордеров у нас похожий видимо одинаково мыслим
Предлагаю автору посмотреть советник Франк_уд, он есть на этом сайте. В этом советнике ордера тоже удваиваются по принципу Мартингейла. Возможно это Вам поможет решить проблему. Юпитер.
вы не указали на каком периоде работает и с каким инструментом но запустил на 4 часовом фунт доллар картинка примерно такая но с меньшим количеством зубцов . с первого января до сегодня.
если программа не удваивает и не известно почему. я обычно после нужного мне действия для отладки пишу команду "print "где в скобках указываю параметры которые нужно посмотреть . и так перемещая команду принт по телу программы нахожу где работает не правильно . Очень часто ошибки бывают если забываешь что есть величины "инт" и Double и нужно учитывать и переходить от одной к другой . еще можно использовать для отладки в реальном времени команду "алерт " и тогда можно проследить где собака зарыта
Период и инструмент указан в zip папке.
А идея с командой "алерт " не плахая надо попробовать .
вы не указали на каком периоде работает и с каким инструментом но запустил на 4 часовом фунт доллар картинка примерно такая но с меньшим количеством зубцов . с первого января до сегодня.
если программа не удваивает и не известно почему. я обычно после нужного мне действия для отладки пишу команду "print "где в скобках указываю параметры которые нужно посмотреть . и так перемещая команду принт по телу программы нахожу где работает не правильно . Очень часто ошибки бывают если забываешь что есть величины "инт" и Double и нужно учитывать и переходить от одной к другой . еще можно использовать для отладки в реальном времени команду "алерт " и тогда можно проследить где собака зарыта
Период и инструмент указан в zip папке.
А идея с командой "алерт " не плахая надо попробовать .
посмотрел код . мне кажется вы злоупотребляете переменными . сначала заполняете переменную потом проверяете условие а можно же сразу действие и проверка действия . например в "отрытии ордера" переменная тотал сначала где то заводится потом мравнивается с нулем . конечно наглядно но разве вы пишите для других для наглядности а не для извлечения прибыли.? работа программы замедляется особенно на тестировании . информация в ваших ячейках может устареть и отличаться от реальной.
а еще блок где одни алерты конечно красиво наглядно как на продажу советник . но при работе если посмотреть на вкладке "журнал" то там и так все расшивровывается ошибка код причина . если вы создали правильный советник то ошибок не возникает . "торговый сервер занят попробуем еще раз" зачем это советник и так обязан попробовать еще раз и попробует . все прекрасно работает и без надписей знаю по опыту и задержками никогда не пользовался .
Возможно лоты не удваиваются потому, что у вас функция OrderProfit() идёт впереди функции OrderSelect.
Вот этот фрагмент.
double Profit=OrderProfit(); //значение чистой прибыли // double Lot_1; bool Select=true; for(int i=0; i<=OrdersHistoryTotal(); i++)//Щитаем ордера из истории { if(Select==OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true //Берём ордер из истории && OrderSymbol()==Symb&& OrderMagicNumber() == MagicNumber) { if(OrdersHistoryTotal()==0) Lots= Lots; if(Profit<0) Lots=Lot_2*умжить_на; if(Profit>0) Lots=StarLots; if(Lots>MaxLots) Lots=StarLots; } return(Lots);
В итоге ордер не выбран и профит по нему определится равным нулю. Тогда условие после в котором происходит умножение не сработает. Попробуйте переопределить профит после функции OrderSelect().
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Топор :
Author: Абдурахман