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

 
Frostr:

Aidez-moi à écrire une condition pour ouvrir une position.

Je ne peux pas écrire une condition supplémentaire pour ouvrir une position selon mon idée.

Si je ferme une position avec TP ou SL, elle doit se rouvrir avec la position opposée.

Exemple : Si une position de vente, disons SL, est fermée, il rouvrira une position de vente avec elle et achètera

Voici 2 conditions du conseiller expert :

condition pour acheter

if (BUY)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits) ; else TP=0 ;
if (stoploss !=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits) ; else SL=0 ;
if(NumberOfPositions(Symbol(),OP_BUY,Magic)<MaxOrders)OPENORDER ("Buy") ;
}

sell condition

if (SELL)
{
if (takeprofit !=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits) ; else TP=0 ;
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits) ; else SL=0 ;
if(NumberOfPositions(Symbol(),OP_SELL,Magic)<MaxOrders)OPENORDER ("Sell") ;
}

Qui est bon à cela, s'il vous plaît aidez-moi à écrire la condition supplémentaire.


Je ne comprends pas ce que vous voulez. Vous voulez ouvrir deux positions opposées après avoir fermé une position ? Alors peut-être. Mais vous pouvez simplement donner le CA sur le spread au lieu d'ouvrir une position. Ce sera la même chose.
if (BUY)
   { 
   if(NumberOfPositions(Symbol(),OP_BUY,Magic)<MaxOrders)OPENORDER ("Buy");
      {
      if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
      OPENORDER ("Buy"); 
      if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;
      OPENORDER ("Sell"); 
   }
}
if (SELL)
   {
   if(NumberOfPositions(Symbol(),OP_SELL,Magic)<MaxOrders) 
      if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0; 
      OPENORDER ("Sell");
      if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
      OPENORDER ("Buy"); 
   } 
}  
 
sss2019:

Bon après-midi. Pouvez-vous me dire comment résoudre un problème ? Il y a deux points, un à gauche de la barre du zéro et un à droite de la barre du zéro. J'ai besoin de calculer le nombre de barres entre ces points. Si l'on se contente de prendre des intervalles de temps, en fonction de l'horizon temporel, le nombre de barres n'est pas considéré correctement lorsque l'on arrive au vendredi.

Y a-t-il d'autres solutions ?

Veuillez m'aider à résoudre ce problème.
 
sss2019:
Veuillez aider à résoudre le problème

Transférez les calculs sur le terminal : créez une ligne de tendance pour deux points, puis(ObjectGetShiftByValue()) trouvez le décalage de chaque point par rapport à la 0ème barre. Et ensuite, je calcule ma différence entre les deux (ou j'ajoute le modulo).
 
sss2019:
Veuillez aider à résoudre ce problème


Décalez les deux points vers la gauche du même nombre de barres, de sorte qu'ils se retrouvent tous deux à gauche de la barre zéro. Je m'excuse, mauvaise erreur, pour que le bon soit sur la barre de zéro.
 
rigonich:

Décalez les deux points vers la gauche du même nombre de barres de sorte qu'ils se trouvent tous deux à gauche de la barre de zéro. Désolé, mon erreur, le bon devrait être sur la barre de zéro.

P.S. J'ai réfléchi un peu et je me suis rendu compte que je répondais à la mauvaise question. Le nombre de barres à droite de la barre zéro ne peut être déterminé avec précision, car elles ne sont pas encore présentes et, outre le week-end, il peut y avoir des barres sautées (lorsque le prix ne change pas pendant une barre, celle-ci n'est pas "tirée"), des cotations manquantes immédiatement après l'ouverture du marché, etc.
 
rigonich:

P.S. J'ai réfléchi un peu et je me suis rendu compte que je répondais à la mauvaise question. Le nombre de barres à droite de la barre zéro ne peut pas être déterminé en principe, car elles ne sont pas encore là, et en dehors des week-ends, il peut y avoir des barres sautées (lorsque le prix ne change pas pendant une barre, celle-ci n'est pas "tirée"), aucune cotation immédiatement après l'ouverture du marché, etc.
Êtes-vous sûr de savoir ce que vous écrivez ? Le script ci-joint calcule le point droit de la ligne de tendance (décalage des barres par rapport à la 0ème). Dessinez une ligne de tendance sur le graphique et donnez-lui un nom, que vous insérez dans le script.
Dossiers :
 
TarasBY:
Êtes-vous sûr de savoir ce que vous écrivez ? Le script ci-joint calcule le point droit de la ligne de tendance (décalage des barres par rapport à la 0ème). Tracez une ligne de tendance sur le graphique et donnez-lui un nom, que vous insérez dans le script.


La question ne disait rien à propos de la ligne de tendance. La question était : déterminer le nombre de barres entre les deux points.
 
rigonich:

La question ne portait pas sur une ligne de tendance, mais sur la détermination du nombre de barres entre deux points.
Dans ce cas, la "ligne de tendance" est l'un des moyens de résoudre ce problème. Et je voulais parler de votre déclaration :"Le nombre de barres à droite du point zéro ne peut pas être déterminé avec précision en principe...". - Dites-le aux développeurs ! :))
 
TarasBY:
Dans ce cas, l'utilisation de la "ligne de tendance" est une façon de résoudre ledit problème. Et je parle de votre déclaration :"Le nombre de barres à droite du point zéro ne peut pas être déterminé avec précision en principe...". - Dites-le aux développeurs ! :))


Nous pouvons les prévoir, mais nous ne pouvons pas dire avec certitude si elles seront là ou non, car la barre zéro est la dernière barre ouverte à l'heure actuelle et le fait que la prévision soit correcte ou non dépend de nombreux facteurs. Au fait, si l'on utilise la ligne de tendance dans le cas où la barre zéro est la dernière barre du vendredi, on obtient le mauvais nombre de barres entre les points.

P.S. Et essayez de dire aux développeurs que vous savez exactement combien de barres seront formées, par exemple, des barres d'une minute à partir du moment présent par jour ou même par heure.

 
Roman.:

Je vous l'ai déjà dit - pas question ! Seulement par l'historique de l'instrument, vous ouvrez trois graphiques de l'instrument testé sur H1, H4 et quotidiens, chargez les indicateurs utilisés à chacun d'entre eux, puis dans le testeur sur H1 vous démarrez une expo pour le test, en utilisant les lectures de ces indicateurs de différents délais(comme dans le tutoriel avec M15 et H1), plus loin, lorsque vous entrez sur le marché, en plaçant certains ordres, vous arrêtez le test en faisant une pause et en mémorisant le TEMPS d'entrée/sortie du marché, puis en passant systématiquement aux onglets précédemment définis de CETTE instrument testé, vous revenez en arrière pour période historique correspondante égale à la période de suspension (pause) dans le testeur et vérifier les signaux des indicateurs à différentes échelles de temps, en passant à un graphique avec H1, H4 et un graphique journalier, en vérifiant l'exactitude de l'expa dans le testeur de stratégie sur le déclenchement des critères de trading ! C'est tout. Il n'y a pas d'autre moyen !


Merci Roman !

C'est comme ça que je l'ai fait, j'espérais qu'il y avait un moyen de rendre les choses plus faciles et plus simples ;))

Merci

Raison: