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

[Supprimé]  
Camarades programmeurs, une très grande demande pour aider à écrire un morceau de code pour le robot ! Le robot négocie sur deux muwings. Lorsqu'ils se croisent, il ouvre une position et la ferme au croisement opposé. Mais il doit ouvrir une autre position au croisement opposé. Ainsi, lorsqu'il ferme "Achat", le robot doit immédiatement ouvrir "Vente" et vice versa !
Dossiers :
Alexey Viktorov  
lufer:
Merci, mais cela ne fonctionne pas avec Mas[N] ; dans OnInit(), j'ai déjà essayé.
Eh bien, je suis désolé, je n'étais pas très sobre hier. Ou pas très sobre.
lufer  
AlexeyVik:
Eh bien, je suis désolé, je n'étais pas très sobre la nuit dernière. Ou pas très sobre.
)), cela arrive.
lufer  

Supposons que je veuille que le tableau soit rempli de données provenant d'un indicateur (par exemple ATR) pour chaque barre à partir de la première barre formée (#1) ? C'est-à-dire que le tableau est déclaré et que la fonction de démarrage l'initialise déjà. Comment le faire correctement ?

comme ça ?

for(int i=0 ; i<N ; i=i++)

{

Mas[i]=iATR(NULL,0,1,i+1) ;

}

Ou il peut être fait via :

for(int i=0 ; i<N ; i=i++)

{

ArrayFill(Mas,i,1,iATR(NULL,0,1,i+1))

}

ou quelque chose d'autre entièrement ?, jusqu'à présent je n'ai pas réussi de quelque manière que ce soit(, quelque chose de mal, s'il vous plaît conseiller, merci à l'avance.

Vitalie Postolache  
lufer:

Supposons que je veuille que le tableau soit rempli de données provenant d'un indicateur (par exemple ATR) pour chaque barre à partir de la première barre formée (#1) ? C'est-à-dire que le tableau est déclaré et que la fonction de démarrage l'initialise déjà. Comment le faire correctement ?

comme ça ?

for(int i=0 ; i<N ; i=i++)

{

Mas[i]=iATR(NULL,0,1,i+1) ;

}


Le premier cas est suffisant. Mais si vous avez besoin de valeurs à partir de la première mesure, il serait judicieux de compter la boucle à partir de 1 également.
lufer  
evillive:
La première option est suffisante. Mais si nous avons besoin de valeurs à partir de la première barre, il serait plus raisonnable de compter le cycle à partir de 1.
J'ai essayé avec 1 et 0, mais il y a toujours quelque chose qui ne va pas, les valeurs ne sont pas écrites, quand je demande d'en sortir certaines, cela ne donne que des zéros.
Vitalie Postolache  
lufer:
J'ai essayé avec 1 et 0, mais ça ne marche toujours pas, aucune valeur n'est écrite, et quand je demande d'en sortir certaines, ça ne sort que des zéros.
Veuillez me montrer le code de sortie.
lufer  
evillive:
Montrez le code pour demander la sortie.

Je vais vous montrer tout le code juste au cas où :

//+------------------------------------------------------------------+

extern int    N        =100;                       // Количество баров

       int    Mas[];                             // Объявление массива

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+

int OnInit()
  { 
     ArrayResize(Mas,N,0);                // Установка размера массива      
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+

void OnDeinit(const int reason)
  {

  }

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+

void OnTick()
  {                                       
   for(int i=0; i<N; i=i++)                     // Цикл записи данных
     {                      

          Mas[i]=iATR(NULL,0,1,i+1);           // Вычисление значений          
     }
       Alert(Mas[0],"," ,Mas[50],"," ,Mas[99]);      // Вывод на экран
   return;                                           // Выход из start
  }
//+------------------------------------------------------------------+

 

Utilisez SRC pour insérer le code

Vitalie Postolache  
lufer:

Je vais vous montrer tout le code juste au cas où :


faire un tableau de type double
lufer  
evillive:
faire un tableau de type double
Cela ne résout pas le problème, il semble maintenant que quelque chose ne va pas dansOnTick() - lorsque je charge l'EA dans la fenêtre du terminal, rien ne se passe, et lorsque j'essaie de le supprimer, le terminal se bloque pendant un très long moment, puis le supprime après un certain temps. J'ai essayé d'attribuer manuellement des valeurs à certains éléments, tout est OK. Quelque chose à propos de la boucle d'initialisation du tableau semble être faux.