Massima perdita settimanale
Forums › ProRealTime forum Italiano › Supporto ProOrder › Massima perdita settimanale
- This topic has 9 replies, 2 voices, and was last updated 5 years ago by Mauro T. “Algorithm System”.
-
-
12/08/2018 at 12:13 PM #86561
Buongiorno, non riesco a bloccare il sistema in uso dopo una perdita superiore a X Euro ( Per es. 200 Euro).
Ho questa soluzione per il giornaliero e vorrei trasformarlo in settimanale o mensile in base alle esigenze del trading in uso.
Grazie
Mauro
12345678910111213141516171819202122// ---parametersMaxDailyProfit=1000 //Max daily profit allowed (in money)MaxDailyLoss=1000 //Max daily loss allowed (in money)// first time we launch the code, the trading is allowedonce TradeAllowed=1// reset the current state of the strateygprofit each new dayIf intradaybarindex=0 thenMyProfit=STRATEGYPROFITTradeAllowed=1endif// test if the strategyprofit of the day is currently above the daily profit allowed of below the daily loss allowedIf StrategyProfit>=MyProfit+MaxDailyProfit or Strategyprofit<=MyProfit-MaxDailyLoss thenTradeAllowed=0endif// initiate a new BUY orderif TradeAllowed=1 and buyconditions thenbuy 1 lot at marketendif12/10/2018 at 1:10 AM #86633Le righe 9-12 non hanno senso per TF che non siano intraday, come dice la parola stessa INTRADAYBARINDEX. Nel caso del giornaliero o settimanale penso quella costante di sistema restituisca sempre zero, quindi le righe verranno SEMPRE eseguite.
STRATEGYPROFIT viene aggiornato alla chiusura di ogni operazione (non mentre è aperta), per cui, al posto delle righe 9-17 dovresti mettere queste (non ho fatto nessun test, fammi sapere tu se funziona):
12345678910111213141516171819ONCE MaxLoss = 200 //importo max. della perdita//// dopo una barra di sosta, a causa perdita eccessiva, abilitare nuovamente il tradingIf TradeAllowed=0 thenTradeAllowed=1endif//// Verificare se dopo la chiusura di un’operazione c’è stata una perdita superiore al massimo consentito// nel qual caso impedire il tradingIf Not OnMarket AND OnMarket[1] THENIf MyProfit >= (STRATEGYPROFIT + MaxLoss) THENTradeAllowed=0endifendif//// Quando non si è a mercato aggiornare MyProfit al valore corrente dopo l’ultima operazioneIf Not OnMarket thenMyProfit=STRATEGYPROFITendifQuesta modifica consente di inibire il trading per una barra dopo una perdita consistente e funziona su qualunque TF, che sia 1 minuto o mensile!
Se vuoi inibire PER SEMPRE l’operatività, interrompendo la strategia, basta che sostituisci
123If MyProfit >= (STRATEGYPROFIT + MaxLoss) THENTradeAllowed=0endifcon
123If MyProfit >= (STRATEGYPROFIT + MaxLoss) THENquitendif12/10/2018 at 9:06 AM #86647Grazie Roberto per la tua puntuale risposta, ma io uso grafici a 1 o 4 ore e vorrei interrompere il sistema non alla successiva barra , ma alla settimana successiva.
Vorrei mettere una massima perdita settimanale (o mensile ) e riprendere dopo questa interruzione.
Dovrebbe essere utili nei trading System solo unidirezionali ( Es. Solo Long) .
Ti Ringrazio ancora
Mauro
12/10/2018 at 3:56 PM #86700Inserisci questo codice nella tua strategia:
123456789101112ONCE MaxLoss = 200ONCE TradeAllowed = 1ONCE MyProfit = 0IF DayOfWeek < DayOfWeek[1] THENTradeAllowed = 1MyProfit = STRATEGYPROFITENDIFIF Not OnMarket AND OnMarket[1] THENIf MyProfit > (STRATEGYPROFIT + MaxLoss) THENTradeAllowed = 0ENDIFENDIFPer un mese sostituisci la riga 4 con:
1IF Month <> Month[1] THEN12/10/2018 at 5:16 PM #86705Grazie come al solito , sembra funzionare ora provo se le strategie migliorano…..
Sarebbe ottimale interrompere nel momento che arriva alla perdita prestabilita senza aspettare la chiusura della barra …..ma mi sa che con Prorealtime non è possibile.
Grazie ancora
Mauro
12/10/2018 at 5:45 PM #86706Puoi usare un TF basso solo per quella parte di codice, ma purtroppo hai uno storico più breve, perché il TF più basso è quello principale.
12/10/2018 at 5:56 PM #86707Si ci avevo pensato ma per ora solo il demo ha Multiframe ……. e il demo ha 100.000 unità , serve a poco….
Grazie
12/11/2018 at 12:23 PM #86819Ho provato e ho visto migliorare decisamente il Drawdown che era quello che volevo, poi ho cercato di dividere la perdita tra long e schort ( sempre settimanale o mensile) ma purtroppo non ci sono riuscito….sai se è possibile …..
ti ringrazio come al solito
Mauro
12/11/2018 at 4:27 PM #86847Non esiste un comando specifico che te lo indica, va scritto il codice per farlo.
Quando si esce da un’operazione bisogna stabilire se era SHORT o LONG ed aggiornare il risultato complessivo per ciascun tipo.
Per sapere quando siamo appena usciti da un’operazione LONG basta verificare di NON essere long attualmente, ma di esserlo stato nella barra precedente (vale anche per gli SHORT, a parte la differenza nei nomi):
12345678910111213ONCE MyStrategyProfit = 0 //risultato strategia TOTALEONCE LongStrategyProfit = 0 //risultato strategia solo per i LONGONCE ShortStrategyProfit = 0 //risultato strategia solo per gli SHORT//IF NOT LongOnMarket AND LongOnMarket[1] THENLongStrategyProfit = LongStrategyProfit + (STRATEGYPROFIT - MyStrategyProfit)MyStrategyProfit = STRATEGYPROFITENDIF//IF NOT ShortOnMarket AND ShortOnMarket[1] THENShortStrategyProfit = ShortStrategyProfit + (STRATEGYPROFIT - MyStrategyProfit)MyStrategyProfit = STRATEGYPROFITENDIF12/11/2018 at 6:21 PM #86861Grazie Roberto domani controllo se migliora.
-
AuthorPosts