SerOv
Сергей

 
Уровень 24

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


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

Рейтинг 2081



РЕКОМЕНДУЮ



Модернизация недельной тс

Написал в комментах свои пожелания по Недельной тс — жду реализации. Если нет возможности сделать — просто напишите и я успокоюсь.
  • 0
  • Просмотров: 2463
  • 1 декабря 2014, 17:28
  • SerOv
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Следующая просьба к Андрею по этому советнику — необходимо во первых прикрутить трал и включить проверку на нахождении цены открытия выше\ниже простой машки с периодом 10 — своеобразный фильтр — если цена выше открываются только покупки, если ниже соответственно только продажи. Лучше конечно если параметр машки можно будет оптимизировать — ну и (+) или (-) к её значению энное количество пунктов. Спасибо тебе за работу многим она очень помогает освоить ремесло трейдинга я больше чем уверен!!!
P.S да чуть не забыл надо бы ордера закрывать ежедневно по закрытию дня и чтобы можно было отключать этот параметр т, е держать ордера дольше до закрытия недели.


ваш заказ в работе :) 
avatar

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

  • 1 декабря 2014, 18:39
+
0
Ну вот и понятки — Спасибо — ждемссс! *yes* 
avatar

  24  SerOv Автор Сообщений: 859 - Сергей

  • 1 декабря 2014, 18:43
+
0
Советник по прежнему выставляет ордера в понедельник в определенный час на расстоянии от цены. В зависимости от положения цены над машкой ставим байстоп или селлстоп. Не сработавший ордер удаляется через указанное количество часов. Выход по стопу, трейлинг стопу и закрытию позы в пятницу.




//+------------------------------------------------------------------+
//|                                                         Weak.mq4 |
//|                                              Copyright 2014, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+

#property copyright "Copyright 2014, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

#define MAGIC  20141106

extern int    StopLoss       = 600;    // Стоплосс ордера
extern int    Trailing       = 300;    // Трейлингcтоп ордера
extern int    Delta          = 300;    // Расстояние от цены  
extern int    StartHour      = 17;     // Час установки ордеров 
extern int    EndHour        = 23;     // Час закрытия ордеров
extern int    Expiration     = 8;      // Время истечения ордера
extern int    MovingPeriod   = 12;     // Период средней

extern bool   AllPositions   = False;  // Управлять всеми позициями
extern bool   ProfitTrailing = True;   // Тралить только профит
extern int    TrailingStop   = 400;    // Фиксированный размер трала
extern int    TrailingStep   = 150;    // Шаг трала

extern double Lots           = 0.1;    // Объем позиции
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int res;
   double ma=iMA(NULL,0,MovingPeriod,0,MODE_SMA,PRICE_CLOSE,1);
   datetime expiration = TimeCurrent()+3600*Expiration;
   
   if(DayOfWeek()==1 && OrdersTotal()<1 && Hour()==StartHour && Ask>ma)
    { 
     double BuyStopPrice = fND(Ask+Delta*Point); 
     res=OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyStopPrice,0,fND(BuyStopPrice-StopLoss*Point),0,"",MAGIC,expiration,Blue);             
    }
    
   if(DayOfWeek()==1 && OrdersTotal()<1 && Hour()==StartHour && Bid<ma)
    { 
     double SellStopPrice = fND(Bid-Delta*Point);
     res=OrderSend(Symbol(),OP_SELLSTOP,Lots,SellStopPrice,0,fND(SellStopPrice+StopLoss*Point),0,"",MAGIC,expiration,Red);         
    }
        
   if(OrdersTotal()>0) 
   for (int i=OrdersTotal()-1; i>=0; i--) 
    {
     if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; 
     if (OrderType()==OP_BUY ||OrderType()==OP_SELL)  DeleteOrders();    
    }  
    
   if(Trailing>0) Trail();  
   if(DayOfWeek()==5 && OrdersTotal()>0 && Hour()==EndHour)ClosePos();
   Comment("\nDay Of Week: ",DayOfWeek());             
  }
//+------------------------------------------------------------------+
double fND(double d, int n=-1) 
  {  
   if (n<0) return(NormalizeDouble(d, Digits)); 
   return(NormalizeDouble(d, n)); 
  }
//+------------------------------------------------------------------+
void DeleteOrders() 
{ 
 bool del; 
 for (int i=OrdersTotal()-1; i>=0; i--) 
  {
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; 
   if (OrderType()==OP_BUYSTOP  ) del=OrderDelete(OrderTicket()); 
   if (OrderType()==OP_SELLSTOP ) del=OrderDelete(OrderTicket());   
  }  
}
//+------------------------------------------------------------------+
void ClosePos() 
{ 
 bool del; 
 for (int i=OrdersTotal()-1; i>=0; i--) 
  {
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; 
   if (OrderType()==OP_BUY)  del=OrderClose(OrderTicket(),OrderLots(),Bid,3,White); 
   if (OrderType()==OP_SELL) del=OrderClose(OrderTicket(),OrderLots(),Ask,3,White);    
  }  
}
//+------------------------------------------------------------------+
void Trail()
{
 for (int i=0; i<OrdersTotal(); i++)
  {
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     if (OrderSymbol()==Symbol()||OrderMagicNumber()==MAGIC)
       if(OrderType()==OP_BUY)
         {
           if(Trailing>0)  
            {                
              if(Bid-OrderOpenPrice()>Point*Trailing)
               {
                 if(OrderStopLoss()<Bid-Point*Trailing)
                  {
                     bool mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*Trailing,OrderTakeProfit(),0,Yellow);
                  }
               }
            }
         }
        
        if(OrderType()==OP_SELL)
         {
           if(Trailing>0)  
            {                
              if((OrderOpenPrice()-Ask)>(Point*Trailing))
               {
                 if((OrderStopLoss()>(Ask+Point*Trailing)) || (OrderStopLoss()==0))
                  {
                   bool mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*Trailing,OrderTakeProfit(),0,Yellow);
                  }
               }
            }
         }  
   }
}
//+------------------------------------------------------------------+
avatar

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

  • 1 декабря 2014, 20:00
+
0
Только вот увидел новый код СПС = щас поразбираемся как с ним работать.
avatar

  24  SerOv Автор Сообщений: 859 - Сергей

  • 4 декабря 2014, 06:01
+
0
Прогнал в тестере один раз — вот результаты


Все ордера выставляются в понедельник и тут же закрываются по тралу или отменяютя (через время — экспирации так я понимаю )

А вот дальше чего то не оптимизируется вот журнал

и еще никак не могу понять каким параметром установить закрытие ордеров в пятницу ( если ставить время закрытия в часах = 120 часов но не оптимизируется с такими параметрами )
В чем подвох или я что то не понимаю — объясните плизз!!!
avatar

  24  SerOv Автор Сообщений: 859 - Сергей

  • 5 декабря 2014, 08:12

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