楼主: zlxxfzm
2366 2

[讨论交流] 在使用R中quantstrat包中的两条均线策略遇到的问题(附代码) [推广有奖]

  • 7关注
  • 0粉丝

已卖:250份资源

硕士生

6%

还不是VIP/贵宾

-

威望
0
论坛币
364 个
通用积分
0.1200
学术水平
3 点
热心指数
3 点
信用等级
3 点
经验
1300 点
帖子
121
精华
0
在线时间
119 小时
注册时间
2015-4-15
最后登录
2021-4-27

楼主
zlxxfzm 学生认证  发表于 2015-8-28 21:45:40 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

当exit时,为什么signal是'long',orderside却设置为'short'?

求大虾解释下下面代码中的四个Rules,为什么这么设置?





require(quantstrat)

##### PLACE DEMO AND TEST DATES HERE#################

#

#if(isTRUE(options('in_test')$in_test))

#  #use test dates

# {initDate="2011-01-01"

#  endDate="2012-12-31"   

#  }else

#  #use demo defaults

# {initDate="1999-12-31"

# endDate=Sys.Date()}

source(paste0(path.package("quantstrat"),"/demo/luxor.include.R"))

.fast = 10

.slow = 30

source(paste0(path.package("quantstrat"),"/demo/luxor.getSymbols.R"))

### blotter

initPortf(portfolio.st, symbols='GBPUSD',initDate=initDate, currency='USD')

initAcct(account.st,portfolios=portfolio.st, initDate=initDate, currency='USD')

### quantstrat

initOrders(portfolio.st, initDate=initDate)

### define strategy

strategy(strategy.st, store=TRUE)

### indicators

add.indicator(strategy.st, name ="SMA",

         arguments= list(

                   x= quote(Cl(mktdata)[,1]),

                   n= .fast

         ),

         label="nFast"

)

add.indicator(strategy.st,name="SMA",

         arguments= list(

                   x= quote(Cl(mktdata)[,1]),

                   n= .slow

         ),

         label="nSlow"

)

### signals

add.signal(strategy.st,name='sigCrossover',

         arguments= list(

                   columns=c("nFast","nSlow"),

                   relationship="gte"

         ),

         label='long'

)

add.signal(strategy.st,name='sigCrossover',

         arguments= list(

                   columns=c("nFast","nSlow"),

                   relationship="lt"

         ),

         label='short'

)

### rules

add.rule(strategy.st, name='ruleSignal',

         arguments=list(sigcol='long', sigval=TRUE,

                   orderside='short',

                   ordertype='market',

                   orderqty='all',

                   TxnFees=.txnfees,

                   replace=TRUE

         ),

         type='exit',

         label='Exit2LONG'

)

add.rule(strategy.st, name='ruleSignal',

         arguments=list(sigcol='short',sigval=TRUE,

                   orderside='long',

                   ordertype='market',

                   orderqty='all',

                   TxnFees=.txnfees,

                   replace=TRUE

         ),

         type='exit',

         label='Exit2SHORT'

)

add.rule(strategy.st, name='ruleSignal',

         arguments=list(sigcol='long', sigval=TRUE,

                   orderside='long',

                   ordertype='stoplimit',prefer='High', threshold=.threshold,

                   orderqty=+.orderqty,

                   replace=FALSE

         ),

         type='enter',

         label='EnterLONG'

)

add.rule(strategy.st, name='ruleSignal',

         arguments=list(sigcol='short',sigval=TRUE,

                   orderside='short',

                   ordertype='stoplimit',prefer='Low', threshold=-.threshold,

                   orderqty=-.orderqty,

                   replace=FALSE

         ),

         type='enter',

         label='EnterSHORT'

)

###############################################################################

applyStrategy(strategy.st, portfolio.st)

View(getOrderBook(portfolio.st)[[portfolio.st]]$GBPUSD)

###############################################################################

updatePortf(portfolio.st, Symbols='GBPUSD',Dates=paste('::',as.Date(Sys.time()),sep=''))

chart.Posn(portfolio.st,"GBPUSD")

###############################################################################

View(t(tradeStats(portfolio.st, 'GBPUSD')))

###############################################################################

# save the strategy in an .RData object forlater retrieval

save.strategy(strategy.st)

##### PLACE THIS BLOCK AT END OF DEMOSCRIPT ###################

# book = getOrderBook(port)

# stats = tradeStats(port)

# rets = PortfReturns(acct)

################################################################


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:quantstrat Quants quant ants Ant defaults require source

沙发
zlxxfzm 学生认证  发表于 2015-8-28 21:46:36
新手,刚开始学习使用quantstrat包,求指点

藤椅
hmzzz 发表于 2016-5-18 19:45:43
zlxxfzm 发表于 2015-8-28 21:46
新手,刚开始学习使用quantstrat包,求指点
弱弱地问一下quantstrat是啥

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2025-12-27 04:35