Aide au codage - page 135

 

merci mladen .....

mais ne fonctionne pas ....

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

//| text.mq4 |

//| Copyright 2013, MetaQuotes Software Corp. |

//| http://www.metaquotes.net |

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

#property copyright "Copyright 2013, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net"

#property indicator_chart_window

extern int timeframe1 = PERIOD_H1;

extern int timeframe2 = PERIOD_D1;

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

//| Custom indicator initialization function |

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

int init()

{

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int counted_bars=IndicatorCounted();

//----

string name1="";

string name2="";

color color1;

color color2;

double H1 = iClose(NULL,timeframe1,0);

double D1H = iHigh(NULL,timeframe2,1);

double D1L = iLow(NULL,timeframe2,1);

if(H1>D1H)

{

name1 = "up"; color1 = Blue;

}

if(H1<D1L)

{

name2 = "down"; color2 = Red;

}

ObjectCreate("signal",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal",OBJPROP_XDISTANCE,3);

ObjectSet("signal",OBJPROP_YDISTANCE,12);

ObjectSetText("signal",name1,12,"Tahoma",color1);

ObjectCreate("signal2",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal2",OBJPROP_XDISTANCE,59);

ObjectSet("signal2",OBJPROP_YDISTANCE,12);

ObjectSetText("signal2",name2,12,"Tahoma",color2);

//----

return(0);

}

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

Dossiers :
1223123.png  22 kb
 
rizkyd:

merci mladen .....

mais ne fonctionne pas ....

Je pense que cette paix de code pourrait vous intéresser.

Au lieu d'utiliser des objets graphiques, j'ai utilisé des tampons normaux.

Cet indicateur compare TOUJOURS H1 et D1.

Donc, il ne marquera pas les prix au-dessus de l'horizon temporel H1, mais il

mais il marquera des prix égaux ou inférieurs à ceux de H1. Parfois

Parfois, il semble bizarre, sur les délais inférieurs (comme marquer les barres

trop tôt), mais si vous regardez de plus près le décalage horaire, alors c'est

bien.

dhl_e.mq4

Dossiers :
dhl_e.mq4  3 kb
gbpusdh1.png  30 kb
 
Kalenzo:
Je pense que cette paix du code pourrait vous intéresser.

Au lieu d'utiliser des objets graphiques, j'ai utilisé des tampons normaux.

Cet indicateur compare TOUJOURS H1 et D1.

Donc, il ne marquera pas les prix au-dessus de l'horizon temporel H1, mais il

mais il marquera des prix égaux ou inférieurs à ceux de H1. Parfois

Parfois, il semble bizarre, sur les délais inférieurs (comme le marquage de barres

trop tôt), mais si vous regardez de plus près le décalage horaire, alors c'est

bien.

dhl_e.mq4

Merci Kalenzo ... Je vais essayer de le faire.

 
rizkyd:

merci mladen .....

mais ne fonctionne pas ....

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

//| text.mq4 |

//| Copyright 2013, MetaQuotes Software Corp. |

//| http://www.metaquotes.net |

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

#property copyright "Copyright 2013, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net"

#property indicator_chart_window

extern int timeframe1 = PERIOD_H1;

extern int timeframe2 = PERIOD_D1;

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

//| Custom indicator initialization function |

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

int init()

{

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int counted_bars=IndicatorCounted();

//----

string name1="";

string name2="";

color color1;

color color2;

double H1 = iClose(NULL,timeframe1,0);

double D1H = iHigh(NULL,timeframe2,1);

double D1L = iLow(NULL,timeframe2,1);

if(H1>D1H)

{

name1 = "up"; color1 = Blue;

}

if(H1<D1L)

{

name2 = "down"; color2 = Red;

}

ObjectCreate("signal",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal",OBJPROP_XDISTANCE,3);

ObjectSet("signal",OBJPROP_YDISTANCE,12);

ObjectSetText("signal",name1,12,"Tahoma",color1);

ObjectCreate("signal2",OBJ_LABEL,0,0,0,0,0);

ObjectSet("signal2",OBJPROP_XDISTANCE,59);

ObjectSet("signal2",OBJPROP_YDISTANCE,12);

ObjectSetText("signal2",name2,12,"Tahoma",color2);

//----

return(0);

}

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

Vous comparez deux cadres temporels différents

Si la barre actuelle du cadre temporel 1 est supérieure ou inférieure à la première barre fermée du cadre temporel 2, alors le message va s'afficher. Si la barre actuelle du cadre temporel 1 n'est pas plus haute ou plus basse que le haut et le bas précédents du cadre temporel 2, alors rien ne sera affiché. D'après le code que vous avez posté, il semble que c'était votre intention (dans mes tests, cela a bien fonctionné).

___________________

PS : le texte ne s'affichera pas sur les données historiques (données précédentes). Si vous voulez qu'il s'affiche sur les données historiques, tout doit être écrit de manière complètement différente comme un indicateur classique.

 

EA pour placer automatiquement le stoploss et le Take profit en fonction de la ligne Fibo

Bonjour

Je veux créer un EA qui peut placer un stop loss et un take profit pour chaque ordre !

L'EA doit voir le prix de vente ou le prix d'achat et par exemple pour le prix d'achat :

si le prix de l'ordre d'ouverture se trouve entre les lignes 38.2 et 50 l'EA placera automatiquement le stop loss sur une ligne avant la fibo=23.6 et placera le take profit sur une ligne après la fibo=61.8.

avec cette procédure EA fait pour la position de vente, par exemple si la position est Sell stop@ X prix et 38.2 fibo<x<50 fibo ! EA place automatiquement le take profit sur le fibo 23.6 et le stop loss sur la ligne du fibo 61.8 !!!

quelqu'un peut m'aider avec le code de cet EA ou me dire un code similaire à cet EA ! !!

****note :

la ligne de fibo est automatiquement calculée par le bas et le haut du dernier jour !!!!

Tnx

 
mladen:
Vous comparez deux cadres temporels différents

Si la barre actuelle du cadre temporel 1 est supérieure ou inférieure à la première barre fermée du cadre temporel 2, alors le message va s'afficher. Si la barre actuelle du cadre temporel 1 n'est pas supérieure ou inférieure au précédent haut et bas du cadre temporel 2, alors rien ne sera affiché. D'après le code que vous avez posté, il semble que c'était votre intention (dans mes tests, cela a bien fonctionné).

___________________

PS : il n'affichera pas de texte sur les données historiques (données précédentes). Si vous voulez qu'il affiche les données historiques, tout doit être écrit de manière complètement différente de celle d'un indicateur classique.

merci pour vous mladen ... si vous avez le temps, faites-le pour afficher les données historiques ....

PS : cet indicateur peut m'aider à montrer la tendance à la hausse ou à la baisse.

 
rizkyd:
merci pour vous mladen ... si vous avez le temps s'il vous plaît faire pour montrer les données historiques .... PS : cet indi peut m'aider à montrer la tendance à la hausse ou à la baisse.

rizkyd

Vous avez essayé d'utiliser le canal donchien multi time frame pour cela (par exemple pour mettre le time frame du canal donchien à daily et la période à 1 et vous obtiendrez presque exactement la même chose que ce que vous recherchez).

 

Un nouvel arrivant veut des conseils/de l'aide

Bonjour à tous,

Je suis nouveau sur le forex, et pour le moment je m'intéresse aux indicateurs et aux EAs. J'ai une certaine compréhension du code mq4, mais ce n'est pas encore suffisant pour obtenir ce que je veux. J'aimerais donc demander des conseils/de l'aide à des experts ou à des personnes qui connaissent suffisamment le code mq4.

Ma tâche actuelle est d'ajouter un indicateur personnalisé à l'EA, et d'ailleurs j'ai obtenu un modèle d'EA agréable (je pense) que je vais partager avec vous.

Ok donc, mes signaux finaux d'achat/vente de l'indicateur sont les suivants : g_ibuf_BUY[1] et g_ibuf_SELL[1].

Cette partie du code est utilisée lorsque l'indicateur joue un son, une pop up ou envoie un email.

void Alert_PlaySound_SendMail() {

string ls_ms = "MS PRO";

if (g_ibuf_BUY[1] == Low[1] - Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": BUY | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessBuySound(Buy_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - BUY signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

if (g_ibuf_SELL[1] == High[1] + Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": SELL | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessSellSound(Sell_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - SELL signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

}

La prochaine étape serait d'ajouter ces signaux au modèle EA ? Mhm comment... dois-je utiliser la fonction iCustom ou autre chose à ajouter à l'indicateur avant de pouvoir l'utiliser ? Toute aide sera appréciée. Merci.

Dossiers :
 
otnepx:
Bonjour à tous,

Je suis nouveau dans le monde du forex, et pour le moment je m'intéresse aux indicateurs et aux EAs. J'ai une certaine compréhension du code mq4, mais ce n'est pas encore suffisant pour obtenir ce que je veux. J'aimerais donc demander des conseils/de l'aide à des experts ou à des personnes qui connaissent suffisamment le code mq4.

Ma tâche actuelle est d'ajouter un indicateur personnalisé à l'EA, et d'ailleurs j'ai obtenu un joli modèle d'EA (je pense) que je vais partager avec vous Ok donc, mes signaux finaux d'achat/vente de l'indicateur sont les suivants : g_ibuf_BUY[1] et g_ibuf_SELL[1].

Voici une partie du code lorsque l'indicateur joue un son, une pop up, envoie un email.

void Alert_PlaySound_SendMail() {

string ls_ms = "MS PRO";

if (g_ibuf_BUY[1] == Low[1] - Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": BUY | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessBuySound(Buy_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - BUY signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

if (g_ibuf_SELL[1] == High[1] + Arrow_Distance * Point && gi_flag_alert != Time[0]) {

if (Alert_PopUp_On) Alert(ls_ms + ": SELL | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));

PlaySound(ProcessSellSound(Sell_Sound));

gi_flag_alert = Time[0];

if (Send_Email) {

SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - SELL signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),

TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");

}

}

}
La prochaine étape serait d'ajouter ces signaux au modèle EA ? Mhm comment... dois-je utiliser la fonction iCustom ou autre chose à ajouter à l'indicateur avant de pouvoir l'utiliser ? Toute aide sera appréciée. Merci.

Vous ne pouvez pas importer les alertes dans une autre partie du code (indicateur, EA).

La façon la plus propre de faire ce que vous voulez est d'utiliser iCustom().

 

Cher Mladen/MrTools,

Je vous demande de créer un indicateur basé sur la logique ci-dessous pour un graphique de 1 minute .... Il devrait également alerter avec des flèches d'achat/vente sur le graphique ...

logique d'entrée d'achat :

croisement de l'EMA(90) d'une minute avec l'EMA(390) d'une minute (ce qui signifie que l'ema 90 de la minute précédente est inférieure à l'ema 390) et que l'ema(90) doit être supérieure à l'ema(150).

logique de sortie d'achat :

EMA(90) > EMA(390) et ema(90) < ema(150).

logique d'entrée de vente :

l'EMA(90) d'une minute coupe l'EMA(390) d'une minute (ce qui signifie que l'ema 90 de la minute précédente est plus grande que l'ema 390) et l'ema(90) doit également être inférieure à l'ema(150).

logique de sortie de vente :

EMA(90) ema(150) à une minute.

*******************************************************

Le code Nest pour la même logique est également partagé ci-dessous :

expression d'alerte d'achat

EMA(CLOSE,90) > EMA(CLOSE,390) et REF(EMA(CLOSE,90),1) EMA(CLOSE,150)

expression de sortie d'achat

EMA(CLOSE,90) > EMA(CLOSE,390) et EMA(CLOSE,90) < EMA(CLOSE,150)

expression d'alerte de vente

EMA(CLOSE,90) REF(EMA(CLOSE,390),1) et EMA(CLOSE,90) < EMA(CLOSE,150)

expression de sortie de vente

EMA(CLOSE,90) EMA(CLOSE,150)

Merci

Merci beaucoup

Raison: