Insider 3000 - Forums
Insider 3000 - Forums
Home | Profile | Active Topics | Members | Search | FAQ
 All Forums
 Help
 Aiuti, consigli, dubbi ...
 TS e variabili comuni

Note: You must be registered in order to post a reply.

Screensize:
UserName:
Password:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert Email Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

   
   

T O P I C    R E V I E W
leslie Posted - 02 February 2007 : 00:49:52
Ciao, chidevo aiuto un paio di aiuti:
1)in un TS utilizzo delle variabili comuni che ho necessità di passare tra le varie posizioni che voglio testare (sono praticamente tutte e quattro, entra ed esci lungo ed entra ed esci corto). Quello che non riesco a capire con le simulazione è quando le variabili comuni di tipo numeriche vengono nuovamente inizializzate a zero e quelle booleane a falso. All’uscita da una posizione lunga restituisco il valore vero a questa variabile per forzare un eventuale futuro segnale in entrata per la posizione corta, ma nuovamente mi da il segnale di lungo anche se questa posizione la faccio prendere in considerazione solo se la variabile ha valore falso.

Opzioni comuni
Dim pd_corta As Boolean

Entra in lungo
Function main()
If pd_corta then
Return false
else
...............
Endfunction

Esci da lungo
Function main()
............
If ..... Then
.........
pd_corta = true
Return true
EndIf
...........
Endfunction

Entra in corto
Function main()
If pd_corta then
............
Endfunction


2) Anche nella gestione degli allarmi, così come per i TS, viene preso in elaborazione l’ultimo tik considerando la compressione del grafico? (è impostata l’esplorazione solo ultima data).
Praticamente:
scarico i dati in real time con cadenza ad 1 minuto ed ho il grafico aperto con compressione giornaliera lasciando così che l’ultimo tik che visualizzo (il giorno corrente) venga aggiornato ogni minuto con i dati che scarico. In questo caso se nel mio allarme ci sono espressioni del tipo “close(-1)”, oppure “Value(RSI(Close, 9), - 1)” il riferimento al valore del tick precedente “–1”, (analogamente il periodo “9” per l’ RSI), è riferito alla giornata di ieri o al minuto precedente?
Grazie infinitamente come sempre.
Ciao, Leslie
8   L A T E S T    R E P L I E S    (Newest First)
SupportoTecnico Posted - 05 February 2007 : 11:59:00
Le variabili comuni e/o variabili in generale non hanno alcun impatto sulla velocità.

Per quanto riguarda gli IF invece, è meglio utilizzare IF annidati (cioè uno dentro l'altro).
leslie Posted - 03 February 2007 : 22:21:27
A volte ho la sensazione che i TS da me creati siano troppo "pesanti", li vedo molto lenti e laboriosi. In generale quali sono le operazioni che più di altre possono appesantire l'esecuzione del TS, a parte ovviamente le opzioni comuni (min, max, incremento)?. Ad esempio molti If contenuti l'uno dentro l'altro piuttosto che singoli passi, oppure molte variabili a livello comune?
If...
If...
If...
EndIf
EndIf
EndIf

piutosti che singoli

If....
EndIf
If...
EndIf

oppure
Opzioni comuni
Dim ....
Dim .....
Dim ...


Modificato da - leslie il 03 Febbraio 2007 22:33:01
SupportoTecnico Posted - 03 February 2007 : 20:30:12
Per i moduli secondari fai riferimento qui:

http://www.insider3000.com/insider/it/hol/default.asp?titleid=01100&argid=02000

All'interno del modulo secondario dovrai creare una funzione che ti restituisca ad esempio True o False a seconda che la tua data è quella giusta oppure no:


Function IsDataOk(lMyDate as Numeric) As Boolean
Dim SGiorno 'giorno di acquisto
Dim SMese 'giorno di acquisto
Dim SAnno 'giorno di acquisto
Dim NGiorno 'giorno di acquisto
Dim NMese 'giorno di acquisto
Dim NAnno 'giorno di acquisto

SGiorno = Mid(Str(lMyDate), 8, 2)
SMese = Mid(Str(lMyDate), 6, 2)
SAnno = Mid(Str(lMyDate), 2, 4)
NGiorno = Format(day, "00")
NMese = Format(Month, "00")
NAnno = Format(year, "0000")

If ((SGiorno = NGiorno) and (SMese = NMese) and (SAnno = NAnno) Then
Return True
EndIf

EndFunction


Poi richiamerai questa funzione seguendo la sintassi spiegata nell'help.


Per quanto riguarda TrendForce():

- con la nuova versione 3.2.0 è stata introdotta una nuova funzione => TrendForceEx che fa proprio quello che desideri tu.
leslie Posted - 03 February 2007 : 18:43:20
GRAZIE
siccome è una cosa che utilizzo spesso come faccio a richiamarla agevolmente nel TS? ho visto che teoricamente potrei memorizzarla nei moduli da includere ma non ci riesco.
questa procedura di richiamare moduli comuni rallenta di molto il TS?
Ancora una cosa. E' possibile calcolare il valore tel trand ad esempio riferito all'indicatore OnBalanceVolume così come con Trendforce() la si calcola per il grafico?
Grazie mille

Modificato da - leslie il 03 Febbraio 2007 18:59:23
SupportoTecnico Posted - 03 February 2007 : 14:00:26
Beh.. direi che hai trovato la strada più giusta!
Una migliore non me ne viene in mente. Complimenti!
leslie Posted - 03 February 2007 : 13:15:03
Il problema di forzare l'entra in corto sembra risolto.
Chiedevo ancora un'aiuto.
Utilizzo il mailer per avere la segnalazione di un eventuale segnale legato al TS, ma vorrei che il TS cominciasse solo dalla data odierna, questo per evitare la presenze di posizioni ancora aperte. Come posso fare?
Attualmente ho impostato un'opzione comune che poi vado a verificare. Funziona ma è molto laboriosa:

opzioni comuni
Option Data(0, 21000000, 1) 'data di inizio TS in formato yyyymmdd

entra in lungo
function main()
Dim SGiorno 'giorno di acquisto
Dim SMese 'giorno di acquisto
Dim SAnno 'giorno di acquisto
Dim NGiorno 'giorno di acquisto
Dim NMese 'giorno di acquisto
Dim NAnno 'giorno di acquisto

SGiorno = (Mid(Str(Opt_Data), 8, 2))
SMese = Mid(Str(Opt_Data), 6, 2)
SAnno = Mid(Str(Opt_Data), 2, 4)
NGiorno = Format(day, "00")
NMese = Format(Month, "00")
NAnno = Format(year, "0000")

If ((SGiorno = NGiorno) and (SMese = NMese) and (SAnno = NAnno) and (close = Opt_Prezzo)) Then
Return True
EndIf
endfunction

C'è qualcosa di più semplice???
grazie
leslie Posted - 02 February 2007 : 21:02:22
grazie mille come sempre,
Per il primo quesito purtroppo continua a darmi il messaggio di entra in lungo invece dell'entra in corto, anche se la variabile dovrebbe essere vera perchè la imposto appena prima dell'uscita dalla posizione di lungo. Sto provando a vedere meglio il codice, se non riesco chiederò ancora aiuto...
SupportoTecnico Posted - 02 February 2007 : 11:41:23
1) le variabili Comuni a tutti i moduli vengono inizializzate automaticamente solo 1 volta e cioè all'inizio (nel primo periodo). Quindi se da qualche parte assegni loro un valore, da qualche altra devi resettarlo.

2) Se la base dati è a 1 minuto ma il grafico è visualizzato in compressione giornaliera allora Close(-1) fa riferimento al giorno precedente.

Insider 3000 - Forums © Copyright 2003-2016 Tradersoft s.r.l. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.07