Ich schreibe kostenlos einen Ratgeber - Seite 127

 
Наджибулло Хабибов:
Hallo, ich habe einen EA, der einen Handel in allen Währungen außer Gold öffnet, können Sie bitte helfen, welchen Code ich in den EA hinzufügen müssen, um zu öffnen und Gold?

Keine Moderation auf dem Marktplatz?

 
Наджибулло Хабибов:

Lot 0.01 Lot kein Stop Loss kein Gewinn im Log nicht öffnen, obwohl kein Fehler vorliegt

Im Fenster der Symbole sind die technischen Merkmale jedes Symbols, das minimale/maximale Volumen, das minimale Niveau der Stops

Wenn es keinen Fehler gibt, kann es sein, dass der Algorithmus das Öffnen nicht zulässt :)

 
VVT:

Im Fenster "Symbole" werden die technischen Merkmale jedes Instruments angezeigt: minimale/maximale Lautstärke, minimales Stoppniveau

Wenn keine Fehlermeldung ausgegeben wird, lässt sich der Algorithmus vielleicht nicht öffnen :)

//--- ***

Wenn Sie den Algorithmus kennen, können Sie bitte prüfen, warum er sich nicht für Gold öffnet?

 
Наджибулло Хабибов:
//--- ***

Wenn Sie wissen, was der Grund dafür ist, dass sich die Seite nicht für Gold öffnen lässt, können Sie das bitte überprüfen?

Fügen Sie den Code korrektein: Verwenden Sie die Schaltfläche Code oder alternativ: Hängen Sie die Datei mit der Schaltfläche Datei anhängen

 
Vladimir Karputov:

Fügen Sie den Code korrektein: Verwenden Sie die Schaltfläche oder alternativ: Hängen Sie die Datei über die Schaltfläche an

Ja, zeigen Sie auf, was an der Eröffnung beteiligt ist, Spread, Slippage oder etwas anderes Falsches

 
//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern double Profit     = 0;        // Профит в валюте
extern int StopLoss      = 0;        // Стоп Лось
extern int TakeProfit    = 0;        // ТейкПрофит
extern int BULevel       = 0;        // уровень БУ
extern int BUPoint       = 30;       // пункты БУ
extern int TrailingStop  = 0;        // трал
extern int StartHour     = 0;        // час начала торговли
extern int StartMin      = 30;       // минута начала торговли
extern int EndHour       = 23;       // час окончания торговли
extern int EndMin        = 30;       // минута окончания торговли
extern int Reverse       = 0;        // 1-реверс
extern int CloseSig      = 0;        // 1-закрытие по сигналу
extern int Slip          = 30;       // реквот
extern int Shift         = 1;        // на каком баре сигнал индикатора
extern int Magic         = 123;      // магик

extern string IndName    = "Aroow";
extern int SignalPeriod  = 9;

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool TimeSession(int aStartHour,int aStartMinute,int aStopHour,int aStopMinute,datetime aTimeCur)
  {
//--- время начала сессии
   int StartTime=3600*aStartHour+60*aStartMinute;
//--- время окончания сессии
   int StopTime=3600*aStopHour+60*aStopMinute;
//--- текущее время в секундах от начала дня
   aTimeCur=aTimeCur%86400;
   if(StopTime<StartTime)
     {
      //--- переход через полночь
      if(aTimeCur>=StartTime || aTimeCur<StopTime)
        {
         return(true);
        }
     }
   else
     {
      //--- внутри одного дня
      if(aTimeCur>=StartTime && aTimeCur<StopTime)
        {
         return(true);
        }
     }
   return(false);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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;
   
   if(CountTrades()>0)
     {
      lot=NormalizeDouble(lot*MathPow(KLot,CountTrades()),2);
     }
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               if(Bid-OrderOpenPrice()>TrailingStop*_Point)
                 {
                  if(OrderStopLoss()<Bid-TrailingStop*_Point)
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*_Point,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }

            if(OrderType()==OP_SELL)
              {
               if((OrderOpenPrice()-Ask)>TrailingStop*_Point)
                 {
                  if((OrderStopLoss()>(Ask+TrailingStop*_Point)) || (OrderStopLoss()==0))
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*_Point,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void BU()
  {
   bool m;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               if(OrderOpenPrice()<=(Bid-(BULevel+BUPoint)*_Point) && OrderOpenPrice()>OrderStopLoss())
                 {
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+BUPoint*_Point,OrderTakeProfit(),0,Yellow);
                  return;
                 }
              }

            if(OrderType()==OP_SELL)
              {
               if(OrderOpenPrice()>=(Ask+(BULevel+BUPoint)*_Point) && (OrderOpenPrice()<OrderStopLoss() || OrderStopLoss()==0))
                 {
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-BUPoint*_Point,OrderTakeProfit(),0,Yellow);
                  return;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double AllProfit(int ot=-1)
  {
   double pr=0;
   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))
              {
               pr+=OrderProfit()+OrderCommission()+OrderSwap();
              }

            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               pr+=OrderProfit()+OrderCommission()+OrderSwap();
              }
           }
        }
     }
   return(pr);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double blu = iCustom(NULL,0,IndName,SignalPeriod,4,Shift);
   double red = iCustom(NULL,0,IndName,SignalPeriod,5,Shift);
   double blu2 = iCustom(NULL,0,IndName,SignalPeriod,4,Shift+1);
   double red2 = iCustom(NULL,0,IndName,SignalPeriod,5,Shift+1);

   bool buy = blu<1000 && red2<1000;
   bool sell = red<1000 && blu2<1000;

   if(Reverse>0)
     {
      buy = red<1000 && blu2<1000;
      sell = blu<1000 && red2<1000;
     }

   if(BULevel>0)
      BU();
   if(TrailingStop>0)
      Trailing();
   if(AllProfit()>Profit && Profit>0)
      CloseAll();

   if(TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && t!=Time[0])
     {
      if(buy)
        {
         PutOrder(0,Ask);
        }
      if(sell)
        {
         PutOrder(1,Bid);
        }
      t=Time[0];
     }

   if(CountTrades()>0 && CloseSig>0)
     {
      if(sell)
        {
         CloseAll(0);
        }
      if(buy)
        {
         CloseAll(1);
        }
     }

   Comment("\n blu: ",blu,
           "\n red: ",red,
           "\n All Profit: ",AllProfit());
  }
//+------------------------------------------------------------------+
VVT:

Ja, zeigen Sie mir, was an der Eröffnung beteiligt ist, die Spanne, der Ausrutscher oder was sonst noch falsch ist

 

Hallo zusammen!

Es gibt 4 Anzeigen und eine Bibliothek.

Zwei Indikatoren werden nur für Berechnungen benötigt, 2 werden auf das Diagramm geworfen.

Ich möchte diesen Prozess automatisieren, nur 3 Bedingungen.... aber ich muss alles in eine Datei setzen und ich weiß nicht, was mit der Bibliothek zu tun.

Kann jemand das tun?

 
Наджибулло Хабибов:

Was bedeutet das Folgende? Handelt es sich um einen Spread und Slippage? Wenn ja, setzen Sie den Wert höher als z. B. 100-150

extern int BUPoint       = 30;       // пункты БУ
extern int Slip          = 30;       // реквот
 
VVT:

Was bedeutet das Folgende? Handelt es sich um einen Spread und Slippage? Wenn ja, dann setzen Sie einen höheren Wert, z. B. 100-150

ja, stellen Sie diese Werte je nach den technischen Merkmalen des Instruments ein, d. h. die maximale Spanne des Instruments

 
VVT:

ja, stellen Sie diese Werte in Abhängigkeit von den technischen Merkmalen des Instruments ein, d. h. der maximale Spread des Instruments ist nicht o

funktioniert nicht Satz 150 lässt sich nicht öffnen