Ingressi frazionati
Forums › ProRealTime forum Italiano › Supporto ProOrder › Ingressi frazionati
- This topic has 5 replies, 2 voices, and was last updated 6 years ago by mourning33.
Tagged: frazionati, Ingressi
-
-
09/18/2018 at 4:52 PM #80791
Buongiorno,
sto provando a predisporre il codice per una strategia mean reverting piuttosto semplice, ma sono in difficoltà con l’immissione degli ordini frazionati. Io infatti vorrei entrare a mercato long se il prezzo è maggiore della media mobile a 200 periodi e contemporaneamente l’RSI a 2 periodi è inferiore di 10 utilizzando al massimo 4 ingressi frazionati (40%-30%-20%-10%) nel caso i parametri fossero rispettati. In pratica prima entrerei col 40% della posizione, poi se il giorno successivo le condizioni sono ancora verificate entrerei con un altro 30% e così via fino al 100% della posizione. Ovviamente non riesco ad inserire questi ordini frazionati. Nel codice ho utilizzato per semplicità una posizione totale di 10.000 euro così da entrare prima con 4.000 euro e poi eventualmente con i rimanenti 3.000-2.000 e 1.000 euro. Il problema è che la prima entrata è corretta, mentre poi le rimanenti sono errate e continua ad entrare a mercato superando la quota totale di 10.000 euro, che in effetti non saprei come indicare.
Ecco il codice:
1234567891011121314151617181920212223mm200 = average[200] (close)myrsi = RSI[2] (close)// Condizioni per entrare su posizioni longIF NOT LongOnMarket AND close>mm200 and myrsi<10 THENBUY 4000 CASH AT MARKETENDIF// Condizioni per entrare su posizioni longIF LongOnMarket AND close>mm200 and myrsi<10 THENBUY 3000 CASH AT MARKETENDIF// Condizioni per entrare su posizioni longIF LongOnMarket AND close>mm200 and myrsi<10 THENBUY 2000 CASH AT MARKETENDIF// Condizioni per entrare su posizioni longIF LongOnMarket AND close>mm200 and myrsi<10 THENBUY 1000 CASH AT MARKETENDIF// Condizioni per uscire da posizioni longIf LongOnMarket AND myrsi>70 THENSELL AT MARKETENDIFSET STOP %LOSS 10Riuscireste cortesemente ad indicarmi dove sbaglio?
Grazie mille!
09/18/2018 at 6:00 PM #80792Devi mettere una variabile che funga fa segnale, che inizi da 0 quando non sei a mercato e poi dovrai mettetla dopo ogni BUY incrementandone (1,2,3) il valore.
Alle condizioni BUY dovrai aggiungere AND Segnale=0 (per il primo BUY, 1 per il secondo ecc…).
09/19/2018 at 2:21 PM #80897Ciao,
ho provato a correggere in questo modo, ma stavolta mi fa sempre e solo la prima entrata e mai quelle successive.
1234567891011121314151617181920212223mm200 = average[200] (close)myrsi = RSI[2] (close)// Condizioni per entrare su posizioni longIF NOT LongOnMarket AND close>mm200 and myrsi<10 AND COUNTOFPOSITION=0 THENBUY 4000 CASH AT MARKETENDIF// Condizioni per entrare su posizioni longIF LongOnMarket AND close>mm200 and myrsi<10 AND COUNTOFPOSITION=1 THENBUY 3000 CASH AT MARKETENDIF// Condizioni per entrare su posizioni longIF LongOnMarket AND close>mm200 and myrsi<10 AND COUNTOFPOSITION=2 THENBUY 2000 CASH AT MARKETENDIF// Condizioni per entrare su posizioni longIF LongOnMarket AND close>mm200 and myrsi<10 AND COUNTOFPOSITION=3 THENBUY 1000 CASH AT MARKETENDIF// Condizioni per uscire da posizioni longIf LongOnMarket AND myrsi>70 THENSELL AT MARKETENDIFSET STOP %LOSS 1009/19/2018 at 3:04 PM #80910Non Funziona perché COUNTOFPOSITION dopo il primo BUY conterrà 4000, non 1!
Io ho usato una variabile per contare le operazioni fatte, indipendentemte dai lotti tradati (provalo, io non l’ho testato):
123456789101112131415161718192021222324252627282930IF NotOnMarket THENSegnale = 0ENDIFmm200 = average[200] (close)myrsi = RSI[2] (close)// Condizioni per entrare su posizioni longIF NOT LongOnMarket AND close>mm200 and myrsi<10 AND Segnale=0 THENBUY 4000 CASH AT MARKETSegnale = 1ENDIF// Condizioni per entrare su posizioni longIF LongOnMarket AND close>mm200 and myrsi<10 AND Segnale=1 THENBUY 3000 CASH AT MARKETSegnale = 2ENDIF// Condizioni per entrare su posizioni longIF LongOnMarket AND close>mm200 and myrsi<10 AND Segnale=2 THENBUY 2000 CASH AT MARKETSegnale = 3ENDIF// Condizioni per entrare su posizioni longIF LongOnMarket AND close>mm200 and myrsi<10 AND Segnale=3 THENBUY 1000 CASH AT MARKETSegnale = 4ENDIF// Condizioni per uscire da posizioni longIF LongOnMarket AND myrsi>70 THENSELL AT MARKETENDIFSET STOP %LOSS 1009/19/2018 at 3:10 PM #80911Scusami, l’ho modificato perché ho notato una mia svista, questo è quello corretto:
123456789101112131415161718192021222324252627282930IF NotOnMarket THENSegnale = 0ENDIFmm200 = average[200] (close)myrsi = RSI[2] (close)// Condizioni per entrare su posizioni longIF NOT LongOnMarket AND close>mm200 and myrsi<10 AND Segnale=0 THENBUY 4000 CASH AT MARKETSegnale = 1ENDIF// Condizioni per entrare su posizioni longIF LongOnMarket AND close>mm200 and myrsi<10 AND Segnale[1]=1 THENBUY 3000 CASH AT MARKETSegnale = 2ENDIF// Condizioni per entrare su posizioni longIF LongOnMarket AND close>mm200 and myrsi<10 AND Segnale[1]=2 THENBUY 2000 CASH AT MARKETSegnale = 2ENDIF// Condizioni per entrare su posizioni longIF LongOnMarket AND close>mm200 and myrsi<10 AND Segnale[1]=3 THENBUY 1000 CASH AT MARKETSegnale = 4ENDIF// Condizioni per uscire da posizioni longIF LongOnMarket AND myrsi>70 THENSELL AT MARKETENDIFSET STOP %LOSS 1009/19/2018 at 3:32 PM #80914 -
AuthorPosts