difficoltà codice progressione posizioni
Forums › ProRealTime forum Italiano › Supporto ProOrder › difficoltà codice progressione posizioni
- This topic has 8 replies, 5 voices, and was last updated 4 years ago by gianpiero75.
-
-
09/21/2016 at 11:59 AM #13475
Buongiorno a tutti, sono nuovo ed ho subito da sottoporre un problema:
nel codice che segue fatto girare su PRT in backtest non risponde ai comandi che intendo io.
Semplicemente vorrei che se l’ultima posizione ha perso più dello 0,5 mi aggiungesse un contratto
e che se la strategia nel suo complesso sta perdendo più dell’ 1% all’ultima posizione mi raddoppiasse i contratti.
Qualcuno sa come uscirne?
Grazie 10001234567891011121314151617181920212223242526272829303132defparam cumulateorders = trueONCE OrderSize = 1ONCE ExitIndex = -2ExitIndex=BarIndexMie condizioniif c1 thenBUY 1 contracts AT MARKETExitIndex=BarIndexendifif c2 thenSELLSHORT 1 contracts AT MARKETExitIndex=BarIndexendifIF Barindex=ExitIndex+1 THENExitIndex=0REM Se l’ultima posizione chiusa ha perso + dello 0,5% aggiungere un contrattoIF positionperf < 0.5 THENOrderSize = OrderSize +1REM Se la strategia sta perdendo più dell'1%, allora raddoppiamo la grandezza della posizioneELSIF positionperf(1) > 0 THENOrderSize = 1elsif strategyprofit(1) < 1 thenordersize = ordersize *2REM Se la strategia guadagna,allora ritorniamo ad una posizione di grandezza 1ENDIFENDIF09/21/2016 at 2:23 PM #13487È necessario sostituire le linee 9 e 16 con la PositionSize si è precedentemente calcolato per lanciare correttamente la quantità desiderata di contratti sul mercato:
1234//line 9BUY OrderSize contracts AT MARKET//line 16SELLSHORT OrderSize contracts AT MARKET09/21/2016 at 4:14 PM #13502grazie mille Nicolas per la tempestività; il codice definitivo è quello che segue tuttavia quando una posizione chiude in perdita, quella successiva rimane sempre con la stessa quantità. Non so proprio cosa fare…
1234567891011121314151617181920212223242526272829defparam cumulateorders = trueONCE OrderSize = 1ONCE ExitIndex = -2ExitIndex=BarIndexmie condizioniif c1 thenBUY ordersize contracts AT MARKETExitIndex=BarIndexendifif c2 thenSELLSHORT ordersize contracts AT MARKETExitIndex=BarIndexendifIF Barindex=ExitIndex+1 THENExitIndex=0IF positionperf(1) < 0 THENOrderSize = OrderSize +1ELSIF positionperf(1) > 0 THENOrderSize = 1ENDIFENDIF10/22/2016 at 10:26 PM #1533710/24/2016 at 6:18 PM #1543410/24/2016 at 6:56 PM #15437Il codice non è completa nel tuo messaggio. Piuttosto difficile da aiuterà molto. Cosa succederà quando la rappresentazione grafica si positionperf? Si dovrebbe essere in grado di vedere ciò che è l’ultimo positionperf è inferiore a 0 o meno.
Inoltre, positionperf bisogno di almeno 1 candelabro per aggiornare il suo calcolo. Quindi se 2 commerci si è verificato nello stesso bar, ci dovrebbe essere un problema.1GRAPH positionperf(1)11/23/2020 at 8:46 AM #151273ciao ragazzi avete risolto per caso? perhè io pure ho lo stesso problema, non riesco porprio a trovare la quadra
11/23/2020 at 10:49 AM #151285Puoi spiegare esattamente qual’è il problema che stai avendo?
11/23/2020 at 1:36 PM #151298certo grazie…vorrei semplicemente aumentare la posione di 0.1 dopo ogni trade in gain.
e fermare l’incremento quando la size raggiunge un certo valore e farla ricominciare da capo (ma questo non ho nemmeno provato a scriverlo)
premetto che inizialmente avevo copiato il codice che c’è nel manuale di pro real time alla lettera, che poi è il codice postato dall’utente nel suo post, ma non funziona.
cmq nel mio codice il problema è che esegue l’istruzione sopo un trade vincente, ma poi non incrementa più e si ferma a 0.4, perchè ovviamente il codice viene riletto da capo e rilegge lo 0.3 iniziale.
sono molto neofita ovviamente.
12345678910111213141516171819202122232425262728293031DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate//z_normal_tool//sistema solo long// Normal_z = normalizzazione della differenza di periodo 1 di una media modbile triangolare//codice dell'indicatore//(Tma [1] - Tma [0])/ Dev.standard//parametri del sistema Tma[20] Dev Std [100]// Condizioni per entrare su posizioni longindicator1 = CALL "Normal z"[20, 100]//a=20//b=100c1 = (indicator1 CROSSES OVER 0)c2 = (indicator1 CROSSES UNDER 0)//mylot defaultmylot=0.3if positionperf(1)>0 thenmylot=mylot+0.1endifIF c1 THENBUY mylot CONTRACT AT MARKETENDIF// Condizioni per uscire da posizioni longIF c2 THENSELL AT MARKETENDIF -
AuthorPosts
Find exclusive trading pro-tools on