0
для чего открывать 10 по 0.1 вместо 1?
avatar

AM2

  • 25 октября 2021, 22:20
0
Так же в настройках добавить количество открываемых ОРДЕРОВ ЧТОБЫ МОЖНО БЫЛО ПРОПИСЫВАТЬ ИХ ВРУЧНУЮ ОТ 1 ДО 30.


это как, когда у вас идет открытие закрытия при смене цвета?

avatar

AM2

  • 25 октября 2021, 22:00
0
вот так попробуете:


//+------------------------------------------------------------------+
//|                                             KeyLevels

//|                                   Facebook ID vishal koli Fx
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "mishanya"
#property link      "mishanya_fx@yahoo.com"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters
extern int       barn=300;
extern int       Length=6;
extern color    color1=OrangeRed;
extern color    color2=RoyalBlue;
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexEmptyValue(0,0.0);
//SetIndexDrawBegin(0, barn);
//SetIndexStyle(0,DRAW_SECTION);
//SetIndexBuffer(0,ExtMapBuffer1);

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {

   ObjectDelete("Target2 line");

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int shift,Swing,Swing_n,uzl,i,zu,zd;
   double PointA,PointB,PointC,Target2,Target3;
   double LL,HH,BH,BL;
   double Uzel[10000][3];
   string text;

   if(Bars<barn)
      return(-1);
   if(barn>=ArraySize(Uzel)/3)
      return(-1);

// loop from first bar to current bar (with shift=0)
   Swing_n=0;
   Swing=0;
   uzl=0;
   BH=High[barn];
   BL=Low[barn];
   zu=barn;
   zd=barn;

   for(shift=barn; shift>=0; shift--)
     {
      LL=10000000;
      HH=-100000000;
      for(i=shift+Length; i>=shift+1; i--)
        {
         if(Low[i]< LL)
           {
            LL=Low[i];
           }
         if(High[i]>HH)
           {
            HH=High[i];
           }
        }

      if(Low[shift]<LL && High[shift]>HH)
        {
         Swing=2;
         if(Swing_n==1)
           {
            zu=shift+1;
           }
         if(Swing_n==-1)
           {
            zd=shift+1;
           }
        }
      else
        {
         if(Low[shift]<LL)
           {
            Swing=-1;
           }
         if(High[shift]>HH)
           {
            Swing=1;
           }
        }

      if(Swing!=Swing_n && Swing_n!=0)
        {
         if(Swing==2)
           {
            Swing=-Swing_n;
            BH = High[shift];
            BL = Low[shift];
           }
         uzl=uzl+1;
         if(Swing==1)
           {
            Uzel[uzl][1]=zd;
            Uzel[uzl][2]=BL;
           }
         if(Swing==-1)
           {
            Uzel[uzl][1]=zu;
            Uzel[uzl][2]=BH;
           }
         BH = High[shift];
         BL = Low[shift];
        }

      if(Swing==1)
        {
         if(High[shift]>=BH)
           {
            BH=High[shift];
            zu=shift;
           }
        }
      if(Swing==-1)
        {
         if(Low[shift]<=BL)
           {
            BL=Low[shift];
            zd=shift;
           }
        }
      Swing_n=Swing;
     }
   for(i=1; i<=uzl; i++)
     {
      //text=DoubleToStr(Uzel[i][1],0);
      //text=;
      //mv=StrToInteger(DoubleToStr(Uzel[i][1],0));
      //ExtMapBuffer1[mv]=Uzel[i][2];
     }

   PointA = Uzel[uzl-2][2];
   PointB = Uzel[uzl-1][2];
   PointC = Uzel[uzl][2];

   Target2=PointB-PointA+PointC;
   Target3=NormalizeDouble((PointB-PointA)*2.618+PointC,4);
   int L=10;

   ObjectDelete(0,"Target2 Line");

   ObjectCreate("Target2 Line",OBJ_TREND,0,iTime(NULL,0,Target2),Target2,
                iTime(NULL,0,Target2)+1000*60*L,Target2);
   ObjectSet("Target2 line",OBJPROP_COLOR,color1);
   ObjectSet("Target2 line",OBJPROP_WIDTH,2);
   ObjectSet("Target2 line",OBJPROP_STYLE,STYLE_SOLID);
   ObjectSet("Target2 line",OBJPROP_RAY,true);

   ObjectDelete(0,"Target3 Line");
   
   ObjectCreate("Target3 Line",OBJ_TREND,0,iTime(NULL,0,Target3),Target3,
                iTime(NULL,0,Target3)+1000*60*L,Target3);
   ObjectSet("Target3 line",OBJPROP_COLOR,color2);
   ObjectSet("Target3 line",OBJPROP_WIDTH,2);
   ObjectSet("Target3 line",OBJPROP_STYLE,STYLE_SOLID);
   ObjectSet("Target3 line",OBJPROP_RAY,true);

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

avatar

AM2

  • 24 октября 2021, 22:17
+1
мой вариант за 20 лет постоянным лотом: www.opentraders.ru/downloads/3159/

avatar

AM2

  • 23 октября 2021, 09:33
0
подробные скрины нужны
avatar

AM2

  • 23 октября 2021, 08:32
0
скиньте в базу ваш индикатор. видимо версия по ссылке славы отличается. по умолчанию в терминале вашего индикатора нет
avatar

AM2

  • 23 октября 2021, 07:52
0
пока в таком виде:




//+------------------------------------------------------------------+
//|                                                          Joy.mq4 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 2;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 2000;     // лось
extern int TakeProfit    = 3000;     // язь
extern int Slip          = 30;       // реквот
extern int Shift         = 1;        // бар индикатора
extern int CloseOn       = 1;        // 1-закрытие в конце работы
extern int Magic         = 123;      // магик

extern string IndName    = "Solar Wind Joy + TMA AA MTF R+TT";

extern string IndName2   = "FQ — TBS Buffering Zones-";

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderProfit()>0)
               break;
            if(OrderProfit()<0)
              {
               lot=OrderLots()*KLot;
               break;
              }
           }
        }
     }
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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()
  {
   double blu1 = iCustom(NULL,0,IndName,0,Shift);
   double red1 = iCustom(NULL,0,IndName,1,Shift);
   double blu2 = iCustom(NULL,0,IndName,0,Shift+1);
   double red2 = iCustom(NULL,0,IndName,1,Shift+1);

   bool buy = blu1!=0 && red2!=0;
   bool sell = red1!=0 && blu2!=0;

   if(t!=Time[0])
     {
      if(CountTrades()<1)
        {
         if(buy)
           {
            PutOrder(0,Ask);
           }

         if(sell)
           {
            PutOrder(1,Bid);
           }
        }

      if(CloseOn>0)
        {
         if(buy)
           {
            CloseAll(1);
           }

         if(sell)
           {
            CloseAll(0);
           }
        }
      t=Time[0];
     }

   Comment("\n blu: ",blu1,
           "\n red: ",red1);
  }
//+------------------------------------------------------------------+

avatar

AM2

  • 22 октября 2021, 13:11
0
FQ — TBS Buffering Zones не отображается на графике

avatar

AM2

  • 22 октября 2021, 13:03
0
готового нет. писать надо с поручителем и скринами
avatar

AM2

  • 22 октября 2021, 12:24