Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 573
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Bonjour, pouvez-vous me dire comment apprendre à mon conseiller expert à détecter les fractales ?
Je souhaiterais avoir plus de détails. Il y a beaucoup d'indices différents qui permettent de dessiner et de trouver des fractales. Le conseiller expert n'a pas besoin de les détecter. Vous prenez l'indicateur et copiez les valeurs d'une certaine fractale à partir de ses tampons. Rien de compliqué si vous y prêtez attention.
Bonne journée ! Les gars, conseillez-moi sur cette question : dans le testeur de stratégie, l'exp ouvre des ordres selon l'algorithme et le schéma d'augmentation de la taille du canal des moyennes ultérieures - vous pouvez le voir dans l'image - chaque moyenne ultérieure est ouverte à une plus grande distance de la précédente (comme dans Ilan). Mais en même temps, l'imprimeur produit de telles valeurs d'expressions, que le calcul de la moyenne ne devrait pas avoir lieu, car les conditions de leur ouverture ne sont pas remplies 25 pas plus que 2856, 2197, 1690. Comment peut-il entrer dans cet état et ouvrir des positions ? J'ai décidé de tout entourer d'accolades, mais cela ne sert à rien.
Un test sur les prix d'ouverture. Voici le code et l'image :
Bonjour, pouvez-vous me dire comment apprendre à l'Expert Advisor à détecter les fractales ?
Voir navigateur. Si c'est à propos de ça, c'est comme ça.
Bonne journée ! Les gars, conseillez-moi sur cette question : dans le testeur de stratégie, l'exp ouvre des ordres selon l'algorithme et le schéma d'augmentation de la taille du canal des moyennes ultérieures - vous pouvez le voir dans l'image - chaque moyenne ultérieure est ouverte à une plus grande distance de la précédente (comme dans Ilan). Mais en même temps, l'imprimeur produit de telles valeurs d'expressions, que le calcul de la moyenne ne devrait pas avoir lieu, car les conditions de leur ouverture ne sont pas remplies 25 pas plus que 2856, 2197, 1690. Comment peut-il entrer dans cet état et ouvrir des positions ? J'ai décidé de tout entourer d'accolades, mais cela ne sert à rien.
Un test sur les prix d'ouverture. Voici le code et l'image :
D'après ce que je comprends, sans voir tout le code et sans apprendre comment il fonctionne ici, il est peu probable que quelqu'un puisse vous le dire. Toutes les fonctions utilisées dans ce bloc ne sont connues que de vous. Il est préférable de tout imprimer au fur et à mesure et de garder un œil sur la sortie des messages.
D'après ce que je comprends, sans voir tout le code et sans apprendre comment il fonctionne ici, je pense que personne ne peut vous le dire. Toutes les fonctions utilisées dans ce bloc ne sont connues que de vous. Il est préférable de tout imprimer au fur et à mesure et de garder un œil sur la sortie du message.
Toutes les fonctions fonctionnent correctement - ce sont les fonctions de Kim I.V. "Seulement les fonctions utiles de Kim I.V." Du nom des fonctions - leur but est clair.
J'ai trouvé la solution - tout fonctionne correctement. Il aurait dû être imprimé AVANT l'ouverture de la position.
La position de moyenne a été ouverte selon l'algorithme et la fonction PriceOpenLastPos(Symbol(), OP_BUY, MN_L) a retourné la valeur de la position qui venait d'être ouverte, c'est pourquoi j'avais des questions.
Merci, Hoz.
Roman, Heureux que cela ait marché pour vous :) Et aussi, si rapide.
En gros, mon compilateur s'est remis à jurer. Il y a une bibliothèque qui utilise une classe dans celle-ci. La classe de cours est incluse dans la bibliothèque :
#include <HOZ_Code\Classes\CLogging.mqh> CLogging logging;
Lors de la compilation de cette bibliothèque, qui utilise la classe CLogging.mqh, le compilateur jure comme ceci :
Dans la classe sur cette ligne :
Qu'est-ce que tout cela peut signifier ?
Au secours ! !!
Dans un EA du forum public, j'ai attaché un modèle à 3 barres à une condition d'entrée de transaction.
Après l'optimisation et les tests (3,5 ans), j'ai installé dix fenêtres sur un compte de démonstration avec des paramètres individuels dans chacune d'elles, ce qui a permis d'assurer la vitesse des transactions de chouettes au moins 1,5 par jour. La même vitesse est assurée sur 10 ordinateurs virtuels sur mon serveur - une fenêtre dans chacun.
Une semaine s'est écoulée, mais aucun accord n'a été conclu nulle part.
Que faire ?
=========================
int GetSignal()
{
double LevelADX = iADX(NULL,TF_ADX,PeriodADX,4,MODE_MAIN,0) ;
double Delta_01_ADX =(iADX(NULL,TF_ADX,PeriodADX,4,MODE_MAIN,0)
- iADX(NULL,TF_ADX,PeriodADX,4,MODE_MAIN,2)) ;
double mas,maf ;
mas=iMA(NULL,TF_MA,Slow.period,0,Slow.metod,Slow.price,1) ;
maf=iMA(NULL,TF_MA,Fast.period,0,Fast.metod,Fast.price,1) ;
//------------------
double delta1,delta2 ;
delta1=NormalizeDouble((Close[1]-Close[2])/Point,5) ;
delta2=NormalizeDouble((Close[2]-Close[3])/Point,5) ;
double body3=NormalizeDouble((Open[3]-Close[3])/Point,5)
//------------------
int STsig=-1 ;
if(CrossLevel && Lines>0) {
int up,dw ;
int up_l,dw_l ;
for(jj=0;jj<8;jj++) {
if(ST[jj][0]<LevelDw) dw++ ; else{
if(ST[jj][0]>LevelUp) up++ ;
}
if(ST[jj][1]<LevelDw) dw_l++ ; else{
if(ST[jj][1]>LevelUp) up_l++ ;
}
}
if(up<=8-Lines && up_l>8-Lines) STsig=1 ;
if(dw<=8-Lines && dw_l>8-Lines) STsig=0 ;
}
if(STsig==-1 && BreakSweep) {
double big,small ;
double big_l,small_l ;
for(jj=0;jj<8;jj++) {
if(ST[jj][1]>big_l) big_l=ST[jj][1] ;
if(ST[jj][1]<small_l || small_l==0) small_l=ST[jj][1] ;
}
if(big_l-small_l<=Sweep && (small_l>=LevelUp || big_l<=LevelDw)) {
for(jj=0;jj<8;jj++) {
if(ST[jj][0]>big) big=ST[jj][0] ;
if(ST[jj][0]<small || small==0) small=ST[jj][0] ;
}
if(big-small>Sweep)
{
//--------------- mes add-ons Volume [] et Open [] et Close [] ------------------------------
if(Close[1]>Close[2]&& Close[2]>Close[3]&& Close[3]<Open[3] && Close[2]>High[3]
&& body3>=Body3 && delta1>=Delta1 && delta2>Delta2 && big_l<=LevelDw && maf>mas)
STsig=0 ;
if(Close[1]<Close[2]&& Close[2]<Close[3]&& Close[3]>Open[3] && Close[2]<Low[3]
&& body3>=Corps3 && delta1>=Delta1 && delta2>Delta2 && small_l>=LevelUp && maf<mas)
STsig=1 ;
}
}
}
if(Volume[0]<2 && Volume[1]>Volume1 && Volume[2]>Volume2
&& Delta_01_ADX > DeltaADX && LevelADX < StopADX && STsig==0) return(OP_BUY) ;
if(Volume[0]<2 && Volume[1]>Volume1 && Volume[2]>Volume2
&& Delta_01_ADX > DeltaADX && LevelADX < StopADX && STsig==1) return(OP_SELL) ;
return(-1) ;
}
=================================================
Merci d'avance !