Индикаторы: FractalChannel_v1

 

FractalChannel_v1:

Довольно интересный метод построения канала. Несмотря на явный примитивизм постройки, может быть полезен при анализе уровня флэта (скажем, если вас долго не было терминала и надо быстро оценить, что же происходило).

Author: John Smith

 
'Требуется помощь профессиональных програмистов'
Советник

основывается на индикаторе FractalChannel.


Советник управляет открытими позициями (открытие происходит к ручную).

 
//+------------------------------------------------------------------+
//|                                                        Сконт.mq4 |http://forum.mql4.com/c/forum/2008/04/kkiguv_2_.mq4
//|                                              Skvorsov Konstantin |
//|                                                    skvkv@mail.ru |советник который только бы управлял открытыми позициями (открытие происходит к ручную). 
//+------------------------------------------------------------------+
#property copyright "Skvorsov Konstantin"
#property link      "skvkv@mail.ru"
extern bool check=false; //Подключаем блок открытия ордеров;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   double Fr_up0, Fr_down0, Fr_up1, Fr_down1;
   int cnt, total;
  Fr_up0  =iCustom(Symbol(),Period(),"FractalChannel_v1",2,0,0,0,0,0);
  Fr_up1  =iCustom(Symbol(),Period(),"FractalChannel_v1",2,0,0,0,0,1);
  Fr_down0=iCustom(Symbol(),Period(),"FractalChannel_v1",2,0,0,0,1,0);
  Fr_down1=iCustom(Symbol(),Period(),"FractalChannel_v1",2,0,0,0,1,1);
//задали все данные 
    
   for(cnt=OrdersTotal()-1;cnt>=0;cnt--) {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&    OrderSymbol()==Symbol())   {
         if(OrderType()==OP_BUY) {  // длинная позиция открыта
            // условие закрытие длинной позиции
            if(Fr_down1>Fr_down0) {
               Print("закрытие длинной позиции: Fr_down1=",Fr_down1,"Fr_down0=",Fr_down0);
               OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,Violet); 
            }
         } else  {
            // условие закрытия короткой позиции
            if(Fr_up1<Fr_up0) {
              Print("закрытие короткой позиции: Fr_up1=",Fr_up1,"Fr_up0=",Fr_up0);
               OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,Violet); 
              }
            
           }
        }
     }
   if (check) Order_Open();
   return(0);
  }
//+------------------------------------------------------------------+
void Order_Open(){
   if (OrdersTotal()<=1) {
      OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,"",20080421,0);
      OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"",20080421,0);
   }
}
Причина обращения: