Author |
Topic  |
|
Pingu
Nuovo Utente
29 Posts |
Posted - 24 February 2005 : 21:46:42
|
Ho provato a compilare un codice per ottenere un segnale di acquisto in caso di incremento dei volumi in associazione con uno strappo verso l'alto del prezzo.
Il codice e' il seguente
Option Opt1(2, 5, 1) Option Opt2(5, 15, 1) Option Opt3(5, 15, 1) Dim pdStopLoss As Numeric = 0
Function main() Dim bSignal As Boolean = False pdStopLoss = 0 bSignal = (Volume >= Sum(Volume, Opt1) And Close >= Max(High, Opt2)) If (bSignal = True) Then pdStopLoss = (Low - Low * 0.01) EndIf Return bSignal Endfunction
Function main() Return (Close <= Min(Close, Opt3) Or (Close <= pdStopLoss)) Endfunction
Purtroppo quando lancio il test sembra funzionare (non da' errore), ma non ottengo nessun risultato (nelle "posizioni" sono sempre "fuori")! Mi potete aiutare a capire dove sbaglio? Grazie!
|
|
SupportoTecnico
Forum Admin
1261 Posts |
Posted - 24 February 2005 : 21:58:39
|
Probabilmente ? questo pezzo di codice che non ? mai vero:
Volume >= Sum(Volume, Opt1)
in pratica il Volume non ? mai maggiore o uguale alla somma dei volumi degli Opt1 giorni precedenti compreso quello attuale.
E' come se tu scrivessi:
10 >= 10 + ....
Quindi prova a sostituire quel pezzo di codice con questo:
Volume >= (Sum(Volume, Opt1) - Volume)
e inoltre togli la riga:
pdStopLoss = 0
che potrebbe settare pdStopLoss a zero nel momento sbagliato.
In pratica scrivi cos?:
Option Opt1(3, 6, 1) Option Opt2(5, 15, 1) Option Opt3(5, 15, 1) Dim pdStopLoss As Numeric = 0
Function main() Dim bSignal As Boolean = False
bSignal = ((Volume >= (Sum(Volume, Opt1) - Volume)) And (Close >= Max(High, Opt2))) If (bSignal = True) Then pdStopLoss = (Low - Low * 0.01) EndIf Return bSignal Endfunction
Function main() Return (Close <= Min(Close, Opt3) Or (Close <= pdStopLoss)) Endfunction
|
 |
|
|
Topic  |
|
|
|