楼主: 天天爱喝水
1057 0

[问答] 请教下我这个用genalg包rbga的遗传算法为什么会报这种错 [推广有奖]

  • 0关注
  • 0粉丝

小学生

42%

还不是VIP/贵宾

-

威望
0
论坛币
20 个
通用积分
0.0114
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
60 点
帖子
1
精华
0
在线时间
12 小时
注册时间
2020-7-4
最后登录
2022-6-9

楼主
天天爱喝水 学生认证  发表于 2020-7-4 19:52:37 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我用穷举法计算的时候没有报错,但是带进rbga函数中总这个报错
111.png
代码就是一个求解最优交易策略的,是均线的交易策略,通过找金叉死叉来实现交易

是对长短均线进行的遗传算法优化,其实穷举也可以,就是想试试rbga函数怎么用

代码附在下面,我找了好久也不知道为什么报这个错

#交易策略代码
trading<-function(MAlong,MAshort,m){
  output=NA
  for(i in 35:m){
    if((MAshort>MAlong)&&(MAshort[i-1]<MAlong[i-1])&&(MAshort>MAshort[i-1]))
    {output="金叉"}
    else if((MAshort<MAlong)&&(MAshort[i-1]>MAlong[i-1]))
    {output="死叉"}
    else{output="非"}
  }
  return(output)
}

#遗传算法代码
getAdjust <- function(x)
{
  #求均值
  MAshort <-ma(close,m,n=x[1])
  MAlong <-ma(close,m,n=x[2])
  
  #交易策略
  output=trading(MAlong,MAshort,m)
  buy=point(output)$buy
  sell=point(output)$sell
  head(cbind(buy,sell))
  
  #收益率
  cost=0.0001
  return=profit(buy,sell,cost)
  sum(return)
  
  return(-sum(return))
}
monitor <- function(rbga0)
{
  #打印种群中的第一个个体的值population[1,]
  print(rbga0$population[1,])
}
rbgaObj <- rbga(stringMin = c(5,5),
                stringMax = c(30,30),
                popSize = 50,
                iters = 1000,
                mutationChance = 0.01,
                monitorFunc = monitor,
                evalFunc = getAdjust,
                verbose = TRUE)

二维码

扫码加我 拉你入群

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

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

关键词:遗传算法 BGA ENA Trading output

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-15 22:26