riduzione dello stop dopo n barre
Forums › ProRealTime forum Italiano › Supporto ProOrder › riduzione dello stop dopo n barre
- This topic has 9 replies, 2 voices, and was last updated 2 years ago by robertogozzi.
-
-
04/04/2022 at 6:06 PM #191194
salve a tutti,
ho provato a cercare nel forum una funzione simile, ma senza successo.
l’idea è quella di ridurre lo stop di una percentuale (considerando i punti/pip) rispetto allo stop iniziale, se il trade in corso è perdente dopo un numero definito di barre.
ho trovato una funzione chiamata “exit zombie trade” dal quale ho preso spunto.
esempio:
trade aperto perdente, dopo 10 barre, se il close si trova entro il 50% dell stop originario allora riduco lo stop del 20 % (tipo da 100 a 80 punti).
ovviamente è una bozza e non so ne se si può fare ne se è corretto come l’ho scritto, magari qualcuno ha pensato o fatto già qualcosa di simile.
allego le stringhe del codice.riduzione stop123456789ratiostop=(stoploss/100)*50 //percentuale dello stop iniziale in punti/pip entro la quale può essere ridotto lo stopentry=tradeprice(1)*pipsizestopreduce=((stoploss/100)*80) *pipsize //percentuale in cui lo stop dovrebbe essere ridotto (20%)closepositionatxbars= abs (entry- close)*pipsize //posizione del close dopo n barreif onmarket and barindex-tradeindex(1)>xbars and (MFE=0) and closepositionatxbars<ratiostop thensell at stopreduceendif04/05/2022 at 4:20 PM #191251Il tuo codice non è completo, inoltre non capisco cosa tu voglia fare alla riga 2, per cui ho scritto questo:
1234567891011121314151617181920IF OnMarket AND Not OnMarket[1] THENStopLoss = TradePrice - 100*PipSizeENDIFIF average[10] CROSSES OVER average[100] THENBUY AT MARKETStopLoss = close - 100*PipSizeSELL AT StopLoss STOPSET TARGET pPROFIT 50ENDIFIF OnMarket AND (BarIndex - TradeIndex) > 10 THEN //risuci del 20% dopo 10 barre se in perdita ed entro il 50%IF (close + 50*PipSize >= TradePrice) AND PositionPerf < 0 THENStopLoss = TradePrice - 80*PipSizeENDIFENDIFIF OnMarket THENSELL AT StopLoss STOPENDIFgraphonprice StopLoss coloured(255,0,0,255)graphonprice TradePricegraph PositionPerf04/05/2022 at 5:03 PM #191253Ciao Roberto,
il senso è piu o meno quello che hai scritto:l’esempio che avevo fatto in punti era esplicativo, in pratica l’idea era utilizzare una percentuale dello stop originaro, ti riporto ad esempio:
12345IF OnMarket AND (BarIndex - TradeIndex) > 10 THEN //riduci del 20% dopo 10 barre se in perdita ed entro il 50%IF (close < al tradeprice ma maggiore del 50% dello stop originario) AND PositionPerf < 0 THENStopLoss = (stoploss/100)*80 //80% dello stop di partenzaENDIFENDIFil punto è che non so come indicargli (oltre al resto) che deve calcolarmi la percentuale x dello stop
lo scopo è quello di ridurre il drawdown di un sistema durante quei trade che sono destinati a perdere.04/05/2022 at 5:09 PM #191254Si, va bene quello che hai scritto.
04/05/2022 at 5:44 PM #191257ok quindi in teoria andrebbe scritto cosi, riporto il tuo esempio, dimmi se scrivo corbellerie.
esempio di profitto perdite 1:112345678910111213141516IF average[10] CROSSES OVER average[100] THENBUY AT MARKETStopLoss = (close - lowest[10](low))perdita = StopLossprofitto= StopLossSELL AT StopLoss STOPSET TARGET pPROFIT stoplossENDIFratiostop= (perdita/100)*50 //la metà dello stop originarionuovostop= perdita- (perdita*0.2) // nuovo stoploss ridotto del 20 %IF OnMarket AND (BarIndex - TradeIndex) > 10 THEN // dopo 10 barre se in perdita ed entro il 50%IF (close + ratiostop >= TradePrice) AND PositionPerf < 0 THENsell at nuovostop stopENDIFENDIF04/05/2022 at 9:36 PM #191280Mancano le righe 1-3 del mio codice. Non che sia fondamentale, serve solo ad ottenere uno SL più preciso, in caso di gap o slippage.
Alla riga 7 usa PROFIT, senza la “p” iniziale.
Ma ci sono altre cose errate. Ad esempio alla riga 6 piazzi un ordine pendente per uscire, ma deve essere un prezzo, non una differenza tra prezzi.
04/05/2022 at 10:03 PM #191283Ok, tutto chiaro.
domani da pc riscrivo tutto.
per la prima parte non ci ho fatto molto caso onestamente quando scrivevo mi stavo concentrando sulle righe Dalla 10–>16.:/
Ma le righe del codice dalla 1–>3 vengono rilette anche in caso in cui vengono eseguite le ultime righe?
Grazie ancora
04/06/2022 at 1:47 AM #191293Vengono eseguite solo una volta, alla chiusura della prima candela dopo l’entrata.
04/06/2022 at 11:19 AM #191321ecco il codice, spero di averlo scritto corretto
12345678910111213141516171819202122232425IF OnMarket AND Not OnMarket[1] THENStopLoss = TradePrice - 100*pipsizeENDIFIF average[10] CROSSES OVER average[100] THENBUY AT MARKETStopLoss = close - (lowest [10] (low)profitto = stoploss*pipsizeSELL AT StopLoss STOPSET TARGET pPROFIT profittoENDIFperdita=stoploss *pipsizeratiostop= (perdita/100)*50 //la metà dello stop originarionuovostop= perdita- (perdita*0.2) // nuovo stoploss ridotto del 20 %IF OnMarket AND (BarIndex - TradeIndex) > 10 THEN // dopo 10 barre se in perdita ed entro il 50%IF (close + ratiostop >= TradePrice) AND PositionPerf < 0 THENsell at nuovostop stopENDIFENDIFIF OnMarket THENSELL AT StopLoss STOPENDIFgraphonprice StopLoss coloured(255,0,0,255)graphonprice TradePricegraph PositionPerf04/06/2022 at 5:39 PM #191347Ci sono ancora alcuni errori:
- riga 8, devi usare un PREZZO quando piazzi un ordine pendente, mentre alla riga 6 tu hai calcolato lo stop loss come una differenza tra due prezzi (chiusura e minimo)
- riga 7, moltiplicare per pipsize serve per convertire dei PIP in un prezzo, ma alla riga 6 lo stoploss è già calcolato come prezzo (differenza di prezzi)
- riga 9, devi usare PROFIT (senza la “p” iniziale), in quanto è una differenza di prezzi (non PIP).
Effettivamente per digerire il discorso Pips e Prezzi non è cosa facilissima. Se tu avessi la certezza che le tue strategie fossero SEMPRE usate con indici, dove il rapporto prezzo:pip è di 1:1, potresti anche dimenticarti di questo aspetto, però se vuoi creare delle strategie che funzionino sempre, indipendentemente dallo strumento, allora devi sapere applicare la conversione.
-
AuthorPosts
Find exclusive trading pro-tools on