Numero massimo di trade per giorno
Forums › ProRealTime forum Italiano › Supporto ProOrder › Numero massimo di trade per giorno
- This topic has 16 replies, 2 voices, and was last updated 4 years ago by robertogozzi.
-
-
01/15/2020 at 12:43 PM #116865
Salve in diversi codici uso una funzione per stabilire il numero massimo di trade da fare, ho notato che pero’ se il trade si apre e chiude nella stessa candela non viene conteggiato, come posso fare per aggiustare questo errore? Ci ho provato ma non so quale possa essere la funzione.
Io attualmente uso:
12345678910111213141516171819202122232425262728////////////////////maxorderslong = 1 //max orders per daymaxordersshort= 0//BUY ORDERSif setuplong=1 thenif not onmarket and not NOTRADEDAYlong and timelong and condlong and countlong<maxorderslong THENIF maxsetup = 0 THENmaxsetup = resgraphonprice maxsetupendifBUY numberContracts CONTRACT AT maxsetup+1 stopset target profit 25set stop loss 50endifendif//counting ordersif LONGONMARKET and lastindex<>tradeindex thencountlong=countlong+1lastindex=tradeindexendifif shortonmarket and lastindex<>tradeindex thencountshort=countshort+1lastindex=tradeindexendifHo provato anche mettendo il count subito dopo l’ordine, ma se l’ordine non entra a mercato poi il sistema non opera
01/15/2020 at 1:03 PM #116867ho fatto questa modifica e sembra a ritroso andare bene potreste confermarmi la cosa?
1234if not onmarket and lastindex<tradeindex thencountlong=countlong+1lastindex=tradeindexendifanche se in caso di due candele consecutive che aprono e chiudono in stessa barra non riesce a contare la prima
01/15/2020 at 2:06 PM #116879Per verificare se c’è stata un’operazione aperta e chiusa nella stessa barra occorre scrivere:
123If STRATEGYPROFIT <> STRATEGYPROFIT[1] then.Endifperché è evidente che se il risultato della strategia è diverso da quello della barra precedente è dovuto ad un’operazione appena effettuata.
01/15/2020 at 2:07 PM #116880Per sapere se era Long o Short vedi https://www.prorealcode.com/topic/last-position-type/#post-104841
01/19/2020 at 6:54 PM #11723112345678910111213//------------------//check profitif strategyprofit<>strategyprofit[1] thenif positionperf(1)>0 thenif close<tradeprice(2) thengain=-1 //was sellelsif close>tradeprice(2) thengain=1 //was buyendifelsegain=0endifendifQuesto è quanto riporta nicolas, ma io non sono interessato al fatto che sia stato un gain o un loss, devo far si che ci sia un contatore separato per i trade che siano short o long. il problema è che il contatore non legge i trade aperti e chiusi nella stessa barra.
01/19/2020 at 6:55 PM #11723201/19/2020 at 7:09 PM #117235Il codice di Nicolas è quello che va messo tra la tua riga 1 e la riga 3, solo che oltre a differenziare i trade in profitto vanno anche differenziati quelli in perdita, dove lui ha messo GAIN=0.
Adesso non sono al PC, domani lo adatto.
01/19/2020 at 7:47 PM #11724001/20/2020 at 5:05 PM #117333Inserisci questo codice all’inizio della tua strategia, o comunque prima di nuove entrate a mercato e prima che ti serva sapere se il trade precedente era LONG o SHORT:
123456789101112131415161718EraLong = 0EraShort = 0if strategyprofit <> strategyprofit[1] thenif positionperf(1) > 0 thenif tradeprice(1) < tradeprice(2) thenEraShort = 1elsif tradeprice(1) > tradeprice(2) thenEraLong = 1endifelsif positionperf(1) < 0 thenif tradeprice(1) < tradeprice(2) thenEraLong = 1elsif tradeprice(1) > tradeprice(2) thenEraShort = 1endifendifendif//---------------------------------------------------------------se EraLong avrà valore 1 significa che il trade precedente era LONG, altrimenti avrà valore 0.
se EraShort avrà valore 1 significa che il trade precedente era SHORT, altrimenti avrà valore 0.
01/24/2020 at 2:28 PM #11770801/24/2020 at 2:48 PM #117712Metti un contatore per i Long ed ino per gli Short e tra le condizioni metti che quando ciascuno è arrivato al massimo t’impedisca di aprire nuove posizioni.
Questi contatori dovrai riazzerarli ogni volta che vuoi, ogni giorno, oppure ogni due giorni o una settimana.
01/30/2020 at 10:16 PM #118317ok quindi se ho capito io faccio cosi
123456789101112131415161718192021if MieCondizioni and erashort<1 thensellshort 1 contract at marketendifEraLong = 0EraShort = 0if strategyprofit <> strategyprofit[1] thenif positionperf(1) > 0 thenif tradeprice(1) < tradeprice(2) thenEraShort = 1elsif tradeprice(1) > tradeprice(2) thenEraLong = 1endifelsif positionperf(1) < 0 thenif tradeprice(1) < tradeprice(2) thenEraLong = 1elsif tradeprice(1) > tradeprice(2) thenEraShort = 1endifendifendifGIUSTO?
01/30/2020 at 10:54 PM #118318Esatto, proprio così.
01/31/2020 at 8:54 AM #11832701/31/2020 at 9:41 AM #118329Cosa intendi, fammi un esempio?
-
AuthorPosts
Find exclusive trading pro-tools on