Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Продавай время процессора и заработай!
MetaQuotes Software Corp.
Модератор
180337
MetaQuotes Software Corp. 2010.09.21 07:38 

Топор :

Мой первый грааль (скальпинг ).

Author: Абдурахман

Pavel Pronin
160
Pavel Pronin 2010.09.21 09:26  

и правда топор)))

Aleksej Shcherbak
2763
Aleksej Shcherbak 2010.09.21 11:20  

вы не указали на каком периоде работает и с каким инструментом но запустил на 4 часовом фунт доллар картинка примерно такая но с меньшим количеством зубцов . с первого января до сегодня.

если программа не удваивает и не известно почему. я обычно после нужного мне действия для отладки пишу команду "print "где в скобках указываю параметры которые нужно посмотреть . и так перемещая команду принт по телу программы нахожу где работает не правильно . Очень часто ошибки бывают если забываешь что есть величины "инт" и Double и нужно учитывать и переходить от одной к другой . еще можно использовать для отладки в реальном времени команду "алерт " и тогда можно проследить где собака зарыта

Aleksej Shcherbak
2763
Aleksej Shcherbak 2010.09.21 11:24  

примерно опишите что в каком блоке происходит где должно быть удваивание ? блок обработки ордеров у нас похожий видимо одинаково мыслим

victor-kaskad
84
victor-kaskad 2010.09.21 13:53  

Предлагаю автору посмотреть советник Франк_уд, он есть на этом сайте. В этом советнике ордера тоже удваиваются по принципу Мартингейла. Возможно это Вам поможет решить проблему. Юпитер.

Абдурахман
9
Абдурахман 2010.09.21 13:55  
alexi72:

вы не указали на каком периоде работает и с каким инструментом но запустил на 4 часовом фунт доллар картинка примерно такая но с меньшим количеством зубцов . с первого января до сегодня.

если программа не удваивает и не известно почему. я обычно после нужного мне действия для отладки пишу команду "print "где в скобках указываю параметры которые нужно посмотреть . и так перемещая команду принт по телу программы нахожу где работает не правильно . Очень часто ошибки бывают если забываешь что есть величины "инт" и Double и нужно учитывать и переходить от одной к другой . еще можно использовать для отладки в реальном времени команду "алерт " и тогда можно проследить где собака зарыта


Период и инструмент указан в zip папке.

А идея с командой "алерт "  не плахая надо попробовать .

Vladislav Andruschenko
89729
Vladislav Andruschenko 2010.09.21 16:06  
на скальпинг это не похоже, скорее сетка с усреднением.
Aleksej Shcherbak
2763
Aleksej Shcherbak 2010.09.21 16:36  
abic:
alexi72:

вы не указали на каком периоде работает и с каким инструментом но запустил на 4 часовом фунт доллар картинка примерно такая но с меньшим количеством зубцов . с первого января до сегодня.

если программа не удваивает и не известно почему. я обычно после нужного мне действия для отладки пишу команду "print "где в скобках указываю параметры которые нужно посмотреть . и так перемещая команду принт по телу программы нахожу где работает не правильно . Очень часто ошибки бывают если забываешь что есть величины "инт" и Double и нужно учитывать и переходить от одной к другой . еще можно использовать для отладки в реальном времени команду "алерт " и тогда можно проследить где собака зарыта


Период и инструмент указан в zip папке.

А идея с командой "алерт " не плахая надо попробовать .

я всегда так отлаживаю алерт или принт чтобы посмотреть что твориться в черном ящике
Aleksej Shcherbak
2763
Aleksej Shcherbak 2010.09.21 17:08  

посмотрел код . мне кажется вы злоупотребляете переменными . сначала заполняете переменную потом проверяете условие а можно же сразу действие и проверка действия . например в "отрытии ордера" переменная тотал сначала где то заводится потом мравнивается с нулем . конечно наглядно но разве вы пишите для других для наглядности а не для извлечения прибыли.? работа программы замедляется особенно на тестировании . информация в ваших ячейках может устареть и отличаться от реальной.

Aleksej Shcherbak
2763
Aleksej Shcherbak 2010.09.21 17:40  

а еще блок где одни алерты конечно красиво наглядно как на продажу советник . но при работе если посмотреть на вкладке "журнал" то там и так все расшивровывается ошибка код причина . если вы создали правильный советник то ошибок не возникает . "торговый сервер занят попробуем еще раз" зачем это советник и так обязан попробовать еще раз и попробует . все прекрасно работает и без надписей знаю по опыту и задержками никогда не пользовался .

Андрей
29
Андрей 2010.09.22 13:16  

Возможно лоты не удваиваются потому, что у вас функция 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().

/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий