CUMULO DI POSIZIONI
Forums › ProRealTime forum Italiano › Supporto ProOrder › CUMULO DI POSIZIONI
- This topic has 3 replies, 3 voices, and was last updated 5 years ago by robertogozzi.
-
-
05/03/2019 at 10:06 PM #97642
Buonasera,
sto testando un sistema che, nelle mie intenzioni, dovrebbe cumulare posizioni (short) secondo la sequenza di lotti 2-4-7.
al verificarsi di evento ( esempio incrocio di due supertrend) identifico il livello del prezzo base e da questo tre ulteriori livelli : 2 livelli di uscita a 20 pip ( in guadagno o in perdita ) e un livello di ingresso in short.
il sistema l’ho testato su eur/usd time frame 15 min.
dopo l’apertura della prima posizione short con due lotti, la successiva operazione dovrebbe essere uno short con 4 lotti al verificarsi però di una condizione precisa e cioè il prezzo deve prima superare quello che ho chiamato livello di prezzo base e poi nuovamente ridiscendere ad incrociare al ribasso il livello di entryshort.
il problema che ho riscontrato è che il sistema continua ad entrare sul mercato con lotti da 4 e poi ancora lotti da 4 e così via.
ho anche qualche difficoltà ad entrare short con lotti da 7 ( probabilmente sbaglio il contatore di posizioni..).
spero di essere stato chiaro e allego anche il sistema
ringrazio anticipatamente per la collaborazione e saluto
Lamberto
05/09/2019 at 3:17 PM #98091Per ricevere assistenza, si prega di incollare il codice nel messaggio successivo e con il tasto 'inserisci codice PRT' per favore. Non ho letto il tuo codice, ma tieni presente che se si utilizza l'istruzione COUNTOFPOSITION, restituisce valori negativi quando conta ordini CORTI.
1 user thanked author for this post.
05/09/2019 at 9:32 PM #98110Nicolas buona sera,
grazie per il suggerimento. Ho provato ad inserire valori negativi del COUNTOFPOSITION e ottengo una serie di ordini non come vorrei 2 – 4 -7 , ma 2-4-4- etc: non riesco ad evitare che il sistema esegua ordini “doppi”.
allego il codice e saluto.
Lamberto
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152// Condizioni per entrare su posizioni longDEFPARAM CUMULATEORDERS=TRUE//TIMES = TIME > 070000 AND TIME < 210000A= TIME=070000//SUPERTREND[2,5] CROSSES OVER SUPERTREND[5,10]ONCE COUNT=0ONCE COUNT = 1once count=2once count=3IF A THENcount=1TRADEPRICES = CLOSELONGEXIT= (TRADEPRICES+0.0020)ENTRYSELL = (TRADEPRICES -0.0007)SHORTEXIT = (ENTRYSELL-0.0020)ENDIFIF NOT ONMARKET AND close CROSSES UNDER ENTRYSELL and coUNT =1THENSELLSHORT 2 LOT AT MARKETENDIFIF shortonmarket and CLOSE CROSSES OVER TRADEPRICES AND CLOSE CROSSES OVER ENTRYSELL and countofposition=-2 THENCOUNT = 2ENDIFIF SHORTonmarket and CLOSE CROSSES UNDER ENTRYSELL AND COUNT = 2 THENSELLSHORT 4 LOT AT MARKETENDIFIF CLOSE CROSSES OVER TRADEPRICES AND CLOSE CROSSES OVER ENTRYSELL AND COUNTOFPOSITION=-6 THENCOUNT = 3ENDIFIF SHORTonmarket and CLOSE CROSSES UNDER ENTRYSELL AND COUNT = 3 THENSELLSHORT 7 LOT AT MARKETENDIFIF SHORTONMARKET AND CLOSE CROSSES OVER LONGEXIT THENEXITSHORT AT MARKETENDIFIF SHORTONMARKET AND CLOSE CROSSES UNDER SHORTEXIT THENEXITSHORT AT MARKETENDIF05/14/2019 at 8:58 AM #98422Alle righe 7-10, che significano quelle diverse assegnazioni alla stessa variabile COUNT?
ONCE Count = … garantisce che il sistema inizializzerà quella variabile, con il valore da te indicato, solo la prima volta che viene eseguito. Tu potrai cambiarlo quando vorrai, ma il sistema, alle candele successive ignorerà l’istruzione ONCE.
Nel tuo caso COUNT avrà inizialmente valore 3 perché l’hai indicato per ultimo (il sistema legge il codice in ordine sequenziale, dall’inizio alla fine) e poi non lo cambierà più, a meno che lo cambi tu come hai fatto alla riga 12.
Inoltre, alla riga 12 (come alle altre che la seguono), tu hai scritto:
1LONGEXIT= (TRADEPRICES+0.0020)e formalmente va bene, però funziona solo sul Forex, perché, ad esempio, su indici come il DAX non funziona, perché non ha così tanti decimali, ti consiglio di indicando i Pips che t’interessano e di convertirli utilizzando PIPSIZE, in tal modo lo stesso codice funzionerà con qulunque strumento, che sia Forex, Indici, Azioni ecc…, così:
1LONGEXIT= (TRADEPRICES+20*pipsize) //aggiunge 20 pips al prezzo desiderato e lo assegna alla variabile LONGEXITUn altro paio di suggerimenti:
1) cerca di usare un misto di lettere minuscole e maiuscole, saranno più leggibili, sia le istruzioni che le variabili. Prova vedere quale di questi due codici uguali si legge meglio:
Esempio 112345678ORARIOINIZIO=090000ORARIOFINE=173000ORARIOCHIUSURA=220000MEDIA=AVERAGE[20]IF TIME=>ORARIOINIZIO THENIF CLOSE CROSSES OVER MEDIA THENBUY 1 CONTRACT AT MARKETENDIFEsempio 21234567OrarioInizio = 090000OrarioFine = 173000OrarioChiusura = 220000Media = Average[20]If Time >= OrarioInizio ThenBuy 1 Contract at MarketEndif2) meglio se cerchi di allineare (anche se non sempre è possibile) i dati, se indenti i blocchi IF…ENDIF ed i cicli di qualche spazio (io uso 3 spazi, ma va bene anche solo uno) verso destra e se per le variabili e nomi in generale usi nomi significativi che ti aiutino a capire subito di cosa si tratta, questo ulteriore esempio (è lo stesso del n. 1, ma molto meno leggibile):
Esempio 312345678A=090000B=173000C=220000D=AVERAGE[20]IF TIME=>A THENIF CLOSE CROSSES OVER D THENBUY 1 CONTRACT AT MARKETENDIFSono solo esempi, se li inserisci così ti viene segnalato errore per variabili inutilizzate.
1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on