最近在网上买到一份用R做的系统交易策略的Code,但是在改编的过程中遇到了写循环的问题。
我的具体想法是,找出最优化的移动平均线的参数来指导交易。
我的参数为(5,10,20,30,60,120)
具体策略就是找出B点和S点,其中:
B点组合为:(以下均表示前者上穿后者)
(5,10) , (5,20) , (5, 30), (5,60) , (5, 120) 共5种
(10,20) , (10, 30), (10,60) , (10, 120) 共4种
(20, 30), (20,60) , (20, 120) 共3种
(30,60) , (30, 120) 共2种
(60, 120) 共1种
B点组合共15种。
S点组合为:(以下均表示前者下穿后者)
(5,10) , (5,20) , (5, 30), (5,60) 共4种
(10,20) , (10, 30), (10,60) 共3种
(20, 30), (20,60) 共2种
(30,60) 共1种
S点组合共10种。代码如下:
综上,结合BS买卖点的策略一共有150种组合。我的策略是找出最优化的那个BS买卖点的参数。
我的部分代码如下:
[size=13.63636302948px]上面的代码需要修改的地方如下:
1. ldata<-ma(cdata,c(5,10)) #选择滑动平均指标 ----> 这里是否需要写成循环?
2. pdata<-merge(ldata$ma10[which(ldata$ma5-ldata$ma10<0)],ldata$ma10[which(ldata$ma5-ldata$ma10<0)])
这里在选择买卖点时,ldata$ma10[which(ldata$ma5-ldata$ma10<0)]和ldata$ma10[which(ldata$ma5-ldata$ma10<0)]如何写一个循环来遍历上面的150种组合?因为这里涉及到买点卖点的参数不同的情况
3. 最后要找出tail(result2$ticks,1)中使得asset最大的那套参数。
请大家给出具体的code实现,而不是简单回答上面的问题,谢谢!!!