Frage für Kenner - Seite 14

 
Спасибо большое!
 
rid писал(а) >>

Guten Tag. Ich scheine die Verwendung eines Indikators im EA nicht in den Griff zu bekommen.

Hier ist der Indikator selbst:



Ich rufe den Indikator im Expert Advisor wie folgt auf (Werte aus 2 Puffern).

Doch obwohl ich im visuellen Modus sehen kann, dass sich die Werte des Indikators aus beiden Puffern von Null auf plus/minus fünf ändern, zeigen die Customs weiterhin Nullen an (.....).

Veröffentlicht in Kommentar. - Die grüne Linie =5, aber der Kommentar zeigt Null.

Ich versuche schon seit einer Stunde, das herauszufinden. Bitte geben Sie mir einen Hinweis, wo der Fehler liegt.

Ich habe das Tool selbst heruntergeladen.

Ich habe den Fehler gefunden. Ich habe ein Testskript an Misha geschickt.

Tatsächlich müssen alle Parameter übergeben werden. Auch Schnüre.

Dateien:
level_1.mq4  2 kb
 
Vielen Dank, Vinin!
 

Guten Tag, bitte helfen Sie den Wissenden, einen Oszillator auf der Formel Heiken Ashi auszuhecken, der den Unterschied zwischen haOpen und haClose anzeigt. Vielen Dank im Voraus!

 

Hallo zusammen!

Bitte um Rat. Hier ist der Code:

// Проверка условий для совершения сделки селл 
  if( если условия соотв.- ют заданным){ //продаем
StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);
   
      SL=0; TP=0;
      if( StopLoss>0    && StopLoss> StopLevel)   SL=Bid+Point* StopLoss;
      if( TakeProfit>0 && TakeProfit> StopLevel) TP=Bid-Point* TakeProfit;
      if( StopLoss  < StopLevel && StopLoss>0)   SL = Bid+Point* StopLevel; 
      if( TakeProfit< StopLevel && TakeProfit>0) TP = Bid-Point* StopLevel; 
   ticket=OrderSend(Symbol(),OP_SELL, lots,Bid,3, SL, TP,"Name_Expert", Magic,0, clOpenSell);

                                                   }

Ich kann nicht herausfinden, was los ist! Das Testerprotokoll gibt Fehler 130 (falsche Stops) zurück, wenn ich Stoploss und Takeprofit kleiner als erlaubt setze!

Ich habe aber ausdrücklich dafür gesorgt, dass dieser Fehler nicht auftrat!

Bitte teilen Sie uns mit, warum die Bedingungen nicht funktionieren? -


 if( StopLoss  < StopLevel &&   StopLoss>0)   SL = Bid+Point* StopLevel; 
 if( TakeProfit< StopLevel  && TakeProfit>0)   TP = Bid-Point* StopLevel; 
 
Wie wäre es, wenn Sie StopLevel eine Eins-zu-zwei-Stufe für die Freigabe hinzufügen? Bei mir hat es einmal funktioniert.
 
Viele Anfänger haben ein Problem mit dem Vergleich von Fließkommazahlen. Granit77 hat Recht, ich füge normalerweise 0,1 Pips anstelle von 1-2 Pips hinzu, um den Expert Advisor genau zu halten
 
granit77 >> :
Wie wäre es, wenn Sie StopLevel für die Lücke einen Einser-Zweier hinzufügen? Bei mir hat es einmal funktioniert.

Wie das? :

 if( StopLoss  < StopLevel &&   StopLoss>0)   SL = Bid+Point*( StopLevel+1); 
 if( TakeProfit< StopLevel  && TakeProfit>0)   TP = Bid-Point*( StopLevel+1); 

>> Es funktioniert nicht.

Außerdem sollten diese Bedingungen im Testgerät auch ohne Lücke funktionieren. Aber das tun sie nicht. - Es wird der Fehler 130 angezeigt

 
rid >> :

Nicht hilfreich.

Außerdem sollten diese Bedingungen im Testgerät auch ohne Lücke funktionieren. Aber das tun sie nicht. - Fehler 130 wird angezeigt

Ich bin kein Experte, würde aber die Werte der Variablen StopLoss, TakeProfit, StopLevel, SL und TP ausdrucken.

Es ist nicht ersichtlich, wie sie erklärt werden oder warum sie benötigt werden.

 SL=0; TP=0
 
goldtrader >> :

Ich bin kein Experte, würde aber die Werte der Variablen StopLoss, TakeProfit, StopLevel, SL und TP ausdrucken.

Ich kann nicht erkennen, wie und wozu sie erklärt werden.

So wird's gemacht:

extern int     StopLoss=1;
extern int     TakeProfit=1;
double SL, TP;
int StopLevel;

//---------------
StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);

  if( УСЛОВИЯ ВХОДА ){ //продаем
   
      SL=0; TP=0;
      if( StopLoss>0    && StopLoss> StopLevel)   SL=Bid+Point* StopLoss;
      if( TakeProfit>0 && TakeProfit> StopLevel) TP=Bid-Point* TakeProfit;

      if( StopLoss  < StopLevel && StopLoss>0)   SL = Bid+Point* StopLevel; 
      if( TakeProfit< StopLevel && TakeProfit>0) TP = Bid-Point* StopLevel;
 
   ticket=OrderSend(Symbol(),OP_SELL, lots,Bid,3, SL, TP,"Name_Expert", Magic,0, clOpenSell);
   if( ticket < 0){
            Print("Ошибка открытия ордера SELL #", GetLastError()); 
            Sleep(10000);  
            prevtime = Time[1]; 
            return (0); 
         } 
       }

Es werden Positionen eröffnet, aber anstelle von Stops tritt ein Fehler auf 130 .....

Anzeige aller Haltestellen und Ebenen im Kommentar. - scheint alles korrekt angezeigt zu werden... - aber es wird der Fehler 130 angezeigt