[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 790

 
obla4ko:

C'est bizarre. Tu veux dire Momentum, qu'est-ce que ça a à voir avec Mashka ?

Que pensez-vous de ça ?

double iMomentum( string symbol, int timeframe, int period, int applied_price, int shift)
 
artmedia70:

C'est un peu bizarre. Tu veux dire Momentum, qu'est-ce que ça a à voir avec Mashka ?

Que pensez-vous de ça ?

double iMomentum( string symbol, int timeframe, int period, int applied_price, int shift)
Je dis en fait la même chose - seulement dans MT4-momentum (voir le code ci-dessus) NON( !!! )
double iMomentum()

...... et la question demeure - où et comment le mettre en

symbole de chaîne
dans le code existant de mt4-motroom, s'il n'y a pas de
double iMomentum()

...

le réécrire en se basant sur

double iMomentum()

ou peut-on l'intégrer dans le code existant ?

 
obla4ko:
En fait, je veux dire la même chose - seulement dans MT4-momentum (voir le code ci-dessus) NO( !!!)

Honnêtement, je ne comprends pas non plus la question.

double iMomentum( string symbol, int timeframe, int period, int applied_price, int shift) 
Ça ne marche pas ou quoi ?
 
Abzasc:

Pour être honnête, je ne comprends pas non plus la question.

Ça ne marche pas ?

J'ai besoin du momentum Eura pour l'accrocher à la fenêtre de Pound ! - et si vous n'écrivez pas le symbole séparément, il prend par défaut la devise à laquelle il est attaché dans la fenêtre... Je vois pourquoi j'ai tant besoin de ces trucs :)) ?
 
Réfléchissons ensemble, où dans le code pourrait-il y avoir un symbole ? Un coup d'œil rapide nous montre qu'à part Close[i], aucun paramètre de prix n'est utilisé dans le code. Nous regardons dans la référence Close[] et découvrons que cette série temporelle est le prix de clôture du symbole actuel . Mais une autre série temporelle, iClose( string symbol, int timeframe, int shift) nous permet d'obtenir les données du symbole spécifié. Donc, remplacez Close[i] dans le code par iClose( _Symbol, 0, i) et entrez la variable externe extern string _Symbol="EURUSD" ; mettez-y la valeur du symbole requis et appréciez le résultat. Je ne l'ai pas testé mais cela devrait fonctionner.
 
granit77:
Réfléchissons ensemble, où dans le code un symbole peut-il être présent ? Une inspection superficielle montrera qu'aucun paramètre de prix n'est utilisé en dehors de Close[i]. Regardons Close[] dans la référence et découvrons que cette série temporelle est le prix de clôture du symbole actuel . Mais une autre série temporelle, iClose( string symbol, int timeframe, int shift) nous permet d'obtenir les données du symbole spécifié. Donc, remplacez Close[i] dans le code par iClose( _Symbol, 0, i) et entrez la variable externe extern string _Symbol="EURUSD" ; mettez-y la valeur du symbole requis et appréciez le résultat. Je ne l'ai pas vérifié mais ça devrait fonctionner.


Ce n'est pas tout à fait comme ça. Comme toujours, "le diable est dans les nuances".

Si vous essayez d'afficher un indicateur basé sur les barres d'un autre symbole sur le symbole actuel, vous devez prendre soin de faire correspondre les barres.

En d'autres termes, les numéros de barre pour la même heure et pour différents symboles peuvent ne pas être les mêmes.

 
obla4ko:
J'ai besoin du momentum eura pour l'accrocher à la fenêtre de la fourrière ! - et si vous n'écrivez pas le symbole séparément, il prend par défaut la devise à laquelle il est attaché dans la fenêtre... je vois pourquoi j'ai tant besoin de ces trucs :)) ?

Ah, je pensais que les données devaient être extraites...

Je ne sais pas, je ferais un indicateur et je tirerais les données dedans via iMomentum... ou iMomentumOnArray peut-être

 
PapaYozh:


Pas vraiment. Comme toujours, "le diable est dans les nuances".

Si vous essayez d'afficher un indicateur basé sur les barres d'un autre symbole sur le symbole actuel, vous devez prendre soin de faire correspondre les barres.

En d'autres termes, les numéros de barre pour la même heure et pour différents symboles peuvent ne pas coïncider.

Où êtes-vous allé auparavant ? Vous avez raison. Je l'ai ajouté, ça marche.

//+------------------------------------------------------------------+
//|                                                     Momentum.mq4 |
//|                      Copyright © 2004, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- input parameters
extern int     MomPeriod = 14;
extern string  _Symbol   = "EURUSD"; 
//---- buffers
double MomBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,MomBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name="Mom("+MomPeriod+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
//----
   SetIndexDrawBegin(0,MomPeriod);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Momentum                                                         |
//+------------------------------------------------------------------+
int start()
  {
   int i,counted_bars=IndicatorCounted();
   
//----
   if(Bars<=MomPeriod) return(0);
//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=MomPeriod;i++) MomBuffer[Bars-i]=0.0;
      
//----
   
   i=Bars-MomPeriod-1;
   if(counted_bars>=MomPeriod) i=Bars-counted_bars-1;
   while(i>=0)
     {
      int baropen =iBarShift(_Symbol,0,Time[i]);
      int barclose=iBarShift(_Symbol,0,Time[i+MomPeriod]);
      MomBuffer[i]=iClose(_Symbol,0,baropen) *100/iClose(_Symbol,0,barclose);
      i--;
     }
   return(0);
  }
 
granit77:

Où êtes-vous allé auparavant ? Vous avez raison. Je l'ai ajouté, ça marche.


Bien joué, Victor !
Et le nuage est silencieux... :))
 
granit77:

Où êtes-vous allé auparavant ? C'est vrai. Je l'ai ajouté, ça marche.


Eh bien, j'ai parfois un œil sur ce fil et parfois je réponds.

Alors excusez-moi, je donne un coup de main, pour ainsi dire, autant que possible.

:)

Raison: