[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 283

 
Afin de le faire moi-même. Seigneur, pardonne-moi, je suis un pécheur
 

Je pense... qu'il faut vérifier le prix il y a quelque temps, s'il était plus élevé (dans la phase baja), il y a autre chose à considérer. Je ne sais pas. Je n'ai aucune idée de la manière de le formaliser.

Je ne vous demande pas de l'écrire à ma place. Je demande juste de l'aide pour le formaliser verbalement...

 

Ce n'est pas une mauvaise chose à faire. Je parle de codage, comme on dit ici. Vous voyez, lorsque vous créez un programme sérieux, vous créez un monde qui vit selon les règles que vous avez établies. Il n'est pas certain que vous soyez vous-même capable de comprendre ce monde après l'avoir créé.

Par conséquent, donnez-nous les règles :)

 
hoz:
Personne ne l'a mis en œuvre. Je ne pense pas que ce soit très compliqué. C'est juste que je n'ai pas encore beaucoup d'expérience, je ne comprends pas bien comment formaliser ce point ...

Bonjour Victor ! Pour ouvrir Bai devrait être (Ask - ema), vérifiez ! Si j'ai bien compris ! ?
 

Bonjour, Boris. Je l'ai fait, d'ailleurs. J'ai déjà posté le code ci-dessus, je vais le dupliquer :

//+-------------------------------------------------------------------------------------+
//| Получение значений МА на указанном баре                                             |
//+-------------------------------------------------------------------------------------+
double GetMA(int index, int maPeriod)
{
   return (iMA(NULL, i_TF, maPeriod, 0, MODE_EMA, MODE_CLOSE, index));
}
//+-------------------------------------------------------------------------------------+
//| Имеет ли место отскок?                                                              |
//+-------------------------------------------------------------------------------------+
void IsRebound(int crossDir[], bool& returnSign[])
{
   for (int i = 0; i < 4; i++)
   {
      if (crossDir[i] == CROSS_NO)
         continue;

      returnSign[i] = false;
      double ema = GetMA(1, g_maPeriod[i]);

      if (crossDir[i] == CROSS_UP)
      {
         if (ND(MathAbs(ema - Ask)) <= i_thresholdFromMa * pt) // ..зазор между ценой покупки и машки, <= i_thresholdFromMa..
         {
            returnSign[i] = true;

     Alert("CROSS_UP");
         }
      }
      if (crossDir[i] == CROSS_DN)
      {
         if (ND(MathAbs(ema - Bid)) <= i_thresholdFromMa * pt) // ..зазор между ценой продажи и машки, <= i_thresholdFromMa..
         {
            returnSign[i] = true;
       Alert("CROSS_DN");
         }
      }
   }
}

Mais ça ne marche pas comme ça pour une raison quelconque...

 
hoz:

Bonjour, Boris. Je l'ai fait, d'ailleurs. J'ai déjà posté le code ci-dessus, je vais le dupliquer :

Mais ça ne marche pas comme ça pour une raison quelconque...


Essayez dans l'autre sens : (Ask - Ema) et optimisez cei_thresholdFromMa !
 
borilunad:

Essayez dans l'autre sens : (Ask - Ema)

Quelle est la différence ? :)
 
hoz:

Quelle est la différence ? :)

Qu'est-ce qui devrait être plus élevé ? Si Ask dans le cas de Bai, alors Yema dans le cas de Sell. En conséquence : Si yema dans le cas de Bai, alors Bid dans le cas de Sell ! Par symétrie, logiquement. Vous ne soustrairez pas le plus grand du plus petit !
 
borilunad:

Lequel devrait être le plus élevé ? Si Ask dans le cas de Bai, alors Yema dans le cas de Sell. En conséquence : Si yema dans le cas de Bai, alors Bid dans le cas de Sell ! Par symétrie, logiquement. Vous ne soustrairez pas le plus grand du plus petit !
Donc ça n'a pas d'importance. Je renvoie une valeur absolue, modulo par MathAbs...
 
hoz:
Ça n'a pas d'importance. Je renvoie une valeur absolue, modulo par MathAbs...


Si vous cherchez un point d'entrée,MathAbs() introduit une tache. Pour moi, il devrait être spécifié de et à, afin que l'on sache clairement quand et avec quelle tolérance !