Écrit un conseiller, il y a un problème. - page 6

 
khorosh >> :

Quels sont les guillemets à 4 ou 5 décimales ?

4 chiffres... j'ai aussi essayé sur 5 chiffres. NormalizeDouble ne fonctionne pas :(

 
En général, tout cela est un peu étrange..... Dans le premier post j'ai donné une capture d'écran de l'EA, j'ai commencé à le mettre à jour, des erreurs sont apparues ordersend error 130, j'ai tout remis dans son état original, mais les erreurs n'ont pas disparu !!!!!!!. Mais tout fonctionnait dans son état d'origine !!!! Qu'est-ce que c'est que ça ?
 
Noterday >> :

C'est ce que je dis. Pourquoi un stop de 10 pips est-il mauvais...


Voici le problème : un Stop de 10 pips peut être erroné car la distance minimale à laquelle vous pouvez placer un Stop Loss est supérieure à 10 pips (par exemple : 15 pips). Cette valeur est fixée par la salle des marchés.
 
J'ai essayé 200 ! C'est toujours la même chose...
 
Noterday >> :
J'ai essayé 200 aussi ! Toujours la même chose...


Pouvez-vous poster le code original de l'EA ?

 
#property copyright "Мостовнек"
#property link      ""

int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }

extern int Frame = 1;


int start()
  {
  int total;
  
  for (int i = 0; i <= OrdersTotal(); i++)
     {
       if (OrderSelect( i-1, SELECT_BY_POS) == true)
       total++;
     }
  
  
    double Buffer1 = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mx",0,0,1),4);
    double Buf1    = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mx",0,6,1),4);
    double Buffer2 = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mn",0,0,1),4);
    double Buf2    = NormalizeDouble(iCustom(NULL, Frame,"Osc_Mn",0,6,1),4);
    
    double ZZ_1    = NormalizeDouble(iCustom(NULL,0,"ZigZag",0,0,1),4);

//-----------------------------------------------------  

  if ( total == 0 && (( Buffer1 != EMPTY_VALUE || Buf1 != EMPTY_VALUE) && ( ZZ_1 == Buffer1 || ZZ_1 == Buf1)))
    {
     OrderSend(Symbol(),OP_SELL,0.1,Bid,10, ZZ_1+15*Point,Bid-20*Point,"SELL",0,0,Red);
     Print("Zigzag = ", ZZ_1," | Buffer1 = ", Buffer1);
    }
  
  if ( total == 0 && (( Buffer2 != EMPTY_VALUE || Buf2 != EMPTY_VALUE) && ( ZZ_1 == Buffer2 || ZZ_1 == Buf2)))
    {
     OrderSend(Symbol(),OP_BUY,0.1,Ask,10, ZZ_1-15*Point,Ask+20*Point,"BUY",0,0,Blue);
     Print("Zigzag = ", ZZ_1," | Buffer2 = ", Buffer1);
    }

return(0);
  }
 

Le principe de fixer un stop loss dans la fonction OrderSend() est correct. Il n'est donc pas nécessaire d'y changer quoi que ce soit.

Lors de l'exécution de la fonction Print(), ZigZag=0, donc le stop loss : 0+15*Point, soit égal à 0.0015. C'est pourquoi il génère l'erreur OrderSend Error 130.

double ZZ_1 = NormalizeDouble(iCustom(NULL,0, "ZigZag",21,5,3,0,1),4);// 21,5,3 sont des variables externes de l'indicateur, elles doivent être spécifiées dans l'ordre où elles sont déclarées dans l'indicateur ZigZag.

De même, double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4) ;
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4) ;
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4) ;
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4) ;

Aucune variable externe n'est spécifiée ici.

 

Mais ils sont optionnels, comme écrit dans la documentation de MQL4.

Et dans

double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4) ;
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4) ;
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4) ;
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4) ;


pas de variables externes du tout :)

À propos, ma fonction PRINT produit ZigZag normalement :


 
Noterday >> :

Mais ils sont optionnels, comme écrit dans la documentation de MQL4.

Et dans

double Buffer1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,0,1),4) ;
double Buf1 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mx",0,6,1),4) ;
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,0,1),4) ;
double Buf2 = NormalizeDouble(iCustom(NULL,Frame, "Osc_Mn",0,6,1),4) ;


pas de variables externes du tout :)

À propos, ma fonction PRINT produit ZigZag normalement :



S'il n'y a pas de variables externes dans ces indicateurs, il n'y a pas de demande :). Mais je dois encore réfléchir aux arrêts. Vous aurez peut-être un aperçu.
 
ellizii >> :

S'il n'y a pas de variables externes dans ces indicateurs, il n'y a pas de demande :). Mais je dois encore réfléchir aux arrêts. Vous aurez peut-être un aperçu.

Ne vous inquiétez pas pour ça :) Pour les développeurs : TESTEUR/OPTIMIZER DE BASE

Je suis sûr que c'est la même chose avec Stopomi.

Raison: