Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 592
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
Veuillez me dire pourquoi l'ajout de la chaîne #property strict empêche les flèches d'être dessinées, voici tout le code
//+------------------------------------------------------------------+
//| oscillating review.mq4 |
//| Copyright 2018, MetaQuotes Software Corp.
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#lien de propriété "https://www.mql5.com"
#propriété version "1.00"
#propriété indicator_separate_window
#property indicator_buffers 5
#property indicator_plots 4
//--- Signaler le complot
#property indicator_label1 "Signaler"
#property indicator_type1 DRAW_LINE
#propriété indicator_color1 clrRed
#propriété indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- plot Z
#property indicator_label2 "Z"
#property indicator_type2 DRAW_LINE
#propriété indicator_color2 clrBeige
#propriété indicator_style2 STYLE_DOT
#property indicator_width2 1
//--- plot Bay
#property indicator_label3 "Baie"
#property indicator_type3 DRAW_ARROW
#propriété indicator_color3 clrLightSkyBlue
#propriété indicator_style3 STYLE_SOLID
#propriété indicator_width3 1
//--- plot Sell
#property indicator_label4 "Vendre"
#property indicator_type4 DRAW_ARROW
#propriété indicateur_color4 clrDeepPink
#propriété indicator_style4 STYLE_SOLID
#propriété indicator_width4 1
//--- paramètres d'entrée
input int PCCI=14 ; // période indicatrice PCCI
entrée double KCCI=1.1 ; //facteur d'ajustement
input int PMOM=14 ; //période de l'indicateur Momentum
entrée int KMOM=1111 ; // facteur de lissage
input int PATR=14 ; // indicateur de période ATR
input int KATR=111111 ; // facteur de lissage
input int PFOR=14 ; // période de l'indicateur Forse
input int KFOR=1111 ; // facteur de lissage
input int PTVR=12 ; // période p de l'indicateur TVI
input int PTVS=12 ; // période c de l'indicateur TVI
input int PTVU=5 ; //période à l'indicateur TPI
input int KTVl=111 ; // coefficient de nivellement
input int POSF=12 ; // période de l'indicateur rapide de l'AM
input int POSS=26 ; // période du slot de l'indicateur de l'AM
input int POSZ=9 ; //petite période de l'indicateur AOS
input int KAOS=111111 ; // facteur de lissage
input int KAD=111 ; //facteur de déplacement de l'indicateur AOS
entrée double KK=2.0 ; // filtre pour les flèches
input int Amendement=20 ; //dessine les flèches dans la fenêtre de l'indicateur dans un format digeste
//--- tampons indicateurs
double SignalerBuffer[] ;
double Z_Buffer[] ;
double BayBuffer[] ; double BayBuffer[] ;
double SellBuffer[] ; double SellBuffer[] ;
double PatchBuffer[] ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int OnInit()
{
IndicatorSetInteger(INDICATOR_DIGITS,0) ;
SetIndexBuffer(0,SignalerBuffer) ;
SetIndexBuffer(1,Z_Buffer) ;
SetIndexBuffer(2,BayBuffer) ;
SetIndexBuffer(3,SellBuffer) ;
SetIndexBuffer(4,PatchBuffer) ;
SetIndexStyle(0,DRAW_LINE) ;
SetIndexStyle(1,DRAW_LINE) ;
SetIndexStyle(2,DRAW_ARROW) ;
SetIndexStyle(3,DRAW_ARROW) ;
SetIndexArrow(2,241) ;
SetIndexArrow(3,242) ;
SetIndexEmptyValue(2,0.0) ;
SetIndexEmptyValue(3,0.0) ;
IndicatorShortName("Signal de sous-sol(" +(string) PATR + ")") ;
//---
return(INIT_SUCCEEDED) ;
}
//+------------------------------------------------------------------+
//| Fonction d'itération de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int i , limit=rates_total-prev_calculated ;
double cci,atr,mom,forc,ao,ac,ad,tvi,osma ;
//---- définir les paramètres de comptage
si(prev_calculé==0)limite-- ;
sinon limite++ ;
//---- compte
for(i=limit-1 ; i>=0 ; i--)
{
cci=iCCI(NULL,0,PCCI,PRICE_TYPICAL,i)/KCCI ;
mom=(iMomentum(NULL,0,PMOM,PRICE_TYPICAL,i)-100)*KMOM ;
forc=iForce(NULL,0,PFOR,MODE_SMA,PRICE_TYPICAL,i)*KFOR ;
tvi=iCustom(NULL,0, "TVI_v2",PTVR,PTVS,PTVU,4,i)*KTVl ;
osma=iOsMA(NULL,0,POSF,POSS,POSZ,PRICE_TYPICAL,i)*KAOS ;
atr=iATR(NULL,0,PATR,i)*KATR ;
ao=iAO(NULL,0,i)*KAOS ;
ac=iAC(NULL,0,i)*KAOS ;
ad=iAD(NULL,0,i)/KAD ;
SignalerBuffer[i]=(cci+mom+forc+tvi+osma+atr+ao+ac+ad)/9 ;
}
for(i=limit-1 ; i>=0 ; i--)
{
Z_Buffer[i] = (SignalerBuffer[i]+SignalerBuffer[i-1])/2 ;
PatchBuffer[i] = MathAbs(SignalerBuffer[i]-Z_Buffer[i]) ;
}
for(i=0 ; i<limit && !IsStopped() ; i++)
{
if(Z_Buffer[i]>SignalerBuffer[i]&&Z_Buffer[i+1]<SignalerBuffer[i+1]&&PatchBuffer[i]>KK)
BayBuffer[i]=SignalerBuffer[i]-Amendement ;
if(Z_Buffer[i]<SignalerBuffer[i]&&Z_Buffer[i+1]>SignalerBuffer[i+1]&&PatchBuffer[i]>KK)
SellBuffer[i]=SignalerBuffer[i]+Amendement ;
}
//--- retour de la valeur de prev_calculée pour l'appel suivant
retour(taux_total) ;
}
//+------------------------------------------------------------------+
Au vendeur de cet indicateur.
Quelqu'un peut-il me dire ce qu'il faut faire si, pendant le test d'un EA, il refuse de copier les tampons ?
Identifiez la cause.
Identifiez la cause.
Et qu'est-ce que ça peut être ? Est-ce la taille du code ? J'ai volontairement désactivé toute logique, laissé seulement la copie de la mémoire tampon et rien.
Et qu'est-ce que ça peut être ? Est-ce la taille du code ? J'ai volontairement désactivé toute logique, laissé seulement la copie de la mémoire tampon et rien.
Une erreur de mémoire s'affiche lors de l'exécution d'un test (il ne démarre pas). Comment le réparer ?
Après avoir redémarré le terminal, le test démarre, puis après quelques essais, il n'y a plus de mémoire.
Une erreur de mémoire s'affiche lors de l'exécution d'un test (il ne démarre pas). Comment le réparer ?
Après avoir redémarré le terminal, le test démarre, puis après plusieurs tests, la mémoire est à nouveau saturée.
Le programme que vous testez consomme toute votre mémoire. Cherchez-y des erreurs. Vérifiez les journaux "Journal" et "Expert Advisors" sur la démo (pas dans le testeur) - qu'est-ce que ça dit là ? Peut-être, cela dit quelque chose sur les fuites de mémoire pendant le changement de période.
Je ne devinerai pas plus loin sans le code.
Le programme que vous testez consomme toute votre mémoire. Cherchez-y des erreurs. Regardez les logs "Log" et "Expert Advisors" sur la démo (pas dans le testeur) - qu'est-ce que ça dit là ? Peut-être, cela dit quelque chose sur les fuites de mémoire pendant le changement de période.
Je n'irais pas plus loin sans le code.
Il y a beaucoup d'objets non supprimés dans les journaux après la fin des tests. Plusieurs milliers... Est-ce un problème ?
Il y a une pile d'objets non réussis dans les journaux après la fin des tests. Plusieurs milliers... C'est ça le problème ?
C'est là qu' ils pourront répondre avec certitude.