全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 量化投资
2380 2
2015-08-28

当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)

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


二维码

扫码加我 拉你入群

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

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

全部回复
2015-8-28 21:46:36
新手,刚开始学习使用quantstrat包,求指点
二维码

扫码加我 拉你入群

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

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

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

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群