[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 289

 
TheXpert >> :

A proprement parler, non. Mais très proche.

Plus précisément, où se trouve-t-elle à proximité ?

J'aimerais entendre des réflexions sur les messages précédents, sur le code, la logique, etc.

>> Merci d'avance.

 

Merci de votre attention.

Voici à quoi ressemble l'EA

//+------------------------------------------------------------------+
//| Bibliot.mq4 |
//| Droits d'auteur © 2009, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#lien de propriété "http://www.metaquotes.net"

#include <PointZigZag.mqh>

int init()
{return(0);}
int deinit()
{return(0);}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
{PointZigZag() ;
Comment("Prod.-y21 = ",y21," ", "Pok.-x21 = ",x21) ;
retour(0) ;
}
//+------------------------------------------------------------------+


Et voici à quoi ressemble le fichier. Il fonctionne dans le terminal où il a été créé. Mais lors de la compilation, il écrit -Start function not found and cannot be run.

//+------------------------------------------------------------------+
//| PointZigZag.mqh |
//| Droits d'auteur © 2009, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp.
#lien de propriété "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//| EX4 imports |
//+------------------------------------------------------------------+
#import "PointZigZag.ex4".

extern inttern ExtDepth = 12 ; //------- variables ZigZag
extern inttern ExtDeviation = 5 ; //------- variables ZigZag
extern intBackstep = 3 ; //------- variables ZigZag
extern inttern ShiftBars = 2 ; //------- variables ZigZag
//------- variables ZigZag ------------------------------------------
double y3, y2, y1, zz;//
int x3, x2, x1, sh;//
double x31, x21, x11 ; // Point d'inflexion du zigzag
double y31, y21, y11 ; // Point d'inflexion du zigzag
double TimeZZ, TimeOO ;
//------------------------------------------------------------------------------

double PointZigZag()
{y3=0;y2=0;y1=0 ;
sh=ShiftBars ;
while (y3==0)
{zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh) ;
si (zz!=0 && zz!=EMPTY_VALUE)
{if (y1==0) { x1=sh ; y1=zz ; }
else if (y2==0) { x2=sh ; y2=zz ; }
else if (y3==0) { x3=sh ; y3=zz ; }}sh++ ;
}
si (High[x1]>High[x2])
{x11=Haut [x1] ; x21=Bas [x2] ; x31=Haut [x3] ;
y11=0;y21=0;y31=0;TimeZZ=Time[x2];
}sélection
{y11=Low[x1] ; y21=High[x2] ; y31=Low[x3] ;
x11=0;x21=0;x31=0;TimeZZ=Time[x2];}

}
#import
//+------------------------------------------------------------------+
 

Je ne suis pas un expert, mais les fichiers de la bibliothèque n'ont pas besoin d'être compilés séparément. D'où le message Start function not found and cannot be run. Le fichier de bibliothèque sera automatiquement inclus dans le code et compilé lors de la compilation de l'EA (lorsqu'il existe une fonction Start).

En outre, ce n'est pas clair pour moi. Je conseille de commenter le #import "PointZigZag.ex4" et le #import. Cela devrait fonctionner.

 

Mieux encore, mettez tout ça dans un EA. et jetez tout le reste.

//+------------------------------------------------------------------+
//| Библиот.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

extern int ExtDepth = 12; //------- переменные ZigZag
extern int ExtDeviation = 5; //------- переменные ZigZag
extern int ExtBackstep = 3; //------- переменные ZigZag
extern int ShiftBars = 2; //------- переменные ZigZag
//------- переменные ZigZag ------------------------------------------
double y3, y2, y1, zz;//
int x3, x2, x1, sh;//
double x31, x21, x11; // Точки перегиба ZigZag
double y31, y21, y11; // Точки перегиба ZigZag
double TimeZZ, TimeOO;
//------------------------------------------------------------------------------

int init()
{return(0);}
int deinit()
{return(0);}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{ PointZigZag();
Comment("Прод.-y21 = ", y21," ","Пок.-x21 = ", x21);
return(0);
}
double PointZigZag()
{ y3=0; y2=0; y1=0;
sh= ShiftBars;
while ( y3==0)
{ zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
if ( zz!=0 && zz!=EMPTY_VALUE)
{if ( y1==0) { x1= sh; y1= zz; }
else if ( y2==0) { x2= sh; y2= zz; }
else if ( y3==0) { x3= sh; y3= zz; }} sh++;
}
if (High[ x1]>High[ x2])
{ x11=High[ x1]; x21=Low[ x2]; x31=High[ x3];
y11=0; y21=0; y31=0; TimeZZ=Time[ x2];
}else
{ y11=Low[ x1]; y21=High[ x2]; y31=Low[ x3];
x11=0; x21=0; x31=0; TimeZZ=Time[ x2];}

}
//+------------------------------------------------------------------+
 
granit77 >> :

Ou, mieux encore, de les rassembler dans un conseiller expert, et de jeter tout le reste.

Tout cela est compréhensible. Mais c'était un exemple abstrait.

Je voudrais simplement créer une bibliothèque de fonctions différentes pour d'autres usages, puis les utiliser.

Veuillez réfléchir davantage à ce qui pourrait être la raison. >> Merci.

 
gvi2504 >> :

Tout cela est compréhensible. Mais c'était un exemple abstrait.

Je voudrais simplement créer une bibliothèque de fonctions différentes pour d'autres usages, puis les utiliser.

S'il vous plaît, réfléchissez à nouveau, quelle pourrait être la raison. >> Merci.

Merci pour la suggestion. J'ai tellement aimé ta dernière phrase, que je te la rends. Je pense que le fichier de bibliothèque n'est pas écrit correctement, il y a des #include et #import et une fonction intégrée. C'est du beurre. Jetez-le, lisez un manuel et écrivez-le à nouveau.

 

Comment faites-vous pour tester vos EA, disons sur une période d'un an ? J'ai lu tellement d'informations, mais je ne peux rien faire contre le fait que ma carte M1 ne peut pas aller plus loin que le 5 mars 2009. Par conséquent, je ne peux pas fixer la période de test avant le 5 mars. J'ai essayé de charger des citations dans MT par l'intermédiaire du service->archive de citations, cela n'aide pas. Le défilement manuel n'aide pas non plus..... C'est ce que j'ai obtenu du support technique de la société de courtage :


"Malheureusement, Metaquotes ne fournit pas un programme spécial, le soi-disant "serveur historique" aux centres de négociation, il y a donc ces limitations. Aussi, lorsque vous sélectionnez le menu "Service-Archive" et cliquez sur "Télécharger" - vous obtiendrez l'avertissement que les données historiques du serveur MetaQuotes seront téléchargées.

p.s. Plusieurs centres de négociation (et nous en faisons partie) essaient de faire en sorte que MetaQuotes vous donne la possibilité de télécharger (sans restrictions) les données d'une société de courtage particulière. Cependant, jusqu'à présent, ils ne promettent de rendre ce service disponible que dans MT5.


Et que dois-je faire si je veux vérifier mon conseiller expert sur une longue série ?

 
Noterday >> :

Comment faites-vous pour tester vos EA, disons sur une période d'un an ? J'ai lu tellement d'informations, mais je ne peux rien faire contre le fait que ma carte M1 ne peut pas aller plus loin que le 5 mars 2009. Par conséquent, je ne peux pas fixer la période de test avant le 5 mars. J'ai essayé de charger des citations dans MT par l'intermédiaire du service->archive de citations, cela n'aide pas. Le défilement manuel n'aide pas non plus..... C'est ce que j'ai obtenu du support technique de ma société de courtage :


"Malheureusement, Metaquotes ne fournit pas un programme spécial, le soi-disant "serveur historique" aux centres de négociation, il y a donc ces limitations. Aussi, lorsque vous sélectionnez le menu "Service-Archive" et cliquez sur "Télécharger" - vous obtiendrez l'avertissement que les données historiques du serveur MetaQuotes seront téléchargées.

p.s. Plusieurs centres de négociation (et nous en faisons partie) ont essayé de faire en sorte que MetaQuotes vous permette de télécharger (sans restrictions) les données d'une société de courtage particulière. Cependant, jusqu'à présent, ils ne promettent de rendre ce service disponible que dans MT5".


Et que dois-je faire si je veux vérifier mon EA pendant une longue période de temps ?

De plus, dans MT5 ce n'est pas seulement prévu, là tout est construit sur М1 et l'autre TF est calculé à partir de М1 (ces historiques ne seront que dans М1) Bien, mettez une plus grande fenêtre et téléchargez à partir de MetaQuotes , sinon il n'y a pas moyen. Si vous n'avez pas exécuté MT avant la date de début et MQ, et que vous n'avez pas sauvegardé vos propres mouvements, c'est impossible.

Bien que demander qui aurait pu les sauver, il y a des gens qui ont sauvé des citations même depuis MT-2.

(Je suis désolé, je ne sais pas ce qui s'est passé avant MT-2, mais je n'ai pas eu beaucoup de temps en forex).

 
Charger l'historique et (écrire) tester le Conseiller Expert sur les "prix d'ouverture" sur au moins n1...
 
rid >> :
Chargement de l'historique et test (écriture) d'un EA sur les "Opening prices" sur af, au moins n1...

Oui, en effet, j'ai commencé à tester :) Mais il me semble qu'à cause d'un tel désordre, le système ne se montrera pas. Peut-être que l'indicateur n'est pas calculé correctement sur ces données ou autre chose ... d'autant plus que le système a été conçu pour les minutes. Merci quand même !