Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 592

 

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) ;

}

//+------------------------------------------------------------------+


Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Машинное обучение роботов Привет всем, я занимаюсь...
 
Alekseu Fedotov:
Au vendeur de cet indicateur.

Merci...
 
Quelqu'un peut-il me dire ce qu'il faut faire si, pendant le test d'un EA, il refuse de copier les tampons ?
 
Roman Sharanov:
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.

 
Artyom Trishkin:

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.

 
Roman Sharanov:

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.

Tout le monde est télépathe ce week-end...
 

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.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Juer:

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.

 
Artyom Trishkin:

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 ?

 
Juer:

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.

Raison: