[R-SIG-Finance] R quantstrat - filter consecutive entries
Jasen Mackie
j@ymon0703 @end|ng |rom gm@||@com
Thu May 28 18:36:48 CEST 2020
Hi Andreas
Thanks for the question. In future, feel free to ask a question by creating
an issue on the project repo -
https://github.com/braverock/quantstrat/issues.
You are looking for the ?sigCrossover function.
The project README
<https://github.com/braverock/quantstrat/blob/master/README.md> on GitHub
can also help with more learning materials and as usual look into the demo
folder for concrete examples.
Good luck.
Regards
Jasen
On Thu, 28 May 2020 at 12:18, Andreas Henneck <hennecke.andreas using web.de>
wrote:
> Dear all, being new to this list, kindly allow me to introduce myself: I
> am an engineer by education, marketer of automation products by
> profession and R fan of a few years. i am currently learning to program
> technical trading rules for backtesting. The purpose is to stablize
> investments and learn to trade. As neither a search through the last
> three years of e-mail from this list nor a search through stackexchange
> et al revealed an answer I would like to dare a post. I hope I am not
> being to basic with my request.
>
> This first self-written strategy on EOD data is looking to follow trends
> utilizing Bollinger Bands for indicating direction and Stochastik fastD
> to detect entry points and exits with overbought and oversold positions.
> My first version codes long only trades. The rules work all fine, the
> problem is this:
>
> Stochastic crosses a 0.25 threshold from below more than once, i.e. in a
> slight downward trend thus triggering multiple consecutive entry orders,
> before any exits or stops have triggered. This essentially increases
> position size.
>
> The essential question: What is the solution to entering a trade more
> than once?
>
> Looking forward to your responses and insight. Any additional tips for
> quantstrat thinking or coding are appreciated. Below find some hopefully
> illustrating code snippets.
>
> Kind regards,
> Andreas
>
> ##Not run <- not sure that I am using this properly here.
>
> # Create indicators
>
> BBTMDir = function(HLC, n = 10, sd = 1, nFastK = 5, nFastD = 2) {
>
> bb_dir <- # rules not essential to the problem, values look something
> like: round(runif(5))
>
> # Stochastic overbought and oversold indicator. Symmetry for simplicity:
>
> sto_sig <- sigThreshold(label = "StochSig", data = sto, column =
> "fastD",
> threshold = 0.25, relationship = "gt", cross
> = TRUE) * 1 +
> sigThreshold(label = "StochSig", data = sto, column = "fastD",
> threshold = 0.75, relationship = "lt", cross = TRUE) * -1
> merge(bb_dir, sto_sig) # return the two columns
>
> # ... standard boiler plate quantstrat setup ...
>
> s <- add.indicator( s, 'BBTMDir', label='BBTM',
> arguments=list( HLC = quote(HLC(mktdata))) )
>
> # Entry and exit rules based on bb_dir => BBDIR.BBTM as filter and
> StochSig.BBTM like this:
>
> s <- add.signal( s, 'sigFormula', label='StochEntryLong',
> arguments = list(cross = TRUE, formula = "BBDir.BBTM
> == 1 & StochSig.BBTM == 1"))
> s <- add.signal( s, 'sigFormula', label='StochExitLong',
> arguments = list(cross = TRUE, formula = "BBDir.BBTM
> == 1 & StochSig.BBTM == -1"))
>
> # as I am still learning and testing this, there are only these two
> simple rules for now:
>
> s <- add.rule(
> s, name='ruleSignal', type='enter', label='ChgDirLong',
> arguments = list(
> sigcol="StochEntryLong", sigval=TRUE, orderqty=orderQ,
> TxnFees=.txnfees,
> ordertype='market', orderside='long', orderset = "ocolong"
> )
> )
>
> s <- add.rule(
> s, name='ruleSignal', type='exit', label='ExitChgDir',
> arguments = list(
> sigcol="StochExitLong", sigval=TRUE, replace = TRUE, orderqty="all",
> ordertype='market', orderside='long', orderset = "ocolong"
> )
> )
>
> # ...
>
> applyStrategy( ...
>
> _______________________________________________
> R-SIG-Finance using 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.
>
[[alternative HTML version deleted]]
More information about the R-SIG-Finance
mailing list