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
Sto cercando una soluzione per applicare gli algoritmi degli indicatori su array di prezzi.
in MQL4 alcuni indicatori hanno questa funzione, come: iCCIOnArray, iBandsOnArray...
Ma indicatori come ADX non hanno questa funzione.
Qualcuno ha idea di come posso applicare il calcolo degli indicatori su un array predefinito (non dal server delle quotazioni)?[lang=pl]Se sai come viene calcolato un dato indicatore puoi fare tutto:)
Per favore, spiega più precisamente di cosa hai bisogno
Grazie,
Grzesiek[/lang]
...
ADX usa quello che si chiamaatrue range(Max(High,PreviousClose)-Min(Low,PreviousClose) e questa è la base del calcolo di ADX
A causa dei valori High, Low e Close richiesti non può essere applicato ad un array, In generale, se si vede che c'è un prezzo richiesto, allora l'indicatore dovrebbe essere applicabile ad un array. Se non c'è un parametro di prezzo, allora quasi sicuramente non può essere applicato ad una matrice (supponendo che l'indicatore in primo luogo stia operando sui prezzi)
[lang=pl]Se sai come viene calcolato un dato indicatore puoi fare tutto:)
Per favore, spiegate più precisamente di cosa avete bisogno
Grazie,
Grzesiek[/lang]Grazie Grzesiek.
Stavo cercando una buona soluzione. alla fine, la risoluzione migliore è quella di incorporare il codice indi nel codice esperto.
Comunque, a meno che qualcuno non mi mostri un altro modo, lo applicherò in questo modo.
Hai il file sorgente? Il file *.ex4 è compilato, quindi non hai accesso al codice sorgente.
Saluti
richiesta
stella821
Prova questo
________________________
Alcune spiegazioni: Non ho usato quelli che hai postato ma ho fatto questi (l'indicatore allegato nel tuo post ha il mio nome, ma quella versione non è fatta da me, ma questo non è l'unico motivo per cui non ho usato quell'indicatore). ...
saluti
Mladenciao Mladen
è possibile adattare l'EA stc per un colore HMA nrp-indi e High-low trend indi?
ho scritto uno pseudo codice (* non so codificare affatto... *):
************************************************************
esterni:
Lotto#
periodo per l'HMA
???.
.....................
ripetere:
ottenere il colore del punto zigzag (chiusura della barra);
ottenere il colore del trend HMA (chiusura della barra);
----------------------------------------------------------------
// aprire vendere
se l'ultimo zigzag-dot = blu && HMA trend = rosso -> aprire ticket SELL (solo una volta per colore HMA trend)
se non è possibile aprire la vendita-> riprova 3 volte
se non c'è successo avviso & email: impossibile aprire la vendita per simbolo, TF, tempo;
altrimenti
// aprire acquisto
se ultimo punto zigzag = rosso && HMA trend = blu -> aprire ticket BUY (solo una volta per colore trend HMA)
se non è possibile aprire buy-> riprova 3 volte
se nessun successo avviso & email: impossibile aprire buy per simbolo,TF, tempo;
-------------------------------------------------------------------
se il trend HMA ( rosso ) cambia in blu -> chiudere vendere, aspettare 10 sec;
se il trend HMA (blu) cambia in rosso -> chiudi acquisto, aspetta 10 sec;
-------------------------------------------------------------------
chiudere tutte le operazioni il venerdì alle 12:00h AM (GMT)...
****************************************************************
so che ci saranno delle perdite ma non mi preoccupa...
non voglio alcun SL ...
saluti
Cado
hma_color_nrp.ex4high_-_low_trend.mq4
ATR + MA & Larghezza di banda + MA
[lang=it]Ciao, ho bisogno di un indicatore personalizzato che, in una finestra separata, scriva l'atr e la media mobile e calcoli la stessa cosa per la larghezza di banda. Ho fatto il codice in mql4 e ho usato l'IMAONARRAY per calcolare la MA, ma l'indicatore non funziona.
Questo è uno dei codici di teo.
Grazie
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- input parameters
extern int AtrPeriod=14;
//---- buffers
double AtrBuffer[];
double TempBuffer[];
double MaBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- 1 additional buffer used for counting.
IndicatorBuffers(2);
//---- indicator line
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,AtrBuffer);
SetIndexBuffer(1,TempBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,MaBuffer);
//---- name for DataWindow and indicator subwindow label
short_name="ATR("+AtrPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,AtrPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Average True Range |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
//----
if(Bars<=AtrPeriod) return(0);
//---- initial zero
if(counted_bars<1)
for(i=1;i<=AtrPeriod;i++) AtrBuffer=0.0;
//----
i=Bars-counted_bars-1;
while(i>=0)
{
double high=High;
double low =Low;
if(i==Bars-1) TempBuffer=high-low;
else
{
double prevclose=Close;
TempBuffer=MathMax(high,prevclose)-MathMin(low,prevclose);
}
i--;
}
//----
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
for(i=0; i<limit; i++)
AtrBuffer=iMAOnArray(TempBuffer,Bars,AtrPeriod,0,MODE_SMA,i);
//----
double MyArray[];
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
ArrayResize( MyArray, limit);
ArraySetAsSeries(MyArray,true);
for(i=0; i<limit; i++)
{
MyArray = AtrBuffer;
}
for(i=0; i<limit; i++)
{
MaBuffer = iMAOnArray(MyArray,limit,10,0,MODE_SMA,i);
}
//----
return(0);
}
//+------------------------------------------------------------------+[/lang]
...
Provalo ora
[Ciao, ho bisogno di un indicatore personalizzato che, in una finestra separata, scriva atr e calcoli la media mobile e la stessa cosa per la larghezza di banda. Ho fatto il codice in mql4 e ho usato l'IMAONARRAY per calcolare la MA, ma l'indicatore non funziona.
Questo è uno dei codici di teo...
Grazie
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- input parameters
extern int AtrPeriod=14;
//---- buffers
double AtrBuffer[];
double TempBuffer[];
double MaBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- 1 additional buffer used for counting.
IndicatorBuffers(2);
//---- indicator line
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,AtrBuffer);
SetIndexBuffer(1,TempBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,MaBuffer);
//---- name for DataWindow and indicator subwindow label
short_name="ATR("+AtrPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,AtrPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Average True Range |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
//----
if(Bars<=AtrPeriod) return(0);
//---- initial zero
if(counted_bars<1)
for(i=1;i<=AtrPeriod;i++) AtrBuffer=0.0;
//----
i=Bars-counted_bars-1;
while(i>=0)
{
double high=High;
double low =Low;
if(i==Bars-1) TempBuffer=high-low;
else
{
double prevclose=Close;
TempBuffer=MathMax(high,prevclose)-MathMin(low,prevclose);
}
i--;
}
//----
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
for(i=0; i<limit; i++)
AtrBuffer=iMAOnArray(TempBuffer,Bars,AtrPeriod,0,MODE_SMA,i);
//----
double MyArray[];
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
ArrayResize( MyArray, limit);
ArraySetAsSeries(MyArray,true);
for(i=0; i<limit; i++)
{
MyArray = AtrBuffer;
}
for(i=0; i<limit; i++)
{
MaBuffer = iMAOnArray(MyArray,limit,10,0,MODE_SMA,i);
}
//----
return(0);
}
//+------------------------------------------------------------------+[lang=tr]Ciao Qualcuno può aiutarmi a costruire questa formula nel codice di metatrader
(questo è in formula metastock:)
Q1:=Input("PERIOD",1,1000,3);
Q2:=Input("PERIOD",0.001,100,1);
Q3:=Q2/100;
Q4:=Mov( Tipico(),Q1,E) ;
Q5:=If((Q4*(1-Q3))>PREV,Q4*(1-Q3),If((Q4*(1+Q3))<PREV,Q4*(1+Q3),PREV));
Q5
[/lang]
...
Interessante
L'unica cosa che dovete regolare per i diversi time frame è la percentuale. L'1% sembra una buona scelta per un grafico a 4 ore, ma ecco un esempio di un grafico a 15 minuti con lo 0,5% invece dell'1% predefinito
PS: Non ho idea di quale sia il nome originale, quindi l'ho chiamato così com'è
saluti
mladen
[lang=tr]Ciao Qualcuno può aiutarmi a costruire questa formula nel codice di metatrader
(questo è nella formula di metastock:)
Q1:=Input("PERIOD",1,1000,3);
Q2:=Input("PERIOD",0.001,100,1);
Q3:=Q2/100;
Q4:=Mov( Tipico(),Q1,E) ;
Q5:=If((Q4*(1-Q3))>PREV,Q4*(1-Q3),If((Q4*(1+Q3))<PREV,Q4*(1+Q3),PREV));
Q5
[/lang]Interessante
L'unica cosa che dovete regolare per i diversi time frame è la percentuale. L'1% sembra una buona scelta per un grafico a 4 ore, ma ecco un esempio di un grafico a 15 minuti con lo 0,5% invece dell'1% di default
PS: Non ho idea di quale sia il nome originale, quindi l'ho chiamato così com'è
saluti
mladen[lang=tr]grazie mladen lo proverò, penso che funzionerà [/lang]