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

 
ScioMe:


PF ist der Profit Factor, wie ich sehe. Und was ist FF? Ist es möglich, dass der Tester diese Werte ausgibt, so wie er die MO ausgibt?

Wenn ich Ihnen die MO, Rentabilität, Anzahl der Trades, Datum, maximaler Drawdown, können Sie etwas über die Qualität des EA sagen?


FS ist der Erholungsfaktor = Nettogewinn/Maximalinanspruchnahme.

siehe. "Qualität eines EA"...:-)))

 
ScioMe:

Wenn ich Ihnen die MO, Rentabilität, Anzahl der Trades, Datum, maximaler Drawdown, können Sie etwas über die Qualität des EA sagen?


Das ist einfacher als der Berichtskopf eines Testers. Und trotzdem: Es ist sehr wichtig zu wissen, wie das Ergebnis zustande gekommen ist. Es ist eine Sache, das beste Optimierungsergebnis zu kennen, und eine andere, die Grundprinzipien des Expert Advisors zu kennen. Und nur dann, mit einiger Erfahrung, können wir den Experten mit einer Erfolgswahrscheinlichkeit diagnostizieren, die größer ist als eine Vermutung (sagen wir 7-8 von 10 Fällen).
 
Verzeihen Sie meine Unkenntnis, aber was ist ein Forward?
 

Schauen Sie sich den Artikel "Testen und Optimieren von Expert Advisors" an.

Dort wird detailliert beschrieben, worum es sich handelt, nämlich um einen Vorwärtstest.

 

Bitte helfen Sie mir. Ich habe gerade mit der Programmierung in mql begonnen.

Ich muss so etwas tun.

Ich muss keinen Code schreiben, obwohl der Zweck dieser Arbeit darin besteht

Wenn bereits 1 Auftrag geöffnet und geschlossen wurde, kann der Experte an diesem Tag nicht arbeiten.

Wenn ein Auftrag mit einem negativen Saldo eröffnet und geschlossen wird, stellt der Expert Advisor seine Arbeit für diesen Tag ein.

 

Schauen Sie sich https://www.mql5.com/ru/forum/131859 an.

Die Funktionen von Seite 4 werden Ihnen hier (höchstwahrscheinlich) von Nutzen sein:

isTradeToDay - Gibt das Flag für den heutigen Handel zurück

isLossLastPos - Gibt das Flag für den Verlust der letzten Position zurück.

isCloseLastPosByStop - Gibt das Flag zum Schließen der letzten Position per Stop zurück
isCloseLastPosByTake - Gibt ein Flag zum Schließen der letzten Position durch Take zurück.

NumberOfBarCloseLastPos - Gibt die Bar Close-Nummer der letzten Position oder -1 zurück. (=0 auf tfD - für den heutigen Abschluss)

NumberOfLossPosToday - Gibt die Anzahl der heute geschlossenen Verlustpositionen zurück.

usw.

 

Schicken Sie mir, wo nit, wo Sie sehen können (zu lesen), wie die regelmäßige Indikator MACD neu zu machen, so dass es zeigt die Werte H4 auf H1, dh während der 4 Stunden auf der H1, um die gleiche Bar Zeitraum Werte H4 zeichnen

Ich danke Ihnen!

 

Hallo. Könnten Sie mir bitte bei der Operation While helfen. Ich habe ein Skript erstellt, das horizontale Linien zwischen Ebenen zeichnen sollte, aber es zeichnet nur die erste Linie und bleibt dann hängen. Was mache ich falsch?

Der Code ist beigefügt.

//+------------------------------------------------------------------+

//| H_LINES.mq4

//| Copyright © 2011, MetaQuotes Software Corp.

//| http://www.metaquotes.net |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2011, MetaQuotes Software Corp.

#property link "http://www.metaquotes.net"


//+------------------------------------------------------------------+

//| Skriptprogramm-Startfunktion |

//+------------------------------------------------------------------+

double Min_Level = 1.40000; //untere Grenze

double Max_Level = 1.60000; //Höhere Grenze

double Step = 200; // Schritt (Abstand zwischen den Linien) in Pips

int Lines_Width = 2; // Linienbreite

color Linien_Farbe = Grün; /Linienfarbe

double i; //formale Variable


int start()

{

//----

i=Min_Level;

while ( i < Max_Level )

{

ObjectCreate ("H_LINE",OBJ_HLINE,0,0,i);

ObjectSet ("H_LINE",OBJPROP_COLOR,Lines_Color);

ObjectSet ("H_LINE",OBJPROP_WIDTH,Lines_Width);

i = Min_Level + (Step/10000);

}

//----

zurück(0);

}

//+------------------------------------------------------------------+

Ich danke Ihnen.

 
Gerkl:

Hallo. Könnten Sie mir bitte bei der Operation While helfen. Ich habe ein Skript erstellt, das horizontale Linien zwischen Ebenen zeichnen sollte, aber es zeichnet nur die erste Linie und bleibt dann hängen. Was mache ich falsch?

Der Code ist beigefügt.

//+------------------------------------------------------------------+

//| H_LINES.mq4

//| Copyright © 2011, MetaQuotes Software Corp.

//| http://www.metaquotes.net |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2011, MetaQuotes Software Corp.

#property link "http://www.metaquotes.net"


//+------------------------------------------------------------------+

//| Skriptprogramm-Startfunktion |

//+------------------------------------------------------------------+

double Min_Level = 1.40000; //untere Grenze

double Max_Level = 1.60000; //Höhere Grenze

double Step = 200; // Schritt (Abstand zwischen den Linien) in Pips

int Lines_Width = 2; // Linienbreite

color Linien_Farbe = Grün; /Linienfarbe

double i; //formale Variable


int start()

{

//----

i=Min_Level;

while ( i < Max_Level )

{

ObjectCreate ("H_LINE",OBJ_HLINE,0,0,i);

ObjectSet ("H_LINE",OBJPROP_COLOR,Lines_Color);

ObjectSet ("H_LINE",OBJPROP_WIDTH,Lines_Width);

i = Min_Level + (Step/10000);

}

//----

zurück(0);

}

//+------------------------------------------------------------------+

Danke.

Zunächst einmal:

i = Min_Level + (Step/10000);

Ihr i ändert sich nicht


zweitens

ObjectCreate ("H_LINE",OBJ_HLINE,0,0,i);

jedes Objekt sollte seinen eigenen eindeutigen Namen haben

 

Hilfe pdz.... Weiter zu studieren das Tutorial - stieß auf etwas, das nicht klar ist für mich, kann nicht herausfinden

//--------------------------------------------------------------------
// callindicator.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
extern int Period_MA = 21;            // Период расчётной МА
bool Fact_Up = true;                  // Факт сообщения, что цена..
bool Fact_Dn = true;                  //..находится выше или ниже МА
//--------------------------------------------------------------------
int start()                           // Спец. функция start  {
   double MA;                         // Значение МА на 0 баре    
//--------------------------------------------------------------------
                                      // Обращение к функции техн.инд.
   MA=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0); 
//--------------------------------------------------------------------
   if (Bid > MA && Fact_Up == true)   // Проверка прохода вверх     {
      Fact_Dn = true;                 // Сообщать о цене выше МА
      Fact_Up = false;                // Не сообщать о цене ниже МА
      Alert("Цена находится выше MA(",Period_MA,").");// Сообщение      }
//--------------------------------------------------------------------
   if (Bid < MA && Fact_Dn == true)   // Проверка прохода вниз     {
      Fact_Up = true;                 // Сообщать о цене ниже МА
      Fact_Dn = false;                // Не сообщать о цене выше МА
      Alert("Цена находится ниже MA(",Period_MA,").");// Сообщение      }
//--------------------------------------------------------------------
   return;                            // Выход из start()  }
//--------------------------------------------------------------------

Eine einfache Funktion, die mir sagt, ob der Kurs über oder unter dem EMA liegt. Aber das ist gar nicht die Frage.

Warum werden, wenn Fact_Dn und Fact_UP beim Funktionsstart true oder false Werte annehmen, diese Werte auch von globalen Variablen übernommen? Es ist ja nicht so, dass wir zum Beispiel return(Fact_Up) verwenden... unklar... oder können wir es nicht verwenden?