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
IndicatorCounted et maintien de la synchronisation du tampon des indicateurs.
Bonjour,
Ma question porte sur le glissement du tampon dans un indicateur personnalisé. J'ai demandé dans un autre forum mais sans succès.
Par exemple
Code :
#define MAX_LOOK_BACK 5
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_color1 DodgerBlue
#property indicator_separate_window
double rsiBuf[];
int start()
{
int limit;
int counted_bars = IndicatorCounted();
//---- check for possible errors
if(counted_bars < 0)
return(-1);
//---- the last counted bar will be recounted
if(counted_bars > 0)
counted_bars--;
limit=Bars-counted_bars;
//---- main loop
Print("indicator limit: ", limit);
if(MAX_LOOK_BACK < limit)
limit = MAX_LOOK_BACK;
//Calculate from right to left
for(int i = 0; i < limit; i++)
{
rsiBuf = iRSI(Symbol(), NULL, 14, PRICE_CLOSE, i);
}
}Pendant son fonctionnement, l'indicateur calcule les dernières valeurs RSI des 5 dernières barres. (J'ai mis une valeur maximale MAXLOOK_BACK pour faciliter les tests) Si, par exemple, dans une situation où la limite==2 (et la limite==2 se produit souvent dans mes tests lors de l'appel via iCustom dans un EA), alors il calculera les valeurs de la barre 0 et de la barre 1 et les écrira dans RSI[0] et RSI[1] respectivement et ne touchera pas au reste du tampon. Tous les indicateurs personnalisés que j'ai vus sont écrits de cette façon. Ne devrions-nous pas faire glisser le tampon si la limite < MAX_LOOK_BACK ? car cela écrase le RSI[0] et le RSI[1] mais les valeurs précédentes de ces éléments devraient être dans le RSI[2] et le RSI[3], ai-je raison ?
Pour visualiser :
Tick=0 AND limit = 5 ==> RSI[0] = 33.33 RSI[1] =44,44 RSI[2]=55,55 RSI[3]=66,66 RSI[4] = 77.77
Maintenant, supposons que les 2 dernières valeurs RSI sont 88,88 et 99,99 et le tableau sera le suivant :
Tick=1 AND limit = 2 ==> RSI[0] = 88,88 RSI[1] =99.99 RSI[2]=55,55 RSI[3]=66,66 RSI[4] = 77.77
MAIS cela ne devrait-il pas être ainsi :
Tick=1 AND limit = 2 ==> RSI[0] = 88,88 RSI[1] =99.99 RSI[2]=33,33 RSI[3]=44,44 RSI[4] = 55.55
Lorsque 2 nouvelles barres apparaissent, ne devrions-nous pas déplacer les valeurs des barres précédentes de 2 ? previousPourquoi tous les indicateurs s'écrivent de cette façon et qu'il n'y a pas de déplacement des valeurs. Et pourquoi ils dessinent correctement les lignes de tendance.
Je travaille sur un EA qui utilise la bande de Keltner pour sortir d'une position (à la fois pour les profits et les pertes), mais chaque fois que je fais une moyenne avec 2 lots, l'EA ignore la première entrée. Y a-t-il une solution à ce problème, en dehors de l'entrée avec un nouveau graphique ? Merci
Je travaille sur un EA qui utilise la bande de Keltner pour sortir d'une position (à la fois pour les profits et les pertes). Cependant, chaque fois que je fais la moyenne avec 2 lots, l'EA ignore la première entrée. Y a-t-il une solution à ce problème, en dehors de l'entrée avec un nouveau graphique ? Merci
Postez l'EA ici.
Le codeur ne m'a pas encore donné le code source, j'espère que cela sera utile en soi. Tout commentaire est grandement apprécié.
Suppression conditionnelle en attente
Je suis à la recherche d'un script ou d'un code de suppression conditionnelle en attente.
En gros, je veux être capable d'exécuter :
IF Ask est 200MA H1
En gardant tous les ordres en attente ouverts/vivants en dessous de la 200MA.
Une idée ?
Obtenir les prix ouverts hebdomadaires pour 10 paires simultanément
Bonjour, je suis nouveau sur MT4. J'essaie d'automatiser ma technique en écrivant un script pour accéder aux prix hebdomadaires ouverts de 10 paires simultanément. Je ne peux pas utiliser un seul EA ou script pour accéder à un graphique hebdomadaire un par un. Quelqu'un peut-il me conseiller sur la meilleure façon de procéder ? Merci beaucoup .....
Bonjour, je suis nouveau sur MT4. J'essaie d'automatiser ma technique en écrivant un script pour accéder aux prix ouverts hebdomadaires de 10 paires simultanément. Je ne peux pas utiliser un seul EA ou script pour accéder à un graphique hebdomadaire un par un. Quelqu'un peut-il me conseiller sur la meilleure façon de procéder ? Merci beaucoup .....
Bonjour,
vous devez combiner la fonction iOpen.
Par exemple, disons que vous voulez afficher dans le commentaire les prix ouverts de gbpusd, eurusd et usdjpy.
alors l'extrait de code ressemblerait à ceci :
double openPair1 = iOpen("EURUSD",PERIOD_W1,0) ;
double openPair2 = iOpen("GBPUSD",PERIOD_W1,0) ;
double openPair3 = iOpen("USDJPY",PERIOD_W1,0) ;
Comment("EURUSD hebdomadaire ouvert : "+openPair1+\nGBPUSD ouvert en semaine : "+openPair1+ "\nUSDJPY ouverture hebdomadaire : "+openPair1) ;
Je préfère avoir les paires en entrée ainsi que 2 entrées supplémentaires.
Les entrées préfixe et suffixe permettent d'éviter les problèmes lorsque les courtiers ajoutent quelque chose au nom de base de la paire.
extern string pair_preffix = "" ;
extern string pair_suffix = "" ; // entrez m pour les comptes mini IBFX
extern string paire1 = "EURUSD ;
extern string paire2 = "GBPUSD" ;
chaîne externe paire3 = "USDJPY" ;
string myPair1, myPair2, myPair3 ;
int init()
{
myPair1 = pair_prefix + pair1 + pair_suffix ;
myPair2 = pair_prefix + pair2 + pair_suffix ;
maPaire3 = préfixe de la paire + paire3 + suffixe de la paire ;
retour(0) ;
}
int start()
{
double openPair1 = iOpen(myPair1, PERIOD_W1,0) ;
double openPair2 = iOpen(myPair2, PERIOD_W1,0) ;
double openPair3 = iOpen(myPair3, PERIOD_W1,0) ;
Comment(pair1 + "weekly open : "+openPair1+"\n" + pair2 + " weekly open : "+openPair2+"\n" + pair3 " " weekly open : "+openPair3) ;
}
Bien sûr, j'utiliserais des tableaux pour cela lorsque j'utilise 10 paires.
Robert Hill alias MrPip