Questions des débutants MQL5 MT5 MetaTrader 5 - page 419
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
Deux ans - en testeur :) Eh bien, ça fait un an qu'il tourne sur la démo... Beaucoup de bugs, quand j'ai dû le connecter à cause de classes externes... Et maintenant il y a un tel bug, que je ne sais pas comment corriger - je vais juste augmenter la taille du tableau d'un chiffre, pour le moment. Pourquoi n'y a-t-il pas de taille automatique, comme pour un tampon graphique, ou y en a-t-il une ?
Essayez comme ça.
Initialiser le tableau OrderBU[1].
Augmentez d'abord la taille du tableau ( ArrayResize(OrderBU,NorderBU+1) ), puis OrderBU[NorderBU]=OrderTicket();NorderBU++ ;
Essayez comme ça.
Initialiser le tableau OrderBU[1].
Augmentez d'abord la taille du tableau ( ArrayResize(OrderBU,NorderBU+1) ), puis OrderBU[NorderBU]=OrderTicket();NorderBU++ ;
Pouvez-vous nous conseiller sur ce point ?
Par exemple, nous avons un indicateur Williams Percent Range (%R) sur un graphique et nous faisons glisser l'indicateur On Balance Volume (OBV) dans sa fenêtre depuis le navigateur.
https://charts.mql5.com/8/675/xauusd-h4-metaquotes-software-corp.png
Le %R fonctionne dans la plage 0 -100%, l'OBV n'a pas de référence spécifique.
Lorsque l'OBV est dans la fenêtre %R, nous voyons visuellement qu'elle va au-delà de -20 ou -80%.
Comment pouvons-nous obtenir un OBV supérieur à -20% ou inférieur à -80% dans notre EA ?
Comment lier l'OBV dans l'indicateur personnalisé à la gamme de 0 -100% ? La normaliser par rapport à elle (gamme) ? Comment cela peut-il être fait ?
Je comprends que vous n'avez pas besoin de normaliser l'OBV en %R (l'image sera différente).
C'est peut-être élémentaire, mais je ne l'ai pas rencontré.
si (p1>p2&&p1>p3) , si (p2>p1&&p2>p3) , si (p3>p2&&p3>p1)
Je le fais de cette façon,
J'ai besoin d'un paramètre de lot flottant, le premier lot est fixé par l'utilisateur, ensuite ce paramètre n'est plus adressable, et l'EA travaille lui-même et en cas de perte il est augmenté du lot maximum spécifié dans le programme (ou d'une variable externe), en cas de profit il est réduit du montant spécifié .
Si j'écris le paramètre dans le "Init", l'EA cessera d'accéder à la variable externe lot ?
ou comment dois-je faire ?
il s'agit d'une expression approximative .
si (p1>p2&&p1>p3) , si (p2>p1&&p2>p3) , si (p3>p2&&p3>p1)
Je le fais de cette façon,
Ce n'est pas pratique, surtout avec un grand nombre de paramètres...
La solution via le tableau est intéressante. Particulièrement intéressant : comment trouver la valeur la plus proche d'une variable en faisant la moyenne du nombre total de valeurs.
Bonsoir. J'essaie d'écrire un EA simple sur le croisement de tenkan et kinjun. Voici le code :
void OnTick()
void OnTick()
{
TradeSignal_20() ;
}
int TradeSignal_20()
{
int sig=0 ;
if(h_ich==INVALID_HANDLE)
{
h_ich=iIchimoku(Symbole(),Période(),IKHtenkansen,IKHkijunsen,IKHsenkouspanb) ;
retour(0) ;
}
sinon
{
si (CopyBuffer(h_ich,0,0,3,ich1_buffer)<2) return(0) ; // TENKANSEN_LINE
si (CopyBuffer(h_ich,1,0,3,ich2_buffer)<2) return(0) ; // KIJUNSEN_LINE
if (!ArraySetAsSeries(ich1_buffer,true)) return(0) ;
if (!ArraySetAsSeries(ich2_buffer,true)) return(0) ;
}
//--- vérifier la condition et fixer la valeur pour sig
if(ich1_buffer[1]>ich2_buffer[1]) sig=1;
else if(ich1_buffer[1]<ich2_buffer[1]) sig=-1 ;
sinon sig=0 ;
if (ich1_buffer[1]>ich2_buffer[1])
if (ich1_buffer[2]<ich2_buffer[2])
Alert(Symbol()+" : achat") ;
if (ich1_buffer[1]<ich2_buffer[1])
if (ich1_buffer[2]>ich2_buffer[2])
Alert(Symbol()+" : sale") ;
//--- retourner le signal de commerce
retour (sig) ;
}
//+------------------------------------------------------------------+
Comment faire pour que l'alerte ne soit appelée qu'une seule fois et non constamment ?
N'exécutez pas tous les tics, mais selon les besoins.