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
mladen il y a un espoir que vous puissiez m'aider avec l'indicateur ?
Pas besoin de posts supplémentaires Voici une version avec des alertes (6 types d'alertes possibles ajoutés) : MASO 2_1 + alerts.mq4
Pas besoin de posts supplémentaires Voici une version avec des alertes (6 types d'alertes possibles ajoutés) : MASO 2_1 + alerts.mq4
très bien, excellent travail, merci
mladen
et peut être une demande de plus pour faire des flèches, seulement fermé la barre ? et quand il y a une barre neutre, le traiter comme un changement de tendance
On dirait qu'il y a beaucoup d'alertes avec l'indicateur MASO.
N'est-ce pas trop ? Comment l'utiliser pour un trading normal ?
pour les options binaires, avec une certaine stratégie, avec martingail
Bonjour Mladen,
Avez-vous un indicateur pour montrer la couleur des bougies du jour précédent ?
Je travaille avec des graphiques de 5 minutes et, lors d'un backtesting visuel, il devient déroutant de passer d'un jour à l'autre pour vérifier la couleur de la bougie du jour précédent. Ce serait génial si j'avais une barre qui court le long du bas dans une nouvelle fenêtre, rouge ou verte, pour montrer la couleur des bougies du jour précédent - je veux explorer le trading dans la même direction.
Une barre comme celle-ci est jointe. Est-ce possible ?
Donc si close > open alors verte, sinon rouge je suppose ?
Merci, comme toujours, pour votre aide :-)
PGbosse polie :-)
un petit coup de pouce poli :-)
Si cela peut vous aider, je ne suis pas en mesure de le faire.
#property copyright ""
#property link ""
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Crimson
#property indicator_color2 DodgerBlue
#property indicator_color3 clrBlue
int price = PRICE_OPEN;
extern int zBar = 1000;
extern int LengthB=12;
extern int LengthK=12;
extern int sCCI=2;
extern int sRSI=2;
int SoundAlertMode = 0;
int Soundonly = 0;
int Barcount;
double RSI;
double CCI;
datetime TimeBar;
double previ;
double ExtMapBuffer2[];
double alertBar1;
int sim=0;
double alertBar;
extern bool DoAlert=true;
extern bool alertMail=false;
datetime lastAlertTime;
//---- buffers
double b1[],b2[];double Gd_188;
double f0_3() {
double Ld_ret_0;
if (Digits < 4) Ld_ret_0 = 0.01;
else Ld_ret_0 = 0.0001;
return (Ld_ret_0);
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(2);
IndicatorShortName("Investor");
SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,0);
SetIndexArrow(0,234);
SetIndexBuffer(0,b1);
SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,0);
SetIndexArrow(1,233);
SetIndexBuffer(1,b2);
SetIndexEmptyValue(2,0.0);
SetIndexDrawBegin(2, zBar);
SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,2);
SetIndexArrow(2,158);
SetIndexBuffer(2,ExtMapBuffer2);
Gd_188 = f0_3();
Barcount = 0;
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int i, counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
if(counted_bars>0) limit++;
string sAlertMsg;
/*// TImes
int Li_unused_8;
string Ls_28;
int Li_unused_36;
double Ld_0 = (Ask - Bid) / Gd_188;
if (Ld_0 > 1.0 && Ld_0 <= 10.0) Li_unused_8 = 4;
int Li_12 = Time[0] + 60 * Period() - TimeCurrent();
double Ld_16 = Li_12 / 60.0;
int Li_24 = Li_12 % 60;
Li_12 = (Li_12 - Li_12 % 60) / 60;
if (Li_24 <= 9) Ls_28 = "0";
if (Li_12 >= 1 && Li_12 <= 9) Li_unused_36 = -10;
else {
if (Li_12 >= 10 && Li_12 <= 99) Li_unused_36 = -13;
else {
if (Li_12 >= 100 && Li_12 <= 999) Li_unused_36 = -16;
else {
if (Li_12 >= 1000 && Li_12 <= 9999) Li_unused_36 = -24;
else
if (Li_12 >= 10000 && Li_12 <= 99999) Li_unused_36 = -29;
}
}
}
Comment("", "" + Li_12 + ":" + Ls_28 + "" + Li_24 + "",
"\n", "=======",
"\n", "" + Symbol() + "", " " + Period() + "",
"\n", "Spread : " + DoubleToStr(Ld_0, 1) + "",
"\n",
"\n", "",
"\n", "");
*/
// Arrows
for(i=0; i<limit; i++)
{
RSI=iRSI(NULL,0,sRSI,price,i);
CCI=iCCI(NULL,0,sCCI,price,i+1);
//double zz1 = iCustom(NULL,0,"Zigzag_v.2",zBar,LengthB,LengthK,1,i);
//double zz2 = iCustom(NULL,0,"Zigzag_v.2",zBar,LengthB,LengthK,0,i);
//if (zz1 != 0) {
if ( RSI > 80.0 && CCI < 50.0 &&
Open > Close && //bear
Open < Close && //bull
High - Close > High - Close )
{
b1 = High+Point*5;
}
//if (zz2 != 0) {
if ( RSI 50.0 &&
Open < Close && //bull
Open > Close && //bear
High - Close < High - Close )
{
b2 = Low-Point*5;
}
if (DoAlert && b2[1]!=0 && lastAlertTime!=Time[0])
{
sAlertMsg=" Alert - "+Symbol()+" "+TF2Str(Period())+"";
if (DoAlert) Alert(sAlertMsg);
lastAlertTime = Time[0];
if (alertMail) SendMail(sAlertMsg, "Alert!\n" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);
}
else
if (b1[1]!=0 && lastAlertTime!=Time[0])
{
sAlertMsg=" Alert - "+Symbol()+" "+TF2Str(Period())+"";
if (DoAlert) Alert(sAlertMsg);
lastAlertTime = Time[0];
if (alertMail) SendMail(sAlertMsg, "Alert!\n" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);
}
//}
//}
}
sinyal();
//-------------------------------------------------------------------+
return(0);
}
//+------------------------------------------------------------------+
string TF2Str(int iPeriod) {
switch(iPeriod) {
case PERIOD_M1: return("M1");
case PERIOD_M5: return("M5");
case PERIOD_M15: return("M15");
case PERIOD_M30: return("M30");
case PERIOD_H1: return("H1");
case PERIOD_H4: return("H4");
case PERIOD_D1: return("D1");
case PERIOD_W1: return("W1");
case PERIOD_MN1: return("MN1");
default: return("M"+iPeriod);
}
}
void sinyal(){
int shifti,Swingi,Swing_ni,uzli,ii,zui,zdi,mvi;
double LLi,HHi,BHi,BLi;
double Uzeli[10000][3];
// loop from first bar to current bar (with shift=0)
Swing_ni=0;Swingi=0;uzli=0;
BHi =High[zBar];BLi=Low[zBar];zui=zBar;zdi=zBar;
for (shifti=zBar;shifti>=0;shifti--) {
LLi=10000000;HHi=-100000000;
for (ii=shifti+LengthB;ii>=shifti+1;ii--) {
if (Low< LLi) {LLi=Low;}
if (High>HHi) {HHi=High;}
}
if (Low[shifti]HHi){
Swingi=2;
if (Swing_ni==1) {zui=shifti+1;}
if (Swing_ni==-1) {zdi=shifti+1;}
} else {
if (Low[shifti]<LLi) {Swingi=-1;}
if (High[shifti]>HHi) {Swingi=1;}
}
if (Swingi!=Swing_ni && Swing_ni!=0) {
if (Swingi==2) {
Swingi=-Swing_ni;BHi = High[shifti];BLi = Low[shifti];
}
uzli=uzli+1;
if (Swingi==1) {
Uzeli[1]=zdi;
Uzeli[2]=BLi;
}
if (Swingi==-1) {
Uzeli[1]=zui;
Uzeli[2]=BHi;
}
BHi = High[shifti];
BLi = Low[shifti];
}
if (Swingi==1) {
if (High[shifti]>=BHi) {BHi=High[shifti];zui=shifti;}}
if (Swingi==-1) {
if (Low[shifti]<=BLi) {BLi=Low[shifti]; zdi=shifti;}}
Swing_ni=Swingi;
}
for (ii=1;ii<=uzli;ii++) {
mvi=StrToInteger(DoubleToStr(Uzeli[1],0));
ExtMapBuffer2[mvi]=Uzeli[2];
previ=Uzeli[2];
}
}
veuillez aider ....
Avec cet indicateur, le signal n'apparaît pas au bon moment.
je dois rafraîchir le graphique à chaque fois
et s'il vous plaît fixer l'alerte aussi
merci
#property copyright ""
#property link ""
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Crimson
#property indicator_color2 DodgerBlue
#property indicator_color3 clrBlue
int price = PRICE_OPEN;
extern int zBar = 1000;
extern int LengthB=12;
extern int LengthK=12;
extern int sCCI=2;
extern int sRSI=2;
int SoundAlertMode = 0;
int Soundonly = 0;
int Barcount;
double RSI;
double CCI;
datetime TimeBar;
double previ;
double ExtMapBuffer2[];
double alertBar1;
int sim=0;
double alertBar;
extern bool DoAlert=true;
extern bool alertMail=false;
datetime lastAlertTime;
//---- buffers
double b1[],b2[];double Gd_188;
double f0_3() {
double Ld_ret_0;
if (Digits < 4) Ld_ret_0 = 0.01;
else Ld_ret_0 = 0.0001;
return (Ld_ret_0);
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(2);
IndicatorShortName("Investor");
SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,0);
SetIndexArrow(0,234);
SetIndexBuffer(0,b1);
SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,0);
SetIndexArrow(1,233);
SetIndexBuffer(1,b2);
SetIndexEmptyValue(2,0.0);
SetIndexDrawBegin(2, zBar);
SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,2);
SetIndexArrow(2,158);
SetIndexBuffer(2,ExtMapBuffer2);
Gd_188 = f0_3();
Barcount = 0;
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int i, counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
if(counted_bars>0) limit++;
string sAlertMsg;
/*// TImes
int Li_unused_8;
string Ls_28;
int Li_unused_36;
double Ld_0 = (Ask - Bid) / Gd_188;
if (Ld_0 > 1.0 && Ld_0 <= 10.0) Li_unused_8 = 4;
int Li_12 = Time[0] + 60 * Period() - TimeCurrent();
double Ld_16 = Li_12 / 60.0;
int Li_24 = Li_12 % 60;
Li_12 = (Li_12 - Li_12 % 60) / 60;
if (Li_24 <= 9) Ls_28 = "0";
if (Li_12 >= 1 && Li_12 <= 9) Li_unused_36 = -10;
else {
if (Li_12 >= 10 && Li_12 <= 99) Li_unused_36 = -13;
else {
if (Li_12 >= 100 && Li_12 <= 999) Li_unused_36 = -16;
else {
if (Li_12 >= 1000 && Li_12 <= 9999) Li_unused_36 = -24;
else
if (Li_12 >= 10000 && Li_12 <= 99999) Li_unused_36 = -29;
}
}
}
Comment("", "" + Li_12 + ":" + Ls_28 + "" + Li_24 + "",
"\n", "=======",
"\n", "" + Symbol() + "", " " + Period() + "",
"\n", "Spread : " + DoubleToStr(Ld_0, 1) + "",
"\n",
"\n", "",
"\n", "");
*/
// Arrows
for(i=0; i<limit; i++)
{
RSI=iRSI(NULL,0,sRSI,price,i);
CCI=iCCI(NULL,0,sCCI,price,i+1);
//double zz1 = iCustom(NULL,0,"Zigzag_v.2",zBar,LengthB,LengthK,1,i);
//double zz2 = iCustom(NULL,0,"Zigzag_v.2",zBar,LengthB,LengthK,0,i);
//if (zz1 != 0) {
if ( RSI > 80.0 && CCI < 50.0 &&
Open > Close && //bear
Open < Close && //bull
High - Close > High - Close )
{
b1 = High+Point*5;
}
//if (zz2 != 0) {
if ( RSI 50.0 &&
Open < Close && //bull
Open > Close && //bear
High - Close < High - Close )
{
b2 = Low-Point*5;
}
if (DoAlert && b2[1]!=0 && lastAlertTime!=Time[0])
{
sAlertMsg=" Alert - "+Symbol()+" "+TF2Str(Period())+"";
if (DoAlert) Alert(sAlertMsg);
lastAlertTime = Time[0];
if (alertMail) SendMail(sAlertMsg, "Alert!\n" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);
}
else
if (b1[1]!=0 && lastAlertTime!=Time[0])
{
sAlertMsg=" Alert - "+Symbol()+" "+TF2Str(Period())+"";
if (DoAlert) Alert(sAlertMsg);
lastAlertTime = Time[0];
if (alertMail) SendMail(sAlertMsg, "Alert!\n" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);
}
//}
//}
}
sinyal();
//-------------------------------------------------------------------+
return(0);
}
//+------------------------------------------------------------------+
string TF2Str(int iPeriod) {
switch(iPeriod) {
case PERIOD_M1: return("M1");
case PERIOD_M5: return("M5");
case PERIOD_M15: return("M15");
case PERIOD_M30: return("M30");
case PERIOD_H1: return("H1");
case PERIOD_H4: return("H4");
case PERIOD_D1: return("D1");
case PERIOD_W1: return("W1");
case PERIOD_MN1: return("MN1");
default: return("M"+iPeriod);
}
}
void sinyal(){
int shifti,Swingi,Swing_ni,uzli,ii,zui,zdi,mvi;
double LLi,HHi,BHi,BLi;
double Uzeli[10000][3];
// loop from first bar to current bar (with shift=0)
Swing_ni=0;Swingi=0;uzli=0;
BHi =High[zBar];BLi=Low[zBar];zui=zBar;zdi=zBar;
for (shifti=zBar;shifti>=0;shifti--) {
LLi=10000000;HHi=-100000000;
for (ii=shifti+LengthB;ii>=shifti+1;ii--) {
if (Low< LLi) {LLi=Low;}
if (High>HHi) {HHi=High;}
}
if (Low[shifti]HHi){
Swingi=2;
if (Swing_ni==1) {zui=shifti+1;}
if (Swing_ni==-1) {zdi=shifti+1;}
} else {
if (Low[shifti]<LLi) {Swingi=-1;}
if (High[shifti]>HHi) {Swingi=1;}
}
if (Swingi!=Swing_ni && Swing_ni!=0) {
if (Swingi==2) {
Swingi=-Swing_ni;BHi = High[shifti];BLi = Low[shifti];
}
uzli=uzli+1;
if (Swingi==1) {
Uzeli[1]=zdi;
Uzeli[2]=BLi;
}
if (Swingi==-1) {
Uzeli[1]=zui;
Uzeli[2]=BHi;
}
BHi = High[shifti];
BLi = Low[shifti];
}
if (Swingi==1) {
if (High[shifti]>=BHi) {BHi=High[shifti];zui=shifti;}}
if (Swingi==-1) {
if (Low[shifti]<=BLi) {BLi=Low[shifti]; zdi=shifti;}}
Swing_ni=Swingi;
}
for (ii=1;ii<=uzli;ii++) {
mvi=StrToInteger(DoubleToStr(Uzeli[1],0));
ExtMapBuffer2[mvi]=Uzeli[2];
previ=Uzeli[2];
}
}
veuillez aider ....
Avec cet indicateur, le signal n'apparaît pas au bon moment.
je dois rafraîchir le graphique à chaque fois
et s'il vous plaît fixer l'alerte aussi
mercicebrez
C'est un indicateur patché ensemble à partir d'une décompilation et d'autres parties et le résultat est un désordre qui est un indicateur 101 de repeinture.
Le mieux est de l'oublier
cebrez
C'est un indicateur patché ensemble à partir de parties décompilées et d'autres parties et comme résultat vous avez un désordre qui est un indicateur de repeinture 101
Le mieux est de l'oubliermais j'ai de bons résultats avec cet indicateur monsieur et oui il se repeint mais pas de problème pour moi ... s'il vous plaît monsieur
Je joins d'autres parties appelées ZigZag_v.2 ici >>> https://www.mql5.com/en/forum/174385/page417
merci