Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1941
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
Y a-t-il un moyen de vérifier la mémoire ? Comment est-il consommé ou autre ?
disons que vous pouvez influencer la mémoire et qu'il calculera 200 indicateurs, mais après une semaine vous demanderez pourquoi 1000 indicateurs ne sont pas chargés... etc.... cycle vicieux... Définir des tâches correctes...
le code du pendu ne peut être appliqué nulle part... Vous devez définir les tâches qui peuvent être faites... Et c'est plus facile de bousiller le code... Les indicateurs doivent fonctionner rapidement et il n'y a pas de temps pour des calculs super longs.
J'aimerais connaître les limites dans lesquelles quelque chose peut être créé. D'autant plus que je ne suis pas du tout un programmeur, je ne saurais pas comment m'y prendre. Eh bien, je vais chercher quelque chose à lire
J'aimerais connaître le cadre dans lequel je pourrais créer quelque chose. C'est difficile à comprendre pour un débutant, d'autant plus que je ne suis pas du tout un programmeur. OK, je vais voir ce que je peux lire.
Vous n'avez généralement besoin que d'un seul CCI, maximum 3 :) Et vous avez 200... Je suis d'accord pour dire qu'il est difficile de ne pas dépasser les limites, il faut de l'expérience, pour fixer une tâche correcte et réalisable qui sera menée à bien dans un délai raisonnable - c'est difficile. Donc si vous avez besoin de conseils pour savoir où creuser, vous devriez vous concentrer sur l'optimisation et la minimisation des idées... Par exemple CCI avec période 20 et CCI avec période 21... presque la même chose et il n'y a aucun sens à calculer les deux. Plus la période est élevée, moins l'effet est important, vous devez trouver un nombre raisonnable. Une belle solution fonctionne toujours rapidement.
Eh bien, un CCI est généralement suffisant, 3 au maximum :) et vous avez 200... Je suis d'accord avec vous sur la difficulté de rester dans les limites... il faut de l'expérience, il est difficile de fixer la bonne tâche, réalisable, qui sera menée à bien dans un temps raisonnable. Donc si vous avez besoin de conseils pour savoir où creuser, vous devriez vous concentrer sur l'optimisation et la minimisation des idées... Par exemple CCI avec période 20 et CCI avec période 21... presque la même chose et il n'y a aucun sens à calculer les deux. Plus la période est élevée, moins l'effet est important, vous devez trouver un nombre raisonnable. Une belle solution fonctionne toujours rapidement.
Je comprends que le profileur aidera à mesurer la consommation de mémoire. Nous allons donc l'optimiser). Tout de même, si quelqu'un sait où lire à ce sujet, envoyez-moi le lien...
Bonjour à tous !
Veuillez me conseiller sur ce qui devrait être ajouté au code pour décaler la MA non seulement vers l'avant (valeur positive) mais aussi vers l'arrière (valeur négative).
Voici le code de l'Expert Advisor :
Bonjour à tous !
Veuillez me conseiller sur ce qui devrait être ajouté au code pour décaler la MA non seulement vers l'avant (valeur positive) mais aussi vers l'arrière (valeur négative).
Voici le code de l'Expert Advisor :
Ajoutez au décalage la valeur négative souhaitée, mais la valeur + décalage ne doit pas être inférieure à zéro.
Ajoutez la valeur négative souhaitée au décalage, mais assurez-vous que la valeur + décalage est au moins égale à zéro.
Merci, je vais essayer.
Bon après-midi.
Aidez-nous avec le code, il y a peut-être des exemples.
Tâche :
Il y a plusieurs ordres ouverts, avec différents lots, dans différentes directions. L'un d'eux est enterré avec un bénéfice, supposons 20. Cependant, il y a un ordre ouvert avec un profit négatif, supposons -55 avec 0.05 lots. Je veux fermer une partie d'un ordre négatif du montant du profit d'un ordre fermé positivement pour diminuer le drawdown.
J'ai essayé d'écrire ceci en utilisant l'opérateur while, mais cela n'a pas bien fonctionné.
Merci d'avance.
Bonjour, ce code est tiré du livre de Fedoseev. Pourquoi l'indicateur n'est pas dessiné dans la fenêtre, le log indique qu'il fonctionne, lors de la compilation aucune erreur, une fenêtre supplémentaire s'ouvre (vide), ce code est tiré du livre, avec le mien exactement le même résultat. Qu'est-ce qui ne va pas ?
//+------------------------------------------------------------------+
//| 015 Symbol.mq5 |
//+------------------------------------------------------------------+
#property copyright "Dmitry Fedoseev"
#lien de propriété "mailto:for-good-letter@yandex.ru"
#propriété version "1.00"
#propriété indicator_separate_window
#property indicator_buffers 4
#property indicator_plots 1
//--- tracer la barre
#property indicator_label1 "bar"
#property indicator_type1 DRAW_CANDLES
#property indicator_color1 clrGray,clrBlue,clrRed
#propriété indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- paramètres d'entrée
chaîne de caractères d'entrée symbol="" ;
entrée bool drawBars=false ;
chaîne de caractères sym ;
//--- tampons indicateurs
double barBuffer1[] ;
double barBuffer2[] ;
double barBuffer3[] ;
double barBuffer4[] ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int OnInit()
{
sym=symbole ;
StringTrimLeft(sym) ;
StringTrimRight(sym) ;
if(sym==""){
sym=Symbole() ;
}
if(!SymbolSelect(sym,true)){
Alert("Unknown symbol ",sym) ;
return(INIT_FAILED) ;
}
if(drawBars){
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_BARS) ;
}
else{
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_CANDLES) ;
}
//--- cartographie des tampons indicateurs
SetIndexBuffer(0,barBuffer1,INDICATOR_DATA) ;
SetIndexBuffer(1,barBuffer2,INDICATOR_DATA) ;
SetIndexBuffer(2,barBuffer3,INDICATOR_DATA) ;
SetIndexBuffer(3,barBuffer4,INDICATOR_DATA) ;
//---
return(INIT_SUCCEEDED) ;
}
void OnDeinit(const int r){
Commentaire (") ;
EventKillTimer() ;
}
//+------------------------------------------------------------------+
//| 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 bars=Bars(sym,Period()) ;
si(bars==0){
Comment("Forming timeframe ",sym,"...") ;
EventSetTimer(1) ;
retour(0) ;
}
int start ;
si(prev_calculé==0){
Commentaire (") ;
EventKillTimer() ;
datetime tm[1] ;
if(CopyTime(sym,Period(),bars-1,1,tm)==-1){
retour(0) ;
}
start=0 ;
for(;start<rates_total;start++){
if(time[start]>=tm[0]){
pause ;
}
}
}
else{
start=prev_calculated-1 ;
}
MqlRates r[1] ;
for(int i=start;i<rates_total;i++){
if(CopyRates(sym,Period(),time[i],1,r)==-1){
retour(0) ;
}
barBuffer1[i]=r[0].open;
barBuffer2[i]=r[0].high;
barBuffer3[i]=r[0].low;
barBuffer4[i]=r[0].close ;
}
retour(taux_total) ;
}
void OnTimer()
{
ChartSetSymbolPeriod(0,Symbol(),Period()) ;
}
//+------------------------------------------------------------------+
Bonjour, ce code est tiré du livre de Fedoseev. Pourquoi l'indicateur n'est pas dessiné dans la fenêtre, le log indique qu'il fonctionne, lors de la compilation aucune erreur, une fenêtre supplémentaire s'ouvre (vide), ce code est tiré du livre, avec le mien exactement le même résultat. Qu'est-ce qui ne va pas ?
Alt s coller le code.
Et quand vous fondez l'inducteur, entrez-vous dans l'outil ?