Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 902

 
AlexeyVik:

Si je comprends bien, PC-- > MA est identique à PC-1 > MA.


Il s'avère que oui ! Mais pourquoi ça ne marche pas dans une combinaison comme celle-ci ?

Cependant, dans l'image ci-dessous, tout s'additionne.


if (PC-->MA && Ask == MA)
OrderSend("EURUSD",OP_BUY,1,Ask,3,Ask-30*Point, Ask+30*Point);
 
inuboh:

C'est vrai ! Mais pourquoi ça ne marche pas dans cette combinaison ?

Bien que dans l'image ci-dessous, tout s'emboîte.


Lisez sur la comparaison des nombres réels
 
inuboh:

C'est vrai ! Mais pourquoi ça ne marche pas dans une combinaison comme celle-ci ?

Bien que dans l'image ci-dessous, tout s'accorde


Rien ne converge ici. Il arrive souvent que le prix soit plus élevé que la MA au tick précédent, et que le prix soit déjà plus bas que la MA au tick actuel, mais l'égalité exacte ne se produit pas, ou se produit si rarement que personne ne l'a jamais vu. En particulier, on ne peut pas le voir sur les tiques de test. On ne peut pas le voir sur le graphique. Et soustraire une unité entière du prix double et ensuite le comparer avec МА, comme"PC--> MA" - ça ne conviendra pas du tout, une telle comparaison n'obtiendra jamais la vérité.

 

Bonne journée à vous tous. Un conseil...

Je suis en train d'écrire un indicateur. J'ai besoin d'un indicateur séparé dans la fenêtre supérieure - les nouvelles données (valeurs tick) doivent être dessinées à droite - comme le prix - avec une flèche verte.

J'édite l'indicateur à partir du tutoriel - mes nouvelles données (nouvelles valeurs de tick) sont dessinées à gauche - flèche rouge...

Aidez-moi à changer leur dessin. Pour être sur la droite, comme le prix et comme sur l'indicateur supérieur dans une fenêtre séparée du terminal. Merci.

//--------------------------------------------------------------------
// separatewindow.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_separate_window // Отображение в отдельном окне
#property indicator_buffers 1       // Количество буферов
#property  indicator_color1 Blue     // Цвет первой линии
#property  indicator_color2 Red      // Цвет второй линии
 
extern int History  =100;           // Колич.баров в расчётной истории
//extern int Aver_Bars=5;             // Количество баров для расчёта
 
double Buf_0[];                     // Объявление индикаторного массива
int Count=0;                        // Глобальная перемен.
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   //--- установим индексацию для буфера как в таймсерии
   ArraySetAsSeries(Buf_0,true);

   return(0);                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
   n,                               // Формальный параметр
   Counted_bars;                    // Количество просчитанных баров 
   double
   Sum_H,                           // Сумма значений High за период
   Sum_L;                           // Сумма значений Low  за период
//--------------------------------------------------------------------
 /*  Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   if (i>History-1)                 // Если много баров то ..
      i=History-1;                  // ..рассчитывать заданное колич.
 while(i>=0)                      // Цикл по непосчитанным барам
     {
        Sum_H=0;                      // Обнуление в начале цикла
      Sum_L=0;                      // Обнуление в начале цикла
      for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений 
        {
         Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
         Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
        }
      Buf_0[i]=(Sum_H-Sum_L)/Aver_Bars;// Знач. 0 буфера на i-ом баре
     
     
      i--;                          // Расчёт индекса следующего бара
      */
      double Price = NormalizeDouble(MarketInfo(_Symbol,MODE_BID),Digits); 
      Buf_0[Count] = Price;
                          
   Count++;                                     // Счётчик тиков
   Comment ("Новый тик ",Count,"   Цена = ",Price);// Сообщение
     
    
//--------------------------------------------------------------------
   return(0);                          // Выход из спец. ф-ии start()
  }
 
Bonjour, je suis nouveau ici. Quelqu'un peut-il me dire ou me donner un lien où je peux apprendre à utiliser toutes les fonctionnalités de mt4 ?
 

Bonjour à tous !

Question :

ticket = OrderSend(blah, blah, blah, ......................)

Après avoir passé en revue le tutoriel, la documentation, les articles et le forum, j'ai vu que la variableticket - certains la mettent à l'intérieur de la fonction OnTick()

- D'autres le mettent à l'extérieur (ce qui le rend externe).c'est-à-dire devant (ce qui le rend externe, ils ont fait une stat)

- certains le déclarent simplement ( int ticket ; )

- d'autres lui attribuent la valeur 0 (ce qui revient à une simple déclaration)

- d'autres attribuent -1

Si cela est significatif (sauf dans des cas particuliers), cela peut-il conduire à des erreurs, et si oui, comment les corriger ? ? ?

Merci !

 
evillive:

Rien ne correspond. Il arrive souvent qu'au tick précédent le prix soit au-dessus de la MA, et qu'au tick actuel le prix soit déjà en dessous de la MA, mais l'égalité exacte ne se produit pas, ou se produit si rarement que personne ne l'a jamais vu. En particulier, on ne peut pas le voir sur les tiques de test. On ne peut pas le voir sur le graphique. Et soustraire une unité entière du prix et ensuite le comparer avec MA, comme"PC-- > MA" - cela ne fonctionne pas du tout, une telle comparaison ne retournera jamais la vérité.

Je l'ai eu, merci ! Dites-moi simplement quelque chose pour l'avenir : par exemple, si j'ai une ligne (qui peut être une mulette), comment dois-je écrire que lorsque le cours vendeur atteint cette ligne, un ordre d'achat sera ouvert ? ))
 
pavlo555:
Bonjour, je suis nouveau ici. Quelqu'un peut-il me dire ou me donner un lien où je peux apprendre à utiliser toutes les fonctionnalités de mt4 ?

 
inuboh:
Je l'ai eu, merci ! Pouvez-vous me dire quelque chose pour l'avenir : par exemple, si j'ai une ligne (qui peut être une courbe), comment puis-je écrire que lorsque le cours vendeur atteint cette ligne, un ordre d'achat sera ouvert ? ))
Si Ask(1) est inférieur à MA et Ask(0) est supérieur ou égal à MA, c'est-à-dire un touch-down en dessous, vous pouvez acheter. Mais à la période suivante, le prix peut "changer d'avis" et descendre encore plus bas, c'est normal, tel est le marché.
Raison: