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

Рейтинг 2073



РЕКОМЕНДУЮ



Полуавтоматический советник по сопровождению открытой позиции.

Здравствуйте, прошу, Вас, написать полуавтоматический торговый советник, по выводу открытой позиции из просадки, в безубыток.
Правила и принцип работы ТС: «Breakeven»
1) Первый ордер мы открываем самостоятельно, вручную.
2) ТР и SL отсутствуют.
3) Без индикаторов и осцилляторов.
4) Нам нужно будет:
а) локирующий ордер.
Б) TSL, с одинаковыми параметрами, на все открытые позиции.
В) BUPoint уровень безубыточности.
Г) все мелкие составляющие: магик, Slip, BULevel, TSLstart и TSLstеp.
д) алерты.

Если, после открытия позиции, предположим SELL 1, цена пошла в нашу сторону, то просто её тралим, если против, то через N количество пунктов открывается локирующий ордер BUY 1 с объёмом ордера SELL 1. У нас получается как бы «канал» с границами на ордере SELL 1 и ордере BUY 1, и если цена вернулась в «канал» и TSL или BUPoint у ордера BUY 1 не успел сработать, то и Бог с ней, советник должен ждать выхода цены из «канала» (не важно в какую сторону) и отработки TSL или BUPoint. Далее, два варианта развитие ситуации:
1. Цена продолжила движение в сторону BUY 1, у которого активируется TSL или BUPoint c заданными параметрами. Как только цена развернулась и TSL или BUPoint сработал, закрыв ордер BUY 1, сразу же открывается два ордера: ордер SELL 2 по рынку, (на месте закрытия ордера BUY 1), с таким же лотом как у SELL 1 (не нужно мартышки), а закрывшийся ордер BUY 1, переносится, как новый отложенный локирующий ордер BUY 1 на расстоянии N пунктов от отработанного уровня, с объёмом лота, уже, SELL 1 + SELL 2. И далее три варианта развития ситуации:
а) Советник сразу определяет и показывает уровень безубыточности по двум открытым ордерам SELL 1 и SELL 2, при достижении и ПРОХОДЕ которого, так же должен включиться TSL и BUPoint, при срабатывание которых, все ордера удаляются и советник будет ждать, открытия новых позиций.
б) Цена не дошла до уровня безубыточности, а У ордера SELL 2 уже активировался TSL или BUPoint, и ордер SELL 2 закрылся по ним, то отложенный локирующий ордер BUY 1, с объёмом лота SELL 1 + SELL 2, ЗАКРЫВАЕТСЯ, и сразу же открывается по рынку, на месте закрытия ордера SELL 2, с объёмом лота опять как у SELL 1. Получается, что мы возвращаемся к первоначальному состоянию «каналов», но уже немного суженого и с плюсом на баланс, от BUY 1 и SELL 2.
в) Цена пошла в сторону отложенного ордера BUY 1, не активировав TSL или BUPoint ордера SELL 2, то ЦИКЛ ПОВТОРЯЕТСЯ ЗАНОВО: у ордера BUY 1 активируется и СРАБАТЫВАЕТ TSL или BUPoint, закрыв ордер BUY 1 и сразу же открываются два новых ордера: следующий ордер SELL 3 по рынку, с объёмом как и SELL 1,(на уровне отработанного ордера BUY 1) и опять выставляется НОВЫЙ отложенный локирующий ордер BUY 1, с объёмом уже SELL 1 + SELL 2 + SELL 3, на расстоянии N пунктов от отработанного уровня. Мы опять возвращаемся к первоначальному состоянию «каналов», но с границами от уровня безубыточности ордеров SELL 1 + SELL 2 + SELL 3 и ордера BUY 1, с плюсом на баланс от закрывшегося ордера BUY 1, ну и с нагрузкой на депозит конечно.
Поэтому прошу, Вас, в параметрах настройки, поставить ограничение на открытие ордеров в первоначальном направлении (в данном случае SELL), на N количество, где 0, это запрет на выставление дополнительных ордеров.
2.Второе развитие ситуации, Цена развернулась и пошла в сторону SELL 1, то всё срабатывает в зеркальном порядке, уже открываются BUY 2, BUY 3… и так далее.

Некоторые моменты по ТС:
1) Советник должен контролировать все свои ордера, все ордера открытые вручную и если нетрудно, все открытые ордера других советников, (ВКЛ/ВКЛ) эту функцию.
2) Советник должен видеть объём первоначально открытой позиции, а так же объёмы других открытых позиций и рассчитывать уровень безубыточности по ним.
3) Уровень безубыточности должен учитывать спред.
4) Показывать уровень безубыточности, а так же уровень где должен открыться отложенный ордер.
5) Не выставлять отложенный ордер заранее, а держать его в «уме» и заходить с рынка, при достижении уровня открытия, (ВКЛ/ВЫКЛ) эту функцию.
6) Если не трудно, то вывести всю информацию на экран как то: состояние всех подконтрольных ордеров в пунктах/депозите и общий баланс в пунктах/депозите.

Вроде бы всё, если, что то подзабыл, то добавлю, а если, что то непонятно написал, то спрашивайте. Вроде не размазывал а вышло много.

P.S. Хочу добавить, что эта система не «слизана» откуда то и не «высосана из пальца», а разрабатывалась мною, как говориться, «кровью и потом» на «живые деньги», на «живом депозите», на реальном счёте, когда мне, ну очень не хотелось и без того маленький депозит, отдавать брокеру и я его не отдал, а вывел депозит в безубыток + ребете. Конечно я понимаю, что «изобрёл велосипед», но таких систем я не встречал и поэтому если, Вы, хотели бы добавить в неё, что то стоящее, то я буду только ЗА! А если, Вы, возьмётесь написать автомат, то в последствии, на базе, Вашего, кода, можно будет сделать и полноценный советник, только с параметрами входа разобраться надо.
Заранее Благодарен.
  • +1
  • Просмотров: 8311
  • 13 июля 2016, 18:03
  • s772008
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Объем большой, могу сделать только небольшую часть.
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 13 июля 2016, 18:37
+
0
Здравствуйте, Андре, а какую часть? Если по исполнению ордеров, то хорошо, а так то я просто старался более подробно описать СТ, так что бы было более понятно. А сколько, Вам, нужно времени, я столько и подожду, главное не скорость, а качество.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 13 июля 2016, 18:50
+
0
Мне здесь оплачивается небольшой объем работы, затрачивать много времени и сил мне неинтересно.
Могу сделать примерно такой простой вариант. Работа с одним ордером плюс лок к нему, и трал бу.
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 13 июля 2016, 18:59
+
+1
Что же, согласен.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 13 июля 2016, 19:01
+
0
Завтра начну делать.
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 13 июля 2016, 19:08
+
0
Спасибо. Буду ждать.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 13 июля 2016, 19:11
+
0
Ааааа уже интересная штука получилась!




//+------------------------------------------------------------------+
//|                                                        Hedge.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2."
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lot          = 0.1;      // Trade volume
extern double KLot         = 2;        // Lot increase
extern int StopLoss        = 0;        // Order sroploss
extern int TakeProfit      = 0;        // Order takeprofit
extern int TrailingStop    = 100;      // Trailing stop
extern int TrailingStep    = 20;       // Trailing step
extern int BuySell         = 0;        // 0-OFF. 1-Buy. 2-Sell.
extern int BULevel         = 0;        // Zero Level
extern int BUPoint         = 30;       // Zero Points
extern int Delta           = 100;      // Distance from the price
extern int Slip            = 3;        // Slippage
extern int Magic           = 123;      // Magic number
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0) sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0) sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lots(),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int FindOrderType()
  {
   int oticket,ticketNumber=0,type=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            oticket=OrderTicket();
            if(oticket>ticketNumber)
              {
               ticketNumber=oticket;
               type=OrderType();
              }
           }
        }
     }
   return(type);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double FindLastBuyPrice()
  {
   int oticket,ticketNumber=0;
   double oprice=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
            oticket=OrderTicket();
            if(oticket>ticketNumber)
              {
               ticketNumber=oticket;
               oprice=OrderOpenPrice();
              }
           }
        }
     }
   return(oprice);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double FindLastSellPrice()
  {
   int oticket,ticketNumber=0;
   double oprice=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
            oticket=OrderTicket();
            if(oticket>ticketNumber)
              {
               ticketNumber=oticket;
               oprice=OrderOpenPrice();
              }
           }
        }
     }
   return(oprice);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderType()==OP_BUY)
           {
            if(Bid-OrderOpenPrice()>TrailingStop*Point)
              {
               if(OrderStopLoss()<Bid-(TrailingStop+TrailingStep-1)*Point)
                 {
                  mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                  return;
                 }
              }
           }

         if(OrderType()==OP_SELL)
           {
            if((OrderOpenPrice()-Ask)>TrailingStop*Point)
              {
               if(OrderStopLoss()>Ask+(TrailingStop+TrailingStep-1)*Point || OrderStopLoss()==0)
                 {
                  mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                  return;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void BU()
  {
   bool m;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               if(OrderOpenPrice()<=(Bid-(BULevel+BUPoint)*Point) && OrderOpenPrice()>OrderStopLoss())
                 {
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+BUPoint*Point,OrderTakeProfit(),0,Yellow);
                  return;
                 }
              }

            if(OrderType()==OP_SELL)
              {
               if(OrderOpenPrice()>=(Ask+(BULevel+BUPoint)*Point) && (OrderOpenPrice()<OrderStopLoss() || OrderStopLoss()==0))
                 {
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-BUPoint*Point,OrderTakeProfit(),0,Yellow);
                  return;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lots()
  {
   double lot=Lot;
   if(CountTrades()>0)
     {
      for(int i=OrdersTotal()-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
           {
            if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
              {
               lot=OrderLots()*KLot;
              }
           }
        }
     }
   return(lot);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(BULevel>0) BU();
   if(TrailingStop>0) Trailing();

// первая поза

   if(BuySell==1)
     {
      if(CountTrades()<1) PutOrder(0,Ask);
     }

   if(BuySell==2)
     {
      if(CountTrades()<1) PutOrder(1,Bid);
     }

// 2-я поза

   if((FindLastBuyPrice()-Ask)/Point>=Delta && FindOrderType()==0)
     {
      if(CountTrades()==1) PutOrder(1,Bid);
     }

   if((Bid-FindLastSellPrice())/Point>=Delta && FindOrderType()==1)
     {
      if(CountTrades()==1) PutOrder(0,Ask);
     }
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 13 июля 2016, 21:19
+
0
Я и не сомневался, так как делал всё это в ручную.И по логике вещей он точно так же может зарабатывать и в профите. Естественно нужно дальше разрабатывать.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 13 июля 2016, 21:24
+
0
Гоняйте и пишите что еще добавить, какой нибудь простенький пунктик.
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 13 июля 2016, 21:41
+
0
На картинках нагляднее, быстрее понять суть можно будет. Пока вникаю.

avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 13 июля 2016, 22:29
+
0
Нет, нет Андрей, меня кстати Сергей звать, это совсем не то. Цену надо загонять во внутрь канала и сужать его и добиваться, что бы канал из отрицательного перешёл в положительный баланс. А здесь он только расширяется.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 13 июля 2016, 22:38
+
0
Нет, нет Андрей, меня кстати Сергей звать, это совсем не то. Цену надо загонять во внутрь канала и сужать его и добиваться, что бы канал из отрицательного перешёл в положительный баланс. А здесь он только расширяется.
Я сейчас прикину как проще пояснить систему, правда голова уже болит, два дня из компа не вылезаю.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 13 июля 2016, 22:41
+
0
Вот, объясню по другому, я так начинал работать с системой. Когда открывается локирующий ордер, мы как бы останавливаем рост убытка и когда срабатывает тралл у локирующего ордера, то это значит, что цена возвращается к убыточному ордеру, а значит идёт сокращение убытка. Так зачем нам заново открывать локирующий ордер, лучше открыть ордер в том же направлении, что и убыточный и тогда уровень безубыточности к нам резко приблизится и взять прибыль будет гораздо проще. А для страховки сделать отложенный локирующий ордер, чуть подальше от цены. Это основа системы, можно и не открывать ордер в том же направлении, но и локирующий сразу ставить нельзя и тогда цена потихоньку дойдёт до безубыточности, так как сработаный тралл у локирующего ордера, что то плюсанёт на депозит. Примерно вот так.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 13 июля 2016, 23:47
+
0
Нарисуйте на картинке всю последовательность шагов. Я на своем рисунке нарисовал так как у вас в ТЗ. Если вы торгуете иначе, изобразите все это примерно так как я это сделал или покажите все ваши сделки на графике, может быть так будет понятнее.
Редактирован: 14 июля 2016, 07:34
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 14 июля 2016, 07:29
+
0
Гонял на всех участках, за сотню сделок всегда профит.
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 13 июля 2016, 21:30
+
0
Да, в ручную такого не добьёшься, но я всё таки опасался, что робот он и есть «железо» которое работает по строгому алгоритму и что результат будет хуже, но Вы, развеяли мои сомнения.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 13 июля 2016, 21:35
+
0
Попытался приблизиться к ТЗ, но все равно без грамотного задания где будет все четко ясно и наглядно делать нечего: www.opentraders.ru/downloads/1252/

avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 14 июля 2016, 11:38
+
0
Доброе утро, Андрей, я уже занимаюсь этим вопросом. Рисовать не умею, поэтому долго, но дело продвигается и рисунки с пояснениями, как оформлю, выложу.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 14 июля 2016, 12:10
+
0
Объем работы большой, а за то что нельзя быстро сделать я не берусь и так уже второй день с ним сижу и не продвигается толком ничего. Обратитесь лучше к платному.
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 14 июля 2016, 12:18
+
0
Два варианта развития ситуации:
1) цена вышла за границу канала ордера BUY 1
2) цена вернулась в канал и вышла за границу канала ордера SELL 1



Рассмотрим ситуацию номер 1. Возможно 3 варианта развития событий:
А) У ордера BUY 1 сработал TSL и ордер BUY 1 закрывается.
Сразу же с рынка открывается SELL 2, с таким же объемам лота как и SELL 1.
После этого открывается отложенный ордер BUY 1, с расстоянием на N кол. Пунктов от сработанного уровня TSL, с объемом лотов ордеров SELL 1 + SELL 2.
Собсвенно TSL у BUY 1 нам нужен не для того чтобы брать прибыль, а чтобы поймать разворотное движение цены, тоже касается всех TSL.



Далее ждем когда цена пробьет уровень безубыточности, после чего вкл TSL, траллим прибыль, при срабатывании которых отложенный ордер BUY 1 удаляется. Все ждем нового открытия позиции.
Б) Цена не дошла до уровня безубыточности, а у ордера SELL 2 уже активировался TSL и закрылся по нему. Отложенный ордер BUY 1 переносится на уровень закрытия TSL SELL 2 и открывается с рынка с объемом лота ордера SELL 1, так как SELL 2 уже закрылся.



Получается, что мы вернулись к началу развития ситуации 1), но с новыми границами канала SELL 1 и BUY 1. Каналы, как таковые никакую роль не играют, они нужны для лучшего понимания ТС.
B) Цена не активировав TSL ордера SELL 2, а пошла в сторону отложенного ордена BUY 1 и открыла его, то мы возращаемся к ситуации А). Цикл как бы ПОВТОРЯЕТЯ ЗАНОГО от ситуации А):
У сработанного ордена BUY 1 активируется и срабатывает TSL, ордер BUY 1 закрывается, на месте закрытия открывается ордер SELL 3, с объемом лота SELL 1 и выставляется новый отложенный орден BUY 1 с объемом лота SELL 1 + SELL 2 + SELL 3, и т.д. по развитию ситуации А) или Б).



2 ) Цена вернулась в канал и вышла за границу канала ордера SELL 1:
Ситуация развивается зеркальным образом с открытием орденов BUY 2; BUY 3…

Надеюсь, что Вы сейчас увидите, что сама по себе стратегия не сложная, главное в ней, правильный порядок выставление орденов от развития ситуации, вот и все, ну и уровень безубыточности конечно контролировать. Надеюсь, поняв систему вы возьмётесь оформить её в коде. С уважением Сергей.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 14 июля 2016, 16:30
+
0
Надеюсь, поняв систему вы возьмётесь оформить её в коде.

Нет не возьмусь. Чтобы реализовать целиком, нужно уйму времени и сил вбухать, а с этим не ко мне. Я приблизительный вариант в базу скинул и если по вашему ТЗ написать также примерно работать будет.
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 14 июля 2016, 16:49
+
0
Очень жаль. А так, у Вас, получилась обычная «мартышка», которая при хорошем движении, «обескровит» весь депозит и интереса она не представляет.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 14 июля 2016, 20:34
+
0
Андрей, на последок, разрешите, Вас, попросить, вставить в код стандартный индикатор МА, «Moving Average» и что бы советник работал самостоятельно: цена выше МА, на N количество пунктов покупает; цена ниже МА, на N количество пунктов, продаёт. Ну, если конечно, не трудно.
Погоняв советник, со своими параметрами, я, заметил тенденцию: при покупки на восходящем тренде, депозит растёт, а на нисходящем сокращается, а при продаже наоборот. Так, тогда, советнику нужно обозначить направление тренда и возможно, тогда, что нибуть, более менее, стоящее получится.
С уважением, Сергей.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 14 июля 2016, 21:49
+
0
В какой вариант добавить?
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 14 июля 2016, 22:18
+
0
Вот в этот пожалуйста:http://www.opentraders.ru/downloads/1252/. В последний.
За ранее благодарю, Сергей.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 14 июля 2016, 22:53
+
0
Сделал чтобы первую позу открывал на расстоянии от машки: www.opentraders.ru/downloads/1252
А почему на платном не закажете, если стратегия прибыльная?
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 15 июля 2016, 10:48
+
0
Извините, я на сутках, на работе.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 15 июля 2016, 11:44
+
0
Андрей, приветствую! Судя по коду, открывает не по МА, а по установленному входному параметру. Может ссылка на скачивание неправильная в комменте?
// первая поза

   if(BuySell==1)
     {
      if(CountTrades()<1) PutOrder(0,Ask);
     }

   if(BuySell==2)
     {
      if(CountTrades()<1) PutOrder(1,Bid);
     }
avatar

  3  newpvr Сообщений: 17 - Павел

  • 20 июля 2016, 08:26
+
0
Файл наверное не обновился. Проверил перед отправкой: www.opentraders.ru/downloads/1252


      // первая поза

      if(Ask>ma+Points*Point && (BuySell==1 || BuySell==0))
        {
         if(CountTrades()<1) PutOrder(0,Ask);
        }

      if(Bid<ma-Points*Point && (BuySell==2 || BuySell==0))
        {
         if(CountTrades()<1) PutOrder(1,Bid);
        }
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 20 июля 2016, 08:32
+
0
Можно ли авто-открытие ордеров по МА отключать как-то?
Чтобы работало только от открытого вручную ордера — и не открывало первый ордер самостоятельно?
(добавить вкл/откл в параметры, или подсказать, что закомментировать в коде)
Но с сохранением всего алгоритма, т.е. ежели МА используются для других целей (отложки и т.д.), при работе с уже открытыми ордерами — нарушать не надо.

Редактирован: 1 февраля 2017, 15:37
avatar

  11  preasto Сообщений: 445

  • 1 февраля 2017, 15:31
+
0
Здравствуйте Андрей, а где на сайте можно заказать выполнение этой работы и сколько примерно могут запросить, если Вы в курсе конечно.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 22 июля 2016, 18:46
+
+1
У Оксаны от 30 дол. самый простой: oxy.opentraders.ru/bio/,
а здесь как договоритесь, но в среднем от 50 наверное будет: www.mql5.com/ru/job
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 22 июля 2016, 19:44
+
0
Спасибо.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 22 июля 2016, 23:37
+
0
avatar

  27  Oxy Сообщений: 3413 - ..ιllιlι.lι.ιllι.ιlι..

  • 24 июля 2016, 00:54
+
+1
Здравствуйте, Оксана, нет не моё.
avatar

  12  s772008 Автор Сообщений: 56 - s772008

  • 24 июля 2016, 12:32

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