Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Caro signor MLADEN, non sono riuscito a trovare un indicatore che tracci semplicemente il massimo e il minimo del giorno precedente escludendo la domenica. Ho usato l'indicatore allegato e speravo che potesse essere modificato per escludere i dati della domenica. La ringrazio in anticipo per la sua assistenza.
daytrade5
Dovrebbe essere questo. Provalo: prevday_hilo_no_sunday.mq4
daytrade5 Dovrebbe essere questo. Provalo: prevday_hilo_no_sunday.mq4
Mladen,
Questo è assolutamente perfetto. Grazie mille per il tuo aiuto.
Ciao,
So che questo è un po' vago, ma questo influisce sulle funzioni di un EA in qualche modo importante e se sì, cosa devo cercare per correggerlo? Il problema è 36 avvisi di "array passati solo per riferimento" c'è un certo modo in cui gli array devono essere gestiti con questo nuovo MT4. Grazie per qualsiasi intuizione su questo
Ciao, so che questo è un po' vago, ma questo influenza le funzioni di un EA in qualche modo importante e se sì, cosa devo cercare per correggerlo? Il problema è 36 avvisi di "array passati solo per riferimento" c'è un certo modo in cui gli array devono essere gestiti con questo nuovo MT4. Grazie per qualsiasi chiarimento su questo
cja
Non dovrebbe influire poiché il compilatore dovrebbe convertirlo automaticamente
Per evitare questo avvertimento basta aggiungere "&" dopo la dichiarazione del tipo di array nella dichiarazione della funzione (quindi invece di "void example(double arrayPassedByReference[])" usa "void example(double& arrayPassedByReference[])" )
Caro Mladen e chiunque altro,
Sapete come fa il seguente codice a crearesegnali buy-sell? Dice ''array di serie che contiene i prezzi open-close-high-low di ogni barra'' ''Indicatore Curve creato:Implementa una curva di tipo DRAW_HISTOGRAM'' Per quanto vedo non si ridisegna.
Grazie.
double W_Buffer1[];
double R_Buffer0[];
double R_Buffer1[];
double S_Buffer0[];
double S_Buffer1[];
double E_Buffer0[];
double E_Buffer1[];
int R_t3_period=21;
double R_b=0.8;
extern int R_mBar=0;
double W_e1, W_e2, W_e3, W_e4, W_e5, W_e6, W_c1, W_c2, W_c3, W_c4, W_n, W_w1, W_w2, W_b2, W_b3;
double W_t3, W_shift, W_wpr, W_trig, W_t3_period, W_b, W_per, W_psel, W_pbuy;
bool R_ft=True;
double R_e1, R_e2, R_e3, R_e4, R_e5, R_e6, R_c1, R_c2, R_c3, R_c4, R_n, R_w1, R_w2, R_b2, R_b3;
double R_t3[];
int R_LoopBegin, R_shift;
int init()
{
//---- indicators
SetIndexStyle (0,DRAW_NONE);
SetIndexBuffer (0,W_Buffer0);
SetIndexEmptyValue(0,EMPTY_VALUE);
SetIndexStyle (1,DRAW_NONE);
SetIndexBuffer (1,W_Buffer1);
SetIndexEmptyValue(1,EMPTY_VALUE);
SetIndexStyle (2,DRAW_NONE);
SetIndexBuffer (2,R_Buffer0);
SetIndexEmptyValue(2,EMPTY_VALUE);
SetIndexStyle (3,DRAW_NONE);
SetIndexBuffer (3,R_Buffer1);
SetIndexEmptyValue(3,EMPTY_VALUE);
SetIndexStyle (4,DRAW_ARROW,EMPTY,2);
SetIndexArrow (4,241);
SetIndexBuffer (4,S_Buffer0);
SetIndexEmptyValue(4,EMPTY_VALUE);
SetIndexStyle (5,DRAW_ARROW,EMPTY,2);
SetIndexArrow (5,242);
SetIndexBuffer (5,S_Buffer1);
SetIndexEmptyValue(5,EMPTY_VALUE);
SetIndexStyle (6,DRAW_ARROW,EMPTY,2);
SetIndexArrow (6,251);
SetIndexBuffer (6,E_Buffer0);
SetIndexEmptyValue(6,EMPTY_VALUE);
SetIndexStyle (7,DRAW_ARROW,EMPTY,2);
SetIndexArrow (7,251);
SetIndexBuffer (7,E_Buffer1);
SetIndexEmptyValue(7,EMPTY_VALUE);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
W_t3_period=8;
W_b=0.8;
W_per=21;
W_psel=-30;
W_pbuy=-70;
W_b2=W_b*W_b;
W_b3=W_b2*W_b;
W_c1=-W_b3;
W_c2=(3*(W_b2+W_b3));
W_c3=-3*(2*W_b2+W_b+W_b3);
W_c4=(1+3*W_b+W_b3+3*W_b2);
W_n=W_t3_period;
if (W_n<1) W_n=1;
W_n = 1 + 0.5*(W_n-1);
W_w1 = 2 / (W_n + 1);
W_w2 = 1 - W_w1;
if (R_mBar==0) R_LoopBegin=Bars;
else R_LoopBegin=R_mBar;
R_LoopBegin=MathMin(R_LoopBegin, Bars);
for(int i=0; i<R_LoopBegin; i++)
{
W_wpr=iWPR(NULL,0,W_per,i);
W_e1 = W_w1*W_wpr + W_w2*W_e1;
W_e2 = W_w1*W_e1 + W_w2*W_e2;
W_e3 = W_w1*W_e2 + W_w2*W_e3;
W_e4 = W_w1*W_e3 + W_w2*W_e4;
W_e5 = W_w1*W_e4 + W_w2*W_e5;
W_e6 = W_w1*W_e5 + W_w2*W_e6;
W_t3 = W_c1*W_e6 + W_c2*W_e5 + W_c3*W_e4 + W_c4*W_e3;
if (W_t3>=-50) W_trig=W_psel;
if (W_t3<-50) W_trig=W_pbuy;
W_Buffer0=W_t3;
W_Buffer1=W_trig;
}
if (R_mBar==0) R_LoopBegin=Bars-R_t3_period-1;
else R_LoopBegin=R_mBar;
R_LoopBegin=MathMin(R_LoopBegin, Bars-R_t3_period-1);
ArrayResize(R_t3, R_LoopBegin);
if (R_ft) {
R_b2=R_b*R_b;
R_b3=R_b2*R_b;
R_c1=-R_b3;
R_c2=(3*(R_b2+R_b3));
R_c3=-3*(2*R_b2+R_b+R_b3);
R_c4=(1+3*R_b+R_b3+3*R_b2);
R_n=R_t3_period;
if (R_n<1) R_n=1;
R_n=1+0.5*(R_n-1);
R_w1=2/(R_n+1);
R_w2=1-R_w1;
R_ft=False;
}
for (R_shift=R_LoopBegin; R_shift>=0; R_shift--) {
R_e1=R_w1*Close[R_shift]+R_w2*R_e1;
R_e2=R_w1*R_e1+R_w2*R_e2;
R_e3=R_w1*R_e2+R_w2*R_e3;
R_e4=R_w1*R_e3+R_w2*R_e4;
R_e5=R_w1*R_e4+R_w2*R_e5;
R_e6=R_w1*R_e5+R_w2*R_e6;
R_t3[R_shift]=R_c1*R_e6+R_c2*R_e5+R_c3*R_e4+R_c4*R_e3;
if (R_t3[R_shift+1]<=R_t3[R_shift]) R_Buffer0[R_shift]=R_t3[R_shift]; else R_Buffer0[R_shift]=0;
if (R_t3[R_shift+1]>R_t3[R_shift]) R_Buffer1[R_shift]=R_t3[R_shift]; else R_Buffer1[R_shift]=0;
}
if (R_mBar==0) R_LoopBegin=Bars-R_t3_period-1;
else R_LoopBegin=R_mBar;
R_LoopBegin=MathMin(R_LoopBegin, Bars-R_t3_period-1);
for (int cnt=0;cnt<=R_LoopBegin;cnt++)
{
if(R_Buffer0[cnt]>0 && R_Buffer1[cnt+1]>0 && W_Buffer0[cnt]>W_Buffer0[cnt+1] && W_Buffer0[cnt+1]>W_psel) S_Buffer0[cnt]=Low[cnt]-6*Point; else S_Buffer0[cnt]=0;
if(R_Buffer1[cnt]>0 && R_Buffer0[cnt+1]>0 && W_Buffer0[cnt]<W_Buffer0[cnt+1] && W_Buffer0[cnt+1]<W_pbuy) S_Buffer1[cnt]=High[cnt]+6*Point; else S_Buffer1[cnt]=0;
}
if (R_mBar==0) R_LoopBegin=Bars-R_t3_period-1;
else R_LoopBegin=R_mBar;
R_LoopBegin=MathMin(R_LoopBegin, Bars-R_t3_period-1);
for (cnt=0;cnt<=R_LoopBegin;cnt++)
{
if(W_Buffer0[cnt]W_psel) E_Buffer0[cnt]=High[cnt]+6*Point; else E_Buffer0[cnt]=0;
if(W_Buffer0[cnt]>W_pbuy && W_Buffer0[cnt+1]<W_pbuy) E_Buffer1[cnt]=Low[cnt]-6*Point; else E_Buffer1[cnt]=0;
}Caro Mladen e chiunque altro,
Sapete come fa il codice qui sotto a creare segnali buy-sell? Dice ''array di serie che contiene i prezzi open-close-high-low di ogni barra'' ''Indicatore Curve creato:Implementa una curva di tipo DRAW_HISTOGRAM'' Per quanto vedo non si ridisegna.
Grazie.
double W_Buffer1[];
double R_Buffer0[];
double R_Buffer1[];
double S_Buffer0[];
double S_Buffer1[];
double E_Buffer0[];
double E_Buffer1[];
int R_t3_period=21;
double R_b=0.8;
extern int R_mBar=0;
double W_e1, W_e2, W_e3, W_e4, W_e5, W_e6, W_c1, W_c2, W_c3, W_c4, W_n, W_w1, W_w2, W_b2, W_b3;
double W_t3, W_shift, W_wpr, W_trig, W_t3_period, W_b, W_per, W_psel, W_pbuy;
bool R_ft=True;
double R_e1, R_e2, R_e3, R_e4, R_e5, R_e6, R_c1, R_c2, R_c3, R_c4, R_n, R_w1, R_w2, R_b2, R_b3;
double R_t3[];
int R_LoopBegin, R_shift;
int init()
{
//---- indicators
SetIndexStyle (0,DRAW_NONE);
SetIndexBuffer (0,W_Buffer0);
SetIndexEmptyValue(0,EMPTY_VALUE);
SetIndexStyle (1,DRAW_NONE);
SetIndexBuffer (1,W_Buffer1);
SetIndexEmptyValue(1,EMPTY_VALUE);
SetIndexStyle (2,DRAW_NONE);
SetIndexBuffer (2,R_Buffer0);
SetIndexEmptyValue(2,EMPTY_VALUE);
SetIndexStyle (3,DRAW_NONE);
SetIndexBuffer (3,R_Buffer1);
SetIndexEmptyValue(3,EMPTY_VALUE);
SetIndexStyle (4,DRAW_ARROW,EMPTY,2);
SetIndexArrow (4,241);
SetIndexBuffer (4,S_Buffer0);
SetIndexEmptyValue(4,EMPTY_VALUE);
SetIndexStyle (5,DRAW_ARROW,EMPTY,2);
SetIndexArrow (5,242);
SetIndexBuffer (5,S_Buffer1);
SetIndexEmptyValue(5,EMPTY_VALUE);
SetIndexStyle (6,DRAW_ARROW,EMPTY,2);
SetIndexArrow (6,251);
SetIndexBuffer (6,E_Buffer0);
SetIndexEmptyValue(6,EMPTY_VALUE);
SetIndexStyle (7,DRAW_ARROW,EMPTY,2);
SetIndexArrow (7,251);
SetIndexBuffer (7,E_Buffer1);
SetIndexEmptyValue(7,EMPTY_VALUE);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
W_t3_period=8;
W_b=0.8;
W_per=21;
W_psel=-30;
W_pbuy=-70;
W_b2=W_b*W_b;
W_b3=W_b2*W_b;
W_c1=-W_b3;
W_c2=(3*(W_b2+W_b3));
W_c3=-3*(2*W_b2+W_b+W_b3);
W_c4=(1+3*W_b+W_b3+3*W_b2);
W_n=W_t3_period;
if (W_n<1) W_n=1;
W_n = 1 + 0.5*(W_n-1);
W_w1 = 2 / (W_n + 1);
W_w2 = 1 - W_w1;
if (R_mBar==0) R_LoopBegin=Bars;
else R_LoopBegin=R_mBar;
R_LoopBegin=MathMin(R_LoopBegin, Bars);
for(int i=0; i<R_LoopBegin; i++)
{
W_wpr=iWPR(NULL,0,W_per,i);
W_e1 = W_w1*W_wpr + W_w2*W_e1;
W_e2 = W_w1*W_e1 + W_w2*W_e2;
W_e3 = W_w1*W_e2 + W_w2*W_e3;
W_e4 = W_w1*W_e3 + W_w2*W_e4;
W_e5 = W_w1*W_e4 + W_w2*W_e5;
W_e6 = W_w1*W_e5 + W_w2*W_e6;
W_t3 = W_c1*W_e6 + W_c2*W_e5 + W_c3*W_e4 + W_c4*W_e3;
if (W_t3>=-50) W_trig=W_psel;
if (W_t3<-50) W_trig=W_pbuy;
W_Buffer0=W_t3;
W_Buffer1=W_trig;
}
if (R_mBar==0) R_LoopBegin=Bars-R_t3_period-1;
else R_LoopBegin=R_mBar;
R_LoopBegin=MathMin(R_LoopBegin, Bars-R_t3_period-1);
ArrayResize(R_t3, R_LoopBegin);
if (R_ft) {
R_b2=R_b*R_b;
R_b3=R_b2*R_b;
R_c1=-R_b3;
R_c2=(3*(R_b2+R_b3));
R_c3=-3*(2*R_b2+R_b+R_b3);
R_c4=(1+3*R_b+R_b3+3*R_b2);
R_n=R_t3_period;
if (R_n<1) R_n=1;
R_n=1+0.5*(R_n-1);
R_w1=2/(R_n+1);
R_w2=1-R_w1;
R_ft=False;
}
for (R_shift=R_LoopBegin; R_shift>=0; R_shift--) {
R_e1=R_w1*Close[R_shift]+R_w2*R_e1;
R_e2=R_w1*R_e1+R_w2*R_e2;
R_e3=R_w1*R_e2+R_w2*R_e3;
R_e4=R_w1*R_e3+R_w2*R_e4;
R_e5=R_w1*R_e4+R_w2*R_e5;
R_e6=R_w1*R_e5+R_w2*R_e6;
R_t3[R_shift]=R_c1*R_e6+R_c2*R_e5+R_c3*R_e4+R_c4*R_e3;
if (R_t3[R_shift+1]<=R_t3[R_shift]) R_Buffer0[R_shift]=R_t3[R_shift]; else R_Buffer0[R_shift]=0;
if (R_t3[R_shift+1]>R_t3[R_shift]) R_Buffer1[R_shift]=R_t3[R_shift]; else R_Buffer1[R_shift]=0;
}
if (R_mBar==0) R_LoopBegin=Bars-R_t3_period-1;
else R_LoopBegin=R_mBar;
R_LoopBegin=MathMin(R_LoopBegin, Bars-R_t3_period-1);
for (int cnt=0;cnt<=R_LoopBegin;cnt++)
{
if(R_Buffer0[cnt]>0 && R_Buffer1[cnt+1]>0 && W_Buffer0[cnt]>W_Buffer0[cnt+1] && W_Buffer0[cnt+1]>W_psel) S_Buffer0[cnt]=Low[cnt]-6*Point; else S_Buffer0[cnt]=0;
if(R_Buffer1[cnt]>0 && R_Buffer0[cnt+1]>0 && W_Buffer0[cnt]<W_Buffer0[cnt+1] && W_Buffer0[cnt+1]<W_pbuy) S_Buffer1[cnt]=High[cnt]+6*Point; else S_Buffer1[cnt]=0;
}
if (R_mBar==0) R_LoopBegin=Bars-R_t3_period-1;
else R_LoopBegin=R_mBar;
R_LoopBegin=MathMin(R_LoopBegin, Bars-R_t3_period-1);
for (cnt=0;cnt<=R_LoopBegin;cnt++)
{
if(W_Buffer0[cnt]W_psel) E_Buffer0[cnt]=High[cnt]+6*Point; else E_Buffer0[cnt]=0;
if(W_Buffer0[cnt]>W_pbuy && W_Buffer0[cnt+1]<W_pbuy) E_Buffer1[cnt]=Low[cnt]-6*Point; else E_Buffer1[cnt]=0;
}Sta combinando i segnali da t3 smoothed wpr e un semplice t3
Ma l'ultima parte è fatta dal futuro al passato (qualcosa di simile al sidus e al vento solare) quindi farei attenzione quando lo uso
Ciao Caro Mladen. È possibile fare le barrette Step ma?
Ciao caro Mladen. È possibile fare le barre del passo ma?
Intendi barre colorate a seconda del colore del passo ma?
Intendi barre colorate a seconda del colore del passo ma?
Sì, hai ragione
Sì, hai ragione
Aria92
Postato una versione qui: https: //www.mql5.com/en/forum/173044/page12