Comment coder ? - page 81

 

Besoin d'aide

Bonjour à tous les codeurs,

S'il vous plaît dites-moi le code comment je peux vérifier le prix en fonction des bougies. Je veux dire comment puis-je vérifier que la bougie actuelle touche la ligne MA ou non ? et comment puis-je coder que la bougie actuelle a une ouverture, un haut, un bas et une fermeture en dessous de la ligne MA. Votre aide sera très appréciée.

Meilleures salutations....... !

 
arsenic786:
Bonjour à tous les codeurs,

S'il vous plaît dites-moi le code comment je peux vérifier le prix en fonction des bougies. Je veux dire comment puis-je vérifier que la bougie actuelle touche la ligne MA ou non ? et comment puis-je coder que la bougie actuelle a une ouverture, un haut, un bas et une fermeture en dessous de la ligne MA. Votre aide sera très appréciée.

Meilleures salutations....... !

Pour vérifier le croisement, vous devez comparer le prix de clôture précédent, la clôture actuelle et la valeur de la moyenne mobile (donc iMa, Close[1] et Close[0]).

Mais pour vérifier si la bougie est en dessous ou en dessous de la moyenne mobile, vous devez comparer les prix LOW et HIGH et la valeur iMa.

 

Indicateur de temps entre ticks

J'aimerais construire un indicateur dont l'un des éléments est le temps entre les ticks. Quelqu'un peut-il me dire s'il est possible d'intégrer cette fonction?

Merci

 

Balayage par paires/intervalle de temps

Bonjour,

J'aimerais analyser certaines paires et certains horizons temporels de ces paires pour détecter l'environnement actuel (tendance, limites de fourchette, etc.) à l'aide d'indicateurs tels que l'ADX. Cela m'aidera à sélectionner la meilleure paire/trame temporelle pour trader sur la base de mon ensemble de critères.

La solution la plus minable est d'attacher un EA de détection d'environnement à TOUS les graphiques, de lui faire écrire les résultats dans un fichier et de faire ensuite ma propre comparaison sur le fichier. Mais ce sera trop fastidieux et manuel !

Est-il possible d'attacher mon EA à un seul graphique, et de faire en sorte que cet EA obtienne les données de toutes les paires et de tous les horizons temporels en utilisant des fonctions de séries temporelles telles que iClose, iOpen, etc. et de transmettre ensuite le prix à mes indicateurs ?

Quelqu'un prévoit-il un problème avec la deuxième méthode ? Trop de traitement CPU impliqué ? Le temps nécessaire à l'exécution de la vérification sera trop long, etc. Je n'ai pas besoin d'un cadre temporel plus fin que 5 minutes.

Je suis nouveau dans l'EA et ne connais donc pas ses performances. Toute aide sera grandement appréciée. A la vôtre !

 

Attachement programmé d'un EA à un graphique

Bonjour,

Est-il possible d'attacher une EA à un graphique de manière programmatique ? Disons que je suis en train d'exécuter l'EA1 et que je veux qu'il attache l'EA2 à un autre graphique si certains critères sont remplis. Est-ce possible ?

 
meokoken:
Bonjour,

J'aimerais passer en revue certaines des paires et certains des cadres temporels de ces paires pour détecter l'environnement actuel (tendance, limites de fourchette, etc.) à l'aide d'indicateurs tels que l'ADX. Cela m'aidera à sélectionner la meilleure paire/trame temporelle pour trader sur la base de mon ensemble de critères.

La solution la plus minable est d'attacher un EA de détection d'environnement à TOUS les graphiques, de lui faire écrire les résultats dans un fichier et de faire ensuite ma propre comparaison sur le fichier. Mais ce sera trop fastidieux et manuel !

Est-il possible d'attacher mon EA à un seul graphique, et de faire en sorte que cet EA obtienne les données de toutes les paires et de tous les horizons temporels en utilisant des fonctions de séries temporelles telles que iClose, iOpen, etc. et de transmettre ensuite le prix à mes indicateurs ?

Quelqu'un prévoit-il un problème avec la deuxième méthode ? Trop de traitement CPU impliqué ? Le temps nécessaire à l'exécution de la vérification sera trop long, etc. Je n'ai pas besoin d'un cadre temporel plus fin que 5 minutes.

Je suis nouveau sur EA et ne connais donc pas ses performances. Toute aide sera grandement appréciée. A la vôtre !

Vous pouvez utiliser la fonction symbole pour cela. Par exemple, si vous souhaitez vérifier la valeur de la moyenne mobile et le prix de clôture sur 10 graphiques, par exemple 10 croisements de différents horizons temporels, mais à la barre actuelle, cela ressemblera à ceci :

double eurudMa = iMa("EURUSD", blablabla,PERIOD_X,0) ;

double eurusdClose = iClose("EURUSD",PERIOD_X) ;

et comparez ces valeurs si vous le souhaitez.

Il en va de même pour les autres indicateurs. Si vous souhaitez obtenir les cours acheteur et vendeur d'un cross donné, utilisez la fonction MarketInfo de la même manière.

Salutations

Kale

 

OsMA avec ligne de signal

Codeurs, j'ai besoin de votre aide. Quelqu'un peut-il ajouter une ligne de signal à l'indicateur OsMA ci-joint ? Merci beaucoup !

Dossiers :
osma.mq4  3 kb
 

Comment créer une version numérique de ce document ?

Bonjour à tous,

Je suis un débutant ici.

Wolfe a eu la gentillesse de créer un modèle pour le code ci-dessous, que j'ai modifié. Il fonctionne parfaitement bien, et fait ce que je veux qu'il fasse.

Mais maintenant,

Je pense créer une version numérique de ce code, similaire à l'indicateur DIGISTOCH.

Ce que je veux savoir c'est :

- Comment "effacer" ou "vider" les tampons ? Je n'arrive pas à "effacer" le lien des tampons et à en créer de nouveaux.

- Comment modifier cela pour ne PAS inclure les tampons ? Je pense que cela permettra d'économiser de la mémoire, n'est-ce pas ? J'ai essayé d'effacer le SetIndexBuffer mais lorsqu'il est chargé dans MT4, il donne l'erreur"zero divide" dans la fenêtre du terminal expert.

- Les deux étiquettes ci-dessous n'affichent qu'une seule valeur, la valeur H1. Il est censé afficher le nombre de H1 et H4. Donc cela ne fonctionne pas ici.

- Je veux essentiellement qu'il affiche le nombre de ratios de différents cadres temporels (de M1 à MN1) dans un seul écran, tout comme l'indicateur DIGIStoch.

Toute aide serait appréciée.

Salutations,

//+------------------------------------------------------------------+

//| 2MA_RSI.mq4 |

//+------------------------------------------------------------------+

#property copyright "Wolfe"

#property link "xxxxwolfe@gmail.com"

#property indicator_separate_window

#property indicator_level1 100

#property indicator_level2 80

#property indicator_level3 50

#property indicator_level4 20

#property indicator_buffers 4

#property indicator_color1 Black //RSI

#property indicator_color2 Blue //MA1

#property indicator_color3 Red //MA2

#property indicator_color4 Green //Ratio

int RSI_Timeframe=0;//0=current chart,1=m1,5=m5,15=m15,30=m30,60=h1,240=h4,etc...

int RSI_Period = 10;

int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4

int MA1_Period = 10;

int MA1_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

int MA2_Period = 30;

int MA2_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

double RSI[],MA1_Array[],MA2_Array[],MR_Ratio[];

double _RSI[],_MA1_Array[],_MA2_Array[],_MR_Ratio[];

string ShortName="MoR";

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators setting

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1); //RSI

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); //EMA10

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1); //EMA30

SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2); //Ratio

SetIndexBuffer(0,RSI);

SetIndexLabel(0,"RSI");

SetIndexBuffer(1,MA1_Array);

SetIndexLabel(1,"MA1");

SetIndexBuffer(2,MA2_Array);

SetIndexLabel(2,"MA2");

SetIndexBuffer(3,MR_Ratio);

SetIndexLabel(3,"Ratio");

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

IndicatorShortName(ShortName);

return(0);

}

int start()

{

int i,limit = Bars - IndicatorCounted() - 1;

for(i=limit; i>=0; i--){

RSI= iRSI(NULL,60,RSI_Period,RSI_Applied_Price,i);

}

for(i=limit; i>=0; i--){

MA1_Array = iMAOnArray(RSI,0,MA1_Period,0,MA1_Method,i);

MA2_Array = iMAOnArray(RSI,0,MA2_Period,0,MA2_Method,i);

}

for (i=0; i<=limit; i++){

MR_Ratio = MA1_Array / MA2_Array * 100;

}

double tmp1=MR_Ratio[0];

SetText("Label1",DoubleToStr(tmp1,1),Black,55,20);

//+------------------------------------------------------------------+

//| Trying to set new buffers |

//+------------------------------------------------------------------+

IndicatorBuffers(4);

SetIndexBuffer(0,_RSI);

SetIndexBuffer(1,_MA1_Array);

SetIndexBuffer(2,_MA2_Array);

SetIndexBuffer(3,_MR_Ratio);

for(i=limit; i>=0; i--){

_RSI= iRSI(NULL,240,RSI_Period,RSI_Applied_Price,i);

}

for(i=limit; i>=0; i--){

_MA1_Array = iMAOnArray(_RSI,0,MA1_Period,0,MA1_Method,i);

_MA2_Array = iMAOnArray(_RSI,0,MA2_Period,0,MA2_Method,i);

}

for (i=0; i<=limit; i++){

_MR_Ratio = _MA1_Array / _MA2_Array * 100;

}

double tmp2=_MR_Ratio[0];

SetText("Label2",DoubleToStr(tmp2,1),Black,95,20);

//----

return(0);

}

void SetText(string ObjName,string ObjText,color clr,int xpos,int ypos){

ObjectCreate(ObjName,OBJ_LABEL,WindowFind(ShortName),0,0);

ObjectSetText(ObjName,ObjText,9,"Arial Bold",clr);

ObjectSet(ObjName,OBJPROP_CORNER,0);

ObjectSet(ObjName,OBJPROP_XDISTANCE,xpos);

ObjectSet(ObjName,OBJPROP_YDISTANCE,ypos);

}

 
SolomonZhang:
Salut les gars,

Je suis un débutant ici.

Wolfe a eu la gentillesse de créer un modèle pour le code ci-dessous, que j'ai modifié. Il fonctionne parfaitement bien, et fait ce que je veux qu'il fasse.

Mais maintenant,

Je pense créer une version numérique de ce code, similaire à l'indicateur DIGISTOCH.

Ce que je veux savoir c'est :

- Comment "effacer" ou "vider" les tampons ? Je n'arrive pas à "effacer" le lien des tampons et à en créer de nouveaux.

- Comment modifier cela pour ne PAS inclure les tampons ? Je pense que cela permettra d'économiser de la mémoire, n'est-ce pas ? J'ai essayé d'effacer le SetIndexBuffer mais lorsqu'il est chargé dans MT4, il donne l'erreur "zero divide" dans la fenêtre du terminal expert.

- Les deux étiquettes ci-dessous n'affichent qu'une seule valeur, la valeur H1. Il est censé afficher le nombre de H1 et H4. Donc cela ne fonctionne pas ici.

- Je veux essentiellement qu'il affiche le nombre de ratios de différents cadres temporels (de M1 à MN1) dans un seul écran, tout comme l'indicateur DIGIStoch.

Toute aide serait appréciée.

Merci,

Définissez simplement une valeur vide pour les tampons après l'init pour chaque boucle.

Pour la division par zéro, il suffit de créer une condition "if" avant le calcul.

 

Code de signal multi temps

Salut les programmeurs

Je suis un débutant qui apprend à programmer et j'ai créé un EA de base. J'apprécierais que quelqu'un ait la gentillesse de m'aider avec ce qui suit :

L'idée est de rechercher un signal de TF supérieur et d'attendre un retracement dans le TF inférieur, puis d'exécuter un ordre tel que :

si 4 HR génère un signal sur le suivant :

if(MacdCurrentSignalCurrent)MacdPrevious<SignalPrevious)=LongSignalActivated

comment maintenir le signal ci-dessus et attendre le retracement de 1 HR (ou tout autre cadre temporel) comme suit

if (MacdCurrentSignalCurrent && MacdPrevious<SignalPrevious) Order=SignalBuy

OU

Toute autre stratégie..

J'ai déjà tous les indicateurs définis dans les variables pour les différents cadres temporels...

Je peux envoyer EA si quelqu'un est prêt à donner un coup de main ... aussi si un programmeur expérimenté est prêt à travailler avec moi ma stratégie, je suis prêt à compenser (malheureusement ne peut pas se permettre de payer beaucoup) ...

J'apprécie toute aide

Mo Syed

e-mail : moi.syed@gmail.com

Raison: