[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 201

 
isaev-av:

Ich danke Ihnen. Müssen die Ziffern je nach DC auf 4 oder 5 geändert werden?

Sie müssen es nicht umtauschen, sondern nur je nach Währung nehmen. MarktInfo
 
isaev-av:

Ich danke Ihnen. Müssen die Ziffern auf 4 oder 5 geändert werden, je nach DC?

Lassen Sie einfach die Ziffern stehen, dann passt es von selbst.
 
Genossinnen und Genossen, in Anbetracht eines sehr einfachen Systems... Wenn sich der MACD nicht länger als 5 Minuten in der Zone befindet, eröffne ich. Aus irgendeinem Grund wird der Handel nicht geöffnet.... Bitte um Rat...
//+------------------------------------------------------------------+ 
  //| MACD ^^^.mq4 | 
  //| Copyright © 2011, MetaQuotes Software Corp. | 
  //| http://www.metaquotes.net | 
  //+------------------------------------------------------------------+ 
  #property copyright "Copyright © 2011, MetaQuotes Software Corp." 
  #property link "http://www.metaquotes.net" 

  extern int TP = 100; 
  extern int TS = 100; 
  extern int TF = 1; 
  extern double lots = 0.1; 
  int fast_ema = 5; 
  int slow_ema = 34; 
  int signal_period = 5; 
  int slip = 3; 
  int Magic = 1; 

 int total; 
 int ticket; //объявил тотал и тикет 

 //+------------------------------------------------------------------+ 
  //| expert initialization function | 
  //+------------------------------------------------------------------+ 
  int init() 
    { 
  //---- 

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

 //---- 
     return(0); 
    } 
  //+------------------------------------------------------------------+ 
  //| expert start function | 
  //+------------------------------------------------------------------+ 
  int start() 
    { 
  //---- 

 bool signal = signal_MACD(); 
  AnalyzeSignal(signal); 

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

 bool signal_MACD() 
  { 
    bool signal_MACD = false; 
    double tmp = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0); 
    for(int i=1;i<=5;i++) 
    { 
       if(NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,i)*tmp,4)<0.0) 
       { 
          signal_MACD = true; 
          break; 
       } 
    } 
  } 

 void AnalyzeSignal(bool signal) 
  { 
     total = OrdersTotal();
     double MACD = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0); 
     if(total < 1)
     {
     if(signal == true)
     {
         if(MACD > 0)
         {
            ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,"Покупаем",Magic,0,Green); 
            if(ticket>0) 
            { 
            OrderSelect(ticket,SELECT_BY_TICKET); 
            Print("открылись на покупку по цене:", OrderOpenPrice()); 
            } 
            else 
            { 
            Print("открыться не удалось по причине:", GetLastError()); 
            return(0); 
            } 
         }
         if(MACD < 0)
         {
             ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,"Продаем",Magic,0,Red); 
             if(ticket>0) 
             { 
             OrderSelect(ticket,SELECT_BY_TICKET); 
             Print("открылись на продажу по цене:", OrderOpenPrice()); 
             } 
             else 
             { 
             Print("открыться не удалось по причине:", GetLastError()); 
             return(0); 
             } 
         }
         else
            return(0);
     }
     }
  }
  
  
  
  
  
 
Hilfe! Jeder hat einen MACD Sample EA, den ich versuche, eine Losberechnung hinzuzufügen. Nach meinen Änderungen lässt es sich nicht mehr kompilieren :( Hilfe!
double Lots()
  {
   double Lots;
   Lots=AccountFreeMargin()/10000*5;
   Lots=MathMin(15,MathMax(0.1,Lots));
   if(Lots<0.1) 
     Lots=NormalizeDouble(Lots,2);
   else
     {
     if(Lots<1) Lots=NormalizeDouble(Lots,1);
     else       Lots=NormalizeDouble(Lots,0);
     }
     return(Lots);
  }
 

Hallo

EA gibt einen Fehler, wenn ((Bid-OrderOpenPrice(),Digits) >= -60) Code 130, gibt jeden neuen Tick und wirklich lädt Server...

wenn ich es in if ((pBid-NormalizeDouble(OrderOpenPrice(),Digits)) ändere == -60) - funktioniert nicht...

Ich brauche genau >= und wie gehe ich vor?

Bitte helfen Sie mir, es herauszufinden.

Vielen Dank im Voraus!!!

 

Wie kann ich programmatisch berechnen, wie viele Währungspaare an einem Handel beteiligt sind?

Ich habe versucht, nach offenen Aufträgen zu suchen. Ich habe den Expert Advisor auf 3 Währungspaare angewendet. Bei jedem habe ich andere Ergebnisse erhalten:

bei der ersten - 3 (richtig), bei der zweiten - 2, bei der dritten - 1.

Ich habe es mit 2 Währungspaaren ausprobiert:

bei einer - 2 (richtig), bei der zweiten - 1. Wäre der Rückgang nicht so deutlich gewesen, hätte ich gedacht, ich hätte einen Fehler gemacht.

int val() 
{
   int kp=1;
   string x1="0",x2="0", x3="0", x4="0", x5="0", x6="0", x7="0", x8="0", x9="0", x10="0", x11="0", x12="0", x13="0", x14="0",       x15="0",
          x16="0", x17="0", x18="0",  x19="0",  x20="0",  x21="0",  x22="0", x23="0",  x24="0";
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
     if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
     if(OrderSymbol()==Symbol())   break;
      if(x9!="0" &&  x1!=OrderSymbol() && x2!=OrderSymbol() &&  x3!=OrderSymbol()  &&  x4!=OrderSymbol() &&  x5!=OrderSymbol()  &&  x6!=OrderSymbol()   &&  x7!=OrderSymbol()  &&  x8!=OrderSymbol()   &&  x9!=OrderSymbol() && x10=="0") {x10=OrderSymbol(); kp=11;}      
      if(x8!="0" &&  x1!=OrderSymbol() && x2!=OrderSymbol() &&  x3!=OrderSymbol()  &&  x4!=OrderSymbol() &&  x5!=OrderSymbol()  &&  x6!=OrderSymbol()   &&  x7!=OrderSymbol()  &&  x8!=OrderSymbol() && x9=="0") {x9=OrderSymbol(); kp=10;}      
      if(x7!="0" &&  x1!=OrderSymbol() && x2!=OrderSymbol() &&  x3!=OrderSymbol()  &&  x4!=OrderSymbol() &&  x5!=OrderSymbol()  &&  x6!=OrderSymbol()   &&  x7!=OrderSymbol() && x8=="0") {x8=OrderSymbol(); kp=9;}      
      if(x6!="0" &&  x1!=OrderSymbol() && x2!=OrderSymbol() &&  x3!=OrderSymbol()  &&  x4!=OrderSymbol() &&  x5!=OrderSymbol()  &&  x6!=OrderSymbol() && x7=="0") {x7=OrderSymbol(); kp=8;}      
      if(x5!="0" &&  x1!=OrderSymbol() && x2!=OrderSymbol() &&  x3!=OrderSymbol()  &&  x4!=OrderSymbol() &&  x5!=OrderSymbol() && x6=="0") {x6=OrderSymbol(); kp=7;}      
      if(x4!="0" &&  x1!=OrderSymbol() && x2!=OrderSymbol() &&  x3!=OrderSymbol()  &&  x4!=OrderSymbol() && x5=="0") {x5=OrderSymbol(); kp=6;}      
      if(x3!="0" &&  x1!=OrderSymbol() && x2!=OrderSymbol() &&  x3!=OrderSymbol() && x4=="0") {x4=OrderSymbol(); kp=5;}      
      if(x2!="0" &&  x1!=OrderSymbol() && x2!=OrderSymbol() && x3=="0") {x3=OrderSymbol(); kp=4;}      
      if(x1!="0" &&  x1!=OrderSymbol() && x2=="0") {x2=OrderSymbol(); kp=3;}      
      if(x1=="0") {x1=OrderSymbol(); kp=2;}
   }
  return(kp);
}
 
skyjet:
Nach meinen Änderungen lässt es sich nicht mehr kompilieren :(

Was steht dort?
 
Figar0:

Nun, was steht da?
12 Fehler, 12 Warnungen. Ich muss die Losberechnung falsch eingegeben haben?
 
forexnew:

Wie kann ich programmatisch berechnen, wie viele Währungspaare an einem Handel beteiligt sind?

Ich habe versucht, nach offenen Aufträgen zu suchen. Ich habe den Expert Advisor auf 3 Währungspaare angewendet. Bei jedem habe ich andere Ergebnisse erhalten:

bei der ersten - 3 (richtig), bei der zweiten - 2, bei der dritten - 1.

Ich habe es mit 2 Währungspaaren ausprobiert:

bei einer - 2 (richtig), bei der zweiten - 1. Wäre der Rückgang nicht so deutlich gewesen, hätte ich gedacht, ich hätte einen Fehler gemacht.


Oder erstellen Sie einfach eine Liste der aktiven Instrumente mit Hilfe eines EA. Der Ansatz ist etwas kompliziert. Es gibt doch einfachere Möglichkeiten, oder?
 
skyjet:
12 Fehler, 12 Warnungen. Ich muss die Losberechnung falsch eingegeben haben?

Es gibt keine Fehler in der Funktion selbst, wahrscheinlich treten Fehler auf, wenn man versucht, sie zu benutzen, aber das zeigen Sie uns nicht. Bitte posten Sie etwas, das sich nicht direkt in eine Datei kompilieren lässt, dann brauchen Sie nicht zu raten.