Insider 3000 - Forums
Insider 3000 - Forums
Home | Profile | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 Problemi con "Insider 3000 versione 3"
 Problemi col linguaggio di programmazione
 problemi di programmazione
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

gian55
Nuovo Utente

2 Posts

Posted - 11 July 2006 :  08:53:57  Show Profile  Reply with Quote
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  Show Profile  Reply with Quote
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

Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
Insider 3000 - Forums © Copyright 2003-2016 Tradersoft s.r.l. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.07