[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 28

 
le bénéfice dépend de la taille du lot... la taille du lot dépend de la taille de l'effet de levier...
 

Face à un problème :

J'ai écrit un indicateur BBP MA Oscillator.

Il fonctionne bien sur le graphique,

Mais lorsque je l'appelle depuis l'EA, les données ne correspondent pas.

Les paramètres réglés sont respectivement les mêmes.

BBP_0=iCustom("EURUSD",60, "BBP MA Oscillator",BBPPeriod9,MODE_SMA,SignalBBPPeriod9,MODE_SMMA,0,0) ;

La question est de savoir comment cela est possible.

 
//+------------------------------------------------------------------+
//|                                            BBP MA Oscillator.mq4 |
//|                                                   vasbsm@mail.ru |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "vasbsm@mail.ru"
#property link      ""

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Blue
#property  indicator_width1  2
//---- input parameters
extern int       BBPeriod=155;
extern int       TypeMA=MODE_SMA;
extern int       SignalMA=172;
extern int       Type_MA_Signal=MODE_SMMA;
//-----------------------------
double BBBuffer[];
double TempBuffer[];
double OsmaBuffer[];
double SignalBuffer[];

int init()
  {
   string short_name;
   IndicatorBuffers(4);
   IndicatorDigits(Digits);
   
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexDrawBegin(0, SignalMA);
   IndicatorDigits(Digits+2);
   
   SetIndexBuffer(0, OsmaBuffer);
   SetIndexBuffer(1, SignalBuffer);  
   SetIndexBuffer(2, BBBuffer);
   SetIndexBuffer(3, TempBuffer); 
   
   short_name="Bulls Bears Power MA("+ BBPeriod+","+ SignalMA+")";     
   IndicatorShortName( short_name);
   SetIndexLabel(0, short_name);   
   return(0);
  }
int deinit()
  {

   return(0);
  }
int start()
  {
   int counted_bars=IndicatorCounted();
   if(Bars<= BBPeriod) return(0);
//----------------------------------------------------------------
   int limit=Bars- counted_bars;
   if( counted_bars>0) limit++;
   for(int i=0; i< limit; i++)
      TempBuffer[ i]=iMA(NULL,0, BBPeriod,0, TypeMA,PRICE_CLOSE, i);
//----------------------------------------------------------------
   i=Bars- counted_bars-1;
   while( i>=0)
     {
      BBBuffer[ i]=High[ i]+Low[ i]-2* TempBuffer[ i];
      i--;
     }
   i=Bars- counted_bars-1;
   while( i>=0)
     {
      SignalBuffer[ i]=iMAOnArray( BBBuffer,Bars, SignalMA,0, Type_MA_Signal, i);
      i--;
     }
   i=Bars- counted_bars-1;
   while( i>=0)
     {
      OsmaBuffer[ i]= BBBuffer[ i]- SignalBuffer[ i];
      i--;
     }         
   return(0);
  }
 

J'ai découvert une fonctionnalité intéressante...

(c'est probablement déjà décrit quelque part, mais j'essaie d'utiliser mon cerveau en premier et ensuite un manuel ;)))

Ce qui m'a permis d'utiliser un autre critère de sélection de type IF (filtre)

orders += OrderProfit()<1;

Outre un filtre IF commun et traditionnel qui sélectionne les ordres nécessaires,

l'introduction de la condition dans le code ci-dessus a sélectionné les ordres dont le profit est inférieur à 1.

*

Je ne sais même pas si c'est correct ou non, mais ça semble fonctionner...

 
zfs >> :

Face à un problème :

J'ai écrit un indicateur BBP MA Oscillator.

Il fonctionne bien sur le graphique,

Mais lorsque je l'appelle depuis l'EA, les données ne correspondent pas.

Les paramètres réglés sont respectivement les mêmes.

BBP_0=iCustom("EURUSD",60, "BBP MA Oscillator",BBPPeriod9,MODE_SMA,SignalBBPPeriod9,MODE_SMMA,0,0) ;

La question est de savoir comment cela est possible.

et si par défaut

BBP_0=iCustom(NULL,0, "BBP MA Oscillator",0,0) ;

et ceci est évidemment faux

if( counted_bars>0) limit++

il devrait l'être

if( counted_bars>0) limit--;
 

JavaDev, Granit77 merci pour les réponses..... et bien que je n'aie toujours pas obtenu la réponse à ma question principale, j'ai décidé de poursuivre la lecture du tutoriel. Peut-être la réponse à ma question deviendra-t-elle plus claire au cours du processus.

 
GGeoZ >> :

...et bien que je n'aie toujours pas obtenu de réponse à ma question de base, j'ai décidé de poursuivre la lecture du manuel. Peut-être la réponse à ma question deviendra-t-elle plus claire au cours du processus.

J'espère que SK. ne regarde pas ce fil, je vais donc "partager ce que j'ai lu" dans le tutoriel. En tant qu'utilisateur normal et stupide, je me contente de sauter les parties incompréhensibles en espérant que "ça va s'arranger tout seul". Votre question ne m'a même pas effleuré (l'âge, vous savez...). Pour l'usage interne, il a été admis que int est tout ce qui peut être compté sur les doigts, et double - tout le reste. :))

 
Quelqu'un peut-il répondre à ma question... la chose intéressante est que l'ordre de divergence est insignifiant, mais critique... Je serais heureux de partager une stratégie rentable basée sur cet indicateur et un autre. Il peut y avoir une erreur dans les calculs...
 
granit77 писал(а) >>

J'espère que SK. ne regarde pas ce fil, alors je vais "partager ce que j'ai lu" dans un manuel. En tant qu'utilisateur normal, je me contente de sauter les parties obscures en espérant que "ça va s'arranger tout seul". Votre question ne m'a même pas effleuré (l'âge, vous savez...). Pour l'usage interne, il a été admis que int est tout ce qui peut être compté sur les doigts, et double - tout le reste. :))

Bravo ! !!

C'était un plaisir de ricaner. Je ne comprends pas non plus les questions.

Juste au cas où, j'ajouterais les doigts de mon voisin.

 
Messieurs, veuillez m'indiquer comment calculer la taille maximale d'un lot à ouvrir avec tous les fonds disponibles.