Directional movement
Forums › ProRealTime forum Italiano › Supporto ProOrder › Directional movement
- This topic has 9 replies, 2 voices, and was last updated 5 years ago by R05.
Tagged: Adx, di, diminus, diplus, drirectional movement
-
-
09/13/2019 at 11:09 AM #107434
Gent.mi, vorrei implementare il sistema seguente (lo sto testando in manuale sul Dax time frame 30 secondi):
- compra appena il directional movement (DI+) incrocia al rialzo il directional movemente (DI-), però solo se l’ADX è maggiore del valore dell’ADX corrispondente al minimo a N periodi; se adx ancora inferiore all’adx a n periodi si sta fermi, ma si entra appena supera quel valore (vi allego un esempio)
Di seguito ho messo giù la parte long, ma non riesco a indicare nel sistema il valore che aveva l’ADX in corrispondenza del minimo suddetto. Nel trading system allegato ho riportato ADX > del valore ADX di 10 periodi fa, ma non è corretto, perchè vorrei che fosse maggiore proprio del valore ADX in corrispondenza del minimo a N periodi.
123456789101112131415161718192021// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.DEFPARAM FLATBEFORE = 090000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"DEFPARAM FLATAFTER = 173000// Condizioni per entrare su posizioni longindicator1 = DIplus[14](close)indicator2 = DI[14](close)c1 = (indicator1 CROSSES OVER indicator2)indicator3 = ADX[14]c2 = (indicator3 > indicator3[10])IF c1 AND c2 THENBUY 1 CONTRACT AT MARKETENDIF// Stop e targetSET STOP pLOSS 15SET TARGET pPROFIT 1509/13/2019 at 11:50 AM #107439Provalo:
1234567891011121314151617181920212223242526// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.DEFPARAM FLATBEFORE = 090000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"DEFPARAM FLATAFTER = 173000// Condizioni per entrare su posizioni longindicator1 = DIplus[14](close)indicator2 = DI[14](close)c1 = (indicator1 CROSSES OVER indicator2)indicator3 = ADX[14]IF c1 THENMinimoADX = lowest[10](indicator3)ENDIFc2 = (indicator3 > MinimoADX)IF OnMarket THENc2 = 0ENDIFIF c2 THENBUY 1 CONTRACT AT MARKETENDIF// Stop e targetSET STOP pLOSS 15SET TARGET pPROFIT 1509/13/2019 at 1:26 PM #107454Si grazie Roberto, ho provato ma non fa quello che vorrei. Ho allegato un esempio di entrata col tuo trading system con il problema da risolvere.
Il fatto è che non si riesce a indicare il valore dell’ADX in corrispondenza di un minimo o di una candela precedente, perchè è fondamentale sapere il valore dell’ADX in corrispondenza proprio di quel minimo particolare.
09/13/2019 at 2:06 PM #107466Calcola il minimo dell’ADX degli ultimi N periodi quando c’è l’incrocio ed al superamento di quel valore minimo dell’ADX ti fa entrare.
Dalla tua foto non vedo data ed orario delle candele, per cui non riesco a replicare.
Dalla mia foto puoi vedere quando c’è un incrocio e salva il minimo ADX delle ultime 10 candele, che è proprio in quella candela, per cui quando l’ADX supererà quel valore entrerà a mercato.
09/13/2019 at 2:55 PM #10747909/13/2019 at 2:57 PM #10748109/13/2019 at 4:03 PM #107490In effetti l’incrocio che tu hai indicato è tra DIplus (linea DI+) e DI (istogramma), sei sicuro che non sia DIminus (DI-), perché l’istogramma non lo incrocia mai!
09/13/2019 at 4:50 PM #107495Si Roberto scusa, ho sbagliato. E’ DIminus. L’ho corretto, ora va, solo che ogni volta che prende il target o lo stop se l’adx attuale è superiore al valore dell’adx a 10 periodi apre una posizione. Mentre se volessi trovare il valore dell’ADX in corrispondenza di un minimo o massimo di prezzo come dovrei fare?
09/13/2019 at 11:46 PM #107522Per trovare l’ADX in corrispondenza di un minimo/massimo (non l’ho provato):
12345678910Periodi = 20HH = highest[Periodi](high)LL = lowest[Periodi](low)MyADX = Adx[14]IF high = HH THENHighADX = MyADXENDIFIF low = LL THENLowADX = MyADXENDIFal termine HighADX conterrà l’ADX del momento in cui è stato registrato un massimo e LowADX quando è stato registrato un minimo.
09/15/2019 at 3:41 PM #107592 -
AuthorPosts