[R-SIG-Finance] Signal and Rule question in Quantstrat

Joshua Ulrich josh.m.ulrich at gmail.com
Sun Feb 1 14:48:43 CET 2015


On Fri, Jan 23, 2015 at 8:49 AM, Isak Engdahl <isak.engdahl at gmail.com> wrote:
> Dear members,
>
> I have a questions how to set up the signals and rules correct for this
> stategy in Quantstrat.
>
> Price must be above SMA=250 and below the 20 line in the Slow Stochastic
> indicator.
>
> The trigger for a buy signal is when the signal line of the stochastic
> indicator close above the 20 line.
>
> Enter trade
> PRICE > SMA=250
> Slow Stochastic < 20 and crossing above the 20 line
>
> Exit trade
> PRICE < SMA=250
> Slow Stoch > 80 and closes below the 80 line
>
> The rules and examples can be found here:
> http://stockcharts.com/public/1107832
>
> Here is the code I have come up with now. Please help!
>
Help with what?  You haven't stated any problem.

> //Isak
>
> #parameters
> nFastK <- 5
> nSlowD <- 1
> nSMA <- 250
> buyThresh <- 20
> sellThresh <- 80
>
> ######################################################################################
> #indicator
> add.indicator(strategy.st, name="stoch",
>               arguments=list(HLC=quote(HLC(mktdata)), nFastK=nFastK,
> nSlowD=nSlowD),
>               label="stoch")
>
> add.indicator(strategy.st, name="SMA",
>               arguments=list(x=quote(Cl(mktdata)), n=nSMA),
>               label="sma")
> ###############################################################################
> #signals
> add.signal(strategy.st, name="sigComparison",
>            arguments=list(columns=c("Close", "sma"), relationship="gt"),
>            label="filter")
>
> add.signal(strategy.st, name="sigThreshold",
>            arguments=list(column="stoch", threshold=buyThresh,
>                           relationship="lt", cross=FALSE),
>            label="stochLtThresh")
>
> add.signal(strategy.st, name="sigAND",
>            arguments=list(columns=c("filter", "stochLtThresh"), cross=TRUE),
>            label="longEntry")
> add.signal(strategy.st, name="sigThreshold",
>            arguments=list(column="stoch", threshold=sellThresh,
>                           relationship="gt", cross=TRUE),
>            label="longExit")
> ###############################################################################
> #rules
>
> #Long entry rule
> add.rule(strategy.st, name="ruleSignal",
>          arguments=list(sigcol="longEntry",
>                         sigval=TRUE,
>                         replace=FALSE,
>                         orderside="long",
>                         ordertype="market",
>                         orderqty=100,
>                         osFUN="osFixedDollar",
>                         orderset="ocolong"),
>          type="enter",label="LE")
>
> #Long exit rule
> add.rule(strategy.st, name="ruleSignal",
>          arguments=list(sigcol="longExit",
>                         sigval=TRUE,
>                         replace=FALSE,
>                         orderside="long",
>                         ordertype="market",
>                         orderqty="all",
>                         orderset="ocolong"),
>          type="exit",label="LX")
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-SIG-Finance at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions should go.



-- 
Joshua Ulrich  |  about.me/joshuaulrich
FOSS Trading  |  www.fosstrading.com



More information about the R-SIG-Finance mailing list