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
Prevenire l'overtrading
Ciao a tutti,
Ho testato il mio EA utilizzando il metodo all ticks su un grafico H4 usando un MACD cross per avviare gli ordini (tra gli altri) e il tester della strategia apre circa 200 posizioni nei primi minuti, quindi dopo aver fatto qualche lettura mi rendo conto che ho bisogno di limitare il numero di trade che piazza, sul mio sistema non dovrebbe piazzare più di 1 trade ogni 4 ore perché aspetto che la candela si chiuda prima usando iMACD(... PRICE_CLOSE...) e lo sfasamento per 0 per MACDMainCurrent & MACDSymbolCurrent e 1 per MACDMainPrevious & MACDSymbolPrevious.
Le mie variabili globali sono
string hasOrderedGV = "has_ordered_GV";
stringa barsGV = "bars_GV";
E ho inserito questo codice prima che il mio EA controlli le posizioni lunghe o corte:
//--- Determinare se l'ordine è già stato piazzato sul blocco orario H4
se ((GlobalVariableGet (barsGV) == 0) || (GlobalVariableGet (barsGV) < Bars))
{
GlobalVariableSet(hasOrderedGV,false);
GlobalVariableSet(barsGV,Bars);
}
//--- Controlla la possibilità di posizione lunga (BUY)
se (GlobalVariableGet (hasOrderedGV, false))
{
se ... (qui è dove controllo effettivamente l'incrocio MACD tra altri indicatori).
Poi se l'ordine si è aperto con successo:
se (Ticket > 0)
{
GlobalVariableSet(hasOrderedGV,true);
{
se (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES))
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), GetTPPriceShort(SLPriceShort, RiskRewardRatio), OrderExpiration(), Green);
etc etc.
Qualcuno può dirmi se sto procedendo nel modo giusto? Non so se c'è un modo più efficiente o accurato di farlo? Grazie.
...
Perché non conti semplicemente quanti ordini il tuo EA ha già aperto e se ha già aperto un ordine, non apri un nuovo ordine?
Solo un'idea (e un modo usuale e più semplice per limitare il numero di ordini aperti da un EA)
Ciao a tutti,
Ho testato il mio EA con il metodo all ticks su un grafico H4 usando un MACD cross per iniziare gli ordini (tra gli altri) e il tester della strategia apre circa 200 posizioni nei primi minuti, quindi dopo aver fatto qualche lettura mi rendo conto che ho bisogno di limitare il numero di trade che piazza, sul mio sistema non dovrebbe piazzare più di 1 trade ogni 4 ore perché aspetto che la candela si chiuda prima usando iMACD(... PRICE_CLOSE...) e lo sfasamento per 0 per MACDMainCurrent & MACDSymbolCurrent e 1 per MACDMainPrevious & MACDSymbolPrevious.
Le mie variabili globali sono
string hasOrderedGV = "has_ordered_GV";
stringa barsGV = "bars_GV";
E ho inserito questo codice prima che il mio EA controlli le posizioni lunghe o corte:
//--- Determinare se l'ordine è già stato piazzato sul blocco orario H4
se ((GlobalVariableGet (barsGV) == 0) || (GlobalVariableGet (barsGV) < Bars))
{
GlobalVariableSet(hasOrderedGV,false);
GlobalVariableSet(barsGV,Bars);
}
//--- Controlla la possibilità di posizione lunga (BUY)
se (GlobalVariableGet (hasOrderedGV, false))
{
se ... (qui è dove controllo effettivamente l'incrocio MACD tra altri indicatori).
Poi se l'ordine si è aperto con successo:
se (Ticket > 0)
{
GlobalVariableSet(hasOrderedGV,true);
{
se (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES))
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), GetTPPriceShort(SLPriceShort, RiskRewardRatio), OrderExpiration(), Green);
etc etc.
Qualcuno può dirmi se lo sto facendo nel modo giusto? Non so se c'è un modo più efficiente o accurato di farlo? Grazie.Solo perché il mio EA ha tipicamente diverse posizioni aperte in una sola volta; quindi non potrei usare, ad esempio,
se (ordini contati > 5)
Interruzione;
O qualcosa del genere, perché non so quante posizioni saranno aperte in qualsiasi momento. Ho bisogno di metterlo in relazione al tempo che sto pensando.
Ho allegato questo EA al mio conto mt4 a 5 cifre. Ma non apre nessun trade....
pls aiutarmi
Per favore, ho bisogno di modificare questo EA per spostare lo stoploss in 3 passi
questo EA ha già una capacità di pareggio, ma voglio che questo EA sposti il mio
stoploss dal suo primo punto di pareggio ad un altro +20 pips una volta che il mio profitto arriva a
+27pips e spostarlo di nuovo a +40pips quando arriva a +50pips e anche
più se possibile.
Ciao Mladen,
Grazie per la segnalazione! Sono già riuscito a risolvere il problema.
A proposito, sai che funzione hanno MODE e SHIFT in iStochasticdo o c'è qualche posto che fornisce maggiori informazioni? Sto leggendo la documentazione sul sito di mql4, ma ancora non ha senso per me. La spiegazione che forniscono è troppo breve.
Per esempio
iStochastic(NULL, 0, 3, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, Current + 0);
iStochastic(NULL, 0, 5, 3, 3, 3, MODE_SMMA, 0, MODE_MAIN, 0);
iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_SIGNAL,Current + 1);
Cosa fa la corrente + 0 ecc?
Grazie e saluti
Terrance
Terrance Questa è una funzione. Inseriscila alla fine del tuo EA e posiziona le chiamate ad essa dove ritieni opportuno per controllare se un ordine è già aperto ad una barra corrente
Ciao, qualcuno potrebbe dirmi dove sto sbagliando qui, per favore? Sto ottenendo il codice di errore ')' il conteggio dei parametri sbagliati sulla linea evidenziata in rosso - ma tutti i parametri si sommano...
se ((GlobalVariableGet (barsGV) == 0) || (GlobalVariableGet (barsGV) < Bars))
{
GlobalVariableSet(hasOrderedGV,false);
GlobalVariableSet(barsGV,Bars);
}
//--- Controlla la possibilità di posizione lunga (BUY)
se (GlobalVariableGet (hasOrderedGV, false)) Grazie
...
Terrance
MODE_MAIN significa che stai leggendo il valore della linea stocastica. MODE_SIGNAL significa che stai leggendo il valore della linea del segnale stocastico.
Per quanto riguarda SHIFT: è lo stesso per ogni indicatore (anche quelli personalizzati). Per esempio: SHIFT=0 significa il valore della barra corrente, SHIFT=1 significa il valore della prima barra chiusa e così via...
Ciao Mladen,
Grazie per avermi avvisato! Sono già riuscito a risolvere il problema.
A proposito, sai che funzione hanno MODE e SHIFT in iStochasticdo o c'è qualche posto che fornisce maggiori informazioni? Sto leggendo la documentazione sul sito di mql4, ma ancora non ha senso per me. La spiegazione che forniscono è troppo breve.
Per esempio
iStochastic(NULL, 0, 3, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, Current + 0);
iStochastic(NULL, 0, 5, 3, 3, 3, MODE_SMMA, 0, MODE_MAIN, 0);
iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_SIGNAL,Current + 1);
Cosa fa la corrente + 0 ecc?
Grazie e saluti
Terrance...
L'errore è che GlobalVariableGet() ha un solo parametro (il nome della variabile). Non avete bisogno del secondo parametro (il"falso" che avete nella chiamata alla funzione)
Ciao qualcuno sarebbe in grado di dirmi dove sto andando male qui per favore? Sto ottenendo il codice di errore ')' il conteggio dei parametri sbagliati sulla linea evidenziata in rosso - ma tutti i parametri si sommano...
se ((GlobalVariableGet (barsGV) == 0) || (GlobalVariableGet (barsGV) < Bars))
{
GlobalVariableSet(hasOrderedGV,false);
GlobalVariableSet(barsGV,Bars);
}
//--- Controlla la possibilità di posizione lunga (BUY)
se (GlobalVariableGet (hasOrderedGV, false)) GrazieHo cambiato il codice in questo, ed è almeno privo di errori - va bene?
if (GlobalVariableGet (hasOrderedGV) == false)