Proiezione punti su retta obliqua
Forums › ProRealTime forum Italiano › Supporto ProBuilder › Proiezione punti su retta obliqua
- This topic has 5 replies, 2 voices, and was last updated 3 years ago by
cventurer.
-
-
11/10/2021 at 12:04 PM #181367
Ciao, sto scrivendo un indicatore per evidenziare i brakeout su una trendline obliqua, per ora funziona tutto riesco a disegnare le rette ma ho bisogno di calcolare i prezzi che incontra la retta successivamente ai primi 2 punti.
Mi spiego meglio se ho su un piano cartesiano (nel nostro caso barre sulla x e prezzo sulla y) e conosco i primi 2 punti A,B che creano la retta obliqua, come posso calcolare il punto C?
Esempio:
Punto A – Barra 1, Prezzo 100
Punto B – Barra 5, Prezzo 200
Punto C – Barra 10, Prezzo ?
Ho provato semplicemente a dividere la differenza di prezzo per il numero di barre e poi moltiplicarla per il N barre del punto C [ ((200-100)/5)*10 ] , si avvicina ma non è corretta, credo esista una formula ben precisa la conoscete?
11/10/2021 at 1:03 PM #181371Calcola la differenza di prezzo delle due prime barre, ed e 100, dividilo per 4 (differenza tra 1 e 5) ed ottieni l’incremento/decremento per ogni barra, ed è 25.
Adesso calcoli il numero di barre tra C e B, che è 5.
Moltiplichi l’incremento, 25, per il numero di barre future ed ottieni 125, che dovrai sommare a 200.
Quindi la trendline sarà al prezzo 325 quando arriva a C.
Se a C il prezzo sarà > (o < se la differenza era negativa, quindi ribassista) significa che c’è stata una rottura.
11/10/2021 at 1:33 PM #181374Grazie mille Roberto, avevo già provato questa soluzione, ma non viene preciso il risultato e non capisco bene il perchè.
Ti allego l’indicatore, è un po confuso perchè stò plottando i dati per verificare.
In pratica per ora il calcolo viene fatto sulle trendline ribassiste, ho plottato i valori che vengono calcolati ai quali si dovrebbe trovare la riga rossa, ma differiscono.
Il calcolo lo trovi dalla riga 166, i prezzi che vengono scritti hanno alla fine, tra parentesi quadrate, a quale trendline fanno riferimento (1,2,3, ecc)
Andrebbe caricato su un timeframe molto basso,1minuto anche 10 secondi possibilmente sul dax cosi possiamo confrontare con gli stessi parametri
quindi per fare la prova leggere il valore della trendline e confrontarlo con quello scritto sopra la candela (se ci sono più trendline, ci saranno più prezzi scritti
i parametri ottimali con tf bassi e dax sono:
ZZFVariation=15
PointVariation=4
Ti ringrazio tantissimo per l’aiuto
11/10/2021 at 1:47 PM #1813761234567891011DiffPrice=$indStartYRed[i]-$indLastYRed[i] //Calcolo differenza prezzoDiffBar=$indLastXRed[i]-$indStartXRed[i] //Calcolo differenza barre tra punto A e BPricexBar=DiffPrice/DiffBar //calcolo prezzo per barraBarAttuali=barindex-$indStartXRed[i] //calcolo N Barre dal Punto A ad auttualePriceAttuale=$indStartYRed[i]-(PricexBar*BarAttuali) //calcolo prezzo del punto XDRAWTEXT("#PriceAttuale# [#i#]",barindex,close+(i*2)) coloured(0,200,0,255)if open<PriceAttuale and close>PriceAttuale thenDRAWTEXT("B.OUT #i#",barindex,close,Dialog,Bold,10) coloured(0,200,0,255)endif11/10/2021 at 4:39 PM #181388Questo funziona, ti allego le foto di EurUsd, h1, con 20, 100 e 150 periodi:
123456789101112131415161718192021DEFPARAM DrawOnLastBarOnly = TRUEP = 150HH2 = highest[P](max(open,close))FOR i = 0 TO (P - 1)IF max(open[i],close[i]) = HH2 THENBar2 = BarIndex[i]HH1 = highest[P](max(open[i+1],close[i+1]))FOR j = 1 TO PIF max(open[j + i],close[j + i]) = HH1 THENBar1 = BarIndex[j + i]breakENDIFNEXTENDIFNEXTBars = Bar2 - Bar1Diff = HH2 - HH1Units = Diff / Barsx = (BarIndex + 10) - Bar2DrawSegment(Bar1,HH1,BarIndex + 10,HH2 + (x * Units)) coloured(0,0,255,255)RETURNPuoi anche usare questo indicatore per vedere il numero delle barre:
1RETURN BarIndex AS "BarIndex"11/12/2021 at 7:44 AM #181485Grazie mille come sempre, preferisco utilizzare il mio perchè traccia le linee esattamente come vorrei.
Comunque ho risolto, il problema non era nella formula (che era corretta, uguale a quella che mi hai proposto tu), ma stavo testando su tf a 10secondi e mi sono reso conto che il conteggio delle barre è “errato” nel senso che ci sono punti dove non ci sono barre ma i 10 secondi passano. In pratica ci sono dei vuoti , salendo di tf o utilizzando i tick il problema si risolve.
Comunque la formula corretta per trovare i punti successivi al secondo è:
(Xc-Xa):(Xb-Xa)=(Yc-Ya):(Yb-Ya)
Utilizzando l’esempio che avevo fatto sopra sarebbe:
Esempio:
Punto A – Barra 1(Xa), Prezzo 100(Ya)
Punto B – Barra 5(Xb), Prezzo 200(Yb)
Punto C – Barra 10(Xc), Prezzo ?(Yc)
(10-1):(5-1)=(Yc-100):(200-100)
9:4=(Yc-100):100
(2.25*100)+100=325(Yc)
Quindi con questa formula possiamo trovare il Punto G 🙂 🙂 🙂
-
AuthorPosts
Find exclusive trading pro-tools on