Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 456

 
Zver4991:

Wovon hängt die Qualität des Tests ab und wie kann ich sie auf das Maximum steigern?

Sehen Sie sich diese Website an, wie man einen EA mit 99% Simulationsqualitättestet

http://tradelikeapro.ru/kak-poluchit-kachestvo-modelirovaniya-99/

 
Zhunko:
Dies gilt für den Typ BOOL. Das heißt, für ein bool aus einer älteren Version von MQL4. Bei einem Ein-Byte-Bool ist dies nicht der Fall. Wenn der Wert größer als Null ist, kommt es zu einem Überlauf.

Ich frage mich, warum das so ist.

   bool b=2;

Lässt es sich ohne Fehler oder Warnungen kompilieren?

 
artmedia70:

Ich frage mich, warum das so ist.

bool b=2;
ohne Fehler oder Warnungen kompiliert?

Der Zuweisungsoperator muss für den Typ bool überladen sein. Er überwacht den Überlauf und wenn er mehr als 1 ist, weist er zu und gibt true zurück.

Im Studio der Warnstufe 4 gibt es oft Warnungen, wenn versucht wird, einen unlogischen Typ in einen logischen Ausdruck einzufügen. Oder umgekehrt, wenn ein logischer Typ in arithmetischen Operationen verwendet wird.

 
Zhunko:

Der Zuweisungsoperator muss für den Typ bool überladen sein. Er überwacht den Überlauf, und wenn er größer als 1 ist, weist er zu und gibt true zurück.

Im Studio der Warnstufe 4 gibt es oft Warnungen, wenn versucht wird, einen unlogischen Typ in einen logischen Ausdruck einzufügen. Oder umgekehrt, wenn ein logischer Typ in arithmetischen Operationen verwendet wird.

Es wäre logischer, wenn

#property strict

eine Warnung auszusprechen und es wie in der alten Version zu belassen, ohne

 
artmedia70:

ist nicht ganz richtig, aber die Grundaussage ist korrekt.

Tatsächlich: Null entspricht false, und jeder andere Wert als zero entspricht true

Ohne sich auf die Standardeinstellungen zu verlassen, ändere ich die Init-Variable in eine boolesche Variable und verwende nur diese.
 

Nun, ich bin ja kein Programmierer...

Es gibt Kontonummer 1 - fünfstellig mit einem min.lot 0,01 und Schritt 0,01 (build 584); Kontonummer 2 - 4-stellig mit einem min.lot 0,1 und Schritt Lose von 0,1 (build 584) und Kontonummer 3, genau das gleiche wie die Nummer 2, aber das Terminal bauen 509.

Und es gibt ein Stop-Loss-Schleppnetz:

void manageStops()
{ 
   string trailSymbol=Symbol();  
   for( int i = OrdersTotal()-1; i >=0 ; i-- ) 
   {
      if ( OrderSelect( i, SELECT_BY_POS ) == true ) 
      {  
         int trailOrderType = OrderType(); 
         if( OrderSymbol() != trailSymbol || trailOrderType > 1 || OrderProfit() < 0 ) continue; 
         double trailStopLoss = OrderStopLoss();   
         while( true ) {
            double trailStop = TrailingStop; 
            int trailDistance = MarketInfo( trailSymbol, MODE_STOPLEVEL ); 
            if( trailStop < trailDistance ) trailStop = trailStop+trailDistance;  
            bool modifyTrailingStop = false;  
            switch( trailOrderType ) 
            {
               case 0 : 
                  if(trailStopLoss < (Bid - (TrailingStop+TrailingStep) * pipPoints)) 
                  {
                     trailStopLoss = NormalizeDouble(Bid - TrailingStop * pipPoints,digits);   
                     modifyTrailingStop = true;       
                  }
                  break;    
               case 1 :                      
                  if(trailStopLoss > (Ask + (TrailingStop+TrailingStep) * pipPoints)) 
                  {
                     trailStopLoss = NormalizeDouble(Ask + TrailingStop * pipPoints,digits);             
                     modifyTrailingStop = true;             
                  }
               }                               
            if( modifyTrailingStop == false ) break;                       
            double trailTakeProfit = OrderTakeProfit(); 
            double trailPrice = OrderOpenPrice();  
            int trailTicket = OrderTicket();   
            if( ( OrderType() == OP_BUY && trailStopLoss > trailPrice && trailStopLoss < OrderOpenPrice() + ( MaxStop * pipPoints ) ) 
                  || ( OrderType() == OP_SELL && trailStopLoss < trailPrice && trailStopLoss > OrderOpenPrice() - ( MaxStop * pipPoints ) ) )

            OrderModify( trailTicket, trailPrice, trailStopLoss, trailTakeProfit,0);
            break; 
           } 
        }  
     }  
  return;   
} 

Warum wird auf dem Konto Nr. 1 der Stoploss normal nachgezogen, aber auf den Konten Nr. 2 und 3 "Fehler 130"??? Die Logik wird zwar unterlaufen, aber in einem Fall funktioniert sie...

 
evillive:

Nun, ich bin ja kein Programmierer...

Es gibt Kontonummer 1 - fünfstellig mit einem min.lot 0,01 und Schritt 0,01 (build 584); Kontonummer 2 - 4-stellig mit einem min.lot 0,1 und Schritt Lose von 0,1 (build 584) und Kontonummer 3, nur takoe gleich wie Nummer 2, nur Terminal build 509.

Und es gibt ein Stoploss-Schleppnetz:

Warum wird der Stop Loss auf Konto 1 normal nachgezogen, aber auf den Konten 2 und 3 wird "Error 130" angezeigt? Die Logik wird zwar unterlaufen, aber in einem Fall funktioniert sie...


Die Frage selbst impliziert, dass es sich um ein 5-stelliges oder 4-stelliges Konto handelt. Schauen Sie sich den Code an. Wo ist die Variable pipPoint definiert und was bedeutet sie? Hier liegt höchstwahrscheinlich das Problem.
 
pro_:

Die Frage selbst lässt vermuten, dass es sich um eine 5- oder 4-stellige Zahl handelt. Ich schaue mir den Code an. Wo ist die Variable pipPoints definiert und was bedeutet sie? Darin liegt höchstwahrscheinlich das Problem.

In der Initialisierung habe ich pipPoints = MarketInfo( Symbol(), MODE_POINT) definiert;

Ich habe den MaxStop-Wert erhöht, und das Schleppnetz sollte sich in Schritten mit größeren Werten ändern, aber es ändert sich in Schritten von 1 Punkt, zumindest beginnt das Schleppnetz bei 4 Ziffern... Ich werde die Logik noch ändern müssen, ich brauche eine einstellbare Tonhöhe.

 
smdm:

Hallo!

Die Frage lautet wie folgt. Ich habe einen Heiken Ashi Smoothed Indikator https://www.mql5.com/ru/code/7930.

Welche Änderungen muss ich am Code des Indikators vornehmen, um diesen Indikator auf einem Fünf-Minuten-Chart auf einem höheren Zeitrahmen, z. B. auf einem dreißigminütigen oder einstündigen Zeitrahmen, anbringen zu können?

Ich danke Ihnen.


Ich habe eine ähnliche Frage gestellt - wie man einen Indikator aus dem Wochenchart auf dem H4-Chart gelten. Ich hämmerte auf mehreren Foren . und auch hier, aber nicht bekommen, etwas Besseres als die Größe eines großen TF-m in den Code für eine kleinere vorschreiben, schlug niemand. obwohl, wenn Ihr Indikator hat einfache Logistik und nimmt für seine Berechnung der einfachen bar Berechnungen, ist es möglich. wenn Sie den Code und einen Bildschirm auf n1 ein Studio mit ihren Erklärungen Text .
 

und so sollte der Indikator eine vertikale Linie auf den Balken zeichnen, auf dem der Preis in der Mitte des Balkens schließt.....

double close_price(int nomer_bara)
{
if(nomer_bara<1)
{
Alert("нельзя анализировать текущий бар");
}
else
{
if(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)/3)//возвращает 1/3 если цена текущего бара закрылась ниже 1/3 его спреда 
{
return(1/3);
}
if(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)>iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)/3&&(iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)*2)/3)//возвращает 2/3 если цена текущего бара закрылась ниже 2/3 и выше 1/3 его спреда 
{
return(2/3);
}

if((iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)>(iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara))*2)/3&&iClose(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara)<iHigh(Symbol(),NULL,nomer_bara)-iLow(Symbol(),NULL,nomer_bara))//возвращает 1 если цена текущего бара закрылась выше 2/3 его спреда
{
return(1);
}
}

}

 if(close_price(1)==1/3)// в случае если цена закрылась внизу то нарисовать линию на этом баре
   {
 SetVLine(Red, "", Time[1], STYLE_SOLID, 2);
   }
и так вся проблема заключается в том что линия рисуется на каждом баре не пойму какого черта... помогите пожалуйста

Grund der Beschwerde: