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

Рейтинг 2146



РЕКОМЕНДУЮ




Лучшее от Mikhail64



Советник по коробке Комментариев 19
2017-05-31 04:54:00Рейтинг 0

Сеточный советник Комментариев 6
2017-07-04 14:44:32Рейтинг 0

Советник сетка стоповыми ордерами + мартин

открытие рынка в понедельник строится шаг N пунктов выставляются стоповые ордера выше цены бай стоп ниже цены селл стоп минимальным лотом 0.01. Я бы назвал эту торговлю на пробой ценавых корредоров которые определяет шаг сетки пока цена пробивается от одного края к другому используем мартин на скринах шаг за шагом постарался объяснить весь алгоритм действий

настройки лот
N шаг сетки

стопов нет ордера закрываются на открытие следующих<a
профит нет
  • 0
  • Просмотров: 3190
  • 1 августа 2017, 09:24
  • Mikhail64
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
Еще текстом опишите весь алгоритм подробнее
avatar

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

  • 1 августа 2017, 17:26
+
0
Попробую. Начало недели. от открытия рынка выставляются отложеные ордера
на расстояние N я бы назвал ценавым корредором при срабатывание стоп ордера в обратном направлении на расстояии N устанавливаем ордер улвоенным лотом если цена развернулась и сработал удвоенный стоп ордер то тот который был открыт до открытия удвоенного надо закрыть а на его место ставить удвоенный
тоесть на пробой верхней и нижней граници ценавого коредора должен работать
мартин но предыдущие ордера должны закрываться в работе всегда должен находится 1 ордер если цена выходит за граници следущего ценавого коридора ордер должен быть стартовым ион сработал также предыдущий надо закрыть а на его место ставить стоповый ордер в обратном направлении и работа будет идти уже в следующим ценовом корредоре и так далее тейков нет стопов нет при правильном мм и ширине корредора будем забирать весь тренд и глубокие откаты
Что не понятно спрашивайте.
avatar

  3  Mikhail64 Автор Сообщений: 30

  • 1 августа 2017, 19:05
+
0
Начну сейчас, хоть и тз сплошняком без абзацев, скрины неразборчивые. Сов такой же будет :D 
avatar

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

  • 1 августа 2017, 19:19
+
0
ну плохо я излагаю свои мысли я думаю все получится руками торгую все
:) нормально
avatar

  3  Mikhail64 Автор Сообщений: 30

  • 1 августа 2017, 19:34
+
0
Тогда пошагово.

1. Ставим отложки на расстоянии от цены:



2. Сработал селл, что дальше?

avatar

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

  • 1 августа 2017, 19:52
+
0
бай стоп 0.01 надо модефицировать в бай стоп 0.02
avatar

  3  Mikhail64 Автор Сообщений: 30

  • 1 августа 2017, 19:56
+
0
И одновременно выставить селлстоп 0.01?
avatar

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

  • 1 августа 2017, 19:58
+
0
и точно на таком же расстоянии селл стоп 0.01
avatar

  3  Mikhail64 Автор Сообщений: 30

  • 1 августа 2017, 19:58
+
0
да
avatar

  3  Mikhail64 Автор Сообщений: 30

  • 1 августа 2017, 19:59
+
0
Есть, дальше?

avatar

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

  • 1 августа 2017, 20:20
+
0
если сработает селл стоп 0.01 открытый ордер закрываем а на его место ставим бай стоп 0.02
если сработает бай стоп 0.02 открытый селл стоп закрываем а на его место ставим
селл стоп 0.04
avatar

  3  Mikhail64 Автор Сообщений: 30

  • 1 августа 2017, 20:26
+
0
Вот версия наиболее близкая к последнему комменту:




//+------------------------------------------------------------------+
//|                                                          Net.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 Lots      = 0.1; // объем позиции
extern double KLot      = 2;   // увеличение лота
extern double MaxLot    = 5;   // максимальный лот
extern int StopLoss     = 0;   // стоп лосс ордера
extern int TakeProfit   = 0;   // тейк профит ордера
extern int Slip         = 30;  // реквот
extern int Delta        = 200; // расстояние от цены
extern int Magic        = 123; // магик

bool one=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

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

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price,double lot)
  {
   int    r=0;
   color clr=clrNONE;
   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,lot,NormalizeDouble(price,Digits),Slip,sl,tp,"",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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountOrders(int type)
  {
   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()==type) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;

   for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            lot=OrderLots();
            break;
           }
        }
     }
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double HLot()
  {
   double lot=Lots;

   for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            lot=OrderLots();
            break;
           }
        }
     }
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int DealType()
  {
   int type=8;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) type=OrderType();
            break;
           }
        }
     }
   return(type);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int HDealType()
  {
   int type=8;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) type=OrderType();
            break;
           }
        }
     }
   return(type);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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 DelOrder()
  {
   bool del;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()>1) del=OrderDelete(OrderTicket());
           }
        }
     }
   return;
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(CountTrades()>1)
     {
      CloseAll();
      DelOrder();
      one=true;
     }

   if(CountTrades()<1)
     {
      if(HDealType()==1 || HDealType()==8)
        {
         if(CountOrders(4)<1) PutOrder(4,Bid+Delta*Point,HLot()*KLot);
         if(CountOrders(5)<1) PutOrder(5,Bid-Delta*Point,HLot());
        }

      if(HDealType()==0 || HDealType()==8)
        {
         if(CountOrders(4)<1) PutOrder(4,Bid+Delta*Point,HLot());
         if(CountOrders(5)<1) PutOrder(5,Bid-Delta*Point,HLot()*KLot);
        }
     }

   if(CountTrades()>0 && one)
     {
      DelOrder();

      if(DealType()==1)
        {
         if(CountOrders(4)<1) PutOrder(4,Bid+Delta*Point,Lot()*KLot);
         if(CountOrders(5)<1) PutOrder(5,Bid-Delta*Point,Lot());
        }

      if(DealType()==0)
        {
         if(CountOrders(4)<1) PutOrder(4,Bid+Delta*Point,Lot());
         if(CountOrders(5)<1) PutOrder(5,Bid-Delta*Point,Lot()*KLot);
        }

      one=false;
     }
     
   Comment("\n Deal Type: ",DealType(),
           "\n History Deal Type: ",HDealType(),
           "\n History Deal Lot: ",HLot());
  }
//+------------------------------------------------------------------+

avatar

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

  • 1 августа 2017, 21:12
+
0
Андрей, что то не так, селл стоп закрылся значит должен был открыться следущий селл стоп 0.1 там где селл стоп 0.2 должен селл стоп 0.1 где бай стоп 0.4 должен 0.2
avatar

  3  Mikhail64 Автор Сообщений: 30

  • 1 августа 2017, 21:34
+
0
То что можно было быстро сделать сделал, дальше к платному.
avatar

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

  • 1 августа 2017, 22:04
+
0


схематично я думаю понятно где и когда открываются ордера
avatar

  3  Mikhail64 Автор Сообщений: 30

  • 1 августа 2017, 22:24
+
0
Подобная картинка сэкономила бы мне уйму времени и сил. Далее уже не ко мне.
avatar

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

  • 1 августа 2017, 22:32
+
0
Спасибо что не отказал
avatar

  3  Mikhail64 Автор Сообщений: 30

  • 1 августа 2017, 22:28
+
0
руками торговать буду
avatar

  3  Mikhail64 Автор Сообщений: 30

  • 1 августа 2017, 22:31
+
0
Если прибыльно почему к платному не обращаешься?
avatar

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

  • 1 августа 2017, 22:34
+
0
потому что конци с концами ели свожу
avatar

  3  Mikhail64 Автор Сообщений: 30

  • 1 августа 2017, 22:36
+
0
Здесь есть в базе подобные системы и мои и Оксаны. Моя HedgeMartin называется.
Редактирован: 3 августа 2017, 21:50
avatar

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

  • 1 августа 2017, 23:36

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