0
Вот на предпоследнем баре 3 открылись:

avatar

AM2

  • 14 января 2018, 18:51
0
Вот на предпоследнем баре 3 открылись:

avatar

AM2

  • 14 января 2018, 18:50
0
более подробно на сайте

делаю только то что можно быстро сделать. будет только в упрощенном виде.
avatar

AM2

  • 14 января 2018, 18:43
0
Готово:



//+------------------------------------------------------------------+
//|                                                        Buzel.mq4 |
//|                                              Copyright 2017, AM2 |
//|                                      http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, AM2"
#property link      "http://www.forexsyatems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 350;      // лось
extern int TakeProfit    = 200;      // язь
extern int Delta         = 300;      // 
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

bool b=1,s=1;
datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   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;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderProfit()>0) break;
         if(OrderProfit()<0)
           {
            lot=OrderLots()*KLot;
            break;
           }
        }
     }
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(t!=Time[0])
     {
      b=1;s=1;
      t=Time[0];
     }
     
   if(Open[0]-Bid>Delta*Point && b)
     {
      PutOrder(0,Ask);b=0;s=1;
     }

   if(Bid-Open[0]>Delta*Point && s)
     {
      PutOrder(1,Bid);s=0;b=1;
     }
  }
//+------------------------------------------------------------------+
avatar

AM2

  • 14 января 2018, 14:24
0
какую версию править?
avatar

AM2

  • 14 января 2018, 13:57
0
На 16-е.
avatar

AM2

  • 14 января 2018, 08:41
0
На 18-е.
avatar

AM2

  • 14 января 2018, 08:40
0
Так хуже.
avatar

AM2

  • 13 января 2018, 21:03
0
Поменял входы:


//+------------------------------------------------------------------+
//|                                                        Buzel.mq4 |
//|                                              Copyright 2017, AM2 |
//|                                      http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, AM2"
#property link      "http://www.forexsyatems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 350;      // лось
extern int TakeProfit    = 200;      // язь
extern int Delta         = 300;      // 
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

bool b=1,s=1;
datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   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;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderProfit()>0) break;
         if(OrderProfit()<0)
           {
            lot=OrderLots()*KLot;
            break;
           }
        }
     }
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(t!=Time[0])
     {
      b=1;s=1;
      t=Time[0];
     }
     
   if(Bid-Open[0]>Delta*Point && b)
     {
      PutOrder(0,Ask);b=0;
     }

   if(Open[0]-Bid>Delta*Point && s)
     {
      PutOrder(1,Bid);s=0;
     }
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 13 января 2018, 21:01
0
Нормально он мне нарисовал за 10 лет!
www.opentraders.ru/downloads/1778/

avatar

AM2

  • 13 января 2018, 20:16
0
Посмотрю после выходных.
avatar

AM2

  • 13 января 2018, 19:46
0
А не могли бы прилепить

Могу отдельным топиком :) 
avatar

AM2

  • 13 января 2018, 16:47
0
Скрины с пояснениями пожалуйста.
avatar

AM2

  • 13 января 2018, 16:46
0
Если цена не достигла перекупленности перепроданности пишет значение атр:
www.opentraders.ru/downloads/1777/





avatar

AM2

  • 13 января 2018, 15:51
0
После выходных посмотрю.
avatar

AM2

  • 13 января 2018, 12:46
0
Восстановил индикатор, что просили добавил: www.opentraders.ru/downloads/1776/

avatar

AM2

  • 13 января 2018, 12:44
+1
Поправил АДС:




//+------------------------------------------------------------------+
//|                                                                  |
//|                 Copyright © 2000-2007, MetaQuotes Software Corp. |
//|                                         http://www.metaquotes.ru |
//+------------------------------------------------------------------+
/**
* ACD_2.mq4
* Pivot Range and Previous High/Low
**/
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Aqua
#property indicator_color2 Aqua
#property indicator_color3 Aqua
#property indicator_color4 White
#property indicator_color5 White
#property indicator_color6 Red
#property indicator_color7 Green
#property indicator_color8 Orchid
//Input Params
extern string PivotRangeStart="00:30";
extern string PivotRangeEnd="00:30";
extern bool DisplayPivotPoint=true;
extern bool DisplayPreviousHighLow=true;
extern bool DisplayMAs=false;
//----
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
double pivots[50];
//----
double pivotRangeHigh;
double pivotRangeLow;
double pivotRangeClose;
double pivotPoint;
double pivotDiff;
double pivotTop=0;
double pivotBottom=0;
double pivot14MA;
double pivot30MA;
double pivot50MA;
//----
int openBar;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexStyle(0,DRAW_LINE, STYLE_DOT, 1);
   SetIndexBuffer(0,Buffer1);
   SetIndexLabel(0,"Pivot Point");
   SetIndexStyle(1,DRAW_LINE, STYLE_DASH, 1);
   SetIndexBuffer(1,Buffer2);
   SetIndexLabel(1,"Pivot Range Top");
   SetIndexStyle(2,DRAW_LINE, STYLE_DASH, 1);
   SetIndexBuffer(2,Buffer3);
   SetIndexLabel(2,"Pivot Range Bottom");
   SetIndexStyle(3,DRAW_LINE, STYLE_SOLID, 1);
   SetIndexBuffer(3,Buffer4);
   SetIndexLabel(3,"Previous Day High");
   SetIndexStyle(4,DRAW_LINE, STYLE_SOLID, 1);
   SetIndexBuffer(4,Buffer5);
   SetIndexLabel(4,"Previous Day Low");
   SetIndexStyle(5,DRAW_LINE);
   SetIndexBuffer(5,Buffer6);
   SetIndexLabel(5,"14 MA");
   SetIndexStyle(6,DRAW_LINE);
   SetIndexBuffer(6,Buffer7);
   SetIndexLabel(6,"30 MA");
   SetIndexStyle(7,DRAW_LINE);
   SetIndexBuffer(7,Buffer8);
   SetIndexLabel(7,"50 MA");
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   string barTime="", lastBarTime="";
   string barDay="", lastBarDay="";
   int closeBar;
//----
   for(int i=Bars; i>=0; i--)
     {
      barTime=TimeToStr(Time[i], TIME_MINUTES);
      lastBarTime=TimeToStr(Time[i+1], TIME_MINUTES);
      barDay=TimeToStr(Time[i],TIME_DATE);
      lastBarDay=TimeToStr(Time[i+1],TIME_DATE);
      //need to handle if pivotrangestart/end is 00:00
      if ((PivotRangeEnd=="00:00" && barTime>=PivotRangeEnd && barDay>lastBarDay) || (barTime>=PivotRangeEnd && lastBarTime<PivotRangeEnd))
        {
         closeBar=i + 1;
//----
         if (openBar>0)
           {
            calculatePivotRangeValues(openBar, closeBar);
           }
        }
      if ((PivotRangeStart=="00:00" && barTime>=PivotRangeStart && barDay>lastBarDay) || (barTime>=PivotRangeStart && lastBarTime<PivotRangeStart))
        {
         openBar=i;
        }
      if (openBar>0)
        {
         drawIndicators(i);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void calculatePivotRangeValues(int opBar, int closeBar)
  {
   pivotRangeHigh=High[Highest(NULL, 0, MODE_HIGH, (opBar - closeBar + 1), closeBar)];
   pivotRangeLow=Low[Lowest(NULL, 0, MODE_LOW, (opBar - closeBar + 1), closeBar)];
   pivotRangeClose=Close[closeBar];
   pivotPoint=((pivotRangeHigh + pivotRangeLow)/2);
   pivotDiff=MathAbs(((pivotRangeHigh + pivotRangeLow)/2) - pivotPoint);
   pivotTop=pivotPoint + pivotDiff;
   pivotBottom=pivotPoint - pivotDiff;
//----
   if (DisplayMAs) calcPivotMA();
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void calcPivotMA()
  {
   //create temp array
   double pivs[50];
   //load new pivot
   ArrayCopy(pivs,pivots,1,0,49);
   pivs[0]=pivotPoint;
   ArrayCopy(pivots, pivs, 0, 0, WHOLE_ARRAY);
   //calcMA
   double pivSum=0;
   int count=ArraySize(pivots);
   if (count>=14)
     {
      for(int p=0; p<count; p++)
        {
         pivSum+=pivots[p];
//----
         if (p==13)
           {
            pivot14MA=pivSum/14;
           }
//----
         if (p==29)
         {pivot30MA=pivSum/30;}
//----
         if (p==49)
         {pivot50MA=pivSum/50;}
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void drawIndicators(int curBar)
  {
   if (DisplayPivotPoint) Buffer1[curBar]=pivotPoint;
//----
   Buffer2[curBar]=pivotTop;
   Buffer3[curBar]=pivotBottom;
//----
   if (DisplayPreviousHighLow)
     {
      Buffer4[curBar]=pivotRangeHigh;
      Buffer5[curBar]=pivotRangeLow;
     }
   if (DisplayMAs)
     {
      Buffer6[curBar]=pivot14MA;
      Buffer7[curBar]=pivot30MA;
      Buffer8[curBar]=pivot50MA;
     }
  }
//+------------------------------------------------------------------+
avatar

AM2

  • 13 января 2018, 11:50
0
На скринах все поясните пожалуйста.
avatar

AM2

  • 13 января 2018, 11:09