gian55
Nuovo Utente
2 Posts |
Posted - 11 July 2006 : 08:53:57
|
Buon giorno, ho un problema con il TS che sto tentando di programmare. Premetto che il TS è intraday e quindi chiude flat ogni giorno. Il sistema esegue perfettamente le istruzioni dell'entra long o short e delle rispettive chiudi posizioni. L'istruzione che vorrei fare eseguire al TS, ma non ci riesco, è la seguente: quando viene chiusa una posizione ,sia long che short, il successivo segnale deve essere di segno opposto e non nella stessa direzione di quello chiuso. Cerco di spiegarmi meglio: long-short-long OK long-chiudi posizione long-short OK long-chiudi posizione long - long NO.
Puoi aiutarmi??
Grazie anticipatamente
|
|
SupportoTecnico
Forum Admin
1261 Posts |
Posted - 11 July 2006 : 12:19:47
|
Per fare una cosa del genere devi utilizzare una variabile globale, cioè una variabile dichiarata nel modulo "Opzioni Comuni". Questa variabile è visibile e modificabile in tutti i moduli.
La variabile servirà per memorizzare il tipo dell'ultima operazione eseguita.
Per esempio io utilizzerei una variabile numerica:
Dim glLastSignal as Numeric = 0
e le assegnerei ad esempio 1 se l'operazione è di tipo long, 2 se l'operazione è di tipo short.
Quindi as esempio nel modulo "Entra in acquisto" :
Function Main() Dim bSignal as boolean
if (glLastSignal = 1) then Return False Endif
......... ......... ......... if (bSignal = True) then glLastSignal = 1 Return true endif Endfunction
dove bSignal è una variabile di comodo locale della funzione "Main" che sarà uguale a "True" se le varie condizione di entrata sono vere. Solo in quel caso infatti "glLastSignal" dovrà essere uguagliata a 1.
Stessa cosa nel modulo di entrata in operazioni short con la sola differenza del test (IF) effettuato su "glLastSignal" e il valore assegnato a "glLastSignal" che sarà 2:
Function Main() Dim bSignal as boolean
if (glLastSignal = 2) then Return False Endif
......... ......... ......... if (bSignal = True) then glLastSignal = 2 Return true endif Endfunction
|
 |
|