0
Другой график- это привязка к другой валютной паре?
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Trade()
  {
   double bid1=MarketInfo(Symbol1,MODE_BID);
   double bid2=MarketInfo(Symbol2,MODE_BID);
   double ask1=MarketInfo(Symbol1,MODE_ASK);
   double ask2=MarketInfo(Symbol2,MODE_ASK);
   double pp1= MarketInfo(Symbol1,MODE_POINT);
   double pp2= MarketInfo(Symbol2,MODE_POINT);
   
   double ma1=iMA(Symbol1,0,MAPeriod,0,1,0,0);
   double ma2=iMA(Symbol2,0,MAPeriod,0,1,0,0);
   
   if(MathAbs((bid1-ma1)/pp1)-MathAbs((bid2-ma2)/pp2)<=-Delta)
     {
      PutOrder(0,ask1,Symbol1);
      PutOrder(0,ask2,Symbol2);
      //ModifyOrders(symb);
     }
   if(MathAbs((bid1-ma1)/pp1)-MathAbs((bid2-ma2)/pp2)>=Delta)
     {
      PutOrder(1,bid1,Symbol1);
      PutOrder(1,bid2,Symbol2);
      //ModifyOrders(symb);
     }
  }
avatar

Slava78

  • 26 апреля 2020, 19:53
0
Типа этого?
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Trade(string symb=NULL)
  {
   double bid1=MarketInfo(Symbol1,MODE_BID);
   double bid2=MarketInfo(Symbol2,MODE_BID);
   double ask1=MarketInfo(Symbol1,MODE_ASK);
   double ask2=MarketInfo(Symbol2,MODE_ASK);
   double pp1= MarketInfo(Symbol1,MODE_POINT);
   double pp2= MarketInfo(Symbol2,MODE_POINT);
   
   double ma1=iMA(Symbol1,0,MAPeriod,0,1,0,1);
   double ma2=iMA(Symbol2,0,MAPeriod,0,1,0,1);
   
   if(((bid1-ma1)/pp1)+((bid2-ma2)/pp2)<-Delta && CountTrades(symb)<1)
     {
      PutOrder(0,ask1,Symbol1);
      PutOrder(0,ask2,Symbol2);
      //ModifyOrders(symb);
     }
   if(((bid1-ma1)/pp1)+((bid2-ma2)/pp2)>Delta && CountTrades(symb)<1)
     {
      PutOrder(1,bid1,Symbol1);
      PutOrder(1,bid2,Symbol2);
      //ModifyOrders(symb);
     }
  }
avatar

Slava78

  • 26 апреля 2020, 19:50
0
//+------------------------------------------------------------------+
//|                                                   ATR уровни.mq4 |
//|                                                   Agshin Poladov |
//|                                         akwin.poladov1@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Agshin Poladov"
#property link      "akwin.poladov1@gmail.com"
#property strict
#property indicator_chart_window



extern int ATRPeriod = 10;

double rates_d1[][6];
double H1, H2, H3, H4, H4t, H5, L5, L4, L4t, L3, L2, L1, halfatr, fullatr;
int timeshift=0, timeshifts=0, beginner=0;
int periods;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- TODO: add your code here
 
   
   ObjectDelete("H4atr line");
   ObjectDelete("L4atr line");
   ObjectDelete("L4atr label");
   ObjectDelete("H4atr label");
   ObjectDelete("H4tatr line");
   ObjectDelete("L4tatr line");
   ObjectDelete("L4tatr label");
   ObjectDelete("H4tatr label");   
   
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   //if (counted_bars<1) return(0);
   
   
   switch (Period())
   {
      case PERIOD_M1:  {timeshifts=60; beginner=Hour()*60;} break;
      case PERIOD_M5:  {timeshifts=300; beginner=Hour()*12;} break;
      case PERIOD_M15: {timeshifts=900; beginner=Hour()*4;} break;
      case PERIOD_M30: {timeshifts=1800; beginner=Hour()*2;} break;
      case PERIOD_H1:  {timeshifts=3600; beginner=Hour()*1;} break;
      case PERIOD_H4:  {timeshifts=14400; beginner=Hour()*0.25;} break;
      case PERIOD_D1:  {timeshifts=86400; beginner=Hour()*0;} break;
    }   

   timeshift=timeshifts*24;
   
   if(Period() > 86400)
      {
         Print("Error - Chart period is greater than 1 day.");
         return(-1); // then exit
      }   


   
   ArrayCopyRates(rates_d1, Symbol(), PERIOD_D1);



   //beginner=Hour();
   
            fullatr = iATR(Symbol(), PERIOD_D1, ATRPeriod, 1);
            
            L4 = rates_d1[1][3] - fullatr;   
            H4 = rates_d1[1][2] + fullatr;
            L4t = rates_d1[0][3] - fullatr;   
            H4t = rates_d1[0][2] + fullatr;
            halfatr = fullatr * 0.5;   
         
            H1 = H4+1.5*fullatr;
            H2 = H4+fullatr;
            H3 = H4+halfatr;
            L3 = L4-halfatr;
            L2 = L4-fullatr;
            L1 = L4-1.5*fullatr;
         
   
   
   if (ObjectFind("H4atr Line") != 0) 
     {
      ObjectCreate("H4atr line",OBJ_HLINE,0,Time[0],H4);
      ObjectSet("H4atr line",OBJPROP_COLOR,Yellow);
      ObjectSet("H4atr line",OBJPROP_WIDTH,1);
     }
     else
     {
     ObjectMove("H4atr line", 0,Time[0],H4);
     }


   if (ObjectFind("L4atr Line") != 0) 
     {
      ObjectCreate("L4atr line",OBJ_HLINE,0,Time[0],L4);
      ObjectSet("L4atr line",OBJPROP_COLOR,Yellow);
      ObjectSet("L4atr line",OBJPROP_WIDTH,1);
     }
     else
     {
     ObjectMove("L4atr line", 0,Time[0],L4);
     }

   if (ObjectFind("H4tatr Line") != 0) 
     {
      ObjectCreate("H4tatr line",OBJ_HLINE,0,Time[0],H4t);
      ObjectSet("H4tatr line",OBJPROP_COLOR,Yellow);
      ObjectSet("H4tatr line",OBJPROP_WIDTH,1);
     }
     else
     {
     ObjectMove("H4tatr line", 0,Time[0],H4t);
     }


   if (ObjectFind("L4tatr Line") != 0) 
     {
      ObjectCreate("L4tatr line",OBJ_HLINE,0,Time[0],L4t);
      ObjectSet("L4tatr line",OBJPROP_COLOR,Yellow);
      ObjectSet("L4tatr line",OBJPROP_WIDTH,1);
     }
     else
     {
     ObjectMove("L4tatr line", 0,Time[0],L4t);
     }

if(ObjectFind("H4atr label") != 0)
      {
      ObjectCreate("H4atr label", OBJ_TEXT, 0, Time[0]+timeshift, H4);
      ObjectSetText("H4atr label", "ATR(y) res: " + DoubleToStr(H4,4), 8, "Verdana", Yellow);
      }
      else
      {
      ObjectMove("H4atr label", 0, Time[0]+timeshift, H4);
      } 

if(ObjectFind("L4atr label") != 0)
      {
      ObjectCreate("L4atr label", OBJ_TEXT, 0, Time[0]+timeshift, L4);
      ObjectSetText("L4atr label", "ATR(y) sup: " + DoubleToStr(L4,4), 8, "Verdana", Yellow);
      }
      else
      {
      ObjectMove("L4atr label", 0, Time[0]+timeshift, L4);
      } 

if(ObjectFind("H4tatr label") != 0)
      {
      ObjectCreate("H4tatr label", OBJ_TEXT, 0, Time[0]+timeshift, H4t);
      ObjectSetText("H4tatr label", "ATR(t) res: " + DoubleToStr(H4t,4), 8, "Verdana", Yellow);
      }
      else
      {
      ObjectMove("H4tatr label", 0, Time[0]+timeshift, H4t);
      } 

if(ObjectFind("L4tatr label") != 0)
      {
      ObjectCreate("L4tatr label", OBJ_TEXT, 0, Time[0]+timeshift, L4t);
      ObjectSetText("L4tatr label", "ATR(t) sup: " + DoubleToStr(L4t,4), 8, "Verdana", Yellow);
      }
      else
      {
      ObjectMove("L4tatr label", 0, Time[0]+timeshift, L4t);
      } 

   return(0);
  }
//+------------------------------------------------------------------+
avatar

Slava78

  • 26 апреля 2020, 17:14
0
Если смогешь, покопайся здесь www.opentraders.ru/downloads/2634/
avatar

Slava78

  • 26 апреля 2020, 07:47
0
Файлы перезалейте
avatar

Slava78

  • 24 апреля 2020, 14:10
0
По-моему на скрине видно
avatar

Slava78

  • 24 апреля 2020, 08:24
0
Стратегия здесь slava78.opentraders.ru/54234.html
avatar

Slava78

  • 23 апреля 2020, 10:04
0
Большое спасибо*good* 
avatar

Slava78

  • 22 апреля 2020, 21:28
0
ТЗ: добавить в любой советник закрытие половины ордера, вторая половина переводится в без убыток.Пока не закроется без убыток следующий ордер не открывать.*help* 
avatar

Slava78

  • 22 апреля 2020, 19:23
0
Жаль, а вы можете хотя бы добавить в любой советник закрытие половины ордера, вторая половина переводится в без убыток.Пока не закроется без убыток следующий ордер не открывать.
avatar

Slava78

  • 22 апреля 2020, 07:17
0
Индюк здесь slava78.opentraders.ru/54234.html
avatar

Slava78

  • 21 апреля 2020, 18:28
0
Может быть это чем поможет
//+------------------------------------------------------------------+
//|                                                     LWMA_ATR.mq4 |
//|                               Copyright © Sovpel Alexander, 2009 |
//+------------------------------------------------------------------+
#property copyright "Copyright © Sovpel Alexander, 2009"
#property link      "E-mail: Sovpel-Alexander@yandex.ru"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- input parameters
extern int AtrPeriod    =15;
extern int Multiplier   =3;
extern int Text_Corner  =0;
extern color Text_Color =DeepSkyBlue;
//---- buffers
double AtrBuffer[];
double TempBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 1 additional buffer used for counting.
   IndicatorBuffers(2);
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,AtrBuffer);
   SetIndexBuffer(1,TempBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name="LWMA_ATR("+AtrPeriod+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
//----
   SetIndexDrawBegin(0,AtrPeriod);
//----
   ObjectCreate("ATR_0",OBJ_LABEL,0,TimeCurrent(),0,0);
   ObjectSet("ATR_0", OBJPROP_XDISTANCE, 5);
   ObjectSet("ATR_0", OBJPROP_YDISTANCE, 15);
   
   ObjectCreate("ATR_1",OBJ_LABEL,0,TimeCurrent(),0,0);
   ObjectSet("ATR_1", OBJPROP_XDISTANCE, 5);
   ObjectSet("ATR_1", OBJPROP_YDISTANCE, 33);
   
   return(0);
  }
//+------------------------------------------------------------------+
//| Average True Range                                               |
//+------------------------------------------------------------------+
int start()
  {
   int i,counted_bars=IndicatorCounted();
//----
   if(Bars<=AtrPeriod) return(0);
//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=AtrPeriod;i++) AtrBuffer[Bars-i]=0.0;
//----
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      double high=High[i];
      double low =Low[i];
      if(i==Bars-1) TempBuffer[i]=high-low;
      else
        {
         double prevclose=Close[i+1];
         TempBuffer[i]=(MathMax(high,prevclose)-MathMin(low,prevclose)) * 100000;
        }
      i--;
     }
//----
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
   for(i=0; i<limit; i++)
      AtrBuffer[i]=iMAOnArray(TempBuffer,Bars,AtrPeriod,0,MODE_LWMA,i);
//----
   if(Multiplier != 1) int Percentage = Multiplier * 100;
//---- 
   ObjectSet("ATR_0", OBJPROP_CORNER, Text_Corner);
   ObjectSetText("ATR_0","Линейно-взвешенная волатильность рынка "+DoubleToStr(AtrBuffer[0],0)+" pips", 10, "Tahoma", Text_Color);
//---- 
   ObjectSet("ATR_1", OBJPROP_CORNER, Text_Corner);
   ObjectSetText("ATR_1","Адаптивный стоп-приказ ( "+Percentage+"% of ATR )     "+DoubleToStr(AtrBuffer[0] * Multiplier,0)+" pips", 10, "Tahoma", Text_Color);
//---- 
   return(0);
  }
//----
int deinit()
  {
   ObjectDelete("ATR_0");
   ObjectDelete("ATR_1");
   return(0);
  }
//+------------------------------------------------------------------+
avatar

Slava78

  • 21 апреля 2020, 10:03
+1
Закрыли половину, остальное переводим в без убыток. Ждем пробоя уровня 20 или границы канала
avatar

Slava78

  • 20 апреля 2020, 14:21
0
Предполагаемое закрытие
avatar

Slava78

  • 20 апреля 2020, 12:22
0
Проверим отработку системы
avatar

Slava78

  • 20 апреля 2020, 11:08