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
MetaTrader e libro degli ordini
Ok, devo dire che le variabili predefinite "Ask" e "Bid" memorizzano gli ordini effettivamente migliori... Ma che dire degli altri livelli e lotti dell'order book? Posso comunque utilizzare questi dati nel mio codice?
Per favore aiutatemi, ho cercato molto ovunque sul web ma non ho trovato la risposta.
prota
Una domanda veloce...
Amico, se faccio il grassetto non ho bisogno di fare il sottolineato giusto?
if(Ask>=Line1)
{
posisi=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slipage,0,0, "OneLineEA ver 1.0",Megic,0,Green);
if(OrderSelect(posisi,SELECT_BY_TICKET)==true)
{
posisi=OrderTicket();
}
}
Per favore aiutatemi
Ciao codersguru
Grazie mille per voi
PER FAVORE PUOI SPIEGARE QUESTO STATUTO E IL SIGNIFICATO
for(int shift = Bars-10; shift >= 0; shift--)
{
ExtMapBuffer1[shift] = ma[shift];
ExtMapBuffer2[shift] = ma[shift];
//Stampa (ma[shift]);
se (ma[shift] > ma[shift+1])
{
ExtMapBuffer1[shift] = EMPTY_VALUE;
ExtMapBuffer2[shift+1] = ma[shift+1];
}
altrimenti se (ma[shift] < ma[shift+1])
{
ExtMapBuffer2[shift] = EMPTY_VALUE;
ExtMapBuffer1[shift+1] = ma[shift+1];
}
IN QUESTO EA
//---- impostazioni dell'indicatore
#proprietà indicator_chart_window
#proprietà indicatore_buffer 2
#proprietà indicator_color1 Lime
#proprietà indicator_color2 Red
//---- buffer
doppio ExtMapBuffer1[]
double ExtMapBuffer2[],ma[];
extern int MAType = 1;
extern int MAPeriod = 34;
extern int MAShift = 0;
extern int PriceType=0;
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'indicatore personalizzato |
//+------------------------------------------------------------------+
int init()
{
//---- 2 buffer aggiuntivi sono utilizzati per il conteggio.
IndicatorBuffers(5);
//---- impostazioni di disegno
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexBuffer(2,ma);
SetIndexStyle(0,DRAW_LINE,0,2);
SetIndexStyle(1,DRAW_LINE,0,2);
//---- inizializzazione fatta
return(0);
}
int start()
{
for(int i = Bars-10; i >= 0; i--)
{
ma=iMA(NULL,0,MAPeriod,MAShift,MAType,PriceType,i);
}
for(int shift = Bars-10; shift >= 0; shift--)
{
ExtMapBuffer1[shift] = ma[shift];
ExtMapBuffer2[shift] = ma[shift];
//Stampa (ma[shift]);
se (ma[shift] > ma[shift+1])
{
ExtMapBuffer1[shift] = EMPTY_VALUE;
ExtMapBuffer2[shift+1] = ma[shift+1];
}
altrimenti se (ma[shift] < ma[shift+1])
{
ExtMapBuffer2[shift] = EMPTY_VALUE;
ExtMapBuffer1[shift+1] = ma[shift+1];
}
}
return(0);
}
//+------------------------------------------------------------------+
grazie
Non è l'EA, è l'indicatore, che ti mostra i momenti in cui l'indicatore"Moving Average" sale o scende.
Il codice che ti serve calcola solo le ultime dieci barre.
Mettilo nella directory /indicators e riavvia il tuo terminale.
il diffrente
ciao a tutti
può aiutarmi
quali sono le differenze tra EMA5c e EMA5p
cosa significa (EMA5c>EMA10c && EMA5pEMA10c))
double EMA5c = iMA(NULL,TimeFrame,5,0,MODE_EMA,PRICE_CLOSE, 0 );
double EMA10c = iMA(NULL,TimeFrame,10,0,MODE_EMA,PRICE_CLOSE, 0);
double EMA5p = iMA(NULL,TimeFrame,5,0,MODE_EMA,PRICE_CLOSE, 1 );
double EMA10p = iMA(NULL,TimeFrame,10,0,MODE_EMA,PRICE_CLOSE,1);
I nomi sono solo nomi di variabili e non hanno alcun significato in quanto tali. I programmatori di solito scelgono i nomi delle variabili in modo che sia auto esplicativo del tipo di valore che si suppone debbano contenere. Guardando quei due sembra che il programmatore abbia scelto di aggiungere il suffisso c alla variabile delle barre correnti e p alla variabile delle barre precedenti.
Lux
Ehi amico ho una domanda, ho un indicatore che un amico mi ha dato che ho dimostrato per un paio di settimane e lo amo. Breve spiegazione, una freccia appare sui miei grafici dicendomi da che parte giocare il movimento. Lo sto usando su grafici a 30 metri, quindi non viene fuori troppo spesso. C'è un modo per fare in modo che quando la freccia appare per la posizione lunga chiuda la mia posizione corta e vada lunga, o se non c'è una posizione corta vada lunga. Anche viceversa con il segnale short?
Non ho visto un pulsante di modifica, quindi ecco il codice. Non sembra che sarebbe troppo difficile aggiungere solo il codice di acquisto o vendita. Questo è dal codice zigzag. Libero ind.
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- indicator parameters
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;
//---- indicator buffers
double ZigzagBuffer[];
double HighMapBuffer[];
double LowMapBuffer[];
int level=3; // recounting's depth
bool downloadhistory=false;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
//---- drawing settings
SetIndexStyle(0,DRAW_SECTION);
//---- indicator buffers mapping
SetIndexBuffer(0,ZigzagBuffer);
SetIndexBuffer(1,HighMapBuffer);
SetIndexBuffer(2,LowMapBuffer);
SetIndexEmptyValue(0,0.0);
//---- indicator short name
IndicatorShortName("ZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int i, counted_bars = IndicatorCounted();
int limit,counterZ,whatlookfor;
int shift,back,lasthighpos,lastlowpos;
double val,res;
double curlow,curhigh,lasthigh,lastlow;
if (counted_bars==0 && downloadhistory) // history was downloaded
{
ArrayInitialize(ZigzagBuffer,0.0);
ArrayInitialize(HighMapBuffer,0.0);
ArrayInitialize(LowMapBuffer,0.0);
}
if (counted_bars==0)
{
limit=Bars-ExtDepth;
downloadhistory=true;
}
if (counted_bars>0)
{
while (counterZ<level && i<100)
{
res=ZigzagBuffer;
if (res!=0) counterZ++;
i++;
}
i--;
limit=i;
if (LowMapBuffer!=0)
{
curlow=LowMapBuffer;
whatlookfor=1;
}
else
{
curhigh=HighMapBuffer;
whatlookfor=-1;
}
for (i=limit-1;i>=0;i--)
{
ZigzagBuffer=0.0;
LowMapBuffer=0.0;
HighMapBuffer=0.0;
}
}
for(shift=limit; shift>=0; shift--)
{
val=Low;
if(val==lastlow) val=0.0;
else
{
lastlow=val;
if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=LowMapBuffer[shift+back];
if((res!=0)&&(res>val)) LowMapBuffer[shift+back]=0.0;
}
}
}
if (Low[shift]==val) LowMapBuffer[shift]=val; else LowMapBuffer[shift]=0.0;
//--- high
val=High;
if(val==lasthigh) val=0.0;
else
{
lasthigh=val;
if((val-High[shift])>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=HighMapBuffer[shift+back];
if((res!=0)&&(res<val)) HighMapBuffer[shift+back]=0.0;
}
}
}
if (High[shift]==val) HighMapBuffer[shift]=val; else HighMapBuffer[shift]=0.0;
}
// final cutting
if (whatlookfor==0)
{
lastlow=0;
lasthigh=0;
}
else
{
lastlow=curlow;
lasthigh=curhigh;
}
for (shift=limit;shift>=0;shift--)
{
res=0.0;
switch(whatlookfor)
{
case 0: // look for peak or lawn
if (lastlow==0 && lasthigh==0)
{
if (HighMapBuffer[shift]!=0)
{
lasthigh=High[shift];
lasthighpos=shift;
whatlookfor=-1;
ZigzagBuffer[shift]=lasthigh;
res=1;
}
if (LowMapBuffer[shift]!=0)
{
lastlow=Low[shift];
lastlowpos=shift;
whatlookfor=1;
ZigzagBuffer[shift]=lastlow;
res=1;
}
}
break;
case 1: // look for peak
if (LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0)
{
ZigzagBuffer[lastlowpos]=0.0;
lastlowpos=shift;
lastlow=LowMapBuffer[shift];
ZigzagBuffer[shift]=lastlow;
res=1;
}
if (HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0)
{
lasthigh=HighMapBuffer[shift];
lasthighpos=shift;
ZigzagBuffer[shift]=lasthigh;
whatlookfor=-1;
res=1;
}
break;
case -1: // look for lawn
if (HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0)
{
ZigzagBuffer[lasthighpos]=0.0;
lasthighpos=shift;
lasthigh=HighMapBuffer[shift];
ZigzagBuffer[shift]=lasthigh;
}
if (LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0)
{
lastlow=LowMapBuffer[shift];
lastlowpos=shift;
ZigzagBuffer[shift]=lastlow;
whatlookfor=1;
}
break;
default: return;
}
}
return(0);
}
//+------------------------------------------------------------------+domanda da principiante
ciao a tutti
è possibile cercare un indicatore personalizzato sulla candela precedente? se sì, cosa devo fare?
fondamentalmente voglio cercare il colore dell'indicatore
Grazie in anticipo
ciao a tutti
è possibile cercare un indicatore personalizzato sulla candela precedente? se sì, cosa devo fare?
fondamentalmente voglio cercare il colore dell'indicatore
Grazie in anticipoGuarda nel file di aiuto del metaeditor alla funzione iCustom.
Lux