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
 Finestra Trova
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

Alessio
Nuovo Utente

23 Posts

Posted - 05 October 2003 :  17:05:34  Show Profile  Reply with Quote
Salve a tutti e complimenti per la versione final.
Ho un problema con la finestra trova: disponendo di una serie storica intraday a 5 min., desidero che vengano evidenziate le barre della prima ora di contrattazione. Ho provato col ciclo For...Next, ma senza risultati. Che sia un problma riguardante le opzioni di compressione dati?

Grazie per l'aiuto

SupportoTecnico
Forum Admin

1261 Posts

Posted - 06 October 2003 :  10:41:36  Show Profile  Reply with Quote
Prova con una cosa del genere:

(Time >= 900) And (Time <= 1000)

Modificando a tuo piacimento le ore.

Go to Top of Page

Alessio
Nuovo Utente

23 Posts

Posted - 06 October 2003 :  16:18:42  Show Profile  Reply with Quote
Avevo gi? provato ,ma non funziona.
Ho poi provato con "time(0) to time(87)" e va bene; ma allora qual'? l'esatta sintassi della funzione "Time" e "Date"?


Go to Top of Page

fabrivero
Nuovo Utente

38 Posts

Posted - 06 October 2003 :  17:25:14  Show Profile  Reply with Quote
dovrebbe bastare questo (per il fib):

hour = 9 or (hour = 10 and minute < 11)

In pratica prende tutte le candele delle 9 (ossia da 9:01 a 9:59) pi? le prime delle ore 10. variando minute puoi prendere 1 ora fino a 2 ore

Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 06 October 2003 :  18:02:42  Show Profile  Reply with Quote
Non utilizzare cicli For o altro.
Usa la compilazione a linea singola.
E scrivi:

(Time >= 900000) And (Time <= 1000000)

oppure ci? che ti ha suggerito Fabrivero.

Scusami => mi ero dimenticato qualche zero.
Infatti il Time ? espresso in questo modo => hhmmttt

dove hh => ? l'ora; mm => minuti; e ttt numero del tick




Go to Top of Page

Alessio
Nuovo Utente

23 Posts

Posted - 07 October 2003 :  17:11:27  Show Profile  Reply with Quote
Ora ? tutto ok. Grazie

Go to Top of Page

Alessio
Nuovo Utente

23 Posts

Posted - 08 October 2003 :  15:12:50  Show Profile  Reply with Quote
Da un'analisi pi? attenta mi sono accorto che il massimo ed il minimo della prima ora di cotrattazione di una giorata vengono memorizzati e ripetuti per quella seguente (es. max del 5/5/2003 dalle ore 9:05 alle 10:10 uguale a 8.77; se il giorno dopo il max, sempre per quell'orario ? 8.50, il programma restituisce il valore di 8.77).
Vorrei scrivere un codice che mi permetta di identificare per ciascun giorno il max ed il min della prima ora di contrattazione per poter anlizzare quante barre sono comprese tra questi due valori.
Potreste aiutarmi?

Grazie

Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 08 October 2003 :  16:34:24  Show Profile  Reply with Quote
Prova questo:
(la complilazione ? "Trova (Linee Multiple)")




dim pdMyMax as Numeric = 0
dim pdMyMin as Numeric = 0
dim plMemDate as Numeric = 0


function Main()
dim i as Numeric

if ((time >= 900000) and (time <= 1000000)) then
if (date <> plMemDate) then
pdMyMax = high(1)
pdMyMin = low(1)
for i = 2 to Totbar - 1
if (pdMyMax < high(i)) then
pdMyMax = high(i)
endif
if (pdMyMin > low(i)) then
pdMyMin = low(i)
endif
next i
endif
plMemDate = date

return (high <= pdMyMax) and (low >= pdMyMin)
else
return false
endif

endfunction



Go to Top of Page

Alessio
Nuovo Utente

23 Posts

Posted - 08 October 2003 :  17:50:51  Show Profile  Reply with Quote
Non funziona: restituisce "false" per qualsiasi valore dopo le 10:00, anche se la barra ? contenuta nel range definito.

Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 08 October 2003 :  23:27:05  Show Profile  Reply with Quote
Forse avevo inteso male.
allora tu vuoi calcolare il massimo e il minimo della prima ora del giorno e poi vedere evidenziate tutte le candele che sono comprese in questo range durante tutto l'arco della giornata.
Prova questo codice (prendilo come traccia e modificalo secondo le tue esigenze... non ? stato testato):


dim pdMyMax as Numeric = 0
dim pdMyMin as Numeric = 0
dim plMemDate as Numeric = 0


function Main()
dim i as Numeric
dim lIndex as Numeric = - 1

if (date <> plMemDate) then
for i = 0 to Totbar - 1
if ((time >= 900000) and (time <= 1000000)) then
pdMyMax = high(i)
pdMyMin = low(i)
lIndex = i
Goto Prosegui1
endif
next i

Prosegui1:
if (lIndex > - 1) then
for i = lIndex to Totbar - 1
if ((time >= 900000) and (time <= 1000000)) then
if (pdMyMax < high(i)) then
pdMyMax = high(i)
endif
if (pdMyMin > low(i)) then
pdMyMin = low(i)
endif
endif
next i
endif
plMemDate = date
endif

return (high <= pdMyMax) and (low >= pdMyMin)

endfunction



Go to Top of Page

Alessio
Nuovo Utente

23 Posts

Posted - 09 October 2003 :  18:37:47  Show Profile  Reply with Quote
L' ho modificato un p?, ma ora v? tutto bene.
Grazie

Go to Top of Page

Alessio
Nuovo Utente

23 Posts

Posted - 26 October 2003 :  18:20:12  Show Profile  Reply with Quote
Salve a tutti,
dopo aver modificato il listato, vorrei che oltre ad idicarmi il max ed il min della prima ora, mi indicasse anche il max ed il min della giorata e mi restituisse il numero delle barre la cui chiusura ?, per esempio, superiore al max della prima ora ( indicato con maxib) ed inferiore o uguale al max della giornata (indicato con maxd).
Io ho provato a scrivere la seguente, ma non funziona

dim MaxIB as Numeric = 0
dim MinIB as Numeric = 0
dim MaxD as Numeric = 0
dim MinD as Numeric = 0
dim plMemDate as Numeric = 0
dim count as Numeric

function Main()
dim i as Numeric
dim lIndex as Numeric = - 1
if (date <> plMemDate) then
For i = 0 to hour(10)
if ((time >= 900000) and (time <= 1030000)) then
MaxIB = close(i)
MinIB = close(i)
lIndex = i
Goto Prosegui1
endif
next i

Prosegui1:
if (lIndex > - 1) then
for i = lIndex to hour(10)
if ((time >= 900000) and (time <= 1030000)) then
if (MaxIB < close(i)) then
MaxIB = close(i)
endif
if (MinIB > close(i)) then
MinIB = close(i)
endif
endif
next i
plmemdate = date
endif
endif

dim j as Numeric
dim dindex as Numeric = - 1
If (date = plmemdate) then
For j = 0 to hour(17)
If (time > (1030000) and time < (1730000)) then
MaxD = close(j)
MinD = close(j)
dindex = j
Goto Prosegui2
endif
next j

Prosegui2:
if (dindex > - 1) then
for j = dIndex to hour(17)
if (time > (1030000) and time < (1730000)) then
if (MaxD < close(j)) then
MaxD = close(j)
endif
if (MinD > close(i)) then
MinD = close(j)
endif
endif
next j
plmemdate = date
endif
endif

postreste aiutarmi?

Grazie

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