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
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ètreMerci 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) ;
}
//+------------------------------------------------------------------+
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.
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 !
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
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
AdledionAdledion
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.
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.