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
Tout dépend de la logique de l'indicateur personnalisé. En principe, il peut recalculer ses valeurs une fois par jour, en sautant tous les autres ticks. Selon la volonté de l'auteur, pour ainsi dire.
En fait, certaines personnes essaient d'utiliser cette approche monstre : créer une copie de l'indicateur via iCustom, copier les données nécessaires, supprimer la copie de l'indicateur. La procédure est répétée si nécessaire.
Il y a aussi la fonction OnTimer(), je n'ai pas travaillé avec elle moi-même, mais peut-être pouvez-vous l'adapter à votre tâche.
Merci. C'est ce que je pensais. La fonction OnTimer n'est pas adaptée.
Il y a une situation où l'indicateur est sur M5 mais il est appelé une fois par heure, par exemple. Il s'avère que l'indicateur sera calculé dans l'Expert Advisor au ralenti toutes les 5 minutes pour le plaisir de l'appeler une fois par heure. C'est pourquoi je me demande s'il est possible de mettre en pause le recalcul de l'indicateur.
Il y a une situation où l'indicateur est sur M5, mais il est appelé une fois par heure par exemple. Il s'avère que l'indicateur sera calculé dans l'Expert Advisor de manière inactive toutes les 5 minutes pour le plaisir de l'appeler une fois par heure.
Puis-je réécrire l'indicateur de manière à ce qu'il calcule également par heure ?
Les échanges se font sur la M5. On ne sait pas quand l'indicateur sera appelé. Cela peut être une fois toutes les deux heures, ou trois fois en une heure. L'indicateur est utilisé pour confirmer la décision de négocier.
Bonjour, Pourriez-vous me dire,
1) Que faire avec des erreurs telles queTRADE_RETCODE_LOCKED,TRADE_RETCODE_FROZENet dans quel cas la demande est bloquée ou la position/ordre est gelée ?
2)Je me demande également ce qu'il faut faire avecTRADE_RETCODE_INVALID_FILLet dans quel cas cela se produit ?
Bonjour, Pourriez-vous me dire,
1) Que faire avec des erreurs telles queTRADE_RETCODE_LOCKED,TRADE_RETCODE_FROZENet dans quel cas la demande est bloquée ou la position/ordre est gelée ?
2)Je me demande également ce qu'il faut faire avec TRADE_RETCODE_INVALID_FILLet dans quel cas cela se produit ?
1) Vérifiez la recherche dans le forum. On en a discuté il y a environ un an.
2) Regardez dans la référence ENUM_ORDER_TYPE_FILLING . Probablement une inadéquation de la demande de transaction pour le "type d'ordre d'exécution" spécifié par rapport au mode d'exécution et entraînera le code de retour spécifié.
Par exemple ORDER_FILLING_FOK et SYMBOL_TRADE_EXECUTION_MARKET.
Je soupçonne que si l'indicateur est activé par iCustom, il est calculé à chaque tick. Et il ne dépend pas des appels qui lui sont adressés par le biais du CopyBuffer. Est-ce correct ?
Si c'est correct, est-il possible de désactiver le calcul de l'indicateur et de l'activer uniquement avant d'appeler le CopyBuffer ?
Si j'ai bien compris, vous pouvez essayer de limiter les calculs aux prochains ticks en suivant l'exemple de l'aide iFractals (voir les conditions multiples dans OnCalculate).
Peut-être, vous pouvez aussi marquer dans OnCalculate l'exécution initiale des calculs de l'indicateur pour toutes les barres nécessaires et vérifier l'heure du serveur du terminal, et après cela, remettre le drapeau à faux, permettant ainsi le recalcul, et le mettre à nouveau à vrai... et ainsi de suite.
Ou encore : écrire une fonction externe avec des calculs, l'appeler dans OnInit, où elle sera exécutée une fois au premier démarrage de l'indicateur (ainsi que lors du changement de TFs et etc., qui se produit à l'initiative de l'utilisateur), et ensuite appeler la même fonction dans OnCalculate de la deuxième manière (au moment spécifié sur le serveur et par flagging).
Mais la première méthode est bonne, non seulement elle ne charge pas le processeur avec des recalculs complets (menant souvent à aucun nouveau résultat) à chaque tick, mais elle ne fera même pas de recalculs complets à un intervalle de temps donné, et ne calculera que les barres les plus récentes (si à chaque tick, alors une nouvelle, et si une fois t, alors plusieurs accumulées pendant ce temps)... Bien que cette version soit meilleure à vérifier personnellement, je peux me tromper.... En outre, tout dépend de l'objectif spécifique de l'indicateur. S'il dépend d'une grande partie, voire de l'ensemble de l'historique du marché, il est impossible de se passer des recalculs de l'ensemble de l'historique.
Je n'ai pas compris l'humour de la blague (écrire un indicateur, bien que cela ne fasse aucune différence) :
Compile sans erreurs ni avertissements.
Compilé avec1 erreur(s), 0 avertissement(s): 'elements' - valeur d'index invalide.
Qu'est-ce qui peut dépasser le bon sens évident ici ?
Qu'est-ce qui peut être au-delà du bon sens évident ici ?
le nombre d'éléments du tableau est spécifié par une constante
Si le nombre d'éléments n'est pas connu au préalable, utilisez ArrayResize pour définir la taille à l'aide de variables.
C'est la base du C++.
Donc, soit