[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 266

 
ScioMe:


PF est le facteur de profit, je vois. Et qu'est-ce que FF ? Existe-t-il un moyen de faire en sorte que le testeur émette ces valeurs, comme il le fait pour le MO ?

Si je vous donne le MO, la rentabilité, le nombre de trades, la date, le drawdown maximum, pouvez-vous dire quelque chose sur la qualité de l'EA ?


FS est le facteur de récupération = bénéfice net/tirage maximal.

voir. "qualité d'un EA"...:-)))

 
ScioMe:

Si je vous donne le MO, la rentabilité, le nombre de trades, la date, le drawdown maximum, pouvez-vous dire quelque chose sur la qualité de l'EA ?


C'est plus facile qu'un en-tête de rapport de testeur. Et tout de même : il est très important de savoir comment le résultat a été obtenu, c'est une chose de connaître le meilleur résultat d'optimisation, et une autre chose est de connaître les principes de base du Conseiller Expert. Et ce n'est qu'ensuite, avec un peu d'expérience, que nous pourrons poser un diagnostic d'expert avec une probabilité de succès supérieure à une supposition (disons 7-8 cas sur 10).
 
Pardonnez mon ignorance, mais qu'est-ce qu'un avant ?
 

Consultez l'article "Tester et optimiser les conseillers experts".

Elle y est décrite en détail - ce qu'elle est, un test d'avancement.

 

Je viens de commencer à programmer en mql.

J'ai besoin de faire une telle chose.

Je n'ai pas besoin d'écrire de code, bien que l'idée soit

je voudrais vérifier un ordre par jour. si un ordre a déjà été ouvert et fermé, l'expert ne fonctionnera pas ce jour-là.

Si un ordre est ouvert et fermé avec un solde négatif, le conseiller expert cessera de fonctionner pour la journée.

 

Jetez un coup d'œil à https://www.mql5.com/ru/forum/131859

Les fonctions de la page 4 vous seront (très probablement) utiles ici :

isTradeToDay - Retourne le drapeau de la transaction d'aujourd'hui.

isLossLastPos - Renvoie l'indicateur de perte de la dernière position.

isCloseLastPosByStop - Renvoie l'indicateur de fermeture de la dernière position par arrêt.
isCloseLastPosByTake - Renvoie un indicateur de fermeture de la dernière position par Take.

NumberOfBarCloseLastPos - Renvoie le numéro de clôture de la barre de la dernière position ou -1. (=0 sur tfD - pour la clôture d'aujourd'hui)

NumberOfLossPosToday - Renvoie le nombre de positions perdantes fermées aujourd'hui.

etc.

 

Bonjour à tous ! Envoyez-moi où nit où vous pouvez voir (à lire) comment refaire l'indicateur régulier MACD, de sorte qu'il montre les valeurs H4 sur H1, c'est à dire pendant les 4 heures sur le H1 de dessiner la même période de barres valeurs H4

Merci !

 

Bonjour. Pourriez-vous m'aider avec l'opération While. J'ai créé un script qui était censé dessiner des lignes horizontales entre les niveaux, mais il ne dessine que la première ligne et se bloque ensuite. Qu'est-ce que je fais de mal ?

Le code est joint.

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

//| H_LINES.mq4

//| Copyright © 2011, MetaQuotes Software Corp.

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

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

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

#lien de propriété "http://www.metaquotes.net"


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

//| fonction de démarrage du programme de script |

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

double Min_Level = 1.40000 ; //limite inférieure

double Max_Level = 1.60000 ; //limite supérieure

double Step = 200 ; // Step (distance entre les lignes) en pips

int Lines_Width = 2 ; // Largeur de ligne

couleur Lines_Color = Green ; //couleur des lignes

double i ; //variable formelle


int start()

{

//----

i=Niveau_minimum ;

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) ;

}

//----

retour(0) ;

}

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

Merci.

 
Gerkl:

Bonjour. Pourriez-vous m'aider avec l'opération While. J'ai créé un script qui était censé dessiner des lignes horizontales entre les niveaux, mais il ne dessine que la première ligne et se bloque ensuite. Qu'est-ce que je fais de mal ?

Le code est joint.

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

//| H_LINES.mq4

//| Copyright © 2011, MetaQuotes Software Corp.

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

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

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

#lien de propriété "http://www.metaquotes.net"


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

//| fonction de démarrage du programme de script |

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

double Min_Level = 1.40000 ; //limite inférieure

double Max_Level = 1.60000 ; //limite supérieure

double Step = 200 ; // Step (distance entre les lignes) en pips

int Lines_Width = 2 ; // Largeur de ligne

couleur Lines_Color = Green ; //couleur des lignes

double i ; //variable formelle


int start()

{

//----

i=Niveau_minimum ;

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) ;

}

//----

retour(0) ;

}

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

Merci.

tout d'abord :

i = Min_Level + (Step/10000) ;

votre i ne change pas


deuxièmement

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

chaque objet doit avoir son propre nom unique

 

Aide pdz.... Je continue à étudier le tutoriel - je suis tombé sur quelque chose qui n'est pas clair pour moi, je n'arrive pas à comprendre.

//--------------------------------------------------------------------
// 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()  }
//--------------------------------------------------------------------

Une fonction simple qui me dit si le prix est au-dessus ou au-dessous de l'EMA. Mais ce n'est même pas la question.

pourquoi lorsque Fact_Dn et Fact_UP prennent des valeurs vraies ou fausses en début de fonction, ces valeurs sont également prises par des variables globales? ce n'est pas comme si nous utilisions return(Fact_Up) par exemple... pas clair... ou ne pouvons-nous pas l'utiliser ?

Raison: