Kama & Sma Trading System DAX mtf

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #116041 quote
    segie
    Participant
    Senior

    Hi,

    Can the attached code be converted to an indicator with “buy” or “sell” text/ signals?

    Regards,

    Segie

    //************************************************************************
    //                 Kama & Sma Trading System DAX mtf
    //************************************************************************
    //
    DEFPARAM CumulateOrders = False
    DEFPARAM PreLoadBars    = 2000
    ////////////////////////////////////////////////////////////////////////
    TIMEFRAME (default)
    ONCE nLots         = 1
    ONCE LongTrading   = 1                                //1=allowed   0=banned
    ONCE ShortTrading  = 1                                //1=allowed   0=banned
    //
    ONCE TP            = 200                              //200  pips
    ONCE SL            = 50                               //50   pips
    //
    TimeForbidden      = OpenTime < 090000 AND OpenTime > 190000
    LongCond           = (Not TimeForbidden) AND LongTrading
    ShortCond          = (Not TimeForbidden) AND ShortTrading
    //
    TIMEFRAME (1 hour, updateonclose)                                             //h1
    IF Not OnMarket THEN
     BarCount = 0
    ELSE
     BarCount = BarCount + 1
    ENDIF
    //------------------------------------------------------------------------------------
    //                         Kama & Sma Strategy
    //
    //https://www.forexstrategiesresources.com/trend-following-forex-strategies/111-kama-strategy/
    //
    Period     = 2                                              //2        (standard 10)
    FastPeriod = 2                                              //standard
    SlowPeriod = 30                                             //standard
    //
    Fastest  = 2 / (FastPeriod + 1)
    Slowest  = 2 / (SlowPeriod + 1)
    if barindex >= (Period + 1) then
     Num   = abs(close-close[Period])
     Den   = summation[Period](abs(close-close[1]))
     ER    = Num / Den
     Alpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)
     Kama  = (Alpha * Close) + ((1 -Alpha)* Kama[1])
    else
     Kama  = close
    endif
    //------------------------------------------------------------------------------------
    Sma        = average[22,0](close)                           //22
    //------------------------------------------------------------------------------------
    a1 = Kama CROSSES OVER  Sma
    // --- SHORT
    b1 = Kama CROSSES UNDER Sma
    ////////////////////////////////////////////////////////////////////////
    TIMEFRAME (default)                                                           //1 min
    ONCE TradeON = 1
    IF IntraDayBarIndex = 0 THEN
     TradeON = 1
    ENDIF
    TradeBar = BarCount
    IF Not OnMarket AND TradeBar <> TradeBar[1] THEN
     TradeON = 1
    ENDIF
    //************************************************************************
    //                           LONG  trades
    //************************************************************************
    IF a1 AND TradeON AND LongCond THEN
     BUY nLots CONTRACT AT MARKET
     TradeON = 0
    ENDIF
    //************************************************************************
    //                           SHORT trades
    //************************************************************************
    IF b1 AND TradeON AND ShortCond THEN
     SELLSHORT nLots CONTRACT AT MARKET
     TradeON = 0
    ENDIF
    //
    SET TARGET pPROFIT TP
    SET STOP   pLOSS   SL
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //                                Trailing Stop
    //------------------------------------------------------------------------------------
    IF Not OnMarket THEN
     TrailStart    = 10          //10     Start trailing profits from this point
     BasePerCent   = 0.100       //10.0%  Profit to keep
     StepSize      = 6           //6      Pips chunks to increase Percentage
     PerCentInc    = 0.100       //10.0%  PerCent increment after each StepSize chunk
     RoundTO       = -0.5        //-0.5   rounds to Lower integer,  +0.4 rounds to Higher integer
     PriceDistance = 7 * pipsize//8.9    minimun distance from current price
     y1            = 0
     y2            = 0
     ProfitPerCent = BasePerCent
    ELSIF LongOnMarket AND close > (TradePrice + (y1 * pipsize)) THEN //LONG
     x1 = (close - tradeprice) / pipsize                            //convert price to pips
     IF x1 >= TrailStart THEN                                       //go ahead only if N+ pips
      Diff1         = 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 profit
     ENDIF
    ELSIF ShortOnMarket AND close < (TradePrice - (y2 * pipsize)) THEN//SHORT
     x2 = (tradeprice - close) / pipsize                            //convert price to pips
     IF x2 >= TrailStart THEN                                       //go ahead only if N+ pips
      Diff2         = 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 profit
     ENDIF
    ENDIF
    IF y1 THEN                                        //Place pending STOP order when y>0
     SellPrice = Tradeprice + (y1 * pipsize)        //convert pips to price
     IF abs(close - SellPrice) > PriceDistance THEN
      IF close >= SellPrice THEN
       SELL AT SellPrice STOP
      ELSE
       SELL AT SellPrice LIMIT
      ENDIF
     ELSE
      SELL AT Market
     ENDIF
    ENDIF
    IF y2 THEN                                        //Place pending STOP order when y>0
     ExitPrice = Tradeprice - (y2 * pipsize)        //convert pips to price
     IF abs(close - ExitPrice) > PriceDistance THEN
      IF close <= ExitPrice THEN
       EXITSHORT AT ExitPrice STOP
      ELSE
       EXITSHORT AT ExitPrice LIMIT
      ENDIF
     ELSE
      EXITSHORT AT Market
     ENDIF
    ENDIF
    #116055 quote
    robertogozzi
    Moderator
    Master

    Try this.

    I couldn’t test it since I haven’t my PC available:

    //                         Kama & Sma
    //
    Period     = 2                                              //2        (standard 10)
    FastPeriod = 2                                              //standard
    SlowPeriod = 30                                             //standard
    //
    Fastest  = 2 / (FastPeriod + 1)
    Slowest  = 2 / (SlowPeriod + 1)
    if barindex >= (Period + 1) then
     Num   = abs(close-close[Period])
     Den   = summation[Period](abs(close-close[1]))
     ER    = Num / Den
     Alpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)
     Kama  = (Alpha * Close) + ((1 -Alpha)* Kama[1])
    else
     Kama  = close
    endif
    //------------------------------------------------------------------------------------
    Sma        = average[22,0](close)                           //22
    //------------------------------------------------------------------------------------
    a1 = Kama CROSSES OVER  Sma
    // --- SHORT
    b1 = Kama CROSSES UNDER Sma
    x = 0
    If a1 then
       x = 1
    Elsif b1 then
       x = -1
    Endif
    Return x
    #116056 quote
    fifi743
    Participant
    Master

    Hello,
    Me it works TF 15 minute.
    Attention French time

    robertogozzi thanked this post
    Capture-d’écran-479.png Capture-d’écran-479.png MonSystème2.itf
    #116065 quote
    segie
    Participant
    Senior

    Receiving a Syntax error Line 3 character 7

    #116077 quote
    robertogozzi
    Moderator
    Master

    In my code I can’t see any source if error at line 3.

    If it’s the code in the ITF file, then I cannot open it now.

    If you post that code I might help you.

    #116121 quote
    segie
    Participant
    Senior

    Attached a picture with the error

    KAMA.jpg KAMA.jpg
    #116129 quote
    robertogozzi
    Moderator
    Master

    Try deleting those characters (even if they are a blank).

    Or you may import the attached file, in case copy & paste was not correct.

    segie thanked this post
    Il-Mio-Indicatore25-KAMA.itf
    #116165 quote
    segie
    Participant
    Senior

    Got it working now. Thanks!

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.

Kama & Sma Trading System DAX mtf


ProBuilder: Indicators & Custom Tools

New Reply
Author
author-avatar
segie @segie Participant
Summary

This topic contains 7 replies,
has 3 voices, and was last updated by segie
6 years, 1 month ago.

Topic Details
Forum: ProBuilder: Indicators & Custom Tools
Language: English
Started: 01/06/2020
Status: Active
Attachments: 4 files
Logo Logo
Loading...