[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 49

 
xruss >> :

Ich werde einen Teil meines Codes später posten, aber ich denke, es wäre cooler mit Checkboxen. wie schreibe ich sie in mql4?

https://book.mql4.com/ru/variables/arrays

Am Ende dieses Abschnitts wird das Prinzip der Verwendung von Flaggen anhand des Beispiels der Bildung eines neuen Balkens sehr gut beschrieben. In ähnlicher Weise erstellen wir zwei Variablen vom Typ bool, die die Möglichkeit angeben, Geschäfte eines bestimmten Typs zu eröffnen, zum Beispiel Buy_Allowed und Sell_Allowed. Standardmäßig wird diesen Variablen der Wert true zugewiesen. Wenn es ein Kaufsignal gibt, setzen wir im Falle einer erfolgreichen Positionseröffnung Buy_Allowed=false; in diesem Fall fügen wir vor OrderSend() die Bedingung der Ausführung für Kaufgeschäfte nur dann hinzu, wenn Buy_Allowed==true. Wenn ein umgekehrtes Signal empfangen wird, wird das Flag Buy_Allowed=true verworfen. Das gleiche Schema wird für Verkaufsgeschäfte verwendet, allerdings mit dem Kennzeichen Sell_Allowed.

 
Everlost >> :

https://book.mql4.com/ru/variables/arrays

Am Ende dieses Abschnitts wird das Prinzip der Verwendung von Flaggen anhand des Beispiels der Bildung eines neuen Balkens sehr gut beschrieben. In Analogie dazu erstellen wir zwei Variablen vom Typ bool, die die Zulässigkeit der Eröffnung von Geschäften eines bestimmten Typs angeben, z. B. Buy_Allowed und Sell_Allowed. Standardmäßig wird diesen Variablen der Wert true zugewiesen. Wenn es ein Kaufsignal gibt, setzen wir im Falle einer erfolgreichen Positionseröffnung Buy_Allowed=false; in diesem Fall fügen wir vor OrderSend() die Bedingung der Ausführung für Kaufgeschäfte nur dann hinzu, wenn Buy_Allowed==true. Wenn ein umgekehrtes Signal empfangen wird, wird das Flag Buy_Allowed=true verworfen. Das gleiche Schema wird für Verkaufsgeschäfte verwendet, allerdings mit dem Kennzeichen Sell_Allowed.

Ich danke Ihnen. Ich habe einen Teil des Codes im letzten Beitrag veröffentlicht.

 

Ich habe meinen Daydream EA bereits von dieser Website heruntergeladen.Als ich es getestet habe, war das maximale Lot, das ich im Test genommen habe, 0,1 und der Saldo war 10.000. Ich habe es mit GBPUSD 15 in Meta Trader 4 222 getestet.

Zweite Frage: Was ist die "Fehlanpassung" im Prüfbericht?

Die dritte Frage, warum kann ich nicht ein Signal bekommen? Ich habe den Eindruck, dass dies irgendwie mit der ersten Frage zusammenhängt, das heißt, etwas ist glitching in das Programm. Ich bin mit EURUSD M1 MACD Sample (die als Standard kommt), Ich verringerte die MACD OpenLevel auf 1 und bekam nichts.

Ich weiß nicht, wie man es benutzt.

 
xruss >> :

Danke, ich werde mich weiterbilden. Ich habe einen Teil des Codes im letzten Beitrag veröffentlicht.

int    ORDtype=-1, ORDtime=0;
double ORDprofit;

for (int i=OrdersHistoryTotal()-1; i>=0; i--) {
  if (OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)) {
    if (OrderSymbol()==Symbol()) {
      if (OrderCloseTime()!=0 && OrderCloseTime()> ORDtime) {
        ORDtime=OrderCloseTime();
        ORDtype=OrderType();
        ORDprofit=OrderProfit();
      }
    }
  }
}

//........

if ( ORDtype==-1)
{
  // В истории не нашлось подходящих ордеров
}

if ( ORDtype==OP_SELL)
{
  // Последним был закрыт Sell
}

if ( ORDtype==OP_BUY)
{
  // Последним был закрыт Buy
}
Die Arbeitsvariante Ihres Codes. Sie hätten die Prüfung (OrderCloseTime()>time) nicht entfernen sollen, da sonst der ganze Sinn verloren ginge - wir wählen den letzten abgeschlossenen Auftrag, indem wir die Abschlusszeit jedes gesuchten Auftrags mit der ältesten Abschlusszeit der zuvor gefundenen Aufträge vergleichen, die wir in der Variablen ORDtime speichern. Aber Sie haben gerade alle Aufträge der Geschichte durchlaufen. Sie hatten auch eine Bedingung zu ORDprofit, aber das können Sie selbst hinzufügen. :)
 
Everlost >> :
Arbeitsversion Ihres Codes. Sie hätten die Prüfung (OrderCloseTime()>time) nicht entfernen sollen, da sonst der ganze Sinn verloren ginge - wir wählen den letzten abgeschlossenen Auftrag, indem wir die Abschlusszeit jedes gesuchten Auftrags mit der ältesten Zeit der zuvor gefundenen Aufträge vergleichen. Sie hatten auch eine Bedingung zu ORDprofit, aber das können Sie selbst hinzufügen. :)

Ja, ich hatte eine Bedingung, um die Eröffnung in der gleichen Richtung zu verbieten, wenn die letzte Bestellung einen Gewinn hatte :)

Vielen Dank!!!))

 
zas писал(а) >>

Zweite Frage: Was sind "Diskrepanzfehler" im Prüfbericht?

Es wurde schon oft gefragt, es ist einfacher für Sie, zu suchen...

zas schrieb >>

Ich habe versucht, GBPUSD 15 auf einem Meta Trader 4 222 zu verwenden. Interessant ist, dass der Test mit 1 Lot auf einem anderen Computer in Ordnung war. Was ist der Trick?

Vielleicht ist MT4 auf dem anderen Computer mit dem Konto eines anderen Brokers verbunden, andere Broker, andere Handelsbedingungen... Oder vielleicht bestimmt der EA das Los zufällig?) Sie benötigen den Code des Expert Advisors, die Anweisungen, und Sie werden eine genaue Antwort erhalten.

zas schrieb(a) >>

Mein Eindruck ist, dass es irgendwie im Zusammenhang mit der ersten Frage, d.h., etwas ist glitching in das Programm. Ich habe versucht, EURUSD M1 MACD Sample (die als Standard kommt) zu verwenden, verringerte ich die MACD OpenLevel auf 1 und bekam nichts.

Schauen Sie sich das Protokoll des Testers an, wenn Sie von einem Tester sprechen. Posten Sie den Parametersatz und das Ergebnis des Test-EA (bei dem es keine Signale gibt). Es scheint, dass alle Ihre Kupplungen aus Mangel an Erfahrung, und nicht von Pannen im Programm...

 
VladislavVG >> :

Eine Möglichkeit:

Setzen Sie die boolsche Variable NeedAlert auf true, wenn Sie den Handel beginnen.


Vielen Dank, und ich dachte, es würde nicht funktionieren - wie die Schleife wird nicht funktionieren - es stellt sich heraus, ich vergaß die geschweifte Klammer))

 
Ich habe eine Frage: Wie berechne ich die Losgröße, so dass der geschätzte Gewinn für 20 Pips 4% der aktuellen Einlage beträgt?
 
xruss писал(а) >>

Danke, ich werde mich weiterbilden. Ich habe einen Teil des Codes im letzten Beitrag veröffentlicht.

//+------------------------------------------------------------------+
// Проверка последнего ордера по условию                             |
//+------------------------------------------------------------------+
bool LastCloseOrd(string Sy = "",//Если Sy=="" на принадлежность символу не проверяем
                  int  Type = -1,//Если Typ==-1 любой тип ордера
                  int Magic = -1,//Если Magic=-1любой магик
                  int Pr_Ls =  0){//Если Pr_Ls =0 без проверки на профит, если <0 то фильтр лосевых , если >0 то фильтр профитных ордеров
                  int time=0;
if(OrdersHistoryTotal()<1){return(false);}//Если нет закрытых ордеров выходим 
  for(int i=0; i<OrdersHistoryTotal(); i++){//Перебираем закрытые ордера
    if(OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)){//Выбираем ордер из истории
      if(OrderCloseTime()!=0){//Если ордер уже закрыт
        if( Sy==""||OrderSymbol()== Sy){//если совпадает символ, или нет проверки на символ
          if( Type==-1||OrderType()== Type){//если совпадает тип, или нет проверки на тип
            if( Magic==-1||OrderMagicNumber()== Magic){//если совпадает магик , или не проверки на магик
              if(OrderCloseTime()> time){//если время закрытия ордера больше чем предыдущее
                time=OrderCloseTime();//записываем время закрытия (в конце цикла у нас в ловушке булет сидеть последний закрытый ордер
              }                                                  //попадающий под все условия выставленных фильтров)
            }
          }
        }
      }
    }
  }  
if( Pr_Ls==0&&time!=0){return(true);}//если нет условия на профит-лосс подтверждаем наличие ордера
if( Pr_Ls<0&&OrderProfit()<0){return(true);}//если ордер лосевый подтверждаем наличие ордера
if( Pr_Ls>0&&OrderProfit()>0){return(true);}//если ордер профитный подтверждаем наличие ордера
return(false);//нет ни одного попадающего под выставленные условия ордера
} 
 

Hier geht es um die Fehler im Tester.........

Wenn jemand etwas weiß, bitte melden.....

')' - wrong parameters count	C:\Program Files\MetaTrader - Alpari\experts\expertCCI_WILLIAMS.mq4 (64, 37)
')' - wrong parameters count	C:\Program Files\MetaTrader - Alpari\experts\expertCCI_WILLIAMS.mq4 (65, 37)
Was bedeuten die Zahlen 64,37 und 65,37????????????