Доработка ботов (советников, индикаторов) vol. 2

aulrih

Активный участник
Не влияет на мартин,чтобы больше сделок открывать?
Сейчас на тестере показывает, что при одном заданном открытом ордере и при заданном мартине открывается только одна сделка. Дальше советник отказывается открывать новые сделки.
 

loki177

Активный участник
Сейчас на тестере показывает, что при одном заданном открытом ордере и при заданном мартине открывается только одна сделка. Дальше советник отказывается открывать новые сделки.
а скопировать в папку экcперты, запустить метаедитор, открыть новую версию и перекомпилировать не забыли? тестер лучше закрыть при этом. на картинке видно, что лот растет - значит мартин работает. Если что то конкретно хотите - сформулируйте, желательно со скриншотами.
 

Вложения

  • StrategyTester.zip
    9,7 КБ · Просмотры: 30

loki177

Активный участник
при MaxAllowOpenedPositions = 2 второй ордер buy открылся с увеличенным лотом - второе значение из списка
 

Вложения

  • 2.zip
    10,7 КБ · Просмотры: 33

loki177

Активный участник
здравствуйте. после 5 стопов открывает 0.39 и так до тейка, можно ли чтоб 5 лоссов начал снова с 0.02
вот со сбросом лота после того как значения в списке выбраны. 5 для установок по умолчанию.
последнее значение лота еще будет повторяться last_lot_repeat раз. 0 по умолчанию.
но можно было сразу в списке лотов поменять - добавить в конец списка 0.02 0.02 0.02
 

Вложения

  • PreviewBar 1.02.mq4
    21,4 КБ · Просмотры: 51
Последнее редактирование:

gek

Элитный участник
Добрый день! Уже давно торгую с данным советником, нареканий особых не было. Однако вчера МТ4 вдруг запросил разрешение производить изменения. После этого советник перестал открывать позиции. В лучшем случае открывает только один раз и после TP или SL больше не торгует. Переустановил МТ4, не помогло. При удалении советника с графика вся платформа на некоторое время подвисает. Буду очень признателен за помощь.
Привет.
Вроде работает.
Не подскажешь,как ты с ним торгуешь?
 
Последнее редактирование:

aulrih

Активный участник
Привет.
Вроде работает.
Не подскажешь,как ты с ним торгуешь?
Добрый день! К сожалению мартингейл так и не запускается, хотя советник без него работает отлично. Я с ним торгую интрадей на фьючерсах dax.
 
  • Like
Реакции: gek

vladradon

Программист
Добрый день! К сожалению мартингейл так и не запускается, хотя советник без него работает отлично. Я с ним торгую интрадей на фьючерсах dax.
Как в вашем понятии должен работать "Мартингейл"? Он изначально работает так: ставка в минус- увеличиваем следующую ставку в N раз (одна ставка на каждый раз!). И не важно в какую сторону - уже думать надо или считать.
Многоуровневый мартин (это уже не стандартный, а модификация для форекса) работает совсем по-другому - много вариантов - сетка из ордеров с повышением лота один из них, который, судя по всему, вы имеете ввиду, не заложен в этот код - в этом коде только одноордерное исполнение торгов с увеличением лотов при закрытии в минус и то не совсем корректное.
Под "Мартинами" считают много версий с перерасчетом лотов, но вариации работают по разным алгоритмам.
 

aulrih

Активный участник
Как в вашем понятии должен работать "Мартингейл"? Он изначально работает так: ставка в минус- увеличиваем следующую ставку в N раз (одна ставка на каждый раз!). И не важно в какую сторону - уже думать надо или считать.
Многоуровневый мартин (это уже не стандартный, а модификация для форекса) работает совсем по-другому - много вариантов - сетка из ордеров с повышением лота один из них, который, судя по всему, вы имеете ввиду, не заложен в этот код - в этом коде только одноордерное исполнение торгов с увеличением лотов при закрытии в минус и то не совсем корректное.
Под "Мартинами" считают много версий с перерасчетом лотов, но вариации работают по разным алгоритмам.
Вы совершенно правы, именно так работает мартин в данном советнике: одноордерное исполнение с увеличением ордеров на заданный лот в случае предыдущего закрытия в стоплосс. Но почему-то именно данный мартин не дает советнику торговать: советник открывает только один лот, а после закрытия самой первой позиции в стоплосс - не открывает новые позиции. В случае отмены работы мартина (все размеры лотов одинаковые) - советник прекрасно работает, открывая каждый раз после стоплосса новые позиции (за что спасибо loki177, так как до его доработки советник вообще отказывался торговать).
 

gek

Элитный участник
Вы совершенно правы, именно так работает мартин в данном советнике: одноордерное исполнение с увеличением ордеров на заданный лот в случае предыдущего закрытия в стоплосс. Но почему-то именно данный мартин не дает советнику торговать: советник открывает только один лот, а после закрытия самой первой позиции в стоплосс - не открывает новые позиции. В случае отмены работы мартина (все размеры лотов одинаковые) - советник прекрасно работает, открывая каждый раз после стоплосса новые позиции (за что спасибо loki177, так как до его доработки советник вообще отказывался торговать).
Так должен?
 

Вложения

  • 2020-08-03.png
    2020-08-03.png
    128,8 КБ · Просмотры: 209

AlexeNP

Гуру форума
Вы совершенно правы, именно так работает мартин в данном советнике: одноордерное исполнение с увеличением ордеров на заданный лот в случае предыдущего закрытия в стоплосс. Но почему-то именно данный мартин не дает советнику торговать: советник открывает только один лот, а после закрытия самой первой позиции в стоплосс - не открывает новые позиции. В случае отмены работы мартина (все размеры лотов одинаковые) - советник прекрасно работает, открывая каждый раз после стоплосса новые позиции (за что спасибо loki177, так как до его доработки советник вообще отказывался торговать).
ну, в нем отсутствует проверка на достаточность средств для открытия позиции... это может быть причиной... размеры лотов тоже могут не соответствовать требуемым
 

vladradon

Программист
Вы совершенно правы, именно так работает мартин в данном советнике: одноордерное исполнение с увеличением ордеров на заданный лот в случае предыдущего закрытия в стоплосс. Но почему-то именно данный мартин не дает советнику торговать: советник открывает только один лот, а после закрытия самой первой позиции в стоплосс - не открывает новые позиции. В случае отмены работы мартина (все размеры лотов одинаковые) - советник прекрасно работает, открывая каждый раз после стоплосса новые позиции (за что спасибо loki177, так как до его доработки советник вообще отказывался торговать).
ну, в нем отсутствует проверка на достаточность средств для открытия позиции... это может быть причиной... размеры лотов тоже могут не соответствовать требуемым
Действительно: когда тестируете в тестере, все изначальные условия торговли работают на основе условий текущего счета (реальный или демо - не важно). Покажите что пишет в журнале - так будет понятнее.
 

aulrih

Активный участник
ну, в нем отсутствует проверка на достаточность средств для открытия позиции... это может быть причиной... размеры лотов тоже могут не соответствовать требуемым
Да, но я использую стандартные настройки, по которым раньше велась торговля советником. В общем, я так и не понял, какого хэ он перестал использовать мартин, т.к. вижу, что у всех, кроме меня он работает :(
 

AlexeNP

Гуру форума
Да, но я использую стандартные настройки, по которым раньше велась торговля советником. В общем, я так и не понял, какого хэ он перестал использовать мартин, т.к. вижу, что у всех, кроме меня он работает :(
ну, навскидку - размер лота рассчитывается примерно так
лот:
   double lot_min=SymbolInfoDouble(NULL,SYMBOL_VOLUME_MIN),
          lot_max=SymbolInfoDouble(NULL,SYMBOL_VOLUME_MAX),
          lot_step=SymbolInfoDouble(NULL,SYMBOL_VOLUME_STEP);
    
    cur_lot=0;//текущий лот чему-то должен быть равен

   if(cur_lot<lot_min)
      cur_lot=lot_min;
   if(cur_lot>lot_max)
      cur_lot=lot_max;
   int step=(int)((cur_lot-lot_min)/lot_step);
   cur_lot=lot_min+step*lot_step;

а открытие позиции должно выглядеть примерно так:
OrderSend:
Buy

if(AccountFreeMarginCheck(NULL,OP_BUY,volume)>0)
            int ticket=OrderSend(NULL,OP_BUY,volume,price,slippage,stoploss,takeprofit,NULL,MagicNumber,NULL,clrBlue);
            
Sell
if(AccountFreeMarginCheck(NULL,OP_SELL,volume)>0)
            int ticket=OrderSend(NULL,OP_SELL,volume,price,slippage,stoploss,takeprofit,NULL,MagicNumber,NULL,clrRed);

не будет этого в советнике - мы сможем предполагать все что угодно, от нарушения анизатропности реликтового излучения, до состояние объекта, при котором он не соответствует хотя бы одному из требований нормативно-технической и (или) конструкторской (проектной) документации.
 

vladradon

Программист
я использую стандартные настройки, по которым раньше велась торговля советником. В общем, я так и не понял, какого хэ он перестал использовать мартин, т.к. вижу, что у всех, кроме меня он работает
Там, по-хорошему, пол кода надо переписывать - бурелом еще тот. Удачи!;)
 

marakano

Интересующийся
Очень прошу добавите в этот сеточник функцию реверса для ордеров. Т.е. там где должно быть бай чтоб был в селл и наоборот соответственно ! С меня жирный плюс в карму !
 

Вложения

  • GRIDea.mq4
    22,8 КБ · Просмотры: 34
Верх