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

 

Bonjour !

Je demande l'aide de professionnels.

Veuillez m'indiquer comment mettre en œuvre la fonction de redécoupage des lignes après l'apparition d'une nouvelle bougie, et ce pour différentes échéances.

L'idée de l'indicateur est très simple - il regarde le haut et le bas de la bougie précédente, en ajoutant 50 points au haut et 50 points au bas.

Merci.

Dossiers :
help.mq4  1 kb
 
Zhunko:
La bibliothèque. La bibliothèque a tout ce qu'il faut pour cela. Sections 4.3 et 4.6.


Vadim : anecdote.

Le zootechnicien insémine les vaches avec une seringue et s'en va. Une belle femme attend à la sortie et demande un baiser.

 
neon51r:

Bonjour !

Je demande l'aide de professionnels.

Veuillez m'indiquer comment mettre en œuvre la fonction de redécoupage des lignes après l'apparition d'une nouvelle bougie, et ce pour différentes échéances.

L'idée de l'indicateur est très simple - il regarde le haut et le bas de la bougie précédente, en ajoutant 50 points au haut et 50 points au bas.

Merci.



C'est tiré d'un manuel scolaire.

//--------------------------------------------------------------------
// userindicator.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_buffers 2       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_color2 Red      // Цвет второй линии
 
double Buf_0[],Buf_1[];             // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   SetIndexBuffer(1,Buf_1);         // Назначение массива буферу
   SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=High[i]+50*Point;             // Значение 0 буфера на i-ом баре
      Buf_1[i]=Low[i]-50*Point;              // Значение 1 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//---------------------------------------------------------------------
 

aide à la syntaxe

int k=OrdersTotal() ;

//+---fixer des ordres s'il n'y en a pas
if (k==0) {OrderSend(Symbol(),OP_BUYSTOP,v,PriceBs+Tp*Point,0,Sl,PriceBs+2*Tp*Point,NULL,mn,0,Red)

OrderSend(Symbol(),OP_SELLSTOP,v,PriceSs-Tp*Point,0,Sl,PriceSs-2*Tp*Point,NULL,mn,0,Gold) ; } }.


Les deux commandes seront-elles passées ou une seule ?

J'ai besoin que les hiboux placent deux commandes en attente s'il n'y a pas de commandes.

 
sdm:

...

Les deux mandats seront-ils placés ou un seul ?



Il y aura 0, 1 ou 2 commandes.
 
neon51r:

Bonjour !

Je demande l'aide de professionnels.

Veuillez m'indiquer comment mettre en œuvre la fonction de redécoupage des lignes après l'apparition d'une nouvelle bougie, et ce pour différentes échéances.

L'idée de l'indicateur est très simple - il regarde le haut et le bas de la bougie précédente, en ajoutant 50 points au haut et 50 points au bas.

Merci.


Dès que la nouvelle bougie arrive, elle se redessine.

 
Integer:

Il s'agira de 0, 1 ou 2 commandes.

il faut mettre les deux ordres quand il n'y en a pas.

Je ne comprends pas comment cela fonctionne. D'après le tutoriel, il semble qu'il placera la première commande et la seconde seulement s'il y a des commandes, mais comment faire pour qu'il place les deux si la condition est remplie et aucune si la condition n'est pas remplie ?

 
sdm:

j'ai besoin qu'il place les deux commandes lorsqu'il n'y a pas de commande.

ou je n'ai pas défini la condition correctement ? je ne comprends pas comment cela fonctionne si dans le tutoriel il semble qu'il placera le premier ordre et le second seulement s'il y a des ordres, mais comment dois-je faire pour qu'il place les deux si la condition est remplie et aucun si la condition n'est pas remplie.


La condition est acceptée, les deux demandes seront définies, mais personne ne peut garantir qu'elles seront toutes deux exécutées.
 

int x=0, a=0, b=0

si (x==0) {

}

que dois-je écrire entre parenthèses, pour que a prenne la valeur 1 et b la valeur 1 ?

 
sdm:

int x=0, a=0, b=0

si (x==0) {

}

que dois-je écrire entre parenthèses, pour que a prenne la valeur 1 et b la valeur 1 ?


La manière la plus simple est d'écrire {a=1 ; b=1}, mais vous pouvez inventer une belle formule à plusieurs pages pour les calculer si vous le voulez vraiment.
Raison: