楼主: 挖矿专家
1490 3

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

  • 0关注
  • 74粉丝

讲师

22%

还不是VIP/贵宾

-

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

楼主
挖矿专家 发表于 2017-2-24 11:03:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币


策略名称:海龟原型
策略思路:
入场:价格突破50日高点,或者跌破50日低点

出场:多头情况下跌破20日低点或者低于上次入场价格下的N倍ATR
      空头情况下突破20日高点或者高于上次入场价格上的N倍ATR


回测曲线:


海龟模型.png

策略代码:

function  Turtle(len1,len2,len3,N)


targetList  =  traderGetTargetList();

HandleList  =  traderGetHandleList();


global  s;


lens=60;

Plimit=4;

ShareNum=1;

n=length(targetList);

for  j=1:n

        [time,open,high,low,close,volume,turnover,openinterest]  =  traderGetKData(targetList(j).Market,targetList(j).Code,'day',1,  0-lens,  0,false,'FWard');

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

        if  length(close)<lens+1  ||  volume(end)==0

                continue;

        end


        value1  =  high(end-lens+1:end)  -  low(end-lens+1:end);%  当日最高价减去当日最低价

        value2  =  abs(high(end-lens+1:end)-close(end-lens:end-1));%  当日最高价减去前日收盘价的绝对值

        value3  =  abs(low(end-lens+1:end)-close(end-lens:end-1));%    当日最低价减去前日收盘价的绝对值

        TRlist=max(value1,max(value2,value3));

        ATR_len3=mean(TRlist(end-len3+1:end));


        %  四条轨道

        High_len1=max(high(end-len1:end-1));

        Low_len1=min(low(end-len1:end-1));

        High_len2=max(high(end-len2:end-1));

        Low_len2=min(low(end-len2:end-1));


        mp=  traderGetAccountPosition(HandleList,targetList(j).Market,targetList(j).Code);



        con1=close(end)>High_len1;

        con2=close(end)<Low_len1;

        con3=close(end)>High_len2;

        con4=close(end)<Low_len2;


        %  进场

        if  mp==0

                s(j).ShareList=[];

                if  con1

                        OrderID=traderDirectBuy(HandleList(1),targetList(j).Market,targetList(j).Code,ShareNum,0,'market','buy');

                        if  OrderID~=0

                                s(j).openprice=traderOrderFilledPrice(HandleList(1),OrderID);

                                s(j).ShareList(end+1)=ShareNum;

                        end

                elseif  con2

                        OrderID=traderDirectSell(HandleList(1),targetList(j).Market,targetList(j).Code,ShareNum,0,'market','buy');

                        if  OrderID~=0

                                s(j).openprice=traderOrderFilledPrice(HandleList(1),OrderID);

                                s(j).ShareList(end+1)=ShareNum;

                        end

                end

        end

        %  加仓

        if  mp>0  &&  Plimit>length(s(j).ShareList)  &&  close(end)>=(  s(j).openprice+N*ATR_len3)

                OrderID=traderDirectBuy(HandleList(1),targetList(j).Market,targetList(j).Code,ShareNum,0,'market','buy');

                if  OrderID~=0

                        s(j).openprice=traderOrderFilledPrice(HandleList(1),OrderID);

                        s(j).ShareList(end+1)=ShareNum;

                end

        end


        if  mp<0  &&  Plimit>length(s(j).ShareList)  &&  close(end)<=(s(j).openprice-N*ATR_len3)

                OrderID=traderDirectSell(HandleList(1),targetList(j).Market,targetList(j).Code,ShareNum,0,'market','sell');

                if  OrderID~=0

                        s(j).openprice=traderOrderFilledPrice(HandleList(1),OrderID);

                        s(j).ShareList(end+1)=ShareNum;

                end

        end



        %  出场

        if  mp>0

                if  con4  ||  close(end)<(  s(j).openprice-N*ATR_len3)

                        traderPositionTo(HandleList(1),targetList(j).Market,targetList(j).Code,0,0,'market','close');

                end

        end


        if  mp<0

                if  con3  ||  close(end)>(s(j).openprice+N*ATR_len3)

                        traderPositionTo(HandleList(1),targetList(j).Market,targetList(j).Code,0,0,'market','close');

                end

        end


end


策略来源:Atrader社区-策略服务


二维码

扫码加我 拉你入群

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

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

关键词:MATLAB 量化交易策略 atlab matla 量化交易

沙发
亽鉎祇偌初見 发表于 2017-3-1 17:14:50
学习一下

藤椅
挖矿专家 发表于 2017-3-2 11:10:04
大家共同学习

板凳
挖矿专家 发表于 2017-3-6 14:23:50
atrader 社区已经更名为 digquant 社区,迁移至 www.digquant.com.cn

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

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2025-12-31 21:35