trasformazione valore matematico in PRT
Forums › ProRealTime forum Italiano › Supporto ProBuilder › trasformazione valore matematico in PRT
- This topic has 16 replies, 3 voices, and was last updated 4 years ago by coscar.
-
-
09/16/2019 at 8:34 AM #10766409/16/2019 at 10:17 AM #107686
Per favore, non aprire un nuovo argomento ogni volta che hai una domanda sulla stessa cosa … Non mi rispondi nemmeno all'ultima domanda che ho posto nell'altro argomento a riguardo. Comunque, se ti seguo, vuoi fare un valore esponente di -5 di 8,28171? La tua formula non è chiara, dal momento che non prendi in considerazione il tuo Close²? Per trasformare "XClose = (Close) ^ 2 * 8.28171e-05", farei:
123//XClose = (Close)^2 * 8.28171e-05xclose = square(close) * (1/(exp(5*log(8.28171))))09/16/2019 at 11:39 AM #107696Grazie Nicolas
scusa ma pensavo fosse una richiesta diversa dalla precedente, cerco di creare (come tutti) un indicatore che mi dia una previsione dei prezzi di chiusura giornaliera utilizzando i dati precedenti e l’apertura odierna alle ore 01:00. Attualmente ho creato un indicatore che ha un margine di errore in media del 20% nella settimana, cioè sbaglia previsione una candela su 5, e fornisce il prezzo di chiusura e posizione corrente.
Ho iniziato da qualche giorno ad utilizzarlo su un conto reale in modalità manuale e sembra rispondere bene
Con lo stesso procedimento vorrei crneare anche una previsione per il Massimo ed il minimo del giorno ed avviare una strategia automatica, ma alcune formule non sono in grado di trasformarle in PRT e senza il tuo aiuto non ci sarei riuscito.
Allego una immagine dell’indicatore, pubblicherò il codice non appena completato.
Grazie ancora per la tua disponibilità e professionalità.
09/16/2019 at 11:57 AM #10770009/19/2019 at 4:19 PM #107975Salve
allego codice di un indicatore creato per prevedere la posizione (Long/Short) ed il prezzo di chiusura della candela giornaliera odierna valido solo su Eur/Usd Mini e relativo scarto dalla chiusura reale
L’indicatore nasce da un modello creato ed analizzato da un software di rete neurale attraverso l’analisi di diversi parametri.
L’indicatore funziona benissimo tanto da provare a tradare in modalità convenzionale con un buon successo su conto reale.
Come da screenshots ho creato anche un indicatore esterno che mi evidenziasse il margine di errore settimanale con numero di candele e percentuale, in media l’indicatore mostra una previsione errata di 1 candela su 5 (circa 20%).
Per comodità sono stati inseriti nr.2 flag per la colorazione di background e l’ inserimento una regressione lineare con bande inferiori e superiori, per una futura strategia automatica.
Ieri , 18/09/2019, ho notato qualcosa di strano:
alle ore 08:00 l’indicatore prevedeva una posizione Long per la candela del 18/09/2019 ed ho aperto una posizione, ma chiusa comunque in profitto;
questa mattina invece mi indica una posizione Short per la stessa candela.
Vi chiedo cortesemente, se possibile, approffitare della vostra esperienze per verificare e risolvere questo bug .
Allego il tutto.
Saluti
Previsione Posizione e chiusura di EurUsd Giornaliero123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110////+--------------------------------------------------------------+//| Previsione Chiusura EurUsd Giornaliero |//| Prorealcode.com by Coscar |//+--------------------------------------------------------------+DEFPARAM CALCULATEONLASTBARS=50If Hour=1 thenGainUp = Dclose(0)-Dclose(1)MediaUp = Average [2](GainUp)GainDw = Max(GainUp,ABS(GainUp))MediaDwIeri = Average [2] (GainDw [1])GainDwIeri = GainDw[1]Apertura = DOpen (0)Media5 = Average[5](Dclose(0))ChiusuraIeri = Dclose(1)MinimoIeri = DLow (1)DPOx = Dclose(0)-Media5/2+1//Previsione Prezzo Chiusura Candela correnteY1 = -0.0433353 + Apertura*0.789109 + Media5*(-0.0116908) + GainUp*0.954934 + MediaUp*(-0.0153857) + DPOx*0.0433544 + MinimoIeri*(-0.019257) + ChiusuraIeri*0.220101 + GainDwIeri*0.0571963 + MediaDwIeri*0.0443629PrezzoPrevisione=Y1//Previsione Chiusura Candela Giorno dopo// da elaborare , non affidabile//Y2 = 0.00827408 + Apertura*0.992705 + GainUp*0.933295 + GainDwIeri*0.0578514//PrezzoPrevisione2 = Y2endifPerc= ((Close-PrezzoPrevisione))Pos = Max(High,PrezzoPrevisione)if Perc>=0 thenR=60G=179B=113elseR=220G=20B=60ENDIFif PrezzoPrevisione>Dopen(0) thenRp=60Gp=179Bp=113DRAWTEXT("Long", barindex, (Pos+50*Pipsize),SansSerif,Bold,12) coloured (Rp,Gp,Bp)BACKGROUNDCOLOR(Rp,Gp,Bp,30)elseRp=220Gp=20Bp=60DRAWTEXT("Short", barindex, (Pos+50*Pipsize),SansSerif,Bold,12) coloured (Rp,Gp,Bp)BACKGROUNDCOLOR(Rp,Gp,Bp,30)ENDIFDRAWTEXT("Scarto", barindex, (Pos+30*Pipsize),SansSerif,standard,13) coloured (70,130,180)DRAWTEXT("#Perc#", barindex, (Pos+25*Pipsize),SansSerif,standard,12) coloured (R,G,B)DRAWTEXT("Previsione", barindex, (Pos+55*Pipsize),SansSerif,Bold,13) coloured (70,130,180)DRAWTEXT("#PrezzoPrevisione#", barindex, (Pos+45*Pipsize),SansSerif,Bold,12) coloured (Rp,Gp,Bp)drawtext("----------",barindex,PrezzoPrevisione,dialog,bold,16) coloured(255,155,0)giorno = Dayofweek = 1if giorno thenDRAWvLINE(barindex) coloured (0,100,250)// linea di delimitazione settimanaleendif//verificaIf PrezzoPrevisione >Dopen(0) thenValue = 1ELSEValue = -1ENDIFIf Dclose(0)>DOpen(0) thenValueReal = 1ELSEValueReal = -1ENDIFp = ABS(value+valuereal)if p=0 thenX=1elsex=0endifValues = 0giorno = Dayofweek = 1IF OpenDayOfWeek >= 0 AND OpenDayOfWeek <= 6 THENFOR i = 0 TO 5 DOIF (X[i]=1) THENValues = Values + 1ELSEBREAKENDIFNEXTvalore = Values/5*100if valore>0 thenDRAWELLIPSE(barindex-1, (Low-10*Pipsize), barindex+1, (High+10*Pipsize)) coloured (255,0,0,200)DRAWTEXT("#Valore#%", barindex, (Low+5*pipsize),SansSerif,Bold,15)endifendifAVg =Average [5](PrezzoPrevisione)//-------------------------------------------Return Avg as "Media Previsione",PrezzoPrevisione coloured (0,100,250) style(Point,5) as "Previsione Chiusura"//, Close coloured (119,136,153) style(Point,5) as "Close", Dopen(0) coloured (0,100,250) style(point,5) as "Open"09/19/2019 at 4:27 PM #107980Scusate allego codice V2 , il file Itf allegato è comunque corretto.
Non cosiderate il precedente.
grazie
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120////+--------------------------------------------------------------+//| Previsione Chiusura EurUsd Giornaliero |//| Prorealcode.com by Coscar |//+--------------------------------------------------------------+DEFPARAM CALCULATEONLASTBARS=50If Hour=1 thenGainUp = Dclose(0)-Dclose(1)MediaUp = Average [2](GainUp)GainDw = Max(GainUp,ABS(GainUp))MediaDwIeri = Average [2] (GainDw [1])GainDwIeri = GainDw[1]Apertura = DOpen (0)Media5 = Average[5](Dclose(0))ChiusuraIeri = Dclose(1)MinimoIeri = DLow (1)DPOx = Dclose(0)-Media5/2+1//Previsione Prezzo Chiusura Candela correnteY1 = -0.0433353 + Apertura*0.789109 + Media5*(-0.0116908) + GainUp*0.954934 + MediaUp*(-0.0153857) + DPOx*0.0433544 + MinimoIeri*(-0.019257) + ChiusuraIeri*0.220101 + GainDwIeri*0.0571963 + MediaDwIeri*0.0443629PrezzoPrevisione=Y1//Previsione Chiusura Candela Giorno dopo// da elaborare , non affidabile//Y2 = 0.00827408 + Apertura*0.992705 + GainUp*0.933295 + GainDwIeri*0.0578514//PrezzoPrevisione2 = Y2endifPerc= ((Close-PrezzoPrevisione))PosH = Max(High,PrezzoPrevisione)PosL = Min(Low,PrezzoPrevisione)if Perc>=0 thenR=60G=179B=113elseR=220G=20B=60ENDIFif PrezzoPrevisione>Dopen(0) thenRp=60Gp=179Bp=113DRAWTEXT("Long", barindex, (PosH+31*Pipsize),SansSerif,Bold,12) coloured (Rp,Gp,Bp)if BackGround=1 thenBACKGROUNDCOLOR(Rp,Gp,Bp,25)endifelseRp=220Gp=20Bp=60DRAWTEXT("Short", barindex, (PosH+31*Pipsize),SansSerif,Bold,12) coloured (Rp,Gp,Bp)if BackGround=1 thenBACKGROUNDCOLOR(Rp,Gp,Bp,12)endifENDIFDRAWTEXT("Scarto", barindex, (PosL-20*Pipsize),SansSerif,standard,13) coloured (70,130,180)DRAWTEXT("#Perc#", barindex, (PosL-26*Pipsize),SansSerif,standard,12) coloured (R,G,B)DRAWTEXT("Previsione", barindex, (PosH+37*Pipsize),SansSerif,Bold,13) coloured (70,130,180)DRAWTEXT("#PrezzoPrevisione#", barindex, (PosH+25*Pipsize),SansSerif,Bold,12) coloured (Rp,Gp,Bp)drawtext("----------",barindex,PrezzoPrevisione,dialog,bold,16) coloured(255,155,0)giorno = Dayofweek = 1if giorno thenDRAWvLINE(barindex) coloured (0,100,250)// linea di delimitazione settimanaleendif//verificaIf PrezzoPrevisione >Dopen(0) thenValue = 1ELSEValue = -1ENDIFIf Dclose(0)>DOpen(0) thenValueReal = 1ELSEValueReal = -1ENDIFp = ABS(value+valuereal)if p=0 thenX=1elsex=0endifValues = 0giorno = Dayofweek = 1IF OpenDayOfWeek >= 0 AND OpenDayOfWeek <= 6 THENFOR i = 0 TO 5 DOIF (X[i]=1) THENValues = Values + 1ELSEBREAKENDIFNEXTvalore = Values/5*100if valore>0 thenDRAWELLIPSE(barindex-1, (Low-10*Pipsize), barindex+1, (High+10*Pipsize)) coloured (200,0,0,200)//DRAWTEXT("#Valore#%", barindex, (Low+5*pipsize),SansSerif,Bold,15)endifendifif Regression=1 thenAVg =LinearRegression[Periodregression](PrezzoPrevisione)BandUp =LinearRegression[Periodregression](PrezzoPrevisione)+ Dev*STD[Periodregression](PrezzoPrevisione)BandDw =LinearRegression[Periodregression](PrezzoPrevisione)- Dev*STD[Periodregression](PrezzoPrevisione)endif//Average [5](PrezzoPrevisione)//-------------------------------------------Return Avg*Regression as "Media Previsione",BandUp*Regression as "band Up",BandDw*Regression as "Band down"//,PrezzoPrevisione coloured (0,100,250) style(Point,5) as "Previsione Chiusura"//, Close coloured (119,136,153) style(Point,5) as "Close", Dopen(0) coloured (0,100,250) style(point,5) as "Open"1 user thanked author for this post.
09/19/2019 at 4:36 PM #107981Cosa desideri fare alla riga 9?
Te lo chiedo perché HOUR ti da l’ora alla chiusura della candela, quindi 1 significa la candela aperta a mezzanotte.
Siccome IG chiude il giorno alle ore 01:00 (Utc+2) probabilmente dovresti mettere una delle seguenti (per indicare il nuovo giorno):
- 2 al posto di 1
- OpenHour al posto di Hour
almeno se ho capito bene le tue intenzioni.
1 user thanked author for this post.
09/19/2019 at 4:44 PM #107982Ciao Roberto
in effetti hai ragione, mi serve il valore dell’apertura del nuovo giorno.
Inizialmente la riga 9 prevedeva Time=010000 ma ho notato che sostituendola con Hour=1 non cambiava nulla.
Proverò ad adottare le tue osservazione e vedrò come si comporta.
grazie
09/19/2019 at 4:47 PM #10798309/19/2019 at 4:54 PM #10798409/20/2019 at 8:27 AM #108041buongiorno Roberto
ho inserito alla riga 9 il codice OpenHour=1 ma ho notato che su Timeframe Daily il valore del PrezzoPrevisione varia continuamente,
mentre su timeframe inferiori (esempio 1h) rimane costante e fisso.
Come posso risolvere questo imprevisto su Daily?
Grazie per la collaborazione.
09/20/2019 at 8:49 AM #108043Certo, sul Daily non esistono le ore, quindi quelle condizioni non verranno mai verificate.
Quando la candela Daily apre sono le 1 per forza. Durante il giorno non ci sono altre candele Daily, per cui la prossima sarà alle 1 del giorno successivo.
Sul Daily le righe 9 e 31 non devono esserci, in ogni caso sono ignorate.
09/20/2019 at 10:33 AM #10805809/20/2019 at 10:50 AM #108066Basta che togli la riga 9 e la riga 31. Però devi farti un duplicato dell’indicatore, uno così com’è per l’intraday ed uno per il Daily senza quelle due righe.
L’alternativa potrebbe essere di usare IF IntraDayBarIndex = 0 invece iF OpenHour, però, molto stranamente, IG considera come prima barra del giorno la prima dalle 00:00 in poi, quindi sul 4 ore prende quella delle 01:00, ma su quelle da 1 ora in giù prende quella delle 00:00. Però questo a te falsa i risultati, perché la stessa IG considera il giorno di trading chiuso alle 01:00.
Diciamo che il comportamento di IG è piuttosto strano. La prima barra del giorno è quella delle 00:00, però il giorno lo chiude alle 01:00 ed il rollover lo calcola alle 23:00!
1 user thanked author for this post.
09/20/2019 at 11:23 AM #108072Roberto ho provato tutte le tue indicazione ma il valore di previsione varia con il variare delle oscillazioni di close, l’unica alternativa che mi consente sul Daily di mantenere fisso il prezzo di previsione è utilizzare IF Time=010000 ma questo genera qualche errore nella previsione in più , o eliminare le righe 9 e 31.
SI potrebbe incapsulare i parametri solo nel momento in cui viene formato una nuova Barindex su Daily?
-
AuthorPosts
Find exclusive trading pro-tools on