Kama & Sma – Sistema su valute con settaggio standard
Forums › ProRealTime forum Italiano › Supporto ProOrder › Kama & Sma – Sistema su valute con settaggio standard
- This topic has 13 replies, 3 voices, and was last updated 1 year ago by robertogozzi.
-
-
05/26/2021 at 10:18 AM #170464
Buongiorno Roberto e buongiorno a tutti.
Vorrei riportare all’attenzione il sistema “Kama & Sma” che in precedenza aveva subito dei problemi di funzionamento, forse non ancora risolti.
Negli ultimi mesi ho testato, in Demo ed in Reale, il sistema Kama con settaggio 2,2,30 e una SMA a 22 periodi (con Target a 150 e Stop a 40), in particolare con le coppie Eur/Usd, Aud/Usd e Nzd/Usd con risultati molto interessanti.
Purtroppo, come già accaduto, ad un certo punto il sistema non ha più funzionato (da ieri, 25 maggio, su Eur/Usd).
Ho quindi ritestato il sistema riportando i settaggi ai valori standard per Kama 10,2,30: i risultati rimangono interessanti ma i profitti sembrano ridursi nettamente.
Se qualcuno è interessato a svolgere dei backest più ampi e dettagliati, riproporrei il sistema qui di seguito.
Grazie
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134//************************************************************************// Kama & Sma Trading System DAX mtf//************************************************************************//DEFPARAM CumulateOrders = FalseDEFPARAM PreLoadBars = 30////////////////////////////////////////////////////////////////////////TIMEFRAME (default)ONCE nLots = 1ONCE LongTrading = 1 //1=allowed 0=bannedONCE ShortTrading = 1 //1=allowed 0=banned//ONCE TP = 150 //200 pipsONCE SL = 40 //50 pips//TimeForbidden = OpenTime < 090000 AND OpenTime > 190000LongCond = (Not TimeForbidden) AND LongTradingShortCond = (Not TimeForbidden) AND ShortTrading//TIMEFRAME (1 hour, updateonclose) //h1IF Not OnMarket THENBarCount = 0ELSEBarCount = BarCount + 1ENDIF//------------------------------------------------------------------------------------// Kama & Sma Strategy////https://www.forexstrategiesresources.com/trend-following-forex-strategies/111-kama-strategy///Period = 10 //2 (standard 10)FastPeriod = 2 //standardSlowPeriod = 30 //standard//Fastest = 2 / (FastPeriod + 1)Slowest = 2 / (SlowPeriod + 1)if barindex >= (Period + 1) thenNum = abs(close-close[Period])Den = summation[Period](abs(close-close[1]))ER = Num / DenAlpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)Kama = (Alpha * Close) + ((1 -Alpha)* Kama[1])elseKama = closeendif//------------------------------------------------------------------------------------Sma = average[22,0](close) //22//------------------------------------------------------------------------------------a1 = Kama CROSSES OVER Sma// --- SHORTb1 = Kama CROSSES UNDER Sma////////////////////////////////////////////////////////////////////////TIMEFRAME (default) //1 minONCE TradeON = 1IF IntraDayBarIndex = 0 THENTradeON = 1ENDIFTradeBar = BarCountIF Not OnMarket AND TradeBar <> TradeBar[1] THENTradeON = 1ENDIF//************************************************************************// LONG trades//************************************************************************IF a1 AND TradeON AND LongCond THENBUY nLots CONTRACT AT MARKETTradeON = 0ENDIF//************************************************************************// SHORT trades//************************************************************************IF b1 AND TradeON AND ShortCond THENSELLSHORT nLots CONTRACT AT MARKETTradeON = 0ENDIF//SET TARGET pPROFIT TPSET STOP pLOSS SL//////////////////////////////////////////////////////////////////////////////////////////////////////////// Trailing Stop//------------------------------------------------------------------------------------IF Not OnMarket THENTrailStart = 10 //10 Start trailing profits from this pointBasePerCent = 0.100 //10.0% Profit to keepStepSize = 6 //6 Pips chunks to increase PercentagePerCentInc = 0.100 //10.0% PerCent increment after each StepSize chunkRoundTO = -0.5 //-0.5 rounds to Lower integer, +0.4 rounds to Higher integerPriceDistance = 7 * pipsize//8.9 minimun distance from current pricey1 = 0y2 = 0ProfitPerCent = BasePerCentELSIF LongOnMarket AND close > (TradePrice + (y1 * pipsize)) THEN //LONGx1 = (close - tradeprice) / pipsize //convert price to pipsIF x1 >= TrailStart THEN //go ahead only if N+ pipsDiff1 = abs(TrailStart - x1)Chunks1 = max(0,round((Diff1 / StepSize) + RoundTO))ProfitPerCent = BasePerCent + (BasePerCent * (Chunks1 * PerCentInc))ProfitPerCent = max(ProfitPerCent[1],min(100,ProfitPerCent))y1 = max(x1 * ProfitPerCent, y1) //y = % of max profitENDIFELSIF ShortOnMarket AND close < (TradePrice - (y2 * pipsize)) THEN//SHORTx2 = (tradeprice - close) / pipsize //convert price to pipsIF x2 >= TrailStart THEN //go ahead only if N+ pipsDiff2 = abs(TrailStart - x2)Chunks2 = max(0,round((Diff2 / StepSize) + RoundTO))ProfitPerCent = BasePerCent + (BasePerCent * (Chunks2 * PerCentInc))ProfitPerCent = max(ProfitPerCent[1],min(100,ProfitPerCent))y2 = max(x2 * ProfitPerCent, y2) //y = % of max profitENDIFENDIFIF y1 THEN //Place pending STOP order when y>0SellPrice = Tradeprice + (y1 * pipsize) //convert pips to priceIF abs(close - SellPrice) > PriceDistance THENIF close >= SellPrice THENSELL AT SellPrice STOPELSESELL AT SellPrice LIMITENDIFELSESELL AT MarketENDIFENDIFIF y2 THEN //Place pending STOP order when y>0ExitPrice = Tradeprice - (y2 * pipsize) //convert pips to priceIF abs(close - ExitPrice) > PriceDistance THENIF close <= ExitPrice THENEXITSHORT AT ExitPrice STOPELSEEXITSHORT AT ExitPrice LIMITENDIFELSEEXITSHORT AT MarketENDIFENDIFHo provato , in seguito, ad “adeguare” il vecchio sistema utilizzando la media mobile adattiva ora presente tra gli indicatori di ProRealTime ed il sistema sembra funzionare correttamente anche con settaggio della Media adattiva 2,2,30.
Qualcuno ha già provato il sistema e può fornire informazioni a riguardo?
Grazie.
Di seguito fornisco il sistema con la Media Mobile Adattiva.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120//************************************************************************// Kama & Sma Trading System DAX mtf//************************************************************************//DEFPARAM CumulateOrders = FalseDEFPARAM PreLoadBars = 2000////////////////////////////////////////////////////////////////////////TIMEFRAME (default)ONCE nLots = 1ONCE LongTrading = 1 //1=allowed 0=bannedONCE ShortTrading = 1 //1=allowed 0=banned//ONCE TP = 150 //200 pipsONCE SL = 40 //50 pips//TimeForbidden = OpenTime < 090000 AND OpenTime > 190000LongCond = (Not TimeForbidden) AND LongTradingShortCond = (Not TimeForbidden) AND ShortTrading//TIMEFRAME (1 hour, updateonclose) //h1IF Not OnMarket THENBarCount = 0ELSEBarCount = BarCount + 1ENDIF//------------------------------------------------------------------------------------// Kama & Sma Strategy////https://www.forexstrategiesresources.com/trend-following-forex-strategies/111-kama-strategy///Kama = AdaptiveAverage[2,2,30](close)//------------------------------------------------------------------------------------Sma = average[22,0](close) //22//------------------------------------------------------------------------------------a1 = Kama CROSSES OVER Sma// --- SHORTb1 = Kama CROSSES UNDER Sma////////////////////////////////////////////////////////////////////////TIMEFRAME (default) //1 minONCE TradeON = 1IF IntraDayBarIndex = 0 THENTradeON = 1ENDIFTradeBar = BarCountIF Not OnMarket AND TradeBar <> TradeBar[1] THENTradeON = 1ENDIF//************************************************************************// LONG trades//************************************************************************IF a1 AND TradeON AND LongCond AND close[1] < Kama THENBUY nLots CONTRACT AT MARKETTradeON = 0ENDIF//************************************************************************// SHORT trades//************************************************************************IF b1 AND TradeON AND ShortCond AND close[1] > Kama THENSELLSHORT nLots CONTRACT AT MARKETTradeON = 0ENDIF//SET TARGET pPROFIT TPSET STOP pLOSS SL//////////////////////////////////////////////////////////////////////////////////////////////////////////// Trailing Stop//------------------------------------------------------------------------------------IF Not OnMarket THENTrailStart = 10 //10 Start trailing profits from this pointBasePerCent = 0.100 //10.0% Profit to keepStepSize = 6 //6 Pips chunks to increase PercentagePerCentInc = 0.100 //10.0% PerCent increment after each StepSize chunkRoundTO = -0.5 //-0.5 rounds to Lower integer, +0.4 rounds to Higher integerPriceDistance = 7 * pipsize//8.9 minimun distance from current pricey1 = 0y2 = 0ProfitPerCent = BasePerCentELSIF LongOnMarket AND close > (TradePrice + (y1 * pipsize)) THEN //LONGx1 = (close - tradeprice) / pipsize //convert price to pipsIF x1 >= TrailStart THEN //go ahead only if N+ pipsDiff1 = abs(TrailStart - x1)Chunks1 = max(0,round((Diff1 / StepSize) + RoundTO))ProfitPerCent = BasePerCent + (BasePerCent * (Chunks1 * PerCentInc))ProfitPerCent = max(ProfitPerCent[1],min(100,ProfitPerCent))y1 = max(x1 * ProfitPerCent, y1) //y = % of max profitENDIFELSIF ShortOnMarket AND close < (TradePrice - (y2 * pipsize)) THEN//SHORTx2 = (tradeprice - close) / pipsize //convert price to pipsIF x2 >= TrailStart THEN //go ahead only if N+ pipsDiff2 = abs(TrailStart - x2)Chunks2 = max(0,round((Diff2 / StepSize) + RoundTO))ProfitPerCent = BasePerCent + (BasePerCent * (Chunks2 * PerCentInc))ProfitPerCent = max(ProfitPerCent[1],min(100,ProfitPerCent))y2 = max(x2 * ProfitPerCent, y2) //y = % of max profitENDIFENDIFIF y1 THEN //Place pending STOP order when y>0SellPrice = Tradeprice + (y1 * pipsize) //convert pips to priceIF abs(close - SellPrice) > PriceDistance THENIF close >= SellPrice THENSELL AT SellPrice STOPELSESELL AT SellPrice LIMITENDIFELSESELL AT MarketENDIFENDIFIF y2 THEN //Place pending STOP order when y>0ExitPrice = Tradeprice - (y2 * pipsize) //convert pips to priceIF abs(close - ExitPrice) > PriceDistance THENIF close <= ExitPrice THENEXITSHORT AT ExitPrice STOPELSEEXITSHORT AT ExitPrice LIMITENDIFELSEEXITSHORT AT MarketENDIFENDIF05/26/2021 at 11:36 AM #170481C’erano dei problemicon i backtest per i periodi successivi al 14 Aprile sul DAX a 1 o 10 minuti.
Ho aperto un ticket d’assistenza un paio di settimane fa, ma ancora non ho avuto risposte.
05/26/2021 at 2:58 PM #170513Grazie per la risposta.
Ho visto che il sistema è stato creato per il Dax, però in questo momento ho notato che i risultati migliori sono nel forex.
Ad ogni modo , eseguendo i backtest di confronto fra Kama e Media Mobile Adattiva i risultati delle performance sono diversi.
Scusa Roberto, ne approfitto per chiederti se il codice di trailing stop all’interno del sistema Kama è stato creato da chi ha scritto il programma o è stato creato da altri: è comunque un’alternativa interessante ai classici trailing già noti.
05/26/2021 at 4:24 PM #170529E’ un codice che ho scritto io, qui c’è una versione aggiornata con varie aggiunte https://www.prorealcode.com/topic/breakeeven-trailing-profit/page/5/#post-166092.
05/26/2021 at 4:33 PM #170530Grazie ancora Roberto e complimenti per il tuo eccezionale supporto a questo forum.
1 user thanked author for this post.
05/27/2021 at 2:35 PM #170626Buongiorno Roberto.
Visto che ieri avevo ri-evidenziato il problema di funzionamento del sistema Kama, volevo comunicare che oggi si è aperta una posizione su Eur/Usd (Buy a 1,21935), utilizzando lo stesso sistema Kama con una variante su “DEFPARAM PreLoadBars.
Invece di 20K ho inserito solo 30 unità: già ieri non saltava più il sistema ed oggi è ripartito regolarmente.
E’ possibile che solo questa variante possa evitare problemi?
Grazie.
05/27/2021 at 4:21 PM #170631Può essere, per qualche motivo i problemi sono da circa metà Aprile fino ai primi di Maggio.
01/11/2023 at 5:29 PM #20724701/11/2023 at 7:06 PM #207252Si riferisce al Kama?
01/12/2023 at 12:31 PM #20726301/12/2023 at 1:28 PM #20726501/12/2023 at 1:28 PM #20726601/12/2023 at 1:32 PM #20726701/12/2023 at 3:59 PM #207286Occorrerebbe il codice che hai utilizzato ed il timeframe e lo strumento su cui l’hai testato.
Il drawdown è la perdita massima raggiunta. Potrebbe essere uno stop loss troppo alto (usato per migliorare la precentuale delle operazioni vincenti), ma possono esserci altri motivi.
-
AuthorPosts