stai mettendo condizioni troppo stringenti, troppa roba da verificare nelle if: ho provato a mettere la tua funzione dentro un EA vuoto e con il Visual tester a stampare il valore di BuySell.
ottengo sempre BuySell = 0.
la condizione Buy o la condizione Sell non si verifica mai !
consiglio di
- stampare a video la variabile BuySell ad ogni avvio di barra
- iniziare le verifiche mettendo una sola condizione per il Buy e una sola, quella complementare, per il Sell
- poi, solo dopo che hai verificato che funziona, aumentare le condizioni
Poi ci sono inesattezze nel codice:
MaPeriod è variabile int nella funzione iMA(...) e non double
infine, io metterei le condizioni IF in cascata del tipo
if ( BuySell...
else if (BuySell...
else ...
Announcement
Collapse
No announcement yet.
Tocco media
Collapse
X
-
Tocco media
Tocco media
In questa funzione perché mi esegue solo la condizione Buy dov'è l'errore
PHP Code:int BuySell = 0;
int ToucMA(int TimeFrame, double MaPeriod)
{
// Per convenzione si usa
// +1 = BUY
// 0 = Tutto bene, ma non fa niente
// -1 = SELL
double Ima = iMA(NULL, TimeFrame, MaPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
// MedIA ombra inf Media che taglia la candela per buy Candela verde
if ( BuySell !=1 && Low[2] < Ima && Open[2]> Ima && Open[1] > Ima && Close[1] > Ima && Open[0] < Close[0])//buy
{
BuySell = 1;
return +1;
}
// MedIA ombra sup Media che taglia la candela per sel Candela rossa
if (BuySell != - 1 && High[2] > Ima && Open[2]< Ima && Open[1] < Ima && Close[1] > Ima && Open[0] > Close[0])//SELL
{
BuySell =-1;
return -1;
}
else
BuySell=0;
return 0;
}
Grazie anticipatamenteTags: None
Leave a comment: