Discussione: Signal con funzione di strategy, dove sbaglio ??
Visualizzazione Ibrida
-
31-03-14, 18:48 #1
- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
-
31-03-14, 19:04 #2
- Data Registrazione
- Apr 2013
- Messaggi
- 32
Grazie Smash,
- sì MONEY.func l'ho fatta io : set MONEY = (TotalNetProfit()> 110 or TotalNetProfit()< -150)
- ecco il signal per entry long:
inputs: @pd(3),@m(8)
set TRAILING_STOP = 130
set TRAILING_PERCENT = 20
set STOP_LOSS = 160
set EMY = ema(close,17)
set alfa = StandardDeviations(EMY, 9, 2, simple)/StandardDeviations(close, 9, 2, simple)
set beta = 1 - alfa
set delta = close * alfa
set plot1 = (ema(close,17) * beta) + delta
set CHA = ChaikinVolatility(10,10,simple)
set TD = ref (plot1,@pd)
plot1 > TD and time > 931 and time < 2129 and DIP(@m)> DIN(@m) and CHA > 0 and (not Money())
-
31-03-14, 23:25 #3
Salve,
nell'attuale versione beta le funzioni relative allo stato della strategia sono disponibili esclusivamente all'interno degli script di tipo Signal. Per tutti gli altri tipi di script queste funzioni ritornano sempre e comunque il valore zero.
Nella prossima beta sarà possibile utilizzare le funzioni relative allo stato della strategia anche all'interno delle User Defined Function richiamate dagli script di tipo Signal. Il codice postato è formalmente corretto, ma sarà funzionante solo con la prossima beta.
Max Francario
-
01-04-14, 04:04 #4
- Data Registrazione
- Apr 2013
- Messaggi
- 32
Buongiorno Max,
quindi se scrivessi così :
set TRAILING_STOP = 130
set TRAILING_PERCENT = 20
set STOP_LOSS = 160
set EMY = ema(close,17)
set alfa = StandardDeviations(EMY, 9, 2, simple)/StandardDeviations(close, 9, 2, simple)
set beta = 1 - alfa
set delta = close * alfa
set plot1 = (ema(close,17) * beta) + delta
set CHA = ChaikinVolatility(10,10,simple)
set TD = ref (plot1,@pd)
plot1 > TD and time > 931 and time < 2129 and DIP(@m)> DIN(@m) and CHA > 0 and TotalNetProfit() < 130 and TotalNetProfit() > -160
Dovrebbe funzionare ? Ho già provato, ma non va.
Ultima modifica di alduran; 01-04-14 alle 04:09
-
01-04-14, 10:17 #5
Salve,
è vero, abbiamo individuato un errore nell'engine che interpreta gli script che è già stato corretto.
Per il momento, un modo semplice per aggirare il problema è modificare lo script in questo modo (modifiche in rosso):
INPUTS: @pd(1), @m(14)
set TRAILING_STOP = 130
set TRAILING_PERCENT = 20
set STOP_LOSS = 160
set EMY = ema(close,17)
set alfa = StandardDeviations(EMY, 9, 2, simple)/StandardDeviations(close, 9, 2, simple)
set beta = 1 - alfa
set delta = close * alfa
set plot1 = (ema(close,17) * beta) + delta
set CHA = ChaikinVolatility(10,10,simple)
set TD = ref (plot1,@pd)
set tnp = TotalNetProfit()
plot1 > TD and time > 931 and time < 2129 and DIP(@m)> DIN(@m) and CHA > 0 and tnp < 130 and tnp > -160
In sostanza, basta non utilizzare le funzioni di stato della strategia direttamente nella condizione finale dello script, ma assegnarle ad una variabile ed usare la variabile nella condizione.
Max Francario
-
01-04-14, 21:28 #6
- Data Registrazione
- Apr 2013
- Messaggi
- 32
-
02-04-14, 10:53 #7