Buonasera, il mio problema penso sia banale. Vorrei creare un semplicissimo expert che fa la seguente cosa:
all'incrocio di due medie mobili entrare buy se la piu veloce supera la più lenta oppure entrare sell se la più lenta supera la più veloce.(quando dico supera intendo al rialzo).
Ho scritto il mio codice ma molto probabilmente c'è qualcosa che non va perchè mi entra praticamente sempre, ovvero, da come ho capito, per il mio expert basta che una media sia sotto o sopra rispetto all'altra per entrare a mercato, e quindi non entra una sola volta solo quando c'è un incrocio di medie ma entra praticamente sempre. Spero sia stato chiaro, allego il mio codice.
all'incrocio di due medie mobili entrare buy se la piu veloce supera la più lenta oppure entrare sell se la più lenta supera la più veloce.(quando dico supera intendo al rialzo).
Ho scritto il mio codice ma molto probabilmente c'è qualcosa che non va perchè mi entra praticamente sempre, ovvero, da come ho capito, per il mio expert basta che una media sia sotto o sopra rispetto all'altra per entrare a mercato, e quindi non entra una sola volta solo quando c'è un incrocio di medie ma entra praticamente sempre. Spero sia stato chiaro, allego il mio codice.
Codice:
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
if(counted_bars>0) limit++;
for(int i=1; i<limit; i++) {
MA1=iMA(Symbol(),PERIOD_CURRENT,MA1_Periodo,0,METHOD_EXIT,MA_PRICE,i);
MA2=iMA(Symbol(),PERIOD_CURRENT,MA2_Periodo,0,METHOD_EXIT,MA_PRICE,i);
if(OrderTotal()=0){
if(MA1>MA2) Ticket=OrderSend(Symbol(),OP_BUY,Lotti,Ask,0,SL,TP,"Buy",Magic_Number,0,clrBlue);
else if(MA1<MA2) Ticket=OrderSend(Symbol(),OP_SELL,Lotti,Bid,0,SL,TP,"Sell",Magic_Number,0,clrRed); }