楼主: 币币交易052
972 1

[问答] 急!!!麻烦各位大神看下 为什么中间那部分策略算不出来 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

0%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
10 点
帖子
0
精华
0
在线时间
0 小时
注册时间
2021-1-30
最后登录
2021-1-30

楼主
币币交易052 发表于 2021-1-30 04:27:44 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
急!!!麻烦各位大神看下 为什么中间那部分策略算不出来
二维码

扫码加我 拉你入群

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

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


沙发
投射效应672 发表于 2021-1-30 04:28:27

currency("RMB")

stock("ZXZQ", currency = "RMB", multiplier = 1)

ls(envir = FinancialInstrument:::.instrument) #设置 .instrument环境

get("RMB", envir = FinancialInstrument:::.instrument)

get("ZXZQ", envir = FinancialInstrument:::.instrument)

Sys.setenv(TZ = "UTC") #设立时区

ZXZQ <- getSymbols("600030.ss", from = "2013-01-01", to = Sys.Date(), src = "yahoo",

                   auto.assign = FALSE)

Mi=function(x)

{

  MI=(Hi(x)+Lo(x))/2

  return(MI)

}

ZXZQ$SMA13d <- SMA(Mi(ZXZQ), 13)

ZXZQ$SMA5d <- SMA(Mi(ZXZQ), 5)

ZXZQ$SMA8d <- SMA(Mi(ZXZQ), 8)

head(ZXZQ$SMA13d)

head(ZXZQ$SMA5d)

head(ZXZQ$SMA8d)

myTheme <- chart_theme()

myTheme$col$dn.col <- "lightgreen"

myTheme$col$up.col <- "lightblue"

myTheme$col$dn.border <- "grey"

myTheme$col$up.border <- "grey"

# plot OHLC series

chart_Series(x = ZXZQ, theme = myTheme, name = "ZXZQ", TA = "add_SMA(n=13,col=4)",TB="add_SMA(n=5,col=8)",TC="add_SMA(n=8,col=6)")

b.strategy <- "ck"

initPortf(b.strategy, "ZXZQ", initDate = "2012-12-31")

initAcct(b.strategy, portfolios = b.strategy, initDate = "2012-12-31", initEq = 1e+06)

#初始的资金是1e6,即1000000

ls()

ls(.blotter)

ls(envir = FinancialInstrument:::.instrument)

for( i in 1:nrow(ZXZQ) ){

  #对日期更新

  CurrentDate <- time(ZXZQ)[i]

  equity<-getEndEq(b.strategy, CurrentDate)

  ClosePrice <- as.numeric(Cl(ZXZQ[i,]))

  Posn <- getPosQty(b.strategy, Symbol='ZXZQ', Date=CurrentDate)

  UnitSize <-as.numeric(trunc(equity/ClosePrice))#全仓

  MA <- as.numeric(ZXZQ[i,'SMA13d'])

  MB <- as.numeric(ZXZQ[i,'SMA5d'])

  MC <- as.numeric(ZXZQ[i,'SMA8d'])

  Ma <- as.numeric(ZXZQ[i-1,'SMA13d'])

  Mb <- as.numeric(ZXZQ[i-1,'SMA5d'])

  Mc <- as.numeric(ZXZQ[i-1,'SMA8d'])

 

 

 

#如有必要改变头寸

  if(!is.na(MA)&!is.na(MB)&!is.na(MC)) #如果移动均线开始{

    if( equity != 0 & Posn==0 ) {#没有头寸,测试是否买入

      if(ClosePrice > MA &(MA<=Ma|MB<=Mb|MC<=Mc)) {#进入多头头寸(买入)

        addTxn(b.strategy, Symbol='ZXZQ', TxnDate=CurrentDate,

               TxnPrice=ClosePrice, TxnQty =1/2*UnitSize , TxnFees=0)

        }else if(ClosePrice > MB &MA>Ma&MB>Mb&MC>Mc){

        addTxn(b.strategy, Symbol='ZXZQ', TxnDate=CurrentDate,

               TxnPrice=ClosePrice, TxnQty=TxnQty+UnitSize , TxnFees=0)

        } }else if(equity != 0 & Posn!=0){

      if(ClosePrice>MB&MA>Ma&MB>Mb&MC>Mc){

        addTxn(b.strategy, Symbol='ZXZQ', TxnDate=CurrentDate,

               TxnPrice=ClosePrice, TxnQty =UnitSize , TxnFees=0)

        } }

    else if(equity==0 & Posn!=0 ){

      if(ClosePrice < MC&MB<Mb) {#退出头寸

        addTxn(b.strategy, Symbol='ZXZQ', TxnDate=CurrentDate,

               TxnPrice=ClosePrice, TxnQty = -Posn , TxnFees=0)

        }}

  #计算盈亏并更新

  updatePortf(b.strategy, Dates = CurrentDate)

  updateAcct(b.strategy, Dates = CurrentDate)

  updateEndEq(b.strategy, Dates = CurrentDate)

}

 

 

 

 

chart.Posn(b.strategy, Symbol = "ZXZQ", Dates = "2013::", theme = myTheme, TRUE)

getTxns(Portfolio = b.strategy, Symbol = "ZXZQ")

 

tstats <- tradeStats(Portfolio = b.strategy, Symbol = "ZXZQ")

 

rets <- PortfReturns(Account = b.strategy)

rownames(rets) <- NULL

charts.PerformanceSummary(rets, colorset = redfocus)

tab.perf <- table.Arbitrary(rets, metrics = c("Return.annualized", "SharpeRatio.annualized"),metricsNames = c("Annualized Return", "Annualized Sharpe Ratio"))

tab.perf #计算年化回报和年化的夏普比

 


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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-26 03:18