Info TrailingStop MFE con percentuali
Forums › ProRealTime forum Italiano › Supporto ProOrder › Info TrailingStop MFE con percentuali
- This topic has 6 replies, 3 voices, and was last updated 4 years ago by MauroPro.
Tagged: MFE, percentuale, stop, trailing, trailing stop
-
-
12/10/2020 at 3:07 PM #153232
Salve, stò studiando un trailingstop trovato nel blog di prorealcode (“Trailing stop with the Max Favorable Excursion MFE”) ed ho visto che si utilizzano nell’esempio i punti:
1 //trailing stop
2 trailingstop =20
22 if MAXPRICE-tradeprice(1) >=trailingstop x pointsize then
La domanda è: posso utilizzare nella riga 2 una percentuale (es. 0.5% al posto dei punti e come si scrive, semplicemente: 0.5% ?)
E poi, nella riga 22, al posto di “pointsize” cosa di scrive?
TRAILING MFE123456789101112131415161718192021222324252627282930trailingstop = 20//resetting variables when no trades are on marketif not onmarket thenMAXPRICE = 0MINPRICE = closepriceexit = 0endif//case SHORT orderif shortonmarket thenMINPRICE = MIN(MINPRICE,close) //saving the MFE of the current tradeif tradeprice(1)-MINPRICE>=trailingstop*pointsize then //if the MFE is higher than the trailingstop thenpriceexit = MINPRICE+trailingstop*pointsize //set the exit price at the MFE + trailing stop price levelendifendif//case LONG orderif longonmarket thenMAXPRICE = MAX(MAXPRICE,close) //saving the MFE of the current tradeif MAXPRICE-tradeprice(1)>=trailingstop*pointsize then //if the MFE is higher than the trailingstop thenpriceexit = MAXPRICE-trailingstop*pointsize //set the exit price at the MFE - trailing stop price levelendifendif//exit on trailing stop price levelsif onmarket and priceexit>0 thenEXITSHORT AT priceexit STOPSELL AT priceexit STOPendifGRAZIE
12/10/2020 at 4:18 PM #153238Questa è una funzione completa in percentuale con il trailing stop e il trailling step differenziate tra le operazioni long e quelle short.
Ciao
1234567891011121314151617181920212223242526272829303132percentagelong = 1percentageshort = 1percentagesteplong = 0.50percentagestepshort = 0.50TGL = (close/100)*percentagelongTGS = (close/100)*percentageshortSTPL = (close/100)*percentagesteplongSTPS = (close/100)*percentagestepshortif not onmarket thenMAXPRICE = 0MINPRICE = closePREZZOUSCITA = 0ENDIFif longonmarket thenMAXPRICE = MAX(MAXPRICE,close)if MAXPRICE-tradeprice(1)>=TGL thenPREZZOUSCITA = MAXPRICE-STPLENDIFENDIFif shortonmarket thenMINPRICE = MIN(MINPRICE,close)if tradeprice(1)-MINPRICE>=TGS thenPREZZOUSCITA = MINPRICE+STPSENDIFENDIFif onmarket and PREZZOUSCITA>0 thenEXITSHORT AT PREZZOUSCITA STOPSELL AT PREZZOUSCITA STOPENDIF2 users thanked author for this post.
12/10/2020 at 4:29 PM #15324112/10/2020 at 4:41 PM #153245Ottimo l’esempio di Mauro, ad ogni modo, per non stare a modificare il codice completamente basta convertire la percentuale in pips alla riga 1:
12trailingstop = (close * 0.5 / 100) / pipsize //0.5% del prezzotrailingstop = round(((close * 0.5 / 100) / pipsize) - 0.5) //0.5% del prezzo, arrotondati all'unità inferioresono due forme, la prima non arrotondata, quindi se vengono, ad esempio, 47.3 pips restano invariati (non è obbligatorio che siano numeri interi), mentre con la seconda vengono sempre arrotondati all’unità inferiore, nell’esempio fatto 47.
Se preferisci, invece, arrotondare sempre all’unità superiore puoi sostituire – 0.5 con + 0.4.
1 user thanked author for this post.
12/10/2020 at 4:47 PM #153247Grazie Roberto, ti chiedo una cosa banale: a volte vedo nei listati di strategie su prorealcode che si usa POINTSIZE altre volte PIPSIZE.
In generale nei mercati si usa il tick nel future ed il pip nel forex. Non mi sembra che su PRT si utilizzino i due termini per i differenti mercati, quindi ti chiedo: sono interscambiabili oppure c’è qualche differenza tecnica? (nel tuo esempio sopra, posso anche usare pointsize?)
GRAZIE
12/10/2020 at 6:11 PM #153258Sono interscambiabili, significano la stessa cosa.
Puoi usare tranquillamente PointSize al posto di PipSize.
Sono interscambiabili anche PipValue e PointValue (restituiscono il valore di 1 pip/punto, ad esempio 1 sul Dax 1€, 5 sul Dax 5€, 25 sul Dax 25€, 10 su EurUsd standard, ecc…).
12/10/2020 at 6:23 PM #153262 -
AuthorPosts