Ciao a tutti ragazzi come avrete capito sono un cosiddetto neofita.Ho iniziato da poco a studiare mql anche grazie a voi..il materiale su cui sto lavorando è il libro di Yung.."Expert advisor programming"...sono riuscito ad assimilare i concetti di base e adesso sono arrivato alle prime funzioni articolate...prendo appunti e per imparare cerco di capire la logica di ogni codice ma mi sono bloccato su una che serve per assegnare al valore esterno "slippage" un valore diverso in base ai decimali usati dalla piattaforma..
in pratica non riesco a capirne la logica e mi rendo conto che mi trovo ad un punto cruciale del mio percorso di apprendimento...
qualcuno potrebbe aiutarmi a spiegare cosa vuole dire qusta istruzione?
extern int Slippage = 5;
// Order placement
OrderSend(Symbol(),OP_BUY,LotSize,Ask,GetSlippage( Symbol(),Slippage),BuyStopLoss,
BuyTakeProfit,"Buy Order",MagicNumber,0,Green);
int GetSlippage(string Currency, int SlippagePips)
{
int CalcDigits = MarketInfo(Currency,MODE_DIGITS);
if(CalcDigits == 2 || CalcDigits == 4) double CalcSlippage = SlippagePips;
else if(CalcDigits == 3 || CalcDigits == 5) CalcSlippage = SlippagePips * 10;
return(CalcSlippage);
}
...ci provo....abbiamo uno slippage predefinito con valore 5...
...quando l'ordine sarà inserito il valore di questo slippage(fin ora predefinito) deve essere ricalcolato dalla funzione "GetSlippage"..
...la funzione "GetSlippage" dice :
1)....int GetSlippage(string Currency, int SlippagePips)
che significa? ....questa funzione darà come risultato un nuovo valore per la variabile "Currency"????? a cosa serve in definitivo questa riga???
2)....{int CalcDigits = MarketInfo(Currency,MODE_DIGITS);
che dovrebbe significare .......sappi che la variabile "CalcDigits" risulta essere ..il numero di decimali usati da "Currency"...
3)...if(CalcDigits == 2 || CalcDigits == 4) double CalcSlippage = SlippagePips;
che dovrebbe significare .......se il numero di decimali usati da "Currency" è 2 oppure 4 allora la variabile "CalcSlippage" deve
essere inizializzata con il valore di "SlippagePips"...ma mi chiedo...quale è il valore di "SlippagePips"
????????e a cosa serve la variabile "CalcSlippage"?????
4)...else if(CalcDigits == 3 || CalcDigits == 5) CalcSlippage = SlippagePips * 10;
che dovrebbe significare ......se invece il numero di decimali usati da "Currency" è 3 oppure 5 allora la variabile "CalcSlippage" deve
essere inizializzata con il valore di "SlippagePips" * 10.....
5)...return(CalcSlippage);
che dovrebbe significare ....alla fine il valore di questa funzione deve dare come risultato quello di "CalcSlippage"
spero che qualcuno di voi abbia la pazienza e la bontà di potermi chiarire questi dubbi atroci...
in pratica non riesco a capirne la logica e mi rendo conto che mi trovo ad un punto cruciale del mio percorso di apprendimento...
qualcuno potrebbe aiutarmi a spiegare cosa vuole dire qusta istruzione?
extern int Slippage = 5;
// Order placement
OrderSend(Symbol(),OP_BUY,LotSize,Ask,GetSlippage( Symbol(),Slippage),BuyStopLoss,
BuyTakeProfit,"Buy Order",MagicNumber,0,Green);
int GetSlippage(string Currency, int SlippagePips)
{
int CalcDigits = MarketInfo(Currency,MODE_DIGITS);
if(CalcDigits == 2 || CalcDigits == 4) double CalcSlippage = SlippagePips;
else if(CalcDigits == 3 || CalcDigits == 5) CalcSlippage = SlippagePips * 10;
return(CalcSlippage);
}
...ci provo....abbiamo uno slippage predefinito con valore 5...
...quando l'ordine sarà inserito il valore di questo slippage(fin ora predefinito) deve essere ricalcolato dalla funzione "GetSlippage"..
...la funzione "GetSlippage" dice :
1)....int GetSlippage(string Currency, int SlippagePips)
che significa? ....questa funzione darà come risultato un nuovo valore per la variabile "Currency"????? a cosa serve in definitivo questa riga???
2)....{int CalcDigits = MarketInfo(Currency,MODE_DIGITS);
che dovrebbe significare .......sappi che la variabile "CalcDigits" risulta essere ..il numero di decimali usati da "Currency"...
3)...if(CalcDigits == 2 || CalcDigits == 4) double CalcSlippage = SlippagePips;
che dovrebbe significare .......se il numero di decimali usati da "Currency" è 2 oppure 4 allora la variabile "CalcSlippage" deve
essere inizializzata con il valore di "SlippagePips"...ma mi chiedo...quale è il valore di "SlippagePips"
????????e a cosa serve la variabile "CalcSlippage"?????
4)...else if(CalcDigits == 3 || CalcDigits == 5) CalcSlippage = SlippagePips * 10;
che dovrebbe significare ......se invece il numero di decimali usati da "Currency" è 3 oppure 5 allora la variabile "CalcSlippage" deve
essere inizializzata con il valore di "SlippagePips" * 10.....
5)...return(CalcSlippage);
che dovrebbe significare ....alla fine il valore di questa funzione deve dare come risultato quello di "CalcSlippage"
spero che qualcuno di voi abbia la pazienza e la bontà di potermi chiarire questi dubbi atroci...
Comment