楼主: 挖矿专家
6174 11

[交易策略] Matlab量化交易策略之 均线系统 [推广有奖]

  • 0关注
  • 74粉丝

讲师

22%

还不是VIP/贵宾

-

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

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
策略名称:均线系统策略说明:
         多头入场:5日均线上穿65日均线且当前价格大于200日均线
         空头入场:5日均线下穿65日均线且当前价格小于200日均线
         出场:动态跟踪止损出场


回测曲线:


QQ图片20170216102017.png

策略代码:

function  Strategy1(default_unit,default_exitway,freq)%


targetList  =  traderGetTargetList();  

%获取目标资产信息

HandleList  =  traderGetHandleList();

%获取账户句柄

global  entrybar;

for  k=1:length(targetList);


        %--------------------仓位、K线、当前bar的提取-----------------------------%

        %获取当前仓位

        [marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(k).Market,targetList(k).Code);

        %策略中每次取数据的长度

        lags=200;

        dlags=20;

        barnum=traderGetCurrentBar(targetList(k).Market,targetList(k).Code);

        %数据长度限制

        if(barnum<lags)

                continue;

        end

        if(barnum<dlags)

                continue;

        end

        %获取K线数据

        [time,open,high,low,close,volume,turnover,openinterest]  =  traderGetKData(targetList(k).Market,targetList(k).Code,'min',freq,  0-lags,  0,false,'FWard');

        [Dtime,Dopen,Dhigh,Dlow,Dclose,Dvolume,~,~]  =  traderGetKData(targetList(k).Market,targetList(k).Code,'day',1,  0-dlags,  0,false,'FWard');

        if  legth(close)<lags  ||  length(Dclose)<dlags

                continue;

        end;        

        %-------------------------交易逻辑-------------------------------%

        %----------入场信号--------------------%

        TRvalue=TR(Dclose,Dhigh,Dlow);

        ATR=ma(TRvalue,10);

        ma2=ma(close,200);

        ma0=ma(close,5);

        ma1=ma(close,65);

        buycon=ma0(end)>ma1(end)  &&  ma0(end-1)<ma1(end-1)  &&  close(end)>ma2(end);

        sellshortcon=ma0(end)<ma1(end)  &&  ma0(end-1)>ma1(end-1)  &&  close(end)<ma2(end);

        if  default_exitway==1

                sellcon=ma0(end)<ma1(end)  &&  ma0(end-1)>ma1(end-1);

                buytocovercon=ma0(end)>ma1(end)  &&  ma0(end-1)<ma1(end-1);

        elseif  default_exitway==2

                TRvalue=TR(close,high,low);

                ATR=ma(TRvalue,4);

                barsinceentry=barnum-entrybar(k);

                [~,entryopen,entryhigh,entrylow,entryclose,~,~,~]  =  traderGetKData(targetList(k).Market,targetList(k).Code,'min',freq,  0-barsinceentry,  0,false,'FWard');

                range=4*ATR(end-1);

                [sellcon,buytocovercon]=exitway1(entryopen,entryclose,entryhigh,entrylow,marketposition,range);

        elseif  default_exitway==3

                barsinceentry=barnum-entrybar(k);

                [~,entryopen,entryhigh,entrylow,entryclose,~,~,~]  =  traderGetKData(targetList(k).Market,targetList(k).Code,'min',freq,  0-barsinceentry,  0,false,'FWard');

                enterprice=entryclose(1);

                percent=0.5;

                ATRparam=1;

                sellcon=0;

                buytocovercon=0;

                if  marketposition>0

                        stoplossprice=enterprice-ATRparam*ATR(end);

                        stopearnprice=enterprice+ATRparam*ATR(end);

                        [sellcon,buytocovercon]=exitway3(entryopen,entryclose,entryhigh,entrylow,marketposition,stoplossprice,stopearnprice,percent);

                elseif  marketposition<0

                        stoplossprice=enterprice+ATRparam*ATR(end);

                        stopearnprice=enterprice-ATRparam*ATR(end);

                        [sellcon,buytocovercon]=exitway3(entryopen,entryclose,entryhigh,entrylow,marketposition,stoplossprice,stopearnprice,percent);

                end;

        end;

        %---------------------------入场操作--------------------------------%

        if  sellcon  &&  marketposition>0

                orderID1=traderPositionTo(HandleList(1),targetList(k).Market,targetList(k).Code,0,0,'market','sell');

                if  orderID1==0

                        continue;

                end;

        end;

        if  buytocovercon  &&  marketposition<0

                orderID2=traderPositionTo(HandleList(1),targetList(k).Market,targetList(k).Code,0,0,'market','sell');

                if  orderID2==0

                        continue;

                end;

        end;

        if  buycon  &&  marketposition<=0

                buyunit=default_unit;

                orderID3=traderBuy(HandleList(1),targetList(k).Market,targetList(k).Code,buyunit,0,'market','buy');

                if  orderID3==0

                        continue;

                end;

                entrybar(k)=barnum;

        end;

        if  sellshortcon  &&  marketposition>=0

                sellshortunit=default_unit;

                orderID4=traderSellShort(HandleList(1),targetList(k).Market,targetList(k).Code,sellshortunit,0,'market','sell');

                if  orderID4==0

                        continue;

                end;

                entrybar(k)=barnum;

        end;  

end

end


更多策略请登录atrader社区下载 http://www.atrader.com.cn/stra.php?mod=model&pid=145


软件下载: http://www.atrader.com.cn/software.php



二维码

扫码加我 拉你入群

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

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


已有 1 人评分经验 论坛币 收起 理由
fantuanxiaot + 23 + 23 精彩帖子

总评分: 经验 + 23  论坛币 + 23   查看全部评分

本帖被以下文库推荐

沙发
Mahone666 发表于 2017-2-20 13:41:33 |只看作者 |坛友微信交流群
谢谢分享,我也是做matlab量化的,主要研究方向是多因子选股,欢迎加群交流。Matlab量化-交流 155600983(已满),Matlab量化-交流2群 117392934(可加)。

使用道具

藤椅
lixuewei3 发表于 2017-2-21 10:29:59 |只看作者 |坛友微信交流群
期待以后多分享

使用道具

板凳
ghjktdf 发表于 2017-2-22 13:23:58 |只看作者 |坛友微信交流群
楼主私货真心多

使用道具

报纸
挖矿专家 发表于 2017-2-22 15:45:54 |只看作者 |坛友微信交流群
感谢支持~

使用道具

地板
挖矿专家 发表于 2017-2-23 19:02:23 |只看作者 |坛友微信交流群
顶!d=====( ̄▽ ̄*)b

使用道具

7
ghjktdf 发表于 2017-2-25 16:00:19 |只看作者 |坛友微信交流群
帮顶

使用道具

8
ghjktdf 发表于 2017-2-27 11:46:46 |只看作者 |坛友微信交流群
楼主大赞~

使用道具

9
edycolor 发表于 2017-2-27 18:30:44 |只看作者 |坛友微信交流群
不得不说双均线是最经典的策略。。。楼主不错哦~

使用道具

10
3862161 在职认证  发表于 2017-2-28 09:58:15 |只看作者 |坛友微信交流群
edycolor 发表于 2017-2-27 18:30
不得不说双均线是最经典的策略。。。楼主不错哦~
最好趋势策略就是均线策略

使用道具

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

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 11:20