Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 2
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
Non per chiamare da un altro indicatore :)
O mostra come lo fai tu.
Lo chiamo da questa funzione
int n=0;
for(int i=shift; i<count_find; i++) {
//double price_fractal=iFractals(symbol,timeframe,mode_fractal,i);
double price_fractal=NormalizeDouble(iCustom(symbol,timeframe,"X-bars",InpLeftSide,InpRightSide,mode_fractal,i),Digits);
if(price_fractal>0) {
n++;
if(n==number_fractal) {
bar_fractal=i;
return(price_fractal);
}
}
}
return(EMPTY_VALUE);
}
E a sua volta da questo
if(count_fractals<1) return(false);
double pt=SymbolInfoDouble(symbol,SYMBOL_POINT);
int n=1, dg=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
for(int i=n; i<=count_fractals; i++) {
double price_fractal=GetPriceFractal(symbol,timeframe,mode_fractal,count_find,n,bar_fractal,shift);
double result_compare=fabs(NormalizeDouble(price_fractal-match_price,dg));
if(result_compare<delta_points*pt) {
if(mode_fractal==0) BufferFractalUp[bar_fractal]=price_fractal;
else BufferFractalDn[bar_fractal]=price_fractal;
/// Print("Цена бара с фракталом ",n," совпала с проверяемой ценой, возвращаем true");
return(true);
}
n++;
}
return(false);
}
Questo è in OnCalculate()
Chiamare da questa funzione
int n=0;
for(int i=shift; i<count_find; i++) {
//double price_fractal=iFractals(symbol,timeframe,mode_fractal,i);
double price_fractal=NormalizeDouble(iCustom(symbol,timeframe,"X-bars",InpLeftSide,InpRightSide,mode_fractal,i),Digits);
if(price_fractal>0) {
n++;
if(n==number_fractal) {
bar_fractal=i;
return(price_fractal);
}
}
}
return(EMPTY_VALUE);
}
Bene... non lo chiami correttamente - ha solo due parametri nelle impostazioni, e ne metti 3 dopo il nome.
E perché lo stai normalizzando? Non ce n'è bisogno.
Lo chiamo da questa funzione
int n=0;
for(int i=shift; i<count_find; i++) {
//double price_fractal=iFractals(symbol,timeframe,mode_fractal,i);
double price_fractal=NormalizeDouble(iCustom(symbol,timeframe,"X-bars",InpLeftSide,InpRightSide,mode_fractal,i),Digits);
if(price_fractal>0) {
n++;
if(n==number_fractal) {
bar_fractal=i;
return(price_fractal);
}
}
}
return(EMPTY_VALUE);
}
Nota, che in mode_fractal devi scrivere il numero di buffer di questo indicatore personalizzato - per lo 0 superiore, per l'1 inferiore. Altrimenti, nei frattali standard, i valori di identificazione per i frattali non coincidono con i valori di buffer di questo indicatore personalizzato:
Frattali standard:
Costante
Valore
Descrizione
MODE_UPPER
1
Linea superiore
MODE_LOWER
2
Linea di fondo
Buffer dell'indicatore personalizzato:
0 Linea superiore
1 Linea di fondo
Bene... non lo chiami correttamente - ha solo due parametri nelle impostazioni e ne metti 3 dopo il nome.
E perché lo state normalizzando? Non ne hai bisogno qui.
mode_fractal è il frattale superiore o inferiore, non potete farne a meno.
Lo zero è scritto dopo il periodo
mode_fractal è frattale superiore o inferiore, come senza.
lo zero è inscritto dopo il periodo
Ho scritto sopra che i valori dell'indicatore standard e di quello personalizzato non corrispondono.
Perché non c'è Fibonacci in Meta Trader 4 ma nella descrizione?
In che senso no? C'è: voce di menu "Inserisci" --> "Fibonacci"
MetaTrader4 da PlayMarket