fare operazioni al verificarsi di condizioni
Forums › ProRealTime forum Italiano › Supporto ProOrder › fare operazioni al verificarsi di condizioni
- This topic has 9 replies, 2 voices, and was last updated 4 years ago by leo di menno.
-
-
11/22/2020 at 6:05 PM #151232
salve a tutti, dopo vari tentativi ho deciso di chiedere il vostro aiuto, in pratica qualunque strategia tenti di scrivere il prorealtime compra sempre alla candela successiva e non al momento esatto in cui si verifica l’evento, per esempio la semplice rottura della candela precedente, voi come scrivereste una strategia che compri nel momento esatto della rottura del massimo precedente?
11/22/2020 at 6:39 PM #151235Non so che codice tu abbia scritto, ma credo sia corretto, è solo una questione di tempistica.
Devi solo capire bene il funzionamento delle strategie e le loro tempistiche:
- le strategie vengono eseguite, sempre, alla CHIUSURA di ogni candela (ogni 4 ore se usi un time frame, a 4 ore oppure ogni secondo se usi un time frame di 1 secondo), immediatamente PRIMA che la nuova candela inizi
- tu vedi la frecc0a d’entrata su quella che tu chiami candela successiva in quanto una volta che le condizioni sono verificate ed antra a mercato NON può tornare indietro e stampare la freccia sopra la candela ormai chiusa, quindi la vedi nel momento esatto in cui l’operazione ha luogo, cioè alla fine della candela, che altro non è che l’inizio di quella successiva
- quindi la freccia la vedi sulla candela successiva, ma le condizioni sono state verificate sulla candela che la precede (candela di setup)
- quando, nella strategia, usi CLOSE (o CLOSE[0] che è lo stesso), non fai riferimento al prezzo della candela appena aperta, bensì all’ultimo prezzo (che è quello di chiusura) dell’ultima candela CHIUSA, perché a quella appena aperta NON si può accedere, salvo l’eccezione di cui sotto.
Intervenire a candela in formazione NON è possibile in condizioni standard, però da quasi due anni è stato introdotto il supporto MTF, Multi (o Multiple) Time Frame, ovvero la possibilità di usare anche un TF più piccolo, oltre a quello che usi per il setup, proprio per potere intervenire anche a candela aperta.
In realtà si interviene SEMPRE a candela chiusa, però, ad esempio, su un TF a 1 secondo, quando ogni secondo la strategia viene eseguita avrò la possibilità di operare anche sulla candela a 4 ore o Daily che sia.
Se cerchi sul forum le parole MTF oppure MULTI TIME FRAME, troverai molti articoli, post e codici da leggere per farti un’idea precisa di come funzioni.
11/23/2020 at 9:25 AM #151276grazie per le preziose info, io avevo scritto un codice molto semplice che poi avrei dovuto migliorare, tipo questo
c1= high>high(1)
if c1 then
buy 1 share at market
si trattava di una strategia che compra al superamento della barra precedente, mi sembra di aver capito che per avvicinarmi a quello che voglio fare io devo usare tf bassissimi… ci sono 2 problemi, uno è che in realta il programma non fa quello che gli chiedo e cioè comprare alla rottura di un prezzo che però di volta in volta dovrebbe leggere lui(max candela precedente) e secondo problema è che usando tf molto bassi è vero che mi avvicino a quello che voglio senza mai raggiungerlo ma è altresì vero che usando i tf molto bassi il back test risulta molto corto e quindi non posso testare sul lungo periodo, a questo punto se volessi lavorale sulle 2 ore dovrei mettere tf a 1 secondo e modificare il programma scrivendo
high>highest(7200)(high)?
grazie in anticipo
11/23/2020 at 10:47 AM #151284No, per usare due TF devi fare (devi studiarti un pò gli argomenti in merito e fare prove):
123456Timeframe(2 hour,UpdateOnClose)c1 = high[1]Timeframe(default)IF close > c1 THENBUY 1 CONTRACT AT MARKETENDIFcertamente hai uno storico molto più basso (100K barre a 1 secondo fa una settimana scarsa, poco importa se usi 5 o 10 secondi). Prova con 1 minuto o mafari 5.
Però nel tuo caso non credo sia necessario utilizzare il supporto MTF, basta che piazzi un ordine pendente STOP sul TF a 2 ore:
1BUY 1 CONTRACT AT high STOPresta da capire cosa intendio per massimo precedente, se quello delle 2 ore precedenti la candela appena chiusa, oppuyre se quella appena chiusa. Nel mio esempio faccio riferimento a quella chiusa, che per le prossime 2 ore sarà considerata candela corrente (ricorda che la candela che si è appena aperta, per le strategie, non esiste finché non chiuderà).
11/26/2020 at 9:39 PM #151826grazie delle info, tuttavia non sono riuscito a scrivere la strategia che pensavo, ora la riassumo, voglio scrivere un programma che compri tutti i giorni alle 15e30 e venda alle 17e30, un numero di contratti o azioni pari ad un controvalore di 5000 euro (quindi diverso per ogni strumento) , le condizioni per l’acquisto devono essere che :
1 il titole deve essere in guadagno giornaliero di almeno il 2%
2 la percentuale di guadagno alle 15e30 deve essere>della percentuale all’apertura
3 non ci devono essere più di 2 strumenti in cui gia sono a mercato
inoltre lo stesso sistema dovrebbe lavorare anche short ma li credo di riuscire ad arrivarci
lo stesso programma vorrei back testarlo per almeno 5 anni e non so come fare se uso tf troppo bassi.
grazie in anticipo, per qualsiasi chiarimento sono a disposizione
spero di riuscire con prt altrimenti vorrei provare con tradestation o multichart, secondo voi il linguaggio è più semplice ed intuitivo?
11/26/2020 at 9:59 PM #151827Le strategie NON possono lavorare su più di uno strumento,
Sui TF piccoli hai un periodo limitato di storico perché 100K barre a 1 minuto sono un periodo inferiore a 100K barre a 1 ora o daily.
ProRealTime offre, a pagamento, la v11 Premium con 1M barre a disposizione.
Però non puoi tradarci, solo fare i backtest (sui Fututes, non Cfd ‘s).
11/26/2020 at 10:28 PM #151828questo sono riuscito a scrivere, non fare caso agli slash, sono i vari esperimentri che ho fatto. secondo te cosa è sbagliato? chi potrebbe darmi una mano a scrivere una strategia simile? grazie
123456789101112131415161718192021222324252627282930313233343536373839404142//DEFPARAM FLATAFTER=172800 // replace closetime conBegTime=153000EndTime=172500MyContracts=800r1=dopen(0)-dclose(1)c1=(r1*100/dclose(1))z1=open[0]>open[68]a1=open[0]<open[68]//SkipDay=dayofweek<>5if intradaybarindex=0 then//maxSetup = 0//minSetup = 0//dailyfactor = abs(dOpen(0)-dClose(1))//tradethisday=0elseif barindex=tradeindex then//tradethisday=1endifendifif c1<=-2 and a1 and time = begtime thenSELLSHORT mycontracts CONTRACTS AT MARKETendifIF ShortOnMarket AND Time = endtime THENEXITSHORT AT MARKETendifIf c1 >=2 and z1 and Time = BegTime thenBuy mycontracts contract at marketendifIf longonmarket and Time >= EndTime thensell at market//SellShort mycontracts contract at minSetup stop//ExitShort at slShort stop//endif//If LongOnMarket then//Sell at slLong stop//elsif ShortOnMarket then//ExitShort at slShort stopendif11/27/2020 at 12:45 AM #151833Per favore usa sempre il pulsante “Insert PRT code” quando inserisci il codice nei tuoi post per facilitare la lettura degli altri, come evidenziato in giallo più sotto.
Grazie 🙂
11/27/2020 at 12:47 AM #151834Perché pensi di avere sbagliato?
Cosa?
11/27/2020 at 6:23 AM #151836io credo. che non sia giusto perché il prt, guardando le operazioni che apre, a volte compra al verificarsi delle condizioni ed a volte no, inoltre non so come dire al programma di verificare che il valore del prezzo alle 15e30 sia maggiore o minore del 2% e comunque maggiore o minore del prezzo alle 9. per esempio se(parlando di acquisto long) se il mercato apre a +1,8 e alle 15e30 è 2,3 allora acquista, se invece il mercato apre a +3 e alle 15e30 é a +2,3 non acquisto in quanto il trend sta perdendo forza, in definitiva non so far leggere al programma il valore di prezzo riferito al tempo, oppure usando, per esempio, un tf di 4 ore fargli leggere il valore di prezzo istantaneo senza aspettare la fine della candela. esiste un modo per verificare quali siano state le condizioni per cui il prt ha aperto una posizione per esempio? tipo pulsante destro sulla freccia nel grafico?
-
AuthorPosts
Find exclusive trading pro-tools on