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

 

Bonjour, veuillez m'aider à répondre à cette question. J'ai un code (téléchargé quelque part chez les bonnes gens) - l'essence du code est la suivante : si l'ordre est fermé par un stop loss, il est redéfini à nouveau avec les mêmes paramètres. Mais le problème est que si je l'exécute maintenant, le code réinsère tous les ordres pour les périodes passées, et je veux seulement les ordres qui ont été fermés par stoploss par exemple seulement pour aujourd'hui ! Quel filtre mettre, merci de nous conseiller ? Vous ne savez pas comment obtenir la date de la commande et la comparer avec la date du jour ? Merci.

  1. double OOP=0,OTP=0,OSL=0,OL=0 ;
  2. int OT=0 ;
  3. for (int i=OrdersHistoryTotal()-1 ; i>=0 ; i--)
  4. {
  5. if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
  6. {
  7. OT = OrderType() ;
  8. OSL = NormalizeDouble(OrderStopLoss(),Digits) ;
  9. si (OT<2)
  10. {
  11. si (NormalizeDouble(OrderClosePrice(),Digits)==OSL)
  12. {
  13. OOP = NormalizeDouble(OrderOpenPrice(),Digits) ;
  14. //OSL = NormalizeDouble(OrderStopLoss(),Digits) ;
  15. OTP = NormalizeDouble(OrderTakeProfit(),Digits) ;
  16. OL = OrderLots() ;
  17. }
  18. sinon OOP=0 ;
  19. pause ;
  20. }
  21. }
  22. }
  23. si (OOP!=0)
  24. {
  25. pour (i=0 ; i<OrdersTotal() ; i++)
  26. {
  27. si (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
  28. {
  29. si (OrderSymbol()==Symbol())
  30. {
  31. si (NormalizeDouble(OrderOpenPrice(),Digits) == OOP && OL == OrderLots()) return(0)
  32. }
  33. }
  34. }
  35. si (OT==OP_BUY) OT=OP_BUYLIMIT ;
  36. si (OT==OP_SELL) OT=OP_SELLLIMIT ;
  37. si (OrderSend(Symbol(),OT,OL,OOP,0,OSL,OTP,NULL,0,0,clrNONE)==-1) ;

 
rabanik:   Comment obtenir la date de la commande et la comparer à la date du jour ?

Est-ce que c'est correct ? if (OrderCloseTime() > iTime(Symbol(), PERIOD_D1, 0) ...

Mais avant minuit, les commandes de la journée seront épaisses, et immédiatement après minuit, elles seront vides

RequiredInterval=36000 ; // 10 heures

C'est mieux comme ça ? si ((TimeCurrent()-OrderCloseTime()) < RequiredInterval) ...

 
LRA:

Cela suffira-t-il ? if (OrderCloseTime() > iTime(Symbol(), PERIOD_D1, 0) ...

Mais avant minuit, les commandes d'aujourd'hui seront denses, et juste après minuit, elles seront vides.

RequiredInterval=36000 ; // 10 heures

C'est mieux comme ça ? si ((TimeCurrent()-OrderCloseTime()) < RequiredInterval) ...

Merci beaucoup. Je vais essayer !
 
Les gars, je ne comprends pas ce qui ne va pas... lors du franchissement, en touchant la ligne de prix, Alert ne se ferme pas et fonctionne pour chaque tick, alors comment puis-je le réparer ? comment puis-je faire en sorte qu'il émette un bip pendant une durée déterminée, ou le nombre de fois ?
Dossiers :
 
Bonjour, merci de m'aider à résoudre le problème, j'ai réglé l'intervalle de temps de la MA à 5 minutes pour l'afficher sur le graphique 1 minute, elle est dessinée une par une sans tenir compte de l'échelle. Merci !
 

Aide qui peut, il y a une erreur dans la ligne ci-dessous. Code en mt5.

StringTrimLeft( StringSubstr(ResultSymbols,1,StringLen(StringSubstr(ResultSymbols,0,1))- 1)) ;

 
ara66676: Une erreur s'est produite dans la chaîne de caractères. Code dans mt5. StringTrimLeft( StringSubstr(ResultSymbols,1,StringLen(StringSubstr(ResultSymbols,0,1))- 1)) ;
Ajouté la chaîne ResultSymbols="12345" ; Compilé sans erreur. Essayez de diviser
 
LRA:
Ajouté la chaîne ResultSymbols="12345" ; Compilé sans erreur. Essayez de diviser en plusieurs parties
merci, j'ai trouvé la raison, dans la cinquième MT vous ne pouvez pas entrer des calculs dans la fonctionStringTrimLeft(), c'est à dire que vous devez d'abord déclarer une chaîne, puis lui assigner des calculs et ensuite passer cette chaîne à la fonction StringTrimLeft()
 
ObjectGetValueByShift est une interpolation ?
 
mario_SC--:   ObjectGetValueByShift est une interpolation, non ?
Il s'agit plutôt d'une extrapolation linéaire. L'aide dit : La valeur du prix est calculée à l'aide d'une équation linéaire