[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 224

 
ArgentumZ:
Je l'ai lu, je connais les distances de gel, etc., mais je ne comprends pas comment un stop loss nul est lié à toutes ces restrictions ! Si vous voyez une erreur, dites-le moi. J'ai lu attentivement les manuels avant d'écrire ici. Je ne le ferais pas si je n'avais pas à le faire.
Certaines sociétés de courtage vous permettent de définir un SL et un TP lorsque vous passez un ordre, d'autres non. Vous devez l'essayer manuellement. Il en va de même pour l'immobilisation et la distance minimale d'arrêt (le TP est également un arrêt).
 
snail09:
Certains DCs permettent de définir SL et TP lors de la passation d'une commande, d'autres non. Essayez avec vos mains. Il en va de même pour l'immobilisation et la distance minimale d'arrêt (le TP est également un arrêt).
Le problème est que je n'ai pas besoin de mettre des stops pour le moment - je veux mettre des TakeProfit et StopLoss nuls. Ce qui est intéressant, c'est que BuyStop est défini, SellStop et SellLimit ne le sont pas et j'obtiens l'erreur ci-dessus.
 
J'ai résolu le problème avec les arrêts zéro. Cependant, je n'ai pas compris comment : ce que j'ai commenté, copié, mis des 0 explicites à la place des variables, etc. Quoi qu'il en soit, à un moment donné, tout a fonctionné))) Merci à tous ceux qui ont répondu et laissé des commentaires.
 
ArgentumZ:
J'ai résolu le problème avec les arrêts zéro. Cependant, je n'ai pas compris comment : ce que j'ai commenté, copié, mis des 0 explicites à la place des variables, etc. Quoi qu'il en soit, à un moment donné, tout a fonctionné))) Merci à tous ceux qui ont répondu et laissé des commentaires.
Demandez la fonction MarketInfo avant vos transactions, je pense que cela vous aidera. Faites un amorçage et regardez les codes d'erreur, il y a une description de ceux-ci dans la ...
 
ArgentumZ:
Je les ai lus, je connais les distances de gel, etc., mais je ne comprends pas comment un stop loss zéro se rapporte à toutes ces limitations ! Si vous voyez une erreur, dites-le moi. J'ai lu attentivement les manuels avant d'écrire ici. Je ne les écrirais pas si je n'étais pas obligé de le faire.

J'ai vu l'erreur dans le fait que votre BUY_STOP et SELL_STOP sont fixés au même prix. Si vous avez mis le TP et le SL à zéro, mais que l'erreur 130 demeure, il ne doit pas s'agir d'eux !

Seuls BUY_STOP et SELL_LIMIT, ou inversement (selon le cas) BUY_LIMIT et SELL_STOP peuvent être fixés au même prix. Mais pas du tout BUY_STOP et SELL_STOP ! :)))

Mais vous n'avez pas très bien lu les manuels...

 
Zzumer:

C'est-à-dire que le testeur contient un historique incomplet lorsqu'il démarre ?

Maintenant, d'ailleurs, l'expert fonctionne correctement.

C'est dommage, mais c'est comme ça. Si vous avez besoin de plus de barres pour tester l'EA, vous devez soit aller dans les fichiers de cotation (paresseux et long...) ou sauter une partie du temps de test (facile et simple).
 

Une fonction artisanale supprime, dans le cas d'une rupture de niveau, les objets horizontaux TREDLINE. Fonctionne correctement mais est très coûteux.

Avec un grand nombre d'objets (plus de 5000), il suspend complètement le MT. Deux jours de charge CPU sans aucun résultat.

Quelles sont les options les plus optimales pour remplacer cette condition ?

 if( PrLevel<High[iHighest(NULL,0,MODE_HIGH,shift,1)]) {ObjectDelete(nm);return(0);} }
Dossiers :
 
Operr:

Une fonction artisanale supprime, dans le cas d'une rupture de niveau, les objets horizontaux TREDLINE. Fonctionne correctement mais est très coûteux.

Avec un grand nombre d'objets (plus de 5000), il suspend complètement le MT. Deux jours de charge CPU sans résultats.

Comment remplacer la condition de manière plus optimale ?

Calculer iHighest() au tout début du code (au démarrage), enregistrer l'indice de la barre dans une variable. Lors de l'ouverture d'une nouvelle barre, incrémentez cette variable et vérifiez si la barre précédente n'est pas la nouvelle "Highest". N'oubliez pas non plus de vérifier si la variable > nombre de barres recherchées, alors la fonction iHighest() doit être relancée. Cet algorithme fonctionnera beaucoup plus rapidement, mais il est encore loin d'être optimal ! :))

 
MaxZ:

J'ai vu l'erreur dans le fait que votre BUY_STOP et SELL_STOP sont fixés au même prix. Si vous avez mis le TP et le SL à zéro, mais que l'erreur 130 demeure, il ne doit pas s'agir d'eux !

Seuls BUY_STOP et SELL_LIMIT, ou inversement (selon le cas) BUY_LIMIT et SELL_STOP peuvent être fixés au même prix. Mais pas du tout BUY_STOP et SELL_STOP ! :)))

Vous n'avez pas très bien lu les manuels...

Je l'ai fait ! Maintenant, j'ai regardé ce que j'ai posté sur le forum. Mais "lire les manuels" n'a rien à voir avec cela - j'ai juste copié la liste des paramètres et ensuite corrigé les bons. Et j'ai oublié de corriger le prix dans Sell Stop. C'est buyPrice dans les deux ordres et sellPrice dans Sell. Si vous me l'aviez dit tout de suite, cela aurait été très utile, mais il m'a fallu beaucoup de temps pour trouver une erreur par négligence.
 
ArgentumZ:
Je le fais ! Maintenant, j'ai regardé ce que j'ai posté sur le forum. Mais "lire les manuels" n'a rien à voir avec cela - j'ai juste copié la liste des paramètres et ensuite corrigé ceux dont j'avais besoin. Et j'ai oublié de corriger le prix dans Sell Stop. C'est buyPrice dans les deux ordres et sellPrice dans Sell. Si vous me l'aviez dit tout de suite, cela aurait été très utile, mais il m'a fallu beaucoup de temps pour trouver une erreur par négligence.

Je suis désolé, je ne suis pas télépathe... Si j'avais su que c'était un oubli, je l'aurais signalé tout de suite. Je pensais que tu ne comprenais pas la théorie.

Cependant, votre inattention a été longue... :D

Raison: