Chiedete! - pagina 97

 

Ancora problemi

Ciao a tutti,

Grazie Big Be per aver dato un'occhiata al mio EA. Il mio RSI stocastico è senza la sottolineatura. Quando ho provato con, mi ha dato un errore. Ma ho scoperto alcune cose.

1) Quando provo Strategy Tester sui time frame inferiori, sembra funzionare più velocemente. Una volta che arrivo a H1 o oltre, diventa molto lento. Suppongo che sia perché deve fare troppi controlli su ogni tick. C'è qualcosa che si può fare per questo? Vorrei ottimizzarlo per H4 e possibilmente anche per Daily.

2) C'è ancora il problema del primo trade che avviene prima di un vero e proprio cross.

3) Quando guardo i miei backtest, sembra che manchi completamente alcuni trade. È perché i miei dati sono difettosi/miscelati? Ho controllato in giro e ho trovato un posto dove New Digital spiega come ottenere i dati per il broker che stiamo usando andando nella cronologia e facendo doppio clic su di essa... poi aprendo ogni time frame e tenendo premuto "Page Up" fino alla fine, ma non sembra aiutare.

La parte del programma che ti ho mandato è solo una parte di 3. Devo ancora aggiungere le altre 3 parti. Se non riesco a far diventare più veloce lo Strategy Tester, non saprò mai se è un'idea redditizia.

Qualsiasi idea o suggerimento sarà utile.

Saluti,

Putz

 

Studia quello che ho fatto per un EA Volatility Quality Index che ho sistemato, Kiko_v2.

Vedi il post 319 qui:

https://www.mql5.com/en/forum/general

Buon divertimento,

Grande Essere

 

Vq

Ciao Big Be

Grazie per l'idea. Ci lavorerò questo fine settimana...e se tutto funziona alla grande...dovrei essere ricco per il prossimo fine settimana...hahaha

Putz

 

Aiuto...per favore

Ciao Big Be e tutti i programmatori,

Big Be, ho studiato il tuo EA di volatilità ma ora sembra che non fosse il mio problema dopo tutto. Stavo usando IBFX per il mio backtesting e non avevo altro che problemi. Alla fine mi sono arreso e ho scaricato Alpari e funziona molto meglio.

Almeno ora non ci vogliono giorni per fare un backtest sui miei EA. Così ho ricominciato tutto da capo e ho ricostruito il mio programma da zero e non piazza nessun ordine.

Il programma è fondamentalmente l'EMS Fresh Cross di codersguru ma voglio che sia basato sullo stocastico RSI e quando lo stocastico RSI attraversa la linea 50. Ho lasciato quasi tutto come da codersguru comprese le variabili per rendere più facile isolare il problema.

Credo che il problema sia nella funzione iCustom dato che è praticamente l'unico cambiamento che ho fatto al programma e non prende nessun ordine. Qualcuno può dare un'occhiata e vedere se può trovare il mio errore. Sono due settimane che cerco di farlo funzionare e mi sta facendo impazzire.

Ho messo un paio di note precedute da //

Grazie

Putz

#property copyright "Putz FX

#property link "http://www.putzfx.com"

//---- input parameters

extern double TakeProfit=130;

extern double StopLoss = 60;

extern double Lots=1;

extern double TrailingStop=30;

extern double TimeFrame= 60;

extern bool ExitOnCross = true;

extern int MagicNumber = 444444;

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

int FreshCross ()

{

//This was added in based on what I could figure from Big Be.

if (Volume[0] != 1) return(0);

//what is the difference between using "Null" or "Symbol()" in iCustom as

//neither one works.

double SEma, LEma,SEmaP, LEmaP;

//The following 4 lines have been changed from the original

SEma = iCustom(Symbol(),PERIOD_H1,"Stochastic RSI",28,55,9,0,0);

LEma = 50;

SEmaP = iCustom(Symbol(),PERIOD_H1,"Stochastic RSI",28,55,9,0,1);

LEmaP = 50;

//Don't work in the first load, wait for the first cross!

//some changes were done to the below two lines as he was comparing the

//return value with the Ask or Bid and Close values

if(SEma>LEma && SEmaP < LEmaP) return(1); //up

if(SEma LEmaP) return(2); //down

return (0); //not changed

}

//+------------------------------------------------------------------+

//| Check Open Position Controls |

//+------------------------------------------------------------------+

int CheckOpenTrades()

{

int cnt;

int NumTrades; // Number of buy and sell trades in this symbol

NumTrades = 0;

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)

{

OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol() != Symbol()) continue;

if ( OrderMagicNumber() != MagicNumber) continue;

if(OrderType() == OP_BUY ) NumTrades++;

if(OrderType() == OP_SELL ) NumTrades++;

}

return (NumTrades);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

//----

int cnt, ticket, total;

double TP;

if(Bars<100)

{

Print("bars less than 100");

return(0);

}

/* if(TakeProfit<10)

{

Print("TakeProfit less than 10");

return(0); // check TakeProfit

}

*/

int isCrossed = 0;

isCrossed = FreshCross ();

total = CheckOpenTrades();

if(total < 1)

{

if(isCrossed == 1)

{

TP = 0;

if (TakeProfit > 0) TP = Ask + TakeProfit * Point;

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,TP,"EMA_CROSS",MagicNumber,0,Green);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());

}

else Print("Error opening BUY order : ",GetLastError());

return(0);

}

if(isCrossed == 2)

{

TP = 0;

if (TakeProfit > 0) TP = Bid - TakeProfit * Point;

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,TP,"EMA_CROSS",MagicNumber,0,Black);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());

}

else Print("Error opening SELL order : ",GetLastError());

return(0);

}

return(0);

}

total = OrdersTotal();

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

//OrderPrint();

if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

if(OrderType()==OP_BUY) // long position is opened

{

// should it be closed?

/* REMOVED - Trailling stop only close */

if(ExitOnCross && isCrossed == 2)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Black); // close position

return(0); // exit

}

/**/

// check for trailing stop

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

return(0);

}

}

}

}

else // go to short position

{

// should it be closed?

/* REMOVED - Trailling stop only close */

if(ExitOnCross && isCrossed == 1)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Black); // close position

return(0); // exit

}

/* */

// check for trailing stop

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

return(0);

}

}

}

}

}

}

return(0);

}

//+------------------------------------------------------------------+
 

Hai verificato che la tua RSI stocastica prende 3 parametri di input?

(Quello che ho guardato io ne prende 4)

 

che aiuta

Ciao Ralph,

Grazie per il tuo aiuto. Il mio ha due buffer ma 4 parametri di input. Ho provato con 4 parametri e non ha funzionato, ma poi ho provato con 2 e ho ottenuto un ordine. Ora devo solo risolvere il resto. Grazie per avermi sbloccato.

Putz

 

Domanda noob da noobie!

post spostato qui: https://www.mql5.com/en/forum

File:
buy.jpg  7 kb
 

qualcuno mi aiuta?

ciao a tutti

tutti voi conoscete l'indicatore Pivot_Monday_fixed

ho bisogno di alcune modifiche in questo indicatore

Voglio solo la linea pivot e altre quattro linee

2 colore blu Pivot +20 e Pivot + 40

2 colore rosso Pivot - 20 e Pivot - 40

solo 5 linee

grazie

File:
 

Domanda stupida

Qualcuno può dirmi il modo più veloce per convertire il file mq4 di un EA in un file ex4?

So che viene visualizzato nei file esperti come ex4 dopo l'esecuzione su mt4 una volta, ma questo è l'unico modo per farlo?

Grazie in anticipo

 
fxgrm:
Qualcuno può dirmi il modo più veloce per convertire il file mq4 di un EA in un file ex4?

So che viene visualizzato nei file esperti come ex4 dopo aver eseguito su mt4 una volta, ma questo è l'unico modo per farlo?

Grazie in anticipo

Aprite il vostro file .mq4 nel MetaEditor, poi cliccate su "Compile" e il file .ex4 viene creato.

Motivazione: