楼主: 挖矿专家
2711 5

[源码分享] 【每日一策】Matlab量化交易策略之 BiasAverage [推广有奖]

  • 0关注
  • 74粉丝

讲师

22%

还不是VIP/贵宾

-

威望
0
论坛币
2016 个
通用积分
5.2622
学术水平
21 点
热心指数
21 点
信用等级
21 点
经验
6055 点
帖子
403
精华
0
在线时间
151 小时
注册时间
2017-2-8
最后登录
2017-6-27

楼主
挖矿专家 发表于 2017-3-2 10:40:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
策略名称:BiasAverage


策略思路:
多头进场条件:快速均线上穿慢速均线后,又掉头向下靠近慢速均线但不向下突破,再上拉时买入
空头进场条件:慢速均线上穿快速均线后,又掉头向下靠近快速均线但不向下突破,再上拉时卖出
多头出场条件:慢速均线上穿快速均线
空头出场条件:快速均线上穿慢速均线


回测曲线(回测报告由Auto-trader提供)


BiasAverage.png

策略代码:

function  BiasAverage(len1,len2,len3,len,n,shareNum,Freq)%上面五个为输入参数  


%  ------------  ThreeLine  Strategy-------------------

%  Freq  为输入时间频率

%  shareNum  为操作的手数

%  len1  为快速均线参数

%  len2  为慢速均线参数

%  len3  为乖离率长度

%  len    为滑动窗口大小,len3<len1<len2<len

%  n        为离差滑动平均值门限



%---------------------策略初始化与是否日内平仓---------------%

traderDailyCloseTime(145000);          %  每天14:50分平仓        如果没有日内平仓,去掉这句话就可以了。

targetList  =  traderGetTargetList();  %获取交易标的句柄

HandleList  =  traderGetHandleList();  %获取账户句柄

[marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(1).Market,targetList(1).Code);  %获取当前仓位状况

lags=300;

barnum=traderGetCurrentBar(targetList(1).Market,targetList(1).Code);  %当前Bar的编号

if(barnum<=lags)  %当编号不超过所取的数据长度时,返回

        return;

end



%---------------------策略提取数据---------------%

[time,open,high,low,close,volume,turnover,openinterest]  =  traderGetKData(targetList(1).Market,targetList(1).Code,'min',Freq,  0-lags,  0,false,'FWard');  %提取数据,从当前开始往前取lags个数据


%---------------------策略计算与基本逻辑---------------%

[ma1,ma2]=movavg(close(end-len+1:end),len1,len2);

ma1=ma1(len2:end);          %快速均线

ma2=ma2(len2:end);          %慢速均线

value1=ma1-ma2;                %均线离差

[bias,bias]=movavg(value1,len3,len3);      %均线离差均值

con1=ma1(end)>ma2(end)  &&  bias(end-2)>bias(end-1)  &&  bias(end-1)<bias(end)  &&  bias(end)<n;    %快速均线上穿慢速均线后,又掉头向下靠近慢速均线但不向下突破,再上拉时买入

con2=ma1(end)<ma2(end)  &&  bias(end-2)<bias(end-1)  &&  bias(end-1)>bias(end)  &&  bias(end)<n;    %慢速均线上穿快速均线后,又掉头向下靠近快速均线但不向下突破,再上拉时卖出

con3=ma1(end)<ma2(end);      %慢速均线上穿快速均线

con4=ma1(end)>ma2(end);      %快速均线上穿慢速均线



%----------------------策略主体-------------------------------%

if  marketposition==0  

        if  con1

                traderBuy(HandleList(1),targetList(1).Market,targetList(1).Code,shareNum,0,'market','buy1');%开多单   

        end

        if  con2

                traderSellShort(HandleList(1),targetList(1).Market,targetList(1).Code,shareNum,0,'market','sellshort1');%开空单   

        end

end

if  marketposition>0  &&  con3

        traderSell(HandleList(1),targetList(1).Market,targetList(1).Code,shareNum,0,'market','sell1');%平多单   

end

if  marketposition<0  &&  con4

        traderBuyToCover(HandleList(1),targetList(1).Market,targetList(1).Code,shareNum,0,'market','buytocover1');%平空单   

end

end


更多免费策略源码下载请登录atrader社区-策略服务~


二维码

扫码加我 拉你入群

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

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


沙发
3862161 在职认证  发表于 2017-3-2 14:53:10
这个效果看起来一般  在RB上表现应该会好些

藤椅
挖矿专家 发表于 2017-3-3 10:31:00
嗯,后续可以试试

板凳
ghjktdf 发表于 2017-3-3 14:39:57
有双均线的吗?

报纸
65425856 发表于 2017-3-4 15:48:22
ghjktdf 发表于 2017-3-3 14:39
有双均线的吗?
去网站上找吧~

地板
挖矿专家 发表于 2017-3-6 10:42:51

atrader 社区已经更名为 digquant 社区,迁移至 www.digquant.com.cn

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

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2026-1-28 19:19