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

 
culler:

Envoi de la commande ()

dérapage,// dérapage

Pouvez-vous me dire dans quel format ?

Exemple : 3 - 0.00003 ou 0.0003 à un compte à cinq chiffres


3 pour un compte à 4 chiffres est 30 pour un compte à 5 chiffres respectivement, mais si vous le voulez vraiment, vous pouvez aussi laisser 3 pour un compte à 5 chiffres, juste les recotations seront constantes.
 

Pouvez-vous me donner un exemple de code, je n'arrive pas à trouver quelque chose de normal.

Comment forcer la comparaison de prix (par exemple : MarketInfo(Symbol(),MODE_BID ) par combien le prix a augmenté au-dessus/en dessous depuis que la comparaison de prix a commencé.

Si j'utilise les variables "A" et "B" avec Bid, comment puis-je forcer la mise à jour de la seule variable "B" et les comparer ensuite - sinon les deux auront toujours les mêmes valeurs.

Ou peut-être existe-t-il des moyens intégrés plus simples ?

 
culler:

Pouvez-vous me donner un exemple de code, je n'arrive pas à trouver quelque chose de normal.

Comment forcer la comparaison de prix (par exemple : MarketInfo(Symbol(),MODE_BID ) par combien le prix a augmenté au-dessus/en dessous depuis que la comparaison de prix a commencé.

Si j'utilise les variables "A" et "B" avec Bid, comment puis-je forcer la mise à jour de la seule variable "B" et les comparer ensuite - sinon les deux auront toujours les mêmes valeurs.

Ou peut-être existe-t-il des moyens intégrés plus simples ?


Le temps doit être pris en compte. Rappelez-vous le moment où la première enchère a été écrite, puis comparez-la avec la valeur réelle de l'enchère après un certain intervalle :


1. t=0 ; A=Bid ; B=Bid ; C=MathAbs(B-A) ;

2. t=10 ; B=Bid ; C=MathAbs(B-A) ; A=Bid ;

3. t=20 ; B=Bid ; C=MathAbs(B-A) ; A=Bid ;

...

La variable B C sera donc la valeur absolue de la différence de Bid sur les 10 dernières secondes.

 

Veuillez me conseiller - lors du débogage du programme - dans le débogueur, dans la fenêtre "Suivi des valeurs d'expression", dans les expressions, il est écrit "L'expression n'a pas pu être évaluée" alors que les valeurs de

ces expressions s'affichent calmement dans la fenêtre appelée par la fonction Alert. Le programme fonctionne, des valeurs sont attribuées aux variables et dans le débogueur, elles ne sont pas affichées car elles ne peuvent pas être évaluées. Comment cela peut-il être ?

 
evillive:

Le temps doit être pris en compte. Rappelez-vous le moment où la première valeur d'enchère a été enregistrée, puis comparez à un intervalle donné avec l'enchère réelle à ce moment-là :


1. t=0 ; A=Bid ; B=Bid ; C=MathAbs(B-A) ;

2. t=10 ; B=Bid ; C=MathAbs(B-A) ; A=Bid ;

3. t=20 ; B=Bid ; C=MathAbs(B-A) ; A=Bid ;

...

La variable B C sera donc la valeur absolue de la différence de Bid dans les 10 dernières secondes.


Il n'y a aucune référence au temps. Le temps est l'ennemi ici.

Comment sans temps ?

 
culler:


Il n'y a pas de référence temporelle. Le temps est l'ennemi ici.

Comment sans temps ?


Vous mettez une variable avec la valeur du prix dans OnInit, et elle sera liée au prix pendant le démarrage du conseiller expert, puis vous pouvez la comparer avec ce dont vous avez besoin.
 
culler:


Il n'y a pas de référence temporelle. Le temps est l'ennemi ici.

Comment pouvez-vous vous passer du temps ?


On ne peut pas se passer du temps sur le canal de fuite, c'est une partie inséparable du système, hélas. Même dans la question posée, le temps apparaît :

Comment faire une comparaison de prix (par exemple : MarketInfo(Symbol(),MODE_BID ) combien plus haut/bas à partir du moment de la comparaison de prix.

Le "moment" est le temps passé sur place, le point de référence initial.

 
culler:

Pouvez-vous me donner un exemple de code, je n'arrive pas à trouver quelque chose de normal.

Comment forcer la comparaison de prix (par exemple : MarketInfo(Symbol(),MODE_BID ) par combien le prix a augmenté au-dessus/en dessous depuis que la comparaison de prix a commencé.

Si j'utilise les variables "A" et "B" avec Bid, comment puis-je forcer la mise à jour de la seule variable "B" et les comparer ensuite - sinon les deux auront toujours les mêmes valeurs.

Ou peut-être existe-t-il des moyens intégrés plus simples ?

LastPrice=0;

NewPrise=0;

if(условие записи  LastPrice &&  NewPrise==0){LastPrice = MarketInfo(Symbol(),MODE_BID);}

if(LastPrice > 0) { NewPrise = MarketInfo(Symbol(),MODE_BID);} 


 
evillive:

Sur le canal de fuite, il n'y a pas de temps sans temps, c'est une partie inséparable du système, hélas. Même dans cette question, le temps est présent :

le "moment", c'est le temps, le point de départ.


il n'y a pas de temps dans le forex.... il y a une série continue d'états attendus... (prédictions)

Mais pour un trader, entre deux états attendus, il peut s'écouler une heure, un mois, une seconde, voire un an... :-)))

c'est son problème... tout l'intérêt d'un trading réussi est de minimiser la période d'attente.... ( en fonction de ce que l'on vise...)

 

Bonjour à tous. Question sur IndicatorCounted() :

#property indicator_separate_window
datetime LastBarTime=0;
int start() 
{
   // каждый свежий бар считаем только 1 раз (сразу после закрытия)
   if (Time[0]!=LastBarTime)               // если идёт расчёт всей истории или начался свежий бар
   {
      LastBarTime=Time[0];
      
      int counted=IndicatorCounted(); if(counted<0) return(-1);
   // if (counted>0) counted--;   <<< зачем оно???
   
                 int i=Bars-counted;  // варианты: считаем историю(i=кол-во баров), сформирован свежий бара (i=2) ПОЧЕМУ?
      if (counted<2) i=Bars-2;        // для корректного начала расчёта (иначе i и тем более i+1 заглядывают в бездну)

      Print("!!!!!!TEST Bars-counted=",i);  // ПОЧЕМУ =2 ???
                     
      for (; i>0; i--) // открытый бар не считаем
      {
      // варианты:
      // 1) в истории недостаточно баров (меньше трёх): итераций цикла не будет
      // 2) произошла переинициализация переменных и тогда надо считать историю с нуля (i указывает на 2-й бар слева)
      // 3) историю уже расчитали, а сейчас сформирован свежий бара: i должна указывать на закрытый бар (i=1)
      }
   }
   
return (0);
}


Puis-je attendre seulement deux états dans la boucle :

1) initialisation (les variables statiques sont remises à zéro et i pointe sur la 2ème barre à gauche) ;

2) l'ensemble de l'histoire est calculé (i=2) ;


Et, en fait, pourquoi i=2 ? Je comprendrais que i=1 ou i=0, mais pourquoi 2 ? Je peux me fier à ce 2 ? =)

Si non, quelle est la bonne façon de procéder. Je dispose d'un calcul en chaîne, de sorte que la même barre ne peut pas être traitée à plusieurs reprises.

...

Ok, je vais poser la question d'une autre manière. Droit au but. Puis-je utiliser une variable à la place de IndicatorCounted() ?

Autrement dit, l'initialisation primaire des statiques et des globaux est-elle toujours la même que le 0 de IndicatorCounted() ?

Raison: