CALCOLO DISTANZA CICLICA
Forums › ProRealTime forum Italiano › Supporto ProOrder › CALCOLO DISTANZA CICLICA
- This topic has 20 replies, 3 voices, and was last updated 7 years ago by papero76.
-
-
10/15/2017 at 11:36 PM #49447
ciao
sto elaborando un sistema che in primis mi calcoli la distanza ciclica
1 deve trovare il minimo di x barre quindi lowest[x] (low)
2 trovato il minimo deve aggiungere sequenzialmente 200 punti, quindi se il minimo e 3000 dovrà risultare 3000, 3200, 3400, 3600. 3800 ecc . Questi 200 punti sono un livello di resistenza
3 calcolato il primo livello 3200 , se la chiusura supera i 3200 entra un ordine long a 3200+10 quindi 3210
4 chiudi la posizione a 3400-10
5 se close supera 3400 entra long a 3410 chiudi a 3990
ecc ecc ecc
10/16/2017 at 9:12 AM #49497Dovresti specificare:
- su quale strumento vuoi operare
- su quale timeframe
- ogni quanto vuoi ricercare i nuovi massimi/minimi (continuamente ad ogni candela, oppure ad un ora precisa, oppure una sola volta al giorno)
Con questi dati posso provare a scrivere qualcosa.
Roberto
10/16/2017 at 12:51 PM #4955310/16/2017 at 7:09 PM #49615Ho iniziato a lavorarci e mi sto accorgendo che richiede un bel pò di logica, sii paziente!
10/16/2017 at 7:43 PM #4961910/17/2017 at 11:33 AM #49674Ho buttato giù queste righe, per un uso almeno parziale della strategia (tu avevi scritto solo LONG, io ho inserito anche la parte SHORT):
1234567891011121314151617181920212223242526272829303132333435363738394041424344DEFPARAM CumulateOrders = falseONCE PositionSize = 1ONCE LowHighBars = 10 //10 (numero di barre da considerare)ONCE PriceChunk = 20 //20 numero di PIPS da aggiungere/togliere ai limitiONCE PriceOffset = 10 //10 numero di PIPS da aggiungere/togliere all'entrataONCE LowestPrice = 0ONCE HighestPrice = 0ONCE NewLowestPrice = 0ONCE NewHighestPrice = 0LowestPrice = lowest[LowHighBars](low)HighestPrice = highest[LowHighBars](high)IF NewLowestPrice = 0 THENNewLowestPrice = LowestPrice + (PriceChunk * pipsize)ENDIFIF NewHighestPrice = 0 THENNewHighestPrice = HighestPrice - (PriceChunk * pipsize)ENDIF// LONGIF close > NewLowestPrice THENTp = NewLowestPrice + ((PriceChunk - PriceOffset) * pipsize)SET Target pProfit TpBUY PositionSize CONTRACTS AT NewLowestPrice + (PriceOffset * pipsize) LIMIT //Ordine pemdenteNewLowestPrice = NewLowestPrice + (PriceChunk * pipsize)ENDIF// SHORTIF close < NewHighestPrice THENTp = NewHighestPrice - ((PriceChunk + PriceOffset) * pipsize)SET Target pProfit TpSELLSHORT PositionSize CONTRACTS AT NewHighestPrice - (PriceOffset * pipsize) LIMIT //Ordine pemdenteNewHighestPrice = NewHighestPrice - (PriceChunk * pipsize)ENDIF//SET Stop pLoss 250 //250//GRAPH LowestPriceGRAPH NewLowestPriceGRAPH HighestPriceGRAPH NewHighestPriceGRAPH Tpma con GRAPH noto che alcune variabili, specificatamente HighestPrice e LowestPrice, assumono un valore diverso secondo quante barre vengono inizialmente caricate, non sulla base di quando la strategia parte.
Quindi non riesco ad andare avanti, anche perché la logica di entrata/uscita non è semplicissima.
Tu sei riuscito a trovare qualche soluzione?
10/17/2017 at 12:30 PM #49678ciao Roberto grazie per la gentile risposta e del tempo dedicato
il codice che io cerco è leggermente differente, comunque mi hai dato degli spunti utili.
in pratica non avrei bisogno del highest
una volta calcolato il minimo , quindi lowest, ad esso viene sommato ad esempio 200pt.
piubasso=lowest[x](low) //calcolo livello piu basso
livello= piubasso+200*pipsize // calcolo primo livello di acquisto
// LONGIF close > livello THEN //condizione di acquisto
prezzodiacquisto= livello+10*pipsize //calcolo prezzo di acquisto
buy 1 contracts at prezzodiacquisto limit //acquisto effettivoENDIFif longonmarket thenlivello=livello[1]+200*pipsize // calcolo secondo livelloprezzodivendita= livello-10*pipsize // calcolo livello di venditasell at prezzodivendita limit // vendita a livello di venditaendifquesta dovrebbe essere il primo codice che ho provato ieri, se ricordo beneora sono a pranzo al ristorante e non posso testare l’esattezza 😉 te lo invio per darti un idea di come dovrebbe esseregrazie in anticipoun altra domanda, vedo che utilizzi once per dare un valore di partenza alle variabili, mi consigli di utilizzarlo sempre? le variabili potrebbero partire da valori diversi da zero?10/17/2017 at 2:28 PM #49686Le variabili in qualche modo vanno sempre inizializzate, nel senso che se tu scrivi
1IF close > x THEN...ProOrder ti segnala l’errore “definisci la variabile x”.
Quindi devi mettere
1x = 0ed in questo modo, ad ogni candela, viene SEMPRE resettata a zero, qualunque fosse il suo valore precedente.
Se, invece, scrivi
1ONCE x = 0viene inizializzata a zero quando lanci la strategia, dopodiché mantiene il valore precedente tra una candela e l’altra.
Esiste anche la forma
1x = undefinedcioè indefinita, ma non l’ho mai usata e non so bene che valore possa avere inizialmente ed in quali circostanze è opportuno usarla.
10/17/2017 at 11:14 PM #4974910/18/2017 at 8:25 AM #49770Per il codice, come ti ho detto sopra, ho rilevato valori strani sul DAX, per cui non ho finito. Provo comunque a finire la strategia, indipendentemente dai risultati, poi vediamo.
Serve un pò di tempo.
10/20/2017 at 1:03 PM #5006210/20/2017 at 1:33 PM #50069Vedrò di aiutarti a migliorarla, purtroppo nel fine settimana non potrò metterci mano.
Ci risentiamo da lunedì.
10/20/2017 at 9:24 PM #5009110/21/2017 at 12:51 AM #5009710/22/2017 at 10:50 AM #50201 -
AuthorPosts
Find exclusive trading pro-tools on