Kama & Sma Trading System DAX mtf

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #116041 quote
    segiesegie
    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
    robertogozzirobertogozzi
    Moderator
    Legend

    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
    fifi743fifi743
    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
    segiesegie
    Participant
    Senior

    Receiving a Syntax error Line 3 character 7

    #116077 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    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
    segiesegie
    Participant
    Senior

    Attached a picture with the error

    KAMA.jpg KAMA.jpg
    #116129 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    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
    segiesegie
    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.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

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 segiesegie
6 years, 8 months ago.

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