Discussione: Signal con funzione di strategy, dove sbaglio ??
-
02-08-14, 20:36 #11
- Data Registrazione
- Apr 2012
- Messaggi
- 43
TotalNetProfit
Aiuto, io la funzione TotalNetProfit non riesco proprio a farla funzionare. Riportando quanto descritto nel manuale: "La funzione può essere utilizzata per impostare preventivamente delle soglie di uscite monetarie riferite all'intera Strategy"). L'intenzione sarebbe quella di chiudere la strategia quando il profitto giornaliero é > di una cifra (p.es. 700) ed altrettanto quando la perdita < - 500. Tali valori (secondo la mia interpretazione) sono certamente differenti dai Set di gestione M.M. Trailing_Stop, _Percent e Stop_Loss che riguardano il singolo trade).
Es.:
SET TRAILING_STOP = @trailAmount
SET TRAILING_PERCENT = @trailPercent
SET STOP_LOSS = @stopLoss
SET TnP= TotalNetProfit()
FOLLOWME()> 0
TnP > 700 (linea X)
AND ATR(@periods, @matype)> 35
AND TIME <1730
Modifiche su Linea X: senza tale linea di comando ottengo 540 trade, con TnP< da 300 sino a 5000 ottengo sempre 848 trade (ma in altri script , forse perché senza il Followme, con TnP< da 300 sino a 10000 i trade sono filtrati da 20 al massimo ottenibile senza la linea di comando X)
con TnP> da 300 a 5000 ottengo zero trade.
In pratica non ci capisco nulla.
Essendo una strategy position, non dovrebbe comportarsi come Money Management (M.M.) giornaliero? E' sbagliato fare il backtest con barre equivalenti a più giorni, e che detti settaggi sono validi in strategy? Potete confermare?
Se sbaglio, dove sbaglio??
Potreste aiutarmi, grazie.
ArmandoUltima modifica di armando; 04-08-14 alle 07:57
-
03-08-14, 14:44 #12
- Data Registrazione
- Mar 2011
- Messaggi
- 117
Ciao Armando non mi sono chiare alcune cose, non ho capito questa riga
((a+b+c)/3) - d> 15
essendo medie mobili "15" deve essere riferito a un particolare sottostante giusto?
ultima cosa... con la funzione total net profit tu vuoi che raggiunto un certo guadagno o una certa perdita il sistema si arresti?
Saluti
FabioUltima modifica di Jackal; 03-08-14 alle 14:46
"Amat Victoria Curam"
"Il Successo di un uomo stà nella sua perseveranza" (Bruce Lee)
-
03-08-14, 15:58 #13
- Data Registrazione
- Aug 2008
- Località
- Edolo (BS)
- Messaggi
- 693
-
04-08-14, 08:09 #14
- Data Registrazione
- Apr 2012
- Messaggi
- 43
Grazie JacKal x avermi risposto e farò come da Te suggerito.
In effetti ho tolto la richiesta di massima perdita per cercare di capire se la funzione TotalNetProfit corrisponde alle mie aspettative.Ultima modifica di armando; 04-08-14 alle 09:53
-
04-08-14, 08:19 #15
- Data Registrazione
- Apr 2012
- Messaggi
- 43
Ciao Fabio, quella linea ((a+b+c)/3) -d >15 corrisponde alla zona di indecisione, dove le MM si avvicinano, che hai sempre ogni volta che un trend cambia direzione (a volte lo riconferma). Chiaramente x il sell sarà l'inverso. Il valore 15 é la distanza tra loro e lo si può modificare. All'ultima domanda ti rispondo di sì, ma non ci siesco, perlo meno in backtest.
Armando
-
04-08-14, 23:25 #16
- Data Registrazione
- Mar 2011
- Messaggi
- 117
Ciao Armando, cosi dovrebbe funzionare. Togli i "cancelletti" che ho messo in quanto l'ho provato su un sottostante random e non potevo usare i tuoi parametri.
Ricordati di mettere anche uno script di uscita.
Ah.. ti ho anche impostato le medie come SIMPLE; cambiale se vuoi usare una media diversa.
Saluti
Fabio
SET tnp= TotalNetProfit() SET a = MovingAverage(CLOSE, 8, SIMPLE) SET b = MovingAverage(CLOSE, 14, SIMPLE) SET c = MovingAverage(CLOSE, 20, SIMPLE) SET d = MovingAverage(CLOSE, 30, SIMPLE) SET e = LinearRegressionForecast(CLOSE, 8) a> b AND b> c AND c> d AND #((a+b+c)/3) - d> 15 tnp < 700 OR tnp > -500
"Amat Victoria Curam"
"Il Successo di un uomo stà nella sua perseveranza" (Bruce Lee)
-
05-08-14, 18:57 #17
- Data Registrazione
- Apr 2012
- Messaggi
- 43
TotalNetProfit
Grazie Jackal ma avevo già provato anche questa alternativa, ma mi fà "saltare" la condizione ((a+b+c)/3) - d> 15 che rappresenta l'ssenziale dello script. Ovvero x mantenere funzionante lo script la devo togliere. Comunque tale funzione non sembra funzionare anche in altri script, vi allego anche l'esempio sottostante.
Esempio di Followme in backtest con script realizzato senza TotalNetProfit:
Esempio di script Followme con TotalNetProfit
Buy:
INPUTS: @price(CLOSE), @periods(14), @trailAmount(100), @trailPercent(10), @stopLoss(400), @SLperiods(8)
SET TRAILING_STOP = @trailAmount
SET TRAILING_PERCENT = @trailPercent
SET STOP_LOSS = @stopLoss
SET TnP= TotalNetProfit()
FOLLOWME()> 0
AND ATR(@periods, @matype)> 37
AND TIME <1730
TnP< 700 OR TnP >-500
Sell:
SET TnP= TotalNetProfit()
FOLLOWME()< 0
AND ATR(@periods, @matype)> 37
AND TIME <1730
TnP< 700 OR TnP >-500
E suo risultato:
Risposta assurda.
E' indispensabile poter gestire la posizione in un trading automatizzato ma non sembra funzionare. Vi prego dirmi che sbaglio da qualche parte.
Saluti
ArmandoUltima modifica di armando; 05-08-14 alle 19:08
-
06-08-14, 00:13 #18
Salve Armando,
nei suoi script manca la specifica di come usare il risultato della funzione TotalNetProfit().
Io modificherei gli script in questo modo:
Buy:
INPUTS: @price(CLOSE), @periods(14), @trailAmount(100), @trailPercent(10), @stopLoss(400), @SLperiods(8) SET TRAILING_STOP = @trailAmount SET TRAILING_PERCENT = @trailPercent SET STOP_LOSS = @stopLoss SET TnP= TotalNetProfit() FOLLOWME()> 0 AND ATR(@periods, @matype)> 37 AND TIME <1730 AND (TnP< 700 OR TnP >-500)
Sell:
SET TnP= TotalNetProfit() FOLLOWME()< 0 AND ATR(@periods, @matype)> 37 AND TIME <1730 AND (TnP< 700 OR TnP >-500)
In pratica, in entrambi gli script Buy e Sell, ho modifica l'ultima riga, aggiungendo l'AND iniziale e le parentesi che racchiudono la valutazione del TotalNetProfit.
Max Francario
-
06-08-14, 10:21 #19
- Data Registrazione
- Apr 2012
- Messaggi
- 43
TotaNetProfit
Grazie Max, direi che in backtest funziona (con qualche stranezza nell'analisi dei trade), adesso lo provo in strategy.
Saluti
Armando
-
07-08-14, 00:36 #20
- Data Registrazione
- Apr 2012
- Messaggi
- 43
TotalNetProfit in strategy
Gent. Max e Fabio
Di seguito lo script posto in strategia nella giornata odierna.
Script Buy:
INPUTS: @price(CLOSE), @periods(14), @trailAmount(100), @trailPercent(10), @stopLoss(400), @SLperiods(8)
INPUTS: @matype(EXPONENTIAL)
SET TRAILING_STOP = @trailAmount
SET TRAILING_PERCENT = @trailPercent
SET STOP_LOSS = @stopLoss
SET TnP= TotalNetProfit()
SET a = MovingAverage(@price, 8, @matype)
SET b = MovingAverage(@price, 14, @matype)
SET c = MovingAverage(@price, 20, @matype)
SET d = MovingAverage(@price, 30, @matype)
a> b AND
b> c AND
c> d AND
((a+b+c)/3) - d> 15
AND TIME <1730
AND (TnP< 800 OR TnP >-500)
Script Sell:
SET a = MovingAverage(@price, 8, @matype)
SET b = MovingAverage(@price, 14, @matype)
SET c = MovingAverage(@price, 20, @matype)
SET d = MovingAverage(@price, 30, @matype)
SET TnP = TotalNetProfit()
a< b AND
b< c AND
c< d AND
d- ((a+b+c)/3) > 15
AND TIME <1730
AND (TnP< 800 OR TnP >-500)
E questo é il risultato:
Mi sembra che adesso, con la suddetta formulazione, lo script "tollera" la presenza del TotalNetProfit in oggetto ma che nel contempo, come dal trend il risultato sia purtroppo di non intervenuto.
Saluti
Armando