Aide au codage - page 63

 

De cette façon, vous vérifiez seulement les ordres avec le numéro magique (et le symbole) spécifié.

dasio:
De cette façon, je vérifie les ordres qui ne sont pas ouverts avec le numéro magique spécifié, n'est-ce pas ? J'ai besoin de vérifier les ordres avec un symbole et un numéro magique spécifiques. Je ne sais pas si c'est important mais j'ai trouvé l'erreur dans le testeur de stratégie.
 
drofwarc:
Bonjour à tous,

Je sais qu'il est possible de faire en sorte qu'un EA fasse une pause entre les transactions, soit en utilisant Sleep(), soit en enregistrant un horodatage et en attendant n secondes après l'horodatage avant de permettre un autre signal.

Mais est-il possible de faire la même chose pour un indicateur.

Par exemple, j'aimerais pouvoir faire en sorte qu'un indicateur qui trace des flèches au croisement de deux moyennes mobiles saute n barres après un croisement avant de tracer une autre flèche. En d'autres termes, si un autre croisement se produit avant que n barres se soient écoulées, l'indicateur ignorera le croisement et ne tracera pas de flèche.

J'ai fait de nombreuses recherches pour trouver un indicateur qui fasse cela, mais je n'ai pas eu de chance.

Quelqu'un pourrait-il soit poster un indicateur qui a déjà cette fonctionnalité afin que je puisse étudier le code ? Ou peut-être me fournir un exemple de code qui fonctionne pour cette proposition afin que je puisse essayer de l'implémenter.

Merci beaucoup,

drofwarc

BUMP !

Bonjour mladen, je sais que vous êtes occupé par de nombreuses demandes sur le forum. Mais j'apprécierais beaucoup si vous pouviez au moins m'orienter dans la direction d'une solution de codage pour cela.

Merci beaucoup par avance.

drofwarc

 

drofwarc

Lafonction Sleep() ne fonctionne pas dans les indicateurs donc vous pouvez oublier le timer des indicateurs (si vous dépendez des ticks vous ne pouvez pas obtenir un temps exact). En ce qui concerne le comptage : il n'y a pas de problème de codage. Si vous fournissez un exemple sur lequel vous avez travaillé, vous pourrez montrer comment compter dans des cas comme celui-ci.

drofwarc:
BUMP !

Bonjour mladen, je sais que vous êtes occupé par de nombreuses demandes sur le forum. Mais j'apprécierais beaucoup si vous pouviez au moins m'orienter dans la direction d'une solution de codage pour cela.

Merci beaucoup par avance.

drofwarc
 
mladen:
drofwarc La fonction Sleep() ne fonctionne pas dans les indicateurs donc vous pouvez oublier le timer des indicateurs (si vous dépendez des ticks vous ne pouvez pas obtenir un temps exact). En ce qui concerne le comptage : il n'y a pas de problème de codage. Si vous fournissez un exemple sur lequel vous avez travaillé, vous pourrez montrer comment compter dans des cas comme celui-ci.

Salut mladen,

Merci de votre réponse. Vous trouverez ci-dessous le code d'un indicateur simple qui trace une flèche à chaque fois que le prix s'inverse. Ce que je veux pouvoir faire est le suivant : après que l'indicateur ait trouvé une configuration valide, il doit revenir en arrière de n barres (n étant ajustable dans les paramètres) pour déterminer si un signal valide était présent ou non.

Si un signal valide est présent dans la période de retour en arrière, il ne tracera pas une nouvelle flèche basée sur la configuration valide actuelle.

Si un signal valide n'est pas présent dans la période de retour, il tracera une nouvelle flèche sur la base de la configuration valide actuelle.

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Red

#property indicator_color2 DodgerBlue

double UpArrowBuffer[];

double DownArrowBuffer[];

///////////Arrows

extern int ArrowSize = 1;

extern int Offset = 100;

extern color UpColor = White;

extern color DnColor = White;

extern color NoSignalColor = DarkGray;

extern int myWingDing1 = 233 ;

extern int myWingDing2 = 234 ;

double Poin;

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

//| Custom indicator initialization function |

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

int init() {

//---- indicator buffers mapping

SetIndexBuffer(0,UpArrowBuffer);

SetIndexBuffer(1,DownArrowBuffer);

//---- drawing settings

SetIndexStyle(0,DRAW_ARROW,0,ArrowSize, UpColor);

SetIndexArrow(0,myWingDing1);

SetIndexStyle(1,DRAW_ARROW,0,ArrowSize, DnColor);

SetIndexArrow(1,myWingDing2);

Poin = Point;

if ((Point == 0.00001) || (Point == 0.001)) Poin *= 10;

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit() {

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start() {

int limit;

int counted_bars=IndicatorCounted();

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(int i=limit; i>=0; i--)

{

if (Close Open)

{

UpArrowBuffer = Low - Offset*Point;

}

if (Close > Open && Close < Open)

{

DownArrowBuffer = High + Offset*Point;

}

}

return(0);

}

//+------------------------------------------------------------------+*/

J'espère que tout ceci est clair .

Cordialement,

drofwarc

 

aide

Quelqu'un peut-il m'aider ?

je veux utiliser deux "VoltyChannel_Stop_v2.1_TRO_MODIFIED_VERSION+.mq4" dans un graphique avec des paramètres différents mais

Je veux utiliser deux "VoltyChannel_Stop_v2.1_TRO_MOFIFI_VERSION+.mq4" dans un graphique avec des paramètres différents, mais quand je les place, une seule boîte de prix s'affiche.

 

drofwarc

Ci-joint un indicateur modifié qui peut compter les barres depuis le dernier signal du même type avant de permettre à un nouveau signal d'apparaître. Voici un exemple avec une distance de 15 barres :

drofwarc:
Bonjour mladen,

Merci de votre réponse. Vous trouverez ci-dessous le code d'un indicateur simple qui trace une flèche à chaque fois que le prix s'inverse. Ce que je veux pouvoir faire est le suivant : après que l'indicateur ait trouvé une configuration valide, il doit revenir en arrière de n barres (n étant ajustable dans les paramètres) pour déterminer si un signal valide était présent ou non.

Si un signal valide est présent dans la période de retour en arrière, il ne tracera pas une nouvelle flèche basée sur la configuration valide actuelle.

Si un signal valide n'est pas présent dans la période de retour, il tracera une nouvelle flèche sur la base de la configuration valide actuelle.

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Red

#property indicator_color2 DodgerBlue

double UpArrowBuffer[];

double DownArrowBuffer[];

///////////Arrows

extern int ArrowSize = 1;

extern int Offset = 100;

extern color UpColor = White;

extern color DnColor = White;

extern color NoSignalColor = DarkGray;

extern int myWingDing1 = 233 ;

extern int myWingDing2 = 234 ;

double Poin;

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

//| Custom indicator initialization function |

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

int init() {

//---- indicator buffers mapping

SetIndexBuffer(0,UpArrowBuffer);

SetIndexBuffer(1,DownArrowBuffer);

//---- drawing settings

SetIndexStyle(0,DRAW_ARROW,0,ArrowSize, UpColor);

SetIndexArrow(0,myWingDing1);

SetIndexStyle(1,DRAW_ARROW,0,ArrowSize, DnColor);

SetIndexArrow(1,myWingDing2);

Poin = Point;

if ((Point == 0.00001) || (Point == 0.001)) Poin *= 10;

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit() {

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start() {

int limit;

int counted_bars=IndicatorCounted();

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(int i=limit; i>=0; i--)

{

if (Close Open)

{

UpArrowBuffer = Low - Offset*Point;

}

if (Close > Open && Close < Open)

{

DownArrowBuffer = High + Offset*Point;

}

}

return(0);

}

//+------------------------------------------------------------------+*/

J'espère que tout ceci est clair .

Cordialement,

drofwarc
Dossiers :
test.gif  41 kb
_test.mq4  3 kb
 
ZANKY:
Quelqu'un peut-il m'aider ?

je veux utiliser deux "VoltyChannel_Stop_v2.1_TRO_MODIFIED_VERSION+.mq4" dans un graphique avec des paramètres différents mais

lorsque je place deux cases, seule une case de prix s'affiche. existe-t-il un moyen de pouvoir afficher les deux cases de prix ?

Il suffit de changer la ligne 85 avec ceci et de le compiler, cela devrait fonctionner comme un type de nombre magique de sorte que tant que l'une des entrées sont modifiées, la deuxième boîte de prix se chargera également.

ftShortName = "tbb "+ symbol + tChartPeriod +MA_Length + ATR_Length + Kv + MA_Mode +MoneyRisk + MA_Price ;

 

Merci !

cja

Merci beaucoup ! Il fonctionne parfaitement.

 

Bonjour Mladen. Je ne connais pas beaucoup l'anglais, désolé.

S'il vous plaît aidez-moi à faire ces indicateurs lorsque la ligne monte ou descend dans une couleur différente. Merci !

Dossiers :
1234.gif  23 kb
rmi.mq4  5 kb
 
mladen:
drofwarc

Vous trouverez ci-joint un indicateur modifié qui peut compter les barres à partir du dernier signal du même type avant de permettre à un nouveau signal d'apparaître. Voici un exemple avec une distance de 15 barres :

Bonjour mladen,

Merci ! C'est exactement ce que je recherchais.

Je vous souhaite de bonnes fêtes de fin d'année !

drofwarc