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
 calcolo max e min e riporto su time frame inferior
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

piter
Nuovo Utente

40 Posts

Posted - 10 May 2006 :  08:06:14  Show Profile  Reply with Quote
Salve, avrei questo tipo di problematica,
avrei bisogno su un time frame inferiore al daily (per esempio 5 minuti) di calcolare dei pivot point relativi ai max e min e close di ieri, come posso fare, nel senso come gli dico trovami il minimo e il max e l'ultima chiusura delle barre relative al giorno di ieri su un time frame a 5 min.
Poi per un calcolo più preciso invece potrei dirgli vai a prendermi il max, il min e la chiusura di ieri su un archivio dello stesso titolo ma che ha time frame daily e poi questi valori me li fai calcolare sul mio grafico con time frame a 5 min, magari tracciandomi anche sul grafico delle linee che identifichino questi livelli.
Saluti e grazie

piter

SupportoTecnico
Forum Admin

1261 Posts

Posted - 10 May 2006 :  12:37:28  Show Profile  Reply with Quote

Purtroppo non puoi sfruttare la funzione standard che calcola i Pivot in quanto questa li calcola solo sull'ultima barra.

Quindi devi procedere manualmente:

1) Ricavare i valori di massimo, minimo e chiusura del giorno precedente utilizzando le funzioni MaxEx e MinEx. Il calcolo verrà fatto solo quando serve e cioè al cambio di data.

2) calcolare manualmente i pivot con le formule originali.


Quindi io scriverei una cosa del genere:

if (Date < Date(+1)) Then
dMyMax = MaxEx(High, "D")
dMyMin = MinEx(Low, "D")
dMyClose = Close

a questo punto calcolare i pivot con i valori ottenuti
....
....
Endif


Se non te le ricordi queste sono le fornmule base dei pivot:

R3 = P - S2 + R2
R2 = P - S1 + R1
R1 = 2 * P - Low
P = (Close + High + Low) / 3
S1 = 2 * P - High
S2 = P - (R1 - S1)
S3 = P - (R2 - S2)


Go to Top of Page

piter
Nuovo Utente

40 Posts

Posted - 10 May 2006 :  16:24:33  Show Profile  Reply with Quote
ok, perfetto su un grafico intraday con maxex e minex ottengo i max e i min di un periodo (giorno "D") e la chiusura grazie alla funzione if sarà uguale alla chiusura dell'ultima barra intraday di quel giorno.
Ma se avessi a disposizione uno storico daily (più preciso sicuramente per max,min e close)e uno storico intraday su cui testare i pivot come gli dico di calcolarli prendendo il max,min,close di ieri sul grafico daily?

Grazie (bel giochetto quello dell'if per associare alla variabile la chiusura)

piter
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 10 May 2006 :  17:40:35  Show Profile  Reply with Quote

Nel caso tu volessi accedere allo storico daily mentre sei sullo storico intraday allora potresti usare il metodo della connessione ad un database esterno.
Questo lo puoi fare utilizzando la parola chiave "database" e la funzione "dbexp".

Per saperne di più prova a leggere questa pagina:

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


N.B. Non utilizzare la funzione "dbvalue" perchè è obsoleta. Utilizza sempre "dbexp"
Go to Top of Page

leslie
Utente Junior

74 Posts

Posted - 02 November 2007 :  14:08:19  Show Profile  Reply with Quote
Ciao, ho provato costruire i pivot come riportato nel topic ma non mi compare niente.
Forse ho compreso male e non si può fare, ma mi sembra di capire che se scarico i dati in real time e li visualizzo con compressione 5 minuti, con questa formula dei pivot oggi i valori che vedo dovrebbero essere quelli calcolati sul giorno precedente, ovvero sul massimo,minimo e chiusura di ieri. Pur visualizzando il grafico con compressione 5 minuti. Giusto?
Invece non mi calcola niente.
Queste sono le formule che ho usato
Pivot:
Function main()
Dim dMyMax As Numeric
Dim dMyMin As Numeric
Dim dMyClose As Numeric
if (Date < Date ( + 1)) Then
dMyMax = MaxEx(High, "D")
dMyMin = MinEx(Low, "D")
dMyClose = Close
Return ((dMyMax + dMyMin + dMyClose) / 3)
endif
endfunction

Resistenza:
Function main()
Dim dMyMax As Numeric
Dim dMyMin As Numeric
Dim dMyClose As Numeric
Dim P As Numeric
if (Date < Date ( + 1)) Then
dMyMax = MaxEx(High, "D")
dMyMin = MinEx(Low, "D")
dMyClose = Close
P = ((dMyMax + dMyMin + dMyClose) / 3)
Return (2 * P - dMyMin)
endif
endfunction

Supporto 1:
Function main()
Dim dMyMax As Numeric
Dim dMyMin As Numeric
Dim dMyClose As Numeric
Dim P As Numeric
if (Date < Date ( + 1)) Then
dMyMax = MaxEx(High, "D")
dMyMin = MinEx(Low, "D")
dMyClose = Close
P = ((dMyMax + dMyMin + dMyClose) / 3)
Return (2 * P - dMyMax)
endif
endfunction

Dove sbaglio?
Ciao e grazie come sempre
Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 02 November 2007 :  17:24:09  Show Profile  Reply with Quote
Direi che il codice che hai scritto non è corretto. Infatti, sopra era indicata una via da seguire, ma da completare.

Il codice corretto per il pivot è questo:


Function main()
Dim dMyMax As Numeric
Dim dMyMin As Numeric
Dim dMyClose As Numeric
Dim i as Numeric

For i = 1 to TotBar - 1
if (Date ( - i) < Date) then
dMyMax = MaxEx(High, "D", Date ( - i))
dMyMin = MinEx(Low, "D", Date ( - i))
dMyClose = Close

Return ((dMyMax + dMyMin + dMyClose) / 3)
endif
Next i

endfunction



Ma ci potevi arrivare benissimo da solo! dai su!
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