Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ




Лучшее от ilyask



Трендовый советник Комментариев 8
2020-01-06 13:33:18Рейтинг 0

Добавить функцию мартингеил в советник

После убыточного ордера, лот последующего умножается на LotExponent, указанного в параметрахGood_Day_v1.00.mq4 (55 Kb)
  • 0
  • Просмотров: 2111
  • 30 марта 2016, 17:01
  • ilyask
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Исправить Советник на TrendWave
Следующая запись в группе  
Поправить советник
30 марта 2016
30 марта 2016

Брокер для ваших роботов, 15 лет на рынке

Комментарии (6)

+
0
Попробовал сделать, как было сказано в данном топике mql.opentraders.ru/1663.html, но ничего не вышло.
<img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; 
Редактирован: 30 марта 2016, 17:05
avatar

  5  ilyask Автор Сообщений: 22

  • 30 марта 2016, 17:04
+
0
Можете снять эту функцию с советника который делал вчера: www.opentraders.ru/downloads/1120/
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 30 марта 2016, 17:19
+
0
Я сейчас посмотрел советник, могу написать упрощенный вариант по ТЗ с необходимой вам функцией.
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 30 марта 2016, 20:06
+
0
Попробуйте написать, я в MQL толком не разбираюсь:) , Код, который вы приктрепили, если вставить в советник, то он начнет открывать сделки по принципу, или же нужно коректировать исходный код советника?
avatar

  5  ilyask Автор Сообщений: 22

  • 31 марта 2016, 07:00
+
+1
В коде есть эта функция, если вы хорошо ориентируетесь в этом коде, добавляйте в функции открытия ордеров.


//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+  
// функция мартингейла
double newLotsMartingail(int magic=-1)
  {
   datetime tim=0;
   double lastProfit=0.0;
   double lastLots=0.0;
   for(i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
         continue;
      if((OrderSymbol()==Symbol())
         && OrderCloseTime()>tim
         && ((OrderMagicNumber()==magic) || (magic==-1)))
        {
         tim=OrderCloseTime();
         lastProfit=OrderProfit();
         lastLots=OrderLots();
        }
     }
/* Если последняя сделка по текущему символу была убыточна, то возвращаем ёё объём, умноженный на два;
 иначе возвращаем начальный объём (extern int Lots) */
   double resultLots=0.0;
   if(lastProfit<0)
      resultLots=lastLots*2;
   else
      resultLots=Lots;
   resultLots=MathRound(resultLots/MarketInfo(Symbol(),MODE_LOTSTEP))*MarketInfo(Symbol(),MODE_LOTSTEP); // приводим к нужному числу знаков
   resultLots = MathMin(resultLots, MarketInfo(Symbol(), MODE_MAXLOT));
   resultLots = MathMax(resultLots, MarketInfo(Symbol(), MODE_MINLOT));

   resultLots=Lots;
// ---
   return(resultLots);
  }
//+------------------------------------------------------------------+
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 30 марта 2016, 20:25
+
0
Попробуйте написать, я в MQL толком не разбираюсь , Код, который вы приктрепили, если вставить в советник, то он начнет открывать сделки по принципу, или же нужно коректировать исходный код советника?


Я пробовал сделать, но советник у меня так и не запустился. Напишите ТЗ, если советник будет простым, сделаю с нуля.
Редактирован: 31 марта 2016, 10:01
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 31 марта 2016, 09:57

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