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

 
Bonjour !
//+------------------------------------------------------------------+
//|                                               Indicator_MACD.mq4 |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+
// Modify Vinin
#property copyright ""
#property link      ""

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- input parameters
extern int       Fast_EMA=13;
extern int       Slow_EMA=21;
extern double    N = 0.001221;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double MACD[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorBuffers(3);
   SetIndexStyle(0,DRAW_ARROW, EMPTY, 3);
   SetIndexArrow(0,233);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW, EMPTY, 3);
   SetIndexArrow(1,234);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexEmptyValue(1,0.0);
   SetIndexBuffer(2,MACD);
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int limit = Bars-counted_bars-1;
   
   for(int i = limit; i>= 0; i--) {
      ExtMapBuffer2[i] = EMPTY;
      ExtMapBuffer1[i] = EMPTY;
      MACD[i]=iMACD(NULL,0,Fast_EMA,Slow_EMA,1,1,MODE_MAIN, i);
      if (((MACD[i]-N)*(MACD[i+1]-N)<0) || ((MACD[i]+N)*(MACD[i+1]+N)<0))
      {
       if( MACD[i] <-N) ExtMapBuffer2[i] = High[i]+iATR(Symbol(), 0, 14, i);
       if( MACD[i] > N) ExtMapBuffer1[i] = Low[i] -iATR(Symbol(), 0, 14, i); 
      }
   }
   return(0);
}
//+------------------------------------------------------------------+
Voici le code de l'indicateur (retouché et modifié avec VIN - merci beaucoup).
Tout va bien, ça semble avoir du sens. ....... Je voulais le changer un peu. CEPENDANT. L'idée est que le MACD en bas commence à croître (TOUTES ses valeurs sont inférieures à la valeur N) ici et mettre la flèche BAY,
pour SHEL vice versa. J'ai essayé de modifier les conditions commerciales (le changement des valeurs < à > n'a pas fonctionné). Si la MACD commence à croître (elle est négative), le moment de l'apparition de la flèche coïncide avec une condition de trading. Cela semble correct...... MAIS les flèches sont trop apparues...........
S'il vous plaît dites-moi !!!!!!!!!!!!!!
 
Swetten >>:
Есть МАКД с параметрами 9 и 12.

Верно ли, что он показывает разницу между МА с периодами 9 и 12? А то у меня какой-то разбег в цифрах.

Vérifier la conformité de ma_method, applied_price dans MA et MAKD.

 
Veuillez me conseiller !
Toutes les valeurs MACD sont contenues dans un tableau unidimensionnel MACD[], je veux les vérifier par lots (tous les 10 éléments) pour les maxima et minima, et les dessiner dans l'indicateur.
Voici le code :
for(i=0; i<limit; i=i+10)
       {
         int k = i;
         for(k=i; k<i+10; k++)
             {       
              x10[k] = MACD[k];  
             }
         int maxValueIdx=ArrayMaximum(x10);
         int minValueIdx=ArrayMinimum(x10);    
         MAX[k] = maxValueIdx;
         MIN[k] = minValueIdx;
       }
Pourquoi n'est-il pas dessiné ?
 
Noterday писал(а) >>
Veuillez me conseiller !
Toutes les valeurs MACD sont contenues dans un tableau unidimensionnel MACD[], je veux les vérifier par lots (tous les 10 éléments) pour les hauts et les bas, et les dessiner dans l'indicateur.
Voici le code :
Pourquoi n'est-il pas dessiné ?


Quelle est la dimension du tableau x10 ?

10 ?
Alors vous devriez le réécrire comme ceci :

for(i=0; i<limit; i+=10)
       {
         int k;
         for(k=0; k<10; k++)
             {       
              x10[k] = MACD[i+k];  
             }
         int maxValueIdx=ArrayMaximum(x10);
         int minValueIdx=ArrayMinimum(x10);    
         MAX[i] = maxValueIdx;
         MIN[i] = minValueIdx;
       }
et ce que vous voulez exactement dans les tableaux MAX et MIN n'est pas clair.
 
La situation est la suivante, j'ouvre un ordre avec orderSend, 1 lot, je le ferme avec orderClose, 0.5 lot..... Comment faire pour qu'un nouvel ordre avec un autre ticker reprenne l'ordre nouvellement ouvert ?
 
Xors писал(а) >>
La situation est la suivante, j'ouvre un ordre avec orderSend, 1 lot, je le ferme avec orderClose, 0.5 lot..... il en ferme la moitié et ouvre une nouvelle commande avec un autre ticket, comment récupérer rapidement le ticket de la commande nouvellement ouverte ?


pas du tout.
Le seul moyen est de procéder par force brute parmi les ordres ouverts et en attente.

 
baltik писал(а) >>

lots=UseLots() ;
si (lots==0) retour(0) ;
i=OrderSend(Symbol(),OP_BUY,UseLots(),NormalizeDouble(Ask, Digits),slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,EA,magic,0,Blue) ;

lots=UseLots() ;
si (lots==0) retour(0) ;
i=OrderSend(Symbol(),OP_SELL,UseLots(),NormalizeDouble(Bid, Digits),slippage,Bid+StopLoss*Point,Bid-TakeProfit*Point,EA,magic,0,Red) ;

Erreur 4107 sur 1 des 10 commandes ou sur 3 des 25 différemment dans le testeur


Et quelle est la valeur du slippage rapportée et quelle est la cotation à 5 ou 4 décimales.
 
granit77 >>:

Проверьте соответствие ma_method, applied_price в МА и МАКД.

Déjà. C'était 120 au lieu de 12 pour MA. J'étais stupéfait ! :)

 
Comment puis-je connaître la devise de ma commande ?(Pour les contrats à terme)
 
Noterday писал(а) >>
Veuillez me conseiller !
Toutes les valeurs MACD sont contenues dans un tableau unidimensionnel MACD[], je veux les vérifier par lots (tous les 10 éléments) pour les hauts et les bas, et les dessiner dans l'indicateur.
Voici le code :
Pourquoi n'est-il pas dessiné ?
ArrayResize(MAX,Bars);
ArrayResize(MIN,Bars);
int k=1;
for(i=0; i<limit; i++)
       {
        MACD[i]= trali vali;
         if(i==10*k){k++;
          for(int r=0; r<10; r++)
          MAX[r]=MACD[ArrayMaximum(MACD,10,i-10)];
         
          for(int r=0; r<10; r++)
          MIN[r]=MACD[ArrayMinimum(MACD,10,i-10)];
         }
       }
Mais j'ai besoin de me fixer un point de référence !