Aiuto per la codifica - pagina 626

 
stas0202:
mladen c'è speranza che tu possa aiutarmi con l'indicatore?

Non c'è bisogno di ulteriori post Ecco una versione con avvisi (6 possibili tipi di avvisi aggiunti): MASO 2_1 + alerts.mq4

File:
 
mladen:
Non c'è bisogno di ulteriori post Ecco una versione con avvisi (6 possibili tipi di avvisi aggiunti): MASO 2_1 + alerts.mq4

molto bene, ottimo lavoro, grazie

 

mladen

e può essere una richiesta più per fare le frecce, solo chiuso la barra? e quando c'è una barra neutra, trattarlo come un cambiamento di tendenza

 

Sembra che ci siano molti avvisi con l'indicatore MASO.

Non è troppo? Come usarlo per il trading normale?

 

per le opzioni binarie, con una certa strategia, con martingail

 
pgtips:
Ciao Mladen,

Avete un indicatore per mostrare il colore delle candele del giorno precedente?

Lavoro con grafici a 5 minuti e il backtesting visivo mi confonde, perché devo controllare il colore della candela del giorno precedente. Sarebbe fantastico se avessi una barra che scorre lungo il fondo in una nuova finestra, rossa o verde, per mostrare il colore della candela del giorno precedente - voglio esplorare il trading nella stessa direzione.

Una barra come questa allegata. È possibile?

Quindi se close > open allora verde, altrimenti rosso credo?

grazie come sempre per il vostro aiuto :-)

PG

bump educato :-)

File:
 
pgtips:
bump educato :-)

se questo vi aiuterà? non in sw però.

File:
eurusdm5_1.png  32 kb
 

#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];

}

}

si prega di aiutare ....

questo indicatore il segnale non appare al momento giusto

devo aggiornare il grafico ogni volta

e per favore correggete anche l'allarme

grazie

 
cebrez:

#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];

}

}

si prega di aiutare ....

questo indicatore il segnale non appare al momento giusto

devo aggiornare il grafico ogni volta

e per favore correggete anche l'allarme

grazie

cebrez

Questo è un indicatore rattoppato insieme da parti decompilate e alcune altre parti e come risultato hai ottenuto un pasticcio che è un indicatore di riverniciatura 101

Meglio lasciar perdere

 
mladen:

cebrez

Che è indicatore patchato insieme da decompilato e alcune altre parti e come risultato si ottiene un pasticcio che è un indicatore di riverniciatura 101

Meglio lasciar perdere

ma ho un buon risultato con questo indicatore signore e sì, le sue ridipinture ma nessun problema per me ... per favore signore

allego alcune altre parti chiamate ZigZag_v.2 qui >>> https://www.mql5.com/en/forum/174385/page417

grazie

Motivazione: