Aiuto per la codifica - pagina 110

 

Ciao,

ho bisogno di due indicatori, uno è wpr(Williams' Percent Range) e la sua ma (wpr con ma), l'altro è cmo (chande momentum osc.)

e la sua ma (cmo con ma),

qualcuno mi aiuta?

Grazie

 
anonimm:
Ciao,

ho bisogno di due indicatori, uno è wpr(Williams' Percent Range) e la sua ma (wpr con ma), l'altro è cmo (chande momentum osc.)

e la sua ma (cmo con ma),

qualcuno mi aiuta?

Grazie

anonimm

Ecco un WPR con una media (ma)

File:
wpr_ma.mq4  2 kb
 
mladen:
anonimm Ecco un WPR con una media (ma)

Grazie Mladen,

Sto provando per la ma di cmo ma ho avuto un errore (funzione iCMO non definita)...puoi aiutare...? la cmo è allegata

//---- impostazioni dell'indicatore

#proprietà indicator_separate_window

#proprietà indicator_buffers 2

#proprietà indicator_color1 Silver

#proprietà indicator_color2 Red

#proprietà indicator_width1 2

#proprietà indicator_width2 2

//---- parametri dell'indicatore

extern int CMO_Period=21;

extern int MA_Period=14;

extern string m = "--Moving Average Types--";

extern string m0 = " 0 = SMA";

extern string m1 = " 1 = EMA";

extern string m2 = " 2 = SMMA";

extern string m3 = " 3 = LWMA";

extern int MA_Type=1;

//---- buffer di indicatori

double CMO_Buffer[]

double MA_Buffer[]

double iCMO[];

int MA_Mode;

stringa strMAType;

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

//|Funzione di inizializzazione dell'indicatore personalizzata

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

int init()

{

//---- impostazioni di disegno

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexDrawBegin(1,CMO_Period);

IndicatorDigits(Digits+1);

//---- mappatura dei buffer degli indicatori

SetIndexBuffer(0,CMO_Buffer);

SetIndexBuffer(1,MA_Buffer);

//---- nome per DataWindow e etichetta della sottofinestra dell'indicatore

interruttore (MA_Type)

{

caso 1: strMAType="EMA"; MA_Mode=MODE_EMA; break;

caso 2: strMAType="SMMA"; MA_Mode=MODE_SMMA; break;

caso 3: strMAType="LWMA"; MA_Mode=MODE_LWMA; break;

default: strMAType="SMA"; MA_Mode=MODE_SMA; break;

}

IndicatorShortName( "CMO" + " (" + CMO_Period + ") " + " : " + strMAType+ " (" +MA_Period + ") ");

SetIndexLabel(0, "CMO" + " (" +CMO_Period + ") ");

SetIndexLabel(1,strMAType+ " (" + MA_Period + ") ");

//---- inizializzazione fatta

return(0);

}

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

//|Convergenza/Divergenza delle medie mobili

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

int start()

{

int limite;

int counted_bars=IndicatorCounted();

//---- l'ultima barra contata sarà ricontata

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

//---- CMO contato nel 1° buffer

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

CMO_Buffer=iCMO(NULL,0,CMO_Period,i);

//---- linea MA contata nel 2° buffer

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

MA_Buffer=iMAOnArray(CMO_Buffer,Bars,MA_Period,0,MA_Mode,i);

//---- fatto

return(0);

}

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

File:
cmo.mq4  6 kb
 

Mladen, puoi aiutarmi a trovare gli errori?

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color2 Red

//----

double UpperBuf[];

double UpperBuf1[];

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

//| |

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

void init()

{

SetIndexStyle(0, DRAW_NONE, STYLE_SOLID, 1);

//----

SetIndexDrawBegin(0, N);

//----

SetIndexBuffer(0, UpperBuf);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1);

//----

SetIndexDrawBegin(1, N);

//----

SetIndexBuffer(1, UpperBuf1);

}

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

//| |

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

void deinit()

{

//----

}

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

//| |

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

void start()

{

int counted = IndicatorCounted();

//----

if(counted < 0)

return (-1);

//----

if(counted > 0)

counted--;

int limit = Bars - counted;

//----

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

{

UpperBuf= ((High/Close)-34)*Volume;

UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);

}

}

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

 
anonimm:
Grazie Mladen,

Sto provando per la ma di cmo ma ho avuto un errore (funzione iCMO non definita)...potete aiutare...? la cmo è allegata

//---- impostazioni dell'indicatore

#proprietà indicator_separate_window

#proprietà indicator_buffers 2

#proprietà indicator_color1 Silver

#proprietà indicator_color2 Red

#proprietà indicator_width1 2

#proprietà indicator_width2 2

//---- parametri dell'indicatore

extern int CMO_Period=21;

extern int MA_Period=14;

extern string m = "--Moving Average Types--";

extern string m0 = " 0 = SMA";

extern string m1 = " 1 = EMA";

extern string m2 = " 2 = SMMA";

extern string m3 = " 3 = LWMA";

extern int MA_Type=1;

//---- buffer di indicatori

double CMO_Buffer[]

double MA_Buffer[]

double iCMO[];

int MA_Mode;

stringa strMAType;

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

//|Funzione di inizializzazione dell'indicatore personalizzata

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

int init()

{

//---- impostazioni di disegno

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexDrawBegin(1,CMO_Period);

IndicatorDigits(Digits+1);

//---- mappatura dei buffer degli indicatori

SetIndexBuffer(0,CMO_Buffer);

SetIndexBuffer(1,MA_Buffer);

//---- nome per DataWindow e etichetta della sottofinestra dell'indicatore

interruttore (MA_Type)

{

caso 1: strMAType="EMA"; MA_Mode=MODE_EMA; break;

caso 2: strMAType="SMMA"; MA_Mode=MODE_SMMA; break;

caso 3: strMAType="LWMA"; MA_Mode=MODE_LWMA; break;

default: strMAType="SMA"; MA_Mode=MODE_SMA; break;

}

IndicatorShortName( "CMO" + " (" + CMO_Period + ") " + " : " + strMAType+ " (" +MA_Period + ") ");

SetIndexLabel(0, "CMO" + " (" +CMO_Period + ") ");

SetIndexLabel(1,strMAType+ " (" + MA_Period + ") ");

//---- inizializzazione fatta

return(0);

}

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

//|Convergenza/Divergenza delle medie mobili

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

int start()

{

int limite;

int counted_bars=IndicatorCounted();

//---- l'ultima barra contata sarà ricontata

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

//---- CMO contato nel 1° buffer

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

CMO_Buffer=iCMO(NULL,0,CMO_Period,i);

//---- linea MA contata nel 2° buffer

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

MA_Buffer=iMAOnArray(CMO_Buffer,Bars,MA_Period,0,MA_Mode,i);

//---- fatto

return(0);

}

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

Ecco a voi PS : è una versione standalone, non c'è bisogno del cmo

File:
cmo_ma.mq4  2 kb
 
k3rn3l:
Mladen, puoi aiutarmi a trovare gli errori?

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color2 Red

//----

double UpperBuf[];

double UpperBuf1[];

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

//| |

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

void init()

{

SetIndexStyle(0, DRAW_NONE, STYLE_SOLID, 1);

//----

SetIndexDrawBegin(0, N);

//----

SetIndexBuffer(0, UpperBuf);

SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1);

//----

SetIndexDrawBegin(1, N);

//----

SetIndexBuffer(1, UpperBuf1);

}

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

//| |

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

void deinit()

{

//----

}

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

//| |

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

void start()

{

int counted = IndicatorCounted();

//----

if(counted < 0)

return (-1);

//----

if(counted > 0)

counted--;

int limit = Bars - counted;

//----

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

{

UpperBuf= ((High/Close)-34)*Volume;

UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);

}

}

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

k3rn3l

Prova così :

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 Red

double UpperBuf[];

double UpperBuf1[];

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

//| |

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

void init()

{

IndicatorBuffers(2);

SetIndexBuffer(0, UpperBuf1);

SetIndexBuffer(1, UpperBuf);

}

void deinit() {}

void start()

{

int counted = IndicatorCounted();

if(counted < 0) return (-1);

if(counted > 0) counted--;

int limit = Bars - counted;

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

if (Close!=0)

UpperBuf= ((High/Close)-34)*Volume;

else UpperBuf= 0;

for( i = 0; i < limit; i++) UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);

}
 

Caro Mladen;

Grazie ancora per gli indici wpr ma e cmo ma. Supponiamo che per il primo indicatore ho impostato il wpr per a, ma per b, e per il secondo indicatore cmo range a c e ma per a d. Vorrei comprare quando wpr incrocia il suo ma (mentre wpr>level x) e cmo incrocia il suo ma (mentre cmo>level y) allo stesso MINUTO/BAR. (qui è importante, due condizioni devono verificarsi allo stesso tempo), e vendere condizioni inverse.

è possibile?

 
anonimm:
Caro Mladen;

Grazie ancora per gli indici wpr ma e cmo ma. Supponiamo che per il primo indicatore ho impostato il wpr per a, ma per b, e per il secondo indicatore cmo range a c e ma per a d. Vorrei comprare quando wpr incrocia il suo ma (mentre wpr>level x) e cmo incrocia il suo ma (mentre cmo>level y) allo stesso MINUTO/BAR. (qui è importante, due condizioni devono verificarsi allo stesso tempo), e vendere condizioni inverse.

è possibile?

è possibile

Usa iCustom() per controllare le condizioni che stai cercando e poi puoi combinare le condizioni di qualsiasi numero di indicatori personalizzati che usi in un unico segnale.

 

Qualcuno può aiutarmi a correggere questo indicatore per oltre 950 countbar?

File:
 
YSCWL:
Qualcuno può aiutarmi a correggere questo indicatore per oltre 950 countbar?

Provalo

File:
Motivazione: