lorik
Лариса

 
Уровень 19

  Торгую в компаниях:


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

Рейтинг 2081



РЕКОМЕНДУЮ



Советник по стратегии "Атака по тренду"

Прошу написать советник по стратегии «Атака по тренду»

Настраиваемые параметры:
-Лот
-СЛ 1ордера
-ТП 1 ордера
-СЛ 2ордера
-ТП 2ордера (0- по максимуму предыдущего дня; любое значение- это кол-во пунктов)
-Время закрытия 3-й свечи
-Начало открытия ордеров (по закрытию свечи на данном времени).

1) Временной интервал 1 час.
2) Валютная пара GBP/USD
3) Единственный используемый индикатор – экспоненциальная скользящая средняя с периодом 96 (ЕМА 96).
4) Все значения в пунктах, даны для 4-х значного брокера (типа Forex4you), для 5-ти значного типа Альпари — все значения нужно умножать на 10.

Описание стратегии:
Вход в рынок на покупку по условиям стратегии форекс «Атака по тренду»:
1) Один торговый день закрылся белой свечей и целиком выше экспоненциальной скользящей средней (отслеживание происходит исключительно на часовом графике). Никаких касаний ЕМА, а тем более пересечений в этот день быть не должно.
2) На следующий торговый день в 08:00 (GMT) открываем 3 ордера на покупку равным объемом. Совокупный риск по всем трем ордерам не должен превышать 5% от Вашего депозита.
1-ый ордер: стоп-лосс – 50 пунктов; тейк-профит – 100 пунктов. На закрытии дня следует переставить ордер в уровень безубыточности (текущий результат не имеет значение).
2-ой ордер: стоп-лосс – 50 пунктов; тейк-профит – на максимуме предыдущего дня или, если к 08:00 (GMT) цена его уже успела переписать, то в этом случае именно последний максимум следует считать целевым уровнем. Минимальный размер тейк-профита по этому ордеру равен 20 пунктам, то есть если расстояние до цели, к примеру, равно 15 пунктов, то следует тейк-профит ставить на расстоянии 20 пунктов.
3-ий ордер не имеет фиксированных значений стоп-лосса и тейк-профита, а закрывается только на закрытии дня.


Вход в рынок на продажу по условиям стратегии форекс «Атака по тренду»:
То же самое в обратном направлении.

Расширенное описание и видео версия на

strategy4you.ru/strategii-foreks-na-osnove-skolzyashhix-srednix/strategy-forex-ataka-po-trendu.html
  • +4
  • Просмотров: 2970
  • 24 ноября 2016, 20:05
  • lorik
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Вечером буду смотреть.
avatar

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

  • 25 ноября 2016, 07:33
+
0
Пока сырой набросок, но уже видно что не грааль. Продолжать?



//+------------------------------------------------------------------+
//|                                                        Ataka.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 Lots       = 0.1;      // лот
extern int StopLoss      = 500;      // лось 
extern int TakeProfit    = 1000;     // язь
extern int EndMin        = 30;       // минута окончания торговли
extern int Slip          = 30;       // реквот
extern int CloseOn       = 1;        // 1-закрытие в конце работы
extern int Magic         = 123;      // магик

bool b=true,s=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price,double sl,double tp)
  {
   int r=0;
   color clr=Green;
   double st=0,tk=0;

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

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

   r=OrderSend(NULL,type,Lots,NormalizeDouble(price,Digits),Slip,st,tk,"",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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
   double ma    = iMA(NULL,0,96,0,1,0,0);
   double open  = iOpen(NULL,PERIOD_D1,1);
   double close = iClose(NULL,PERIOD_D1,1);
   double high  = iHigh(NULL,PERIOD_D1,1);
   double low   = iLow(NULL,PERIOD_D1,1);

   if(open>ma && close>ma && low>ma && b)
     {
      PutOrder(0,Ask,StopLoss,TakeProfit);
      PutOrder(0,Ask,StopLoss,MathMax(high,iHigh(NULL,PERIOD_D1,0)));
      PutOrder(0,Ask,0,0);
      b=false;s=true;
     }

   if(open<ma && close<ma && high<ma && s)
     {
      PutOrder(1,Bid,StopLoss,TakeProfit);
      PutOrder(1,Bid,StopLoss,MathMin(low,iLow(NULL,PERIOD_D1,0)));
      PutOrder(1,Bid,0,0);
      s=false;b=true;
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(CountTrades()<1 && TimeCurrent()>StringToTime("8:00") && TimeCurrent()<StringToTime("23:30")) 
     {
      OpenPos();
     }
   if(TimeCurrent()>StringToTime("23:30")) CloseAll();
  }
//+------------------------------------------------------------------+
avatar

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

  • 25 ноября 2016, 18:17
+
0
Спасибо! Попробуем
avatar

  19  lorik Автор Сообщений: 357 - Лариса

  • 25 ноября 2016, 18:22
+
0
Я просила — Настраиваемые параметры:
-Лот
-СЛ 1ордера
-ТП 1 ордера
-СЛ 2ордера
-ТП 2ордера (0- по максимуму предыдущего дня; любое значение- это кол-во пунктов)
-Время закрытия 3-й свечи
-Начало открытия ордеров (по закрытию свечи на данном времени).

И что за параметр «Минута окончания торговли»?
avatar

  19  lorik Автор Сообщений: 357 - Лариса

  • 25 ноября 2016, 18:34
+
0
В ТЗ слишком много всего, поэтому делаю в максимально упрощенном виде.
avatar

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

  • 25 ноября 2016, 20:08
+
0
Сейчас есть процентов 70 от ТЗ: www.opentraders.ru/downloads/1398/




//+------------------------------------------------------------------+
//|                                                        Ataka.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 Lots       = 0.1;      // лот
extern int StopLoss1     = 300;      // лось 1
extern int StopLoss2     = 500;      // лось 2
extern int TakeProfit1   = 600;      // язь 1
extern int TakeProfit2   = 1000;     // язь 2
extern int Slip          = 30;       // реквот
extern int CloseOn       = 1;        // 1-закрытие в конце работы
extern int Magic1        = 111;      // магик 1
extern int Magic2        = 222;      // магик 2

bool b=true,s=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price,double sl,double tp,int magic)
  {
   int r=0;
   color clr=Green;
   double st=0,tk=0;

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

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

   r=OrderSend(NULL,type,Lots,NormalizeDouble(price,Digits),Slip,st,tk,"",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()==Magic1 || OrderMagicNumber()==Magic2))
           {
            if(OrderType()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseLast(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()==Magic2)
           {
            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);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double ma=iMA(NULL,0,96,0,1,0,1);
   double open  = iOpen(NULL,PERIOD_D1,1);
   double close = iClose(NULL,PERIOD_D1,1);
   double high  = iHigh(NULL,PERIOD_D1,1);
   double low   = iLow(NULL,PERIOD_D1,1);
   
   if(CountTrades()<1 && TimeCurrent()>StringToTime("8:00"))
     {

      if(open>ma && close>ma && low>ma && Ask>ma && b)
        {
         PutOrder(0,Ask,StopLoss1,TakeProfit1,Magic1);
         PutOrder(0,Ask,StopLoss2,TakeProfit2,Magic1);
         PutOrder(0,Ask,0,0,Magic2);
         b=false;s=true;
        }

      if(open<ma && close<ma && high<ma && Bid<ma && s)
        {
         PutOrder(1,Bid,StopLoss1,TakeProfit1,Magic1);
         PutOrder(1,Bid,StopLoss2,TakeProfit2,Magic1);
         PutOrder(1,Bid,0,0,Magic2);
         s=false;b=true;
        }
     }
   if(TimeCurrent()>StringToTime("23:30") && CloseOn>0) CloseLast();
  }
//+------------------------------------------------------------------+


Редактирован: 26 ноября 2016, 18:32
avatar

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

  • 25 ноября 2016, 20:56
комментарий был удален 2016-11-26 06:37:44 lorik

+
0
Не забыть:
Дополнение к условиям стратегии:
3) Если в 08:00 GMT до цели по второму ордеру расстояние меньше 10 пунктов или цели вообще не видно, то ни один из трех ордеров в этот день не открываем и на следующий день, даже при выполнении всех прочих условий в рынок мы так же входить не будем.


После закрытия всех ордеров не открываются новые


И если можно добавить еще изменяемый параметр — это МА
Редактирован: 26 ноября 2016, 06:40
avatar

  19  lorik Автор Сообщений: 357 - Лариса

  • 26 ноября 2016, 05:35
+
0
Добавил период МА в настройки:
www.opentraders.ru/downloads/1398/
Дальнейшие доработки, только если будет свободное время.
avatar

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

  • 26 ноября 2016, 10:34
+
0
Лариса как всегда молодец! *good* 
avatar

  18  Kashtan Сообщений: 737 - Игорь

  • 26 ноября 2016, 08:56
+
0
Как мне сделать платный заказ?
avatar

  19  lorik Автор Сообщений: 357 - Лариса

  • 26 ноября 2016, 17:14
+
0
Платно к Оксане в личку или на фриланс.
avatar

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

  • 26 ноября 2016, 17:53
+
0
Lorik, от себя могу порекомендовать Oxy… делал у неё несколько сов, качественно и приемлемо по цене…
Ну это так инфа для размышления :) 
avatar

  22  poker Сообщений: 801

  • 26 ноября 2016, 19:10

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