Discussione: Signal con funzione di strategy, dove sbaglio ??
Visualizzazione Ibrida
-
05-08-14, 17:57 #1
- 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 18:08
-
05-08-14, 23:13 #2
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, 09:21 #3
- 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
-
06-08-14, 23:36 #4
- 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
-
07-08-14, 06:51 #5
- Data Registrazione
- Dec 2009
- Messaggi
- 813
-
07-08-14, 10:13 #6
- Data Registrazione
- Apr 2012
- Messaggi
- 43
Hai ragione! E mi rifaccio all'inizio della mia discussione dove dicevo: "L'intenzione é quella di chiudere la strategia quando il profitto giornaliero é > di una cifra (p.es. 700) ed altrettanto quando la perdita < - 500." quindi la formulazione all'inizio era:
and tnp > 700 and tnp < -500
Ma in backtest mi azzera tutti i trade. (ma era la forma sbagliata)
Dopo ulteriori suggerimenti la descrizione é:
AND (TnP< 700 OR TnP >-500)
Ho provato anche nella forma che ritengo quella giusta, e che mi confermi:
AND (TnP> 700 OR TnP <-500)
Ho fatto i test e non cambia nulla, continua a non intervenire:
Mi sorge un dubbio, ed é il fatto che poiché sono in attivo anche gli script di EXL e EXS, secondo Te, devo aggiungere anche in questi ultimi in una qualche formulazione il TotalNetProfit?
Scusa x il tempo che ti faccio perdere.
Armando
-
08-08-14, 07:08 #7
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Armando non so cosa siano EXL ed EXS ma studiando un pochino la funzione di Totanetprofit non riesco a capire come lavora, penso che prima di tutto bisogna capire questo e poi sviluppare qualche idea! Io l'ho provato sull'incrocio di due medie mobili ma non restitusce true quando il profitto supera il valore 10....
Ho scritto questo banalissimo codice per verificare il Tnp:
INPUTS: @price(CLOSE), @fastPeriods(25), @slowPeriods(50), @matype(SIMPLE) SET tnp = TotalNetProfit() SET fast = MovingAverage(@price, @fastPeriods, @matype) SET slow = MovingAverage(@price, @slowPeriods, @matype) CROSSOVER(fast, slow) or tnp > 10 set PLOT1 = tnp
Questo il risultato