Avevo perso di vista questo argomento.
Proverò a ristudiarmelo.
P = 200
PerCent = 0.01 //0.01% di vicinanza per considerare il livello toccato
PuntoA = highest[P](high)
PuntoX = lowest[P](low)
//
levelAB = (PuntoA - PuntoX) * 0.50
levelBC = (PuntoA - levelAB) * 0.382
levelCD = (PuntoA - PuntoX) * 0.886
//
PuntoB = PuntoA - levelAB
PuntoC = PuntoA - levelBC
PuntoD = PuntoA - levelCD
ciao Roberto e grazie della risposta, ho provato ad usare il tuo programma mettendoci i dati del “Bat pattern” (che metto qui sotto) li ho inseriti come sopra(ho cambiato i nomi solo perché mi tornava più comodo a me), non so se li ho messi bene ovviamente…
XA = può essere ovunque nel grafico
AB = Deve toccare almeno con l’ombra il livello 0.50 di XA ma
non può toccare in alcun modo il livello 0.618 di XA.
BC = Deve toccare almeno con l’ombra il livello 0.382 di AB ma
non può toccare in alcun modo il punto A.
CD = Deve toccare almeno con l’ombra il livello 0.886 di XA ma
non può toccare in alcun modo il punto X.
Ciao io purtroppo in questo periodo non ho tempo da dedicargli , spero di averlo un po più avanti.
grazie tatankayotanka comunque della risposta, io con l’aiuto di Roberto(spero) di riuscire a fargli trovare qualcosa al programma in questione e magari far si che lo disegni anche sul grafico…spero di risentirti comunque qui per eventuali aggiornamenti futuri, buon fine settimana.
forse ho trovato la soluzione( parlando a voce ma non so come trasformarla in codice), perché effettivamente a me serve trovare un range e non un dato preciso. Per spiegarmi meglio..invece che inserire questa linea di codice”…* 0.50″, a me serve trovare un range.. ovvero il range(va bene anche l’ombra, non per forza dev’ essere il prezzo di chiusura), che va da 0.50 a 0.618…la domanda è: come faccio a dirgli di trovare quel range e moltiplicarlo per quel range e non per un singolo parametro?
levelAB = (PuntoA - PuntoX) * 0.50
Devi calcolare i due estremi del range:
RangeMax = (PuntoA - PuntoX) * 0.618
RangeMin = (PuntoA - PuntoX) * 0.500
dopodichè quando vuoi verificare se qualcosa è in quel range (ad esempio HIGH), puoi fare:
IF high <= RangeMax AND high >= RangeMin THEN
.
.
ENDIF
grazie Roberto, di continuare a seguirmi..sei veramente gentile.ora provo e poi ti dico nei prossimi giorni..Buona serata
Niente da fare, forse ho belle idee in testa ma zero conoscenza di prorealtime…mi sono letto tutto il manuale, spulcio questo forum..ma non riesco a parlare con il grafico…-.-…riesco a disegnare qualche piccola linea e a fargli trovare qualcosa ma non ci si capisce nulla…ho disegnato quello che vorrei uscisse nel grafico(solo la prima parte perchè vorrei imparare a programmare(quindi la seconda parte vorrei almeno provare a farla io..) se non è chiaro qualcosa per favore ditemelo, e cercherò di essere più chiaro possibile. Grazie a chi mi aiuterà.
Prova a postare l’ultimo codice che hai scritto, vedrò se riesco a lavorarci (giovedì mi sono rotto il polso destro e starò ingessato per un mesetto), magari lentamente con la mano sinistra.
defparam drawonlastbaronly = true
defparam calculateonlastbars = 1000
P = 200
X= highest[P](high)
A= lowest[P](low)
RangeMax = (X - A) * 0.618
RangeMin = (X - A) * 0.500
IF high <= RangeMax AND high >= RangeMin THEN
XA=1
endif
levelB = (X - A)*B
PuntoB = X - levelB
x = max(levelB,PuntoB - low)
DRAWSEGMENT(x,high[P],barindex,low)
Ciao Roberto, mi dispiace che tu ti sia fatto male…se non ci puoi guardare non importa…cerca di rimetterti che quello è più importante…ho sbagliato ed ho scritto nell’altro posto…per rispondere a questo…ma come ti sei fatto male?(se posso)
L’altro l’ho cancellato.
Sono scivolato sulle scale a chiocciola della mansarda. Un mese passa velocemente.
Già mi sto abituando alla sinistra.
Tu vuoi il rettangolo nella posizione del range, vero?
Manca la variabile B, che valore ha?
La variabile XA a cosa ti serve?
Che sfortuna!!!(2 anni fà mi sono rotto la mano sx, appena togli il gesso ti consiglio di fare una buona fisioterapia..almeno tornerai come nuovo)
il rettangolo non mi interessa(serviva solo per far capire il range di interesse)
B= 0.50 0.618(è il RangeMax- RangeMin)
la variabile XA l’avevo creata per cercare di dire al programma di calcolare il range che aveva trovato
(levelB = (X – A)*XA), ho sbagliato a scrivere il programma sopra….
a me interessa semplicemente che trovando un segmento XA[n], trovi un segmento AB(quindi il punto B) che per essere valido abbia il range 0.50 0.618.
riposto la foto e vedo se riesco a spiegarmi….(che sò benissimo non essere facile dall’altra parte capire cosa uno vuole…)
Le tue righe dalla 9 in poi non capisco bene cosa facciano, ad ogni modo hai già tutti i livelli dir prezzo, X, A e B, quindi basta che con un ciclo FOR…NEXT sufficientemente grande (non importa quanto, tanto esci con Break, ma è meglio non farlo infinito) cerchi le relative barre, corrispondenti ai livelli B ed A.
Prova questo (io non l’ho provato):
BarraA = 0
BarraB = 0
For i = 1 To 1000
If high >= RangeMax Then
BarraB = BarIndex[i]
Endif
If low = A Then
BarraA = BarIndex[i]
Endif
If BarraA and BarraB Then
Break
Endif
Next
DRAWSEGMENT(BarraA,A,BarraB,RangeMax)
Provo a spiegarti le mie intenzioni…
9 IF high <= RangeMax AND high >= RangeMin THEN (ho provato a definire il range che mi interessa)
10 XA=1 (hio tentato di creare una variabile con quel range, ma se do 1 penso che non capisca il range)
11 endif
12 levelB = (X – A)*B (ho provato a trovare il valore B moltiplicato il valore che ha trovato nel range della riga 10)
13 PuntoB = X – levelB ( il punto B)
14 x = max(levelB,PuntoB – low) (ho tentato di creare una variabile per far si che mi disegni una linea)
15 DRAWSEGMENT(x,high[P],barindex,low) (ho tentato di disegnare una linea)
adesso provo il tuo programma e vediamo se riesco a tirare fuori qualcosa….:)
ho provato il codice e mi dice di definire la variabile “rangemax” e la variabile “a”