Comment coder ? - page 270

 

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

Dossiers :
 
mezarashii:
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é.

Dossiers :
 

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 .....

 
novalight:
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