La parola chiave OPTION viene utilizzata per definire una proprietà speciale di tipo Numerico ottimizzabile durante il backtest di un trading system. Le Option sono infatti utilizzabili SOLO nella programmazione dei trading system.
Le Option sono utilizzabili solo nella programmazione dei trading system
Una Option è a tutti gli effetti una proprietà numerica con un range di validità ben definito. La differenza con le altre proprietà numeriche è che può essere ottimizzata durante il backtest del trading system (procedura eseguita dall’applicazione Tester). In altre parole, la procedura di backtest testerà automaticamente tutti i valori che Option può assumere (dal valore minimo al valore massimo aggiungendo ad ogni nuovo test il valore di incremento), cercando di individuare il valore di Option che produce i migliori risultati nel trading system.
Sintassi #
Option <nome option> (<valore minimo>, <valore massimo>, <incremento>, ["<descrizione>"])
Le Option vanno definite esclusivamente nel Modulo Comune dei trading system
Una Option è definita dalla parola chiave OPTION e dai seguenti attributi:
Nome Option: definisce il nome dell’Option. Il nome identificherà l’Option internamente ed esternamente allo script.
Valore Minimo: valore minimo che l’Option può assumere.
Valore Massimo: valore massimo che l’Option può assumere.
Incremento: definisce l’incremento di valore dell’Option durante il backtest. Se ad esempio, il valore minimo è 2, il valore massimo è 14 e l’incremento è 4, durante il backtest l’Option assumerà i valori 2, 6, 10, 14. La regola fondamentale è che (Valore Massimo – Valore Minimo) deve essere un multiplo di Incremento. Nell’esempio, 14 – 2 = 12, e 12 è un multiplo di 4.
Descrizione: (facoltativa) breve descrizione dell’Option che sarà mostrata ad esempio nella griglia delle proprietà di configurazione del trading system.
Utilizzo #
Un Option viene utilizzata internamente ed esternamente allo script come una qualsiasi proprietà. Quindi esternamente dovrai impostarla nella finestra delle proprietà del trading system, internamente allo script la userai come una qualsiasi variabile “in sola lettura”.
Esempio
Consideriamo un trading system che produce segnali di acquisto/vendita a seconda dell’incrocio verso l’alto/basso di due medie mobili costruite su periodi differenti. I parametri significativi di questo trading system sono i periodi su cui calcolare le due medie mobili. Per trovare il valore migliore dei due periodi useremo quindi due Option e testeremo il trading system con l’applicazione Tester, che assegnerà alle due Option tutte le combinazioni di valori possibili trovando quelle che hanno prodotto i migliori risultati.
Modulo Comune:
Option MM1(5, 30, 1, "Periodo Media Mobile 1")
Option MM2(5, 50, 1, "Periodo Media Mobile 2")
Entrata Long:
Function Main()
If (my.Analysistool.Crossabove(Mov(Close, MM1), Mov(Close, MM2)) = True) Then
Return True
EndIf
Return False
EndFunction
Entrata Short:
Function Main()
If (my.Analysistool.Crossbelow(Mov(Close, MM1), Mov(Close, MM2)) = True) Then
Return True
EndIf
Return False
EndFunction