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

Рейтинг 2148



РЕКОМЕНДУЮ




Лучшее от MIHA7000000



канал регрессии Комментариев 2
2016-08-30 19:29:55Рейтинг 0

советник

Здравствуйте ТЗ такое 1) ставим две линии на график одна выше цены другая ниже 2) отмечаем их в параметрах советника 3) цена КАСАЕТСЯ верх линии открывается buy 0.01 4) цена КАСАЕТСЯ нижн линии открывается sell 0.01 5) при каждом КАСАНИИ добавляется 0,01 buy или sell 6) ВАЖНО так происходит до тех пор пока цена не дотянется до тейк профита в одну или другую сторону (выше или ниже линии) 7) стоп лосс приказа не будет тейк профит один к примеру +1 доллар все ранее открытые позы закрываются 8) что бы можно было работать как на четырёх так и на пяти знаках 9) другие варианты не катят СПАСИБО в параметрах советника; 1) лот = 2) верхняя линия = 3) нижняя линия = 4) t/p =
  • 0
  • Просмотров: 2598
  • 30 марта 2017, 10:27
  • MIHA7000000
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
чуть не так обозначаем верх линию как трендовая линия UP= нижнею как Down=
avatar

  8  MIHA7000000 Автор Сообщений: 53

  • 30 марта 2017, 10:46
+
0
Подобные вещи я делал здесь, только без линий, это различные варианты Hedge Martin.
avatar

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

  • 30 марта 2017, 17:02
+
0
и я делала, у меня было с линиями — когда в столе заказов замещала AM2: здесь лежит
avatar

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

  • 30 марта 2017, 17:32
+
0
без линий это просто от цены? если так разницы ни какой только я не корректно задание написал. надо вот так допустим вверх пошла цена buy 0.01 вниз sell 0.02 buy 0.03 sell 0.04 и т.д пока не вырвется и не дойдёт до t/p (а патом наступает самый прекрасный момент когда депо пусть на не много становится больше)
avatar

  8  MIHA7000000 Автор Сообщений: 53

  • 30 марта 2017, 17:43
+
0
то что мне надо я не увидел СПАСИБО
avatar

  8  MIHA7000000 Автор Сообщений: 53

  • 30 марта 2017, 18:03
+
0
Нарисуйте еще на скринах, я помотрю возьмусь я за такой алгоритм или нет.
avatar

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

  • 30 марта 2017, 19:53
комментарий был удален 2017-03-30 21:37:22 MIHA7000000

+
0
avatar

  8  MIHA7000000 Автор Сообщений: 53

  • 30 марта 2017, 21:43
+
0
В выходные набросаю с линиями.
avatar

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

  • 31 марта 2017, 17:36
+
0
avatar

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

  • 31 марта 2017, 21:05
+
0
спасибо огромное после выходных запущу на демо
avatar

  8  MIHA7000000 Автор Сообщений: 53

  • 1 апреля 2017, 10:32
+
0
посмотрел в тестере закрываются минусовые сделки а их не должно быть суть советника закрывать только + на вскидку ошибка в том что после профита открывается сделка а в задании берём профит и всё закрываем СПАСИБО
avatar

  8  MIHA7000000 Автор Сообщений: 53

  • 1 апреля 2017, 12:16
+
0
Cделал отключаемую торговлю после профита:

extern bool AfterTrade = true; // After profit tading




//+------------------------------------------------------------------+
//|                                                  ProfitLines.mq4 |
//|                                              Copyright 2017, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, 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 double MaxLot       = 5;        // Maximum Lot 
extern double Stop         = 3000;     // Stop in querency
extern double Profit       = 30;       // Profit in querency
extern int Slip            = 3;        // Slippage
extern int Magic           = 123;      // Magic number
extern bool AfterTrade     = true;     // After profit tading

bool trade=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   PutHLine("UP",Bid+200*Point,Red);
   PutHLine("DN",Bid-200*Point,Blue);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

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

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
     }

   r=OrderSend(NULL,type,Lots(),NormalizeDouble(price,Digits),Slip,0,0,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lots()
  {
   double lot=Lot;
   if(CountTrades()>0) lot=NormalizeDouble(Lot*MathPow(KLot,CountTrades()),2);
   if(lot>MaxLot)lot=Lot;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Профит всех ордеров по типу ордера                               |
//+------------------------------------------------------------------+
double AllProfit(int ot=-1)
  {
   double pr=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               pr+=OrderProfit()+OrderCommission()+OrderSwap();
              }

            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               pr+=OrderProfit()+OrderCommission()+OrderSwap();
              }
           }
        }
     }
   return(pr);
  }
//+------------------------------------------------------------------+
//| Закрытие позиции по типу ордера                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Горизонтальная линия                                             |
//+------------------------------------------------------------------+
void PutHLine(string name,double p,color clr)
  {
   ObjectDelete(0,name);
   ObjectCreate(0,name,OBJ_HLINE,0,0,p);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
  }
//+------------------------------------------------------------------+
//| Тип последней сделки                                             |
//+------------------------------------------------------------------+
int LastDealType()
  {
   int type=0;
   if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         if(OrderType()>0)
           {
            type=1;//sell  
           }
        }
     }
   return(type);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double up=ObjectGetDouble(0,"UP",OBJPROP_PRICE);
   double dn=ObjectGetDouble(0,"DN",OBJPROP_PRICE);

   if(AllProfit()>Profit || AllProfit()<-Stop || (CountTrades()>5 && AllProfit()>0))
     {
      CloseAll();
      if(!AfterTrade) trade=false;
     }

   if(trade)
     {
      if(Ask>up && LastDealType()>0) PutOrder(0,Ask);
      if(Bid<dn && LastDealType()<1) PutOrder(1,Bid);
     }

   Comment("\n UP: ",up,
           "\n DN: ",dn,
           "\n Lot: ",Lots(),
           "\n Type: ",LastDealType(),
           "\n Trades: ",CountTrades(),
           "\n All Profit: ",NormalizeDouble(AllProfit(),2),
           "\n Buy Profit: ",NormalizeDouble(AllProfit(0),2),
           "\n Sell Profit: ",NormalizeDouble(AllProfit(1),2));
  }
//+------------------------------------------------------------------+


Редактирован: 1 апреля 2017, 14:41
avatar

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

  • 1 апреля 2017, 14:38
+
0
А почему он когда ставишь на график если цена идет вниз и пересекает нижнюю линию открывает первую сделку, а если цена идет вверх и пересекает верхнюю красную линию, то сделка не открывается?
avatar

  3  prizrak56 Сообщений: 19 - Prizrak

  • 24 апреля 2017, 12:45
комментарий был удален 2017-04-02 13:07:08 MIHA7000000

комментарий был удален 2017-04-02 13:07:18 MIHA7000000


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