[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 647
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
droite.
J'ai dessiné le code ci-dessous. Quelqu'un peut-il me dire quel est le problème - le fragment que j'ai mis en gras ?
Le problème est que l'indicateur dessine l'historique en arrière immédiatement et ne le réinitialise pas après avoir modifié les paramètres.
#propriété indicator_separate_window
#property indicator_buffers 1
#propriété indicator_color1 LimeGreen
double AUD ;
extern int PerAvr=5,Delta=1 ;
double Idx[] ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
//---- indicateurs
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2) ;
SetIndexBuffer(0,Idx) ;
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| Fonction de désinitialisation de l'indicateur de dépôt |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| Fonction d'itération de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted() ;
si(counted_bars<0) return(-1) ;
si(counted_bars>0) counted_bars-- ;
int limit=Bars-counted_bars ;
for(int i=limit ; i>=0 ; i--)
{
AUD=(iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i)-iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+De lta)*100/iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+De lta) ;
//si (Curency =="AUDUSD")
Idx[i] = AUD ;
}
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
Bonjour, membres du forum. J'ai trouvé un code intéressant pour construire une ligne de tendance. J'ai décidé de jouer un peu avec.
Pour une raison quelconque, une anecdote m'est revenue en mémoire : dans une famille de programmeurs, un fils aborde son père et lui demande pourquoi le soleil se lève à l'est et se couche à l'ouest.
Papa, sans quitter son ordinateur des yeux, est-ce que le soleil se lève vraiment à l'est ? -Oui. Et il se couche à l'ouest ? - Oui. Alors, quoi, tous les jours ? - Oui. Eh bien, ne touchez à rien si ça marche.
Pour une raison quelconque, une anecdote m'est revenue en mémoire : dans une famille de programmeurs, un fils aborde son père et lui demande pourquoi le soleil se lève à l'est et se couche à l'ouest.
Papa, sans quitter son ordinateur des yeux, est-ce que le soleil se lève vraiment à l'est ? -Oui. Et il se couche à l'ouest ? - Oui. Alors, quoi, tous les jours ? - Ouais. Eh bien, vous n'avez pas à toucher quoi que ce soit si ça marche.
Bonjour utilisateurs du forum, J'ai trouvé un code intéressant pour dessiner la ligne de tendance.
Vous savez ce qui est drôle - vous avez changé le code selon vos principes et vous voulez une brigade d'érudits pour trouver les défauts
et vous essayez juste de sortir les informations que vous voulez obtenir dans le commentaire ? il est possible que tout fonctionne mais que vous obteniez les données qui ne sont pas affichées au prix actuel mais quelque part en bas du graphique - je pense que c'est le separatetwinds
SZS bonne chance
Vous savez ce qui est drôle - vous avez changé le code selon vos principes et vous voulez une brigade d'érudits pour trouver les défauts
et vous essayez juste de sortir les informations que vous voulez obtenir dans le commentaire ? il est possible que tout fonctionne mais que vous obteniez les données qui ne sont pas affichées au prix actuel mais quelque part en bas du graphique - je pense que c'est le separatetwinds
SZS bonne chance
Je suis au courant du séparateur - je sais, il est dans une fenêtre séparée, il ne s'agit pas de cela. Je ne vois pas ce qui va se passer avec ce code - apparemment cette méthode de calcul ne fonctionnera pas pour les intérêts((.
Immédiatement, pour une raison quelconque, je me souviens d'une blague : le fils d'un programmeur vient voir son père et lui demande pourquoi le soleil se lève à l'est et se couche à l'ouest ?
Papa, sans quitter son ordinateur des yeux, est-ce que le soleil se lève vraiment à l'est ? -Oui. Et il se couche à l'ouest ? - Oui. Alors, quoi, tous les jours ? - Ouais. Eh bien, vous n'avez pas à toucher quoi que ce soit si ça marche.
Merci. Je suppose que la seule différence est que l'EA est lancé à chaque fois qu'un nouveau tick arrive, alors que le script doit être lancé en boucle infinie pour le maintenir en fonctionnement ?
Pas nécessairement. Tout dépend de l'objectif du scénario. Si le but du scénario est d'être exécuté une seule fois (ce qui est la grande majorité), il n'est pas nécessaire d'inventer des boucles sans fin. La nécessité de calculer la somme d'argent qui sera utilisée sur le marché lors de l'ouverture d'une position avec un lot prédéterminé peut servir d'exemple d'un tel script ponctuel. Comme le prix du point au lot minimum est différent pour les différents instruments, il est plus facile d'ouvrir l'instrument requis, d'y appliquer le script, de saisir le lot prévu dans la fenêtre des paramètres et de voir combien d'argent sera bloqué si la transaction est ouverte.
Ce n'est qu'un exemple. L'objectif des scripts peut être différent.
Je suis conscient de la séparation, c'est dans une fenêtre séparée, il ne s'agit pas de cela. Je ne vois pas comment ce code va fonctionner - apparemment cette méthode de calcul du pourcentage ne fonctionne pas((.
Immédiatement, pour une raison quelconque, je me souviens d'une blague : un fils dans une famille de programmeur vient voir son père et lui demande pourquoi le soleil se lève à l'est et se couche à l'ouest ?
Papa, sans quitter son ordinateur des yeux, est-ce que le soleil se lève vraiment à l'est ? -Oui. Et il se couche à l'ouest ? - Oui. Alors, quoi, tous les jours ? - Ouais. Eh bien, vous n'avez pas à toucher quoi que ce soit si ça marche.
C'est un indicateur assez simple. Je ne vois pas en quoi les pourcentages sont meilleurs que les pips, mais peu importe.
Vous avez fait quelques erreurs, cependant :)
1.
Pour calculer correctement le pourcentage, vous devez ajouter des parenthèses.
2.
Le problème est que l'indicateur dessine l'historique en arrière immédiatement et ne le réinitialise pas après avoir modifié les paramètres.
Le plus intéressant, c'est qu'il a éveillé l'intérêt des sportifs et qu'il est resté pendant une demi-heure sur votre indicateur.
Pourquoi l'histoire n'a pas été calculée ?
La réponse est que vous avez ajouté une opération de division.
Le fait que la fonction iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE ,i+Delta) renvoie 0 au tout début de l'historique n'a pas été pris en compte. Et vous avez été "expulsé" avec l'erreur 4013 (ERR_ZERO_DIVIDE) lorsque vous avez essayé de diviser par 0, vérifiez le journal.
Nous pouvons ajouter une vérification supplémentaire dans la boucle FOR.
Et tout ira bien. Voici ma variante.
#property indicator_color1 White
Est-il possible de modifier ce paramètre de manière programmatique dans le module start() ?
Est-il possible de changer la couleur du tampon au fur et à mesure que le programme progresse ?
#property indicator_color1 White
Est-il possible de modifier ce paramètre de manière programmatique dans le module start() ?
Est-il possible de changer la couleur du tampon au fur et à mesure que le programme progresse ?
Je ne pense pas. Et pourquoi le serait-il ?