Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
WHRoeder, Ce code a l'air si simple mais je n'arrive pas à comprendre comment il fonctionne, l'instruction if ne sera-t-elle pas toujours vraie si elle rend time0 égal à time[0] chaque fois que time0 est égal à time[0] ? Je ne dis pas que cela ne fonctionne pas mais je ne comprends pas comment cela fonctionne structuré comme ça.
1er tick : Time0 n'est pas égal à Time[0 ] donc le retour n'est pas exécuté,Time0 est mis à Time[0 ] (heure de début de la barre actuelle) le reste de la fonction de démarrage est exécuté.
2ème ticks et suivants : si Time0 est toujours égal au temps de début de la barre actuelle, nous sommes toujours sur la même barre, return est exécuté et la fonction de démarrage est quittée. Si Time0 n'est pas égal au temps de début de la barre courante, alors nous sommes sur une nouvelle barre, return n'est pas exécuté, Time0 est mis à Time[0] (temps de début de la nouvelle barre courante) et le reste de la fonction de démarrage est exécuté.
Comment faire pour créer un compteur où si un ordre en attente est placé et qu'il n'est pas déclenché dans un nombre x de barres, il doit être annulé ? Tout ce que je peux faire est de mettre un compteur pour compter chaque fois qu'une nouvelle barre se forme et si le nombre de barres comptées == les barres autorisées spécifiées avant que les ordres en attente soient annulés. Le compteur de barres est remis à zéro chaque fois qu'un nouvel ordre en attente est ouvert ? Qu'en pensez-vous ?
Je créerais une fonction qui vérifie les ordres en attente, elle regarde quand chaque ordre a été ouvert, vérifie combien de temps cela fait et si cela dépasse la limite de temps, elle ferme l'ordre.
Je veux faire une fonction qui scanne eurusd, usdchf, gbpusd, usdjpy sur 1hr tf. Elle remonte jusqu'à la dernière bougie de 06:00 gmt et enregistre l'ouverture, remonte encore 24 barres jusqu'à la bougie précédente de 06:00 gmt et enregistre la fourchette 6gmt - 6gmt pour chaque paire. Ensuite, il compare la plage 6gmt - 6gmt de toutes les paires et renvoie celle qui est la plus élevée. Est-il possible pour une application de faire cela en étant attachée à un seul graphique temporel ?
Avec tous les problèmes comme celui-ci, avant de penser au code, vous devez d'abord trouver une solution... IMO. Créez un organigramme ou écrivez un pseudo-code . . obtenir une solution qui a du sens d'abord . . puis regarder le code.
Pour répondre à votre dernière question, oui, il est possible de le faire, par exemple, pour obtenir la valeur d'ouverture pour une bougie particulière d'une paire différente de celle de l'EA, j'utiliserais ....
une fois que vous avez vos valeurs pour la rage des 4 paires vous pouvez facilement déterminer la plus grande en utilisant quelque chose comme ceci :
... ou vous pouvez mettre les valeurs dans un tableau et utiliser ArraySort ... il y a généralement plus d'une façon de faire quelque chose, d'abord vous devez avoir un plan de la façon dont vous allez résoudre votre problème.
EDIT : gardez à l'esprit que certains de ces éléments ne fonctionneront pas correctement avec le testeur de stratégie.
Bon, c'est ma propre tentative d'écrire un code qui va scanner le graphique eurusd 1hr jusqu'à ce qu'il trouve la dernière barre de 06:00, enregistre son ouverture, retourne 24 barres en arrière pour enregistrer l'ouverture de cette barre (début du jour 06:00) et obtient la plage d'ouverture-ouverture de ces 2 barres sélectionnées.
Surprise, surprise, cela ne fonctionne pas. Lol ------> http://myfacewhen.com/307/
Dites-moi ce que j'ai f*'d up. Ou est-ce que je m'y suis pris de la mauvaise façon ? J'ai essayé hehe
J'ai repéré un problème... 24 heures avant b est b+24 ... les barres comptent à partir de la barre actuelle ( 0 ) vers la gauche.
Bravo pour l'ajout des commentaires, une très bonne pratique à adopter... :-)
J'ai repéré un problème... 24 heures avant b est b+24 ... les barres comptent à partir de la barre actuelle ( 0 ) vers la gauche.
Bravo pour l'ajout des commentaires, une très bonne pratique à adopter... :-)
Wow, bien vu, ça m'aurait pris un moment pour comprendre ça, lol. Je n'arrive pas à croire que j'ai réussi à faire tout ça - cette erreur stupide. J'ai l'impression d'arriver à quelque chose maintenant. Oui, j'ai ajouté les commentaires pour m'aider à garder une trace de ce que je fais et pour que ce soit super facile pour vous de voir ce que j'essaie de faire. Maintenant, je vais faire en sorte qu'il compare les 4 paires et qu'il sorte celle qui a la plus grande valeur. Merci RaptorUK
Bon, j'ai transformé toutes les variables en tableaux et j'ai effectué les vérifications pour chacune d'entre elles. Maintenant, cela ne fonctionne plus. N'est-il pas possible d'avoir plusieurs boucles for comme celle-ci ?
Oui, vous pouvez, sans problème, mais n'utilisez pas un tableau dans l'index de la boucle for, vous pouvez utiliser b à chaque fois si vous le souhaitez. Il est remis à 0 pour chacune des boucles for, donc le réutiliser n'est pas un problème. Pourquoi avez-vous besoin d'utiliser un tableau ? N'est-ce pas seulement pour les valeurs de l'intervalle ?