Assistenza per primo (banale) TS
Forums › ProRealTime forum Italiano › Supporto ProOrder › Assistenza per primo (banale) TS
- This topic has 3 replies, 2 voices, and was last updated 6 years ago by robertogozzi.
-
-
02/22/2018 at 11:51 PM #63596
Buonasera a tutti e grazie in anticipo per la vostra disponibilità.
(come intuirete tra pochissimo) sto provando a scrivere le mie prime righe senza riuscire.
Quello che volevo provare a scrivere è questo:
Se non sei già long, Entra long con 1 contratto quando il close di oggi è maggiore del MAXclose degli “n” giorni precedenti.
Esci dopo “x” giorni
Se non sei già short, Entra short con 1 contratto quando il close di oggi è minore del minclose degli “n” giorni precedenti.
Esci dopo “x”giorniHo definito sia n che x con valori compresi tra 1 e 20 con passo 2.
Non ho inserito né commissioni né spread.
Capitale di partenza 100000
Misura per lotto 1Il codice è il seguente:
1234567891011121314151617181920212223MAXrel = highest[n](close)minrel = lowest[n](close)EXIT = BARINDEX - TRADEINDEX// Condizioni per entrare su posizioni longIF NOT LongOnMarket AND Close > MAXrel THENBUY 1 LOT AT MARKETENDIF// Condizioni per uscire da posizioni longIf LongOnMarket AND EXIT = x THENSELL 1 LOT AT MARKETENDIF// Condizioni per entrare su posizioni shortIF NOT ShortOnMarket AND Close < MINrel THENSELLSHORT 1 LOT AT MARKETENDIF// Condizioni per uscire da posizioni shortIF ShortOnMarket AND EXIT = x THENEXITSHORT 1 LOT AT MARKETENDIF
Sto provando sulla versione free della PRT con i dati end of day.
Ma il sistema mi genera zero trade in tutto lo storico considerato.
Dove sto sbagliando ?
Grazie !02/23/2018 at 12:09 AM #63600Le righe 12 e 22 NON vanno bene in quanto, mentre è consentito accumulare più posizioni anche in tempi diversi, NON ne è consentita la chiusura parziale, per cui vanno chiuse tutte con:
123SELL AT MARKET //per i LONG// eEXITSHORT AT MARKET //per gli SHORTComunque questo non influisce sul tuo problema.
La tua strategia NON potrà mai funzionare perché confronti i massimi (ma vale anche per i minimi) delle ultime “n” candele, qujindi anche quella corrente col prezzo di chiusura corrente. Il prezzo di chiusura corrente NON potrà MAI essere superiore al proprio massimo!!!
Questo funziona (almeno su Eur/usd, h1):
12345678910111213141516171819202122232425ONCE n = 10ONCE x = 5MAXrel = highest[n](close[1])minrel = lowest[n](close[1])EXIT = BARINDEX - TRADEINDEX// Condizioni per entrare su posizioni longIF NOT LongOnMarket AND Close > MAXrel THENBUY 1 LOT AT MARKETENDIF// Condizioni per uscire da posizioni longIf LongOnMarket AND EXIT = x THENSELL AT MARKETENDIF// Condizioni per entrare su posizioni shortIF NOT ShortOnMarket AND Close < MINrel THENSELLSHORT 1 LOT AT MARKETENDIF// Condizioni per uscire da posizioni shortIF ShortOnMarket AND EXIT = x THENEXITSHORT AT MARKETENDIFA parte avere aggiunto le due variabili mancanti n ed x all’inizio, ho modificato le righe 3 e 4 in modo che verifichino fino alla chiusura PRECEDENTE.
Ho anche modificato le righe 14 e 24 per i motivi sopra indicati.
Roberto
02/23/2018 at 12:31 AM #63604Buonasera Roberto e grazie per la risposta in real time !
Ho provato a farlo girare ed in effetti funziona.Quindi le variabili n ed x le devo eguagliare ad una costante
“n = 10
x = 5 ”
anche se poi le voglio far variare ed utilizzarle come parametri per una eventuale ottimizzazione?Ho capito invece l’errore che facevo mettendo Close invece di Close[1], abbastanza ingenuo direi 🙂
Grazie di nuovo !
Luca
02/23/2018 at 12:50 AM #63609Per le variabili ho indicato ONCE, ma serve a poco, fa solo risparmiare qualche microsecondo al sistema che non deve riesaminarle ogni volta.
Se le tue variabili vuoi eventualmente variarle all’interno della strategia non usare ONCE.
-
AuthorPosts
Find exclusive trading pro-tools on