[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 449

 
artmedia70:

1. Trouvez la fractale la plus proche de la barre zéro et mémorisez son temps et son niveau de prix dans des variables int et double.

2. A chaque tic, cherchez la fractale la plus proche de la barre de zéro. Si son temps n' est pas égal au temps fractal, qui a été trouvé à l'étape 1, alors...

2.1 Vérifiez son niveau de prix.

2.1.1 Si elle est inférieure au niveau fractal en p1, alors ... une action

2.1.2 Si elle est supérieure au niveau fractal dans p1, ..... autre action

2.2 Inscrire le temps de cette fractale et son niveau dans les variables de l'étape 1(int et double)

3. Retour au point 2


Ce n'est pas comme ça dans mon code ?
 
DOCTORS:

Ce n'est pas comme ça dans mon code ?
Ce n'est pas le cas.
 
artmedia70:
ce n'est pas le cas


Je suis d'accord pour dire que ce n'est pas une condition fractale, mais sur le fait du reste ?

1. Je détermine par le compteur que c'est la première fractale (z=0), j'assigne la variable à l'extremum de la condition (fractale) (f1= iLow(Null,0,3)).

2. Dans l'autre cas (quand z=1, donc ce n'est pas la première "fractale", nous la comparons à la précédente (f1 > iLow(NULL,0,3) )

2.1. si la valeur de la précédente est plus grande, j'assigne une nouvelle valeur à la variable (f1= iLow(NULL,0,3) et je mets le compteur à zéro (z=0)

2.1 Si la valeur précédente est inférieure à la nouvelle (f1 < iLow(NULL,0,3) ), je ferme la position.

N'est-ce pas ?

 
DOCTORS:


Je suis d'accord pour dire que ce n'est pas une condition fractale, mais sur le fait du reste ?

1. Je détermine par le compteur que c'est la première fractale (z=0), j'assigne la variable à l'extremum de la condition (fractale) (f1= iLow(Null,0,3)).

2. Dans l'autre cas (quand z=1, donc ce n'est pas la première "fractale", nous la comparons à la précédente (f1 > iLow(NULL,0,3) )

2.1. si la valeur de la précédente est plus grande, j'assigne une nouvelle valeur à la variable (f1= iLow(NULL,0,3) et je mets le compteur à zéro (z=0)

2.1 Si la valeur précédente est inférieure à la nouvelle (f1 < iLow(NULL,0,3) ), je ferme la position.

N'est-ce pas ?

Où est la comparaison temporelle entre la première et la deuxième fractale ?
 
artmedia70:
Où est la comparaison temporelle de la première et de la deuxième fractales ?


Pour quoi faire ? Bien sûr que je peux, mais dans mon cas, trouver une "fractale" est-elle définie par une condition (low-mi 5 bars) ? Et pas par le temps...

Encore une fois, le compteur "z" est le bloqueur même, de sorte que la définition de "fractale" dans mon cas ne boucle pas en un.

 

Aidez-nous, s'il vous plaît. Je veux ouvrir une position de verrouillage lorsque le niveau de stoploss est atteint et la conserver si le prix continue à évoluer dans une direction défavorable. Le problème est que je veux ouvrir plusieurs ordres au lieu d'un seul.

Voici la condition :

if (OrderType == OP_SELL && LRMA > OrderOpenPrice() + StopLoss*Point) 
 {
  OrderSend(NULL, OP_BUY, Lot, Ask, 2, 0, 0, 0, 111, 0, Green);
 }

Le compteur ne fonctionne pas pour une raison quelconque. J'ai tout essayé.

 
Bonjour, je vérifie l'historique avant d'ouvrir un ordre (fonction isLossLastPos de Kim), mais cela ne s'ouvre pas toujours à temps, c'est-à-dire que l'ordre s'ouvre d'abord et puis après quelques ticks la fonction fonctionne, mais l'ordre est déjà ouvert.
 
chuvee:

Aidez-nous, s'il vous plaît. Je veux ouvrir une position de verrouillage lorsque le niveau de stoploss est atteint et la conserver si le prix continue à évoluer dans une direction défavorable. Le problème est que je veux ouvrir plusieurs ordres au lieu d'un seul.

Voici la condition :

Le compteur ne fonctionne pas pour une raison quelconque. J'ai tout essayé.

Faites un contrôle avant d'ouvrir un casier : s'il n'y a pas de position de verrouillage, alors ouvrez-le.
 
T-G:
Bonjour, je vérifie l'historique avant d'ouvrir un ordre (fonction isLossLastPos de Kim), mais il arrive parfois que l'ouverture ne se fasse pas à temps, c'est-à-dire que l'ordre s'ouvre d'abord et qu'après quelques ticks la fonction prend effet, mais l'ordre est déjà ouvert. Comment dois-je régler ce problème ?

La fonction vérifie la dernière position fermée, et non une position quelconque dans l'historique. Si la dernière position fermée est perdante, alors cette fonction retournera vrai, sinon elle retournera faux.

Vérifiez donc si vous voulez ouvrir une position dans le cas où la dernière position a clôturé avec une perte :

   if (isLossLastPos(Symbol(), OP_BUY, Magic)) {
      // Код открытия позиции, если последняя закрытая позиция Buy с магиком Magic убыточна
      }

ou

   if (!isLossLastPos(Symbol(), OP_SELL, Magic)) {
      // Код открытия позиции, если последняя закрытая позиция Sell с магиком Magic закрыта с прибылью или в ноль
      }

Quelque chose comme ça ... si ma mémoire est bonne.

 
artmedia70:

La fonction vérifie la dernière position fermée, et non une position quelconque dans l'historique. Si la dernière position fermée est perdante, alors cette fonction retournera vrai, sinon elle retournera faux.

Vérifiez donc si vous voulez ouvrir une position dans le cas où la dernière position a clôturé avec une perte :

ou

Quelque chose comme ça ... si ma mémoire est bonne

La fonction n'a pas le temps de l'afficher. L'ordre s'ouvre d'abord, quelques ticks passent et ce n'est qu'ensuite que la fonction affiche la dernière perte, mais l'ordre a déjà été ouvert.

Si le mouvement est très fort, 8 ordres peuvent être ouverts sur un seul chandelier.

Raison: