Aide au codage - page 466

 

Bonjour à tous.

J'ai vu de nombreuses versions de cet indicateur et les bougies rouges n'apparaissent jamais, pourriez-vous corriger l'erreur ? ???.

Merci beaucoup.

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 Red

//---- tampons d'indicateurs

double ind_buffer1[] ;

double ind_buffer2[] ;

double ind_buffer3[] ;

//----

double CB = 0, valueh1 = 0, valuel = 0, valueh = 0, value = 0, price = 0, hi = 1, lo = 1 ;

double resh = 0, resl = 0, deltah = 0, deltal = 0 ;

int CurrentBar=0 ;

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

//| Fonction d'initialisation de l'indicateur personnalisé

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

int init()

{

//---- 1 tampon supplémentaire utilisé pour le comptage.

IndicatorBuffers(3) ;

//---- paramètres de dessin

SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2) ;

SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2) ;

IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1) ;

SetIndexDrawBegin(0, 34) ;

SetIndexDrawBegin(1, 34) ;

//---- 3 mappage des tampons d'indicateurs

if(!SetIndexBuffer(0, ind_buffer1) &&

!SetIndexBuffer(1, ind_buffer2) &&

!SetIndexBuffer(2, ind_buffer3))

Print("cannot set indicator buffers !") ;

//---- nom pour l'étiquette de la DataWindow et de la sous-fenêtre de l'indicateur

IndicatorShortName("DeltaForce") ;

SetIndexLabel(0, "DF1") ;

SetIndexLabel(1, "DF2") ;

//---- initialisation terminée

retour(0) ;

}

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

//| Delta Force |

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

int start()

{

for(CB = 0 ; CB <= Bars ; CB++)

{

CurrentBar = Bars - CB ;

if(Close[CurrentBar] > Close[CurrentBar+1])

{

resl = 0 ;

si(resh == 0)

deltah = 0 ;

deltah = deltah + (Close[CurrentBar] - Close[CurrentBar+1]) ;

// valeurh = High[CurrentBar] ;

resh= 1 ;

}

si(resh == 0)

deltah = 0 ;

ind_buffer1[CurrentBar] = deltah ;

si(Close[CurrentBar] < Close[CurrentBar+1] )

{

resh = 0 ;

si(resl == 0)

deltal = 0 ;

deltal = deltal + (Close[CurrentBar+1] - Close[CurrentBar]) ;

//valuel = Low[CurrentBar] ;

resl= 1 ;

}

si(resl == 0 )

deltal=0 ;

ind_buffer2[CurrentBar] = deltal ;

}

//---- terminé

retour(0) ;

}

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

 
rookiespain:
Bonjour à tous.

J'ai vu de nombreuses versions de cet indicateur et les bougies rouges n'apparaissent jamais, pourriez-vous corriger l'erreur ? ???.

Merci beaucoup.

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 Red

//---- tampons d'indicateurs

double ind_buffer1[] ;

double ind_buffer2[] ;

double ind_buffer3[] ;

//----

double CB = 0, valueh1 = 0, valuel = 0, valueh = 0, value = 0, price = 0, hi = 1, lo = 1 ;

double resh = 0, resl = 0, deltah = 0, deltal = 0 ;

int CurrentBar=0 ;

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

//| Fonction d'initialisation de l'indicateur personnalisé

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

int init()

{

//---- 1 tampon supplémentaire utilisé pour le comptage.

IndicatorBuffers(3) ;

//---- paramètres de dessin

SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2) ;

SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2) ;

IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1) ;

SetIndexDrawBegin(0, 34) ;

SetIndexDrawBegin(1, 34) ;

//---- 3 mappage des tampons d'indicateurs

if(!SetIndexBuffer(0, ind_buffer1) &&

!SetIndexBuffer(1, ind_buffer2) &&

!SetIndexBuffer(2, ind_buffer3))

Print("cannot set indicator buffers !") ;

//---- nom pour l'étiquette de la DataWindow et de la sous-fenêtre de l'indicateur

IndicatorShortName("DeltaForce") ;

SetIndexLabel(0, "DF1") ;

SetIndexLabel(1, "DF2") ;

//---- initialisation terminée

retour(0) ;

}

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

//| Delta Force |

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

int start()

{

for(CB = 0 ; CB <= Bars ; CB++)

{

CurrentBar = Bars - CB ;

if(Close[CurrentBar] > Close[CurrentBar+1])

{

resl = 0 ;

si(resh == 0)

deltah = 0 ;

deltah = deltah + (Close[CurrentBar] - Close[CurrentBar+1]) ;

// valeurh = High[CurrentBar] ;

resh= 1 ;

}

si(resh == 0)

deltah = 0 ;

ind_buffer1[CurrentBar] = deltah ;

si(Close[CurrentBar] < Close[CurrentBar+1] )

{

resh = 0 ;

si(resl == 0)

deltal = 0 ;

deltal = deltal + (Close[CurrentBar+1] - Close[CurrentBar]) ;

//valuel = Low[CurrentBar] ;

resl= 1 ;

}

si(resl == 0 )

deltal=0 ;

ind_buffer2[CurrentBar] = deltal ;

}

//---- terminé

retour(0) ;

}

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

Essayez-le maintenant : _test.mq4

Dossiers :
_test.mq4  3 kb
test.gif  68 kb
 
Big Be:
Stanwell,

Quelques photos montrant tout cela aideraient.

Big Be

Salut Big Be,

Bon point, je posterai quelques graphiques demain.

cheers,

Stan

 

Voici le graphique AUD que j'ai marqué manuellement. Les cases rouges sont les barres qui se chevauchent. Sur la gauche, il y a un carré qui ne montre que trois barres à l'intérieur, donc il ne correspond pas à la définition. Cependant, si cette jambe est significative, disons plus grande que 6 X ATR, je les compterais comme un swing aussi (juste difficile de trader avec seulement trois barres), mais j'ai pensé que cette exigence compliquerait le codage donc nous pouvons la laisser de côté pour le moment.

Merci.

Stan

Dossiers :
 

Bonjour Mladen et Mrtools !

J'ai encore besoin de votre aide, pouvez-vous ajouter une alerte visuelle/acoustique à cet indicateur ?

Merci d'avance, à bientôt !

Dossiers :
 

MLADEN, bonjour.

Merci beaucoup, ont essayé leur _test et le droit apparaît.

Toute aide que j'ai ici, bien que sa domination est beaucoup plus que la mienne, bien que dans ProRealTime / VISUALCHART oui je peux aider plus.

Best regards.

 

Bonjour,

J'ai un indicateur et je veux limiter le calcul des barres.

Le code original était :

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);[/CODE]

i changed it with this:

[CODE]int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(NBars-counted_bars,NBars-1);

Est-ce correct ? L'indicateur semble fonctionner correctement mais je doute que j'ai vraiment limité le calcul des barres.

 
thefxpros:
Bonjour,

J'ai un indicateur et je veux limiter le calcul des barres.

Le code original était :

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);[/CODE]

i changed it with this:

[CODE]int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(NBars-counted_bars,NBars-1);
Est-ce correct ? L'indicateur semble fonctionner correctement mais je doute que j'ai vraiment limité le calcul des barres.

thefxpros

Non. Faites-le comme ceci :

int limit = MathMin(MathMin(Bars-counted_bars,Bars-1),NBars) ;

Mais dans ce cas, vous devez toujours vous assurer que NBars est toujours > 0.

 

Salut mladen

si tu peux m'aider,ajouter les axes X et Y,alors je peux le mettre dans le coin,

et je peux ajuster la taille de la police, désolé pour mon anglais.

!X2014-PIPSv2

Merci beaucoup.

Dossiers :
 
blueface:
Bonjour mladen

si vous pouvez m'aider, ajouter les axes X et Y, alors je peux le mettre dans le coin,

et je peux ajuster la taille de la police, désolé pour mon anglais.

!X2014-PIPSv2

Merci beaucoup.

blueface

Vous les avez déjà : variables posX et posY dans le code.