Aide au codage - page 294

 
mladen:
airquest

Vous devez en tenir compte, sinon cela ne fonctionnera pas.

La meilleure façon d'appeler des indicateurs avec un tel paramètre est la suivante :

iCustom(NULL,targetTimeFrame,indicatorName,"",...,buffer,shift) ;

Donc, utilisez "" pour ce paramètre

Merci Mladen, comme toujours, vous êtes très utile.

 

La version de TradeStation affiche un indicateur de trame temporelle supérieure (lorsqu'il est présent) sur la barre de trame temporelle inférieure avant que le prix ne traverse la valeur. Cependant, dans la version MT4, ce n'est pas le cas et l'indicateur ne s'affiche pas tant que le prix ne l'a pas traversé.

Merci beaucoup,

Scott

***

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 White

#property indicator_color2 White

//#property indicator_width1 5

//#property indicator_width2 5

//---- paramètres d'entrée

/************************************************** ***********************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

PÉRIODE_W1 10080

PERIOD_MN1 43200

Vous devez utiliser la valeur numérique de l'intervalle de temps que vous voulez utiliser

lorsque vous définissez la valeur 'TimeFrame' avec les entrées de l'indicateur.

************************************************** ************************/

extern int TimeFrame = 240 ;

extern int num = 6 ;

extern color Color = White ;

double vftop[] ;

double vfbot[] ;

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

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

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

int init()

{

//---- indicateurs

IndicatorBuffers(2) ;

SetIndexBuffer(0, vfbot) ;

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 5, Color) ;

// SetIndexArrow(0, 117) ;

SetIndexEmptyValue(0, 0) ;

SetIndexBuffer(1, vftop) ;

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 5, Color) ;

// SetIndexArrow(1, 117) ;

SetIndexEmptyValue(1, 0) ;

switch(TimeFrame)

{

cas 1 : string TimeFrameStr="Période_M1" ; break ;

cas 5 : TimeFrameStr="Période_M5" ; rupture ;

cas 15 : TimeFrameStr="Période_M15" ; pause ;

cas 30 : TimeFrameStr="Period_M30" ; break ;

cas 60 : TimeFrameStr="Period_H1" ; pause ;

cas 240 : TimeFrameStr="Period_H4" ; break ;

cas 1440 : TimeFrameStr="Period_D1" ; break ;

cas 10080 : TimeFrameStr="Period_W1" ; break ;

cas 43200 : TimeFrameStr="Period_MN1" ; pause ;

default : TimeFrameStr="Current Timeframe" ;

}

IndicatorShortName("MTF_VolumeFinder ("+TimeFrameStr+")") ;

//----

retour(0) ;

}

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

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

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

int deinit()

{

//----

//----

return(0) ;

}

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

//| Fonction d'itération de l'indicateur personnalisée |

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

int start()

{

int counted_bars=IndicatorCounted() ;

int i = Bars - counted_bars ;

if(counted_bars == 0) i = Bars - num*2 ;

int j = 0 ;

double t1, t2 ;

int y = 0 ;

while(i >= 0)

{

y = iBarShift(Symbol(), TimeFrame, Time) ;

t1 = iLow(Symbol(), TimeFrame, y) ;

t2 = iHigh(Symbol(), TimeFrame, y) ;

for(j = y+1 ; j < y + num ; j++)

{

t1 = MathMax(t1, iLow(Symbol(), TimeFrame, j)) ;

t2 = MathMin(t2, iHigh(Symbol(), TimeFrame, j)) ;

}

if(t1 <= t2)

{

vftop = t2 ;

vfbot = t1 ;

}

i-- ;

}

//----

return(0) ;

}

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

 
scott TTM:
La version de TradeStation affiche un indicateur de trame temporelle supérieure (lorsqu'il est présent) sur la barre de trame temporelle inférieure avant que le prix ne traverse la valeur. Cependant, dans la version MT4, ce n'est pas le cas et l'indicateur n'est pas affiché tant que le prix ne l'a pas traversé.

Merci beaucoup,

Scott

***

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 White

#property indicator_color2 White

//#property indicator_width1 5

//#property indicator_width2 5

//---- paramètres d'entrée

/************************************************** ***********************

PERIOD_M1 1

PERIOD_M5 5

PERIOD_M15 15

PERIOD_M30 30

PERIOD_H1 60

PERIOD_H4 240

PERIOD_D1 1440

PÉRIODE_W1 10080

PERIOD_MN1 43200

Vous devez utiliser la valeur numérique de l'intervalle de temps que vous voulez utiliser

lorsque vous définissez la valeur 'TimeFrame' avec les entrées de l'indicateur.

************************************************** ************************/

extern int TimeFrame = 240 ;

extern int num = 6 ;

extern color Color = White ;

double vftop[] ;

double vfbot[] ;

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

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

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

int init()

{

//---- indicateurs

IndicatorBuffers(2) ;

SetIndexBuffer(0, vfbot) ;

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 5, Color) ;

// SetIndexArrow(0, 117) ;

SetIndexEmptyValue(0, 0) ;

SetIndexBuffer(1, vftop) ;

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 5, Color) ;

// SetIndexArrow(1, 117) ;

SetIndexEmptyValue(1, 0) ;

switch(TimeFrame)

{

cas 1 : string TimeFrameStr="Période_M1" ; break ;

cas 5 : TimeFrameStr="Période_M5" ; rupture ;

cas 15 : TimeFrameStr="Période_M15" ; pause ;

cas 30 : TimeFrameStr="Period_M30" ; break ;

cas 60 : TimeFrameStr="Period_H1" ; pause ;

cas 240 : TimeFrameStr="Period_H4" ; break ;

cas 1440 : TimeFrameStr="Period_D1" ; break ;

cas 10080 : TimeFrameStr="Period_W1" ; break ;

cas 43200 : TimeFrameStr="Period_MN1" ; pause ;

default : TimeFrameStr="Current Timeframe" ;

}

IndicatorShortName("MTF_VolumeFinder ("+TimeFrameStr+")") ;

//----

retour(0) ;

}

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

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

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

int deinit()

{

//----

//----

return(0) ;

}

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

//| Fonction d'itération de l'indicateur personnalisée |

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

int start()

{

int counted_bars=IndicatorCounted() ;

int i = Bars - counted_bars ;

if(counted_bars == 0) i = Bars - num*2 ;

int j = 0 ;

double t1, t2 ;

int y = 0 ;

while(i >= 0)

{

y = iBarShift(Symbol(), TimeFrame, Time) ;

t1 = iLow(Symbol(), TimeFrame, y) ;

t2 = iHigh(Symbol(), TimeFrame, y) ;

for(j = y+1 ; j < y + num ; j++)

{

t1 = MathMax(t1, iLow(Symbol(), TimeFrame, j)) ;

t2 = MathMin(t2, iHigh(Symbol(), TimeFrame, j)) ;

}

if(t1 <= t2)

{

vftop = t2 ;

vfbot = t1 ;

}

i-- ;

}

//----

return(0) ;

}

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

Pouvez-vous afficher le code original de Tradestation ?

 

Je l'ai cherché, mais je ne le trouve pas. J'ai acheté l'indicateur en 2004.

 
scott TTM:
Je l'ai cherché, mais je ne le trouve pas. J'ai acheté l'indicateur en 2004.

Je l'ai demandé parce que je voudrais comparer le code - parfois le code d'un langage facile semble être une tâche simple à convertir en metatrader mais les différences sont trop grandes pour être 100% dans certains cas que la conversion est faite comme il se doit.

 

Aidez-moi, s'il vous plaît

Bonjour

Pouvez-vous m'aider à le faire fonctionner pour MT4 Build 600+ ?

Merci d'avance !

Dossiers :
sap_robot.mq4  32 kb
forexhacked.mq4  19 kb
 

Bug WPR_MA

Salut mladen !

Puis-je demander un peu d'aide pour le codage ?

J'ai, en quelque sorte, écrit un indicateur qui fait la moyenne de 4 autres WPR dans une fenêtre d'indicateur.

Si vous chargez le modèle, vous pouvez voir la différence entre les MA sur les WPRs.

Le haut est l'indicateur, le bas est mélangé manuellement. Le but est de transformer le manuel en indicateur.

Je me demande pourquoi elle fait ça. Où j'ai mal codé la WPR_MA..

Merci pour votre temps

Adledion

Dossiers :
 
adledion:
Bonjour mladen !

Puis-je demander un peu d'aide pour le codage ?

J'ai, en quelque sorte, écrit un indicateur qui fait la moyenne de 4 autres WPR dans une fenêtre d'indicateur.

Si vous chargez le modèle, vous pouvez voir la différence entre les MA sur les WPRs.

Le haut est l'indicateur, le bas est mélangé manuellement. Le but est de transformer le manuel en indicateur.

Je me demande pourquoi elle fait ça. Où j'ai mal codé la WPR_MA..

Merci pour votre temps

Adledion

Adledion

Dans le modèle, ma est appliqué à un seul WPR (WPR(50) dans le cas de ce modèle). Vous ne pouvez pas appliquer ma à plusieurs indicateurs et c'est pourquoi il y a une différence entre votre indicateur et le modèle.

Essayez-le - définissez toutes les périodes WPR dans votre indicateur à 50 et comparez les valeurs de l'indicateur à la valeur précédente de ma dans le modèle (précédente puisque vous utilisez shift one dans l'indicateur pour iMAOnArray() ) et vous verrez que vous avez exactement les mêmes valeurs dans ce cas.

 
mladen:
Adledion

Dans le modèle, ma est appliqué à un seul WPR (WPR(50) dans le cas de ce modèle). Vous ne pouvez pas appliquer ma à plusieurs indicateurs et c'est pourquoi il y a une différence entre votre indicateur et le modèle.

Essayez-le - définissez toutes les périodes WPR dans votre indicateur à 50 et comparez les valeurs de l'indicateur à la valeur précédente de ma dans le modèle (précédente puisque vous utilisez shift one dans l'indicateur pour iMAOnArray() ) et vous verrez que vous avez exactement les mêmes valeurs dans ce cas.

Wow, merci, je n'avais pas creusé aussi profond

edit : et cela signifie que, dans le manuel, le ma est juste sur un wpr ? les premières données d'indicateurs... ? donc en fait le manuel est le mauvais (calcul d'un wpr ma), par rapport à mon idée originale, qui est de calculer 3 ou 4 wpr ma.

 

Mladen ,

Je suis un peu perplexe : ces 2 indicateurs sont-ils en train de se repeindre ? https://www.mql5.com/en/forum/172895

Que représentent ces histogrammes, le savez-vous ? Merci.

Dossiers :
forexmtn.mq4  3 kb
rd-combo.mq4  11 kb