![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
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
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?
Grazieanonimm
Ecco un WPR con una media (ma)
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);
}
//+------------------------------------------------------------------+
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);
}
}
//+------------------------------------------------------------------+
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
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_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?![](https://c.mql5.com/forextsd/smiles/smile.png)
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?Sì
è 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?
Qualcuno può aiutarmi a correggere questo indicatore per oltre 950 countbar?
Provalo