楼主: 挖矿专家
3795 4

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

  • 0关注
  • 74粉丝

讲师

22%

还不是VIP/贵宾

-

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

楼主
挖矿专家 发表于 2017-3-8 15:38:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
策略思路:

入场:K值上穿30或者K值上穿D值 买入股票
出场:K值下穿70或者K值下穿D值 卖出股票

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

KDJ择时.png

策略代码:

function KDJYH(p1,p2,p3) % KDJ优化.% 其中,len为在多少日内全部完成突破targetList = traderGetTargetList(); % 在RunBackTest中选择好的标的.%获取目标资产信息HandleList = traderGetHandleList(); % %获取账户信息%=================================================================% RunBackTest的参数设置% p1=14;% p2=3;% p3=3;%=================================================================global s; % 定义cc为全局变量if isempty(s) % 判断cc是否为空值    for i=1:length(targetList)        s(i).time=0;        s(i).BarNLong=0;        s(i).openprice=0;        s(i).stopprice=0;        s(i).highprice=0;    endendfor i = 1:length(targetList) % 每个股票过一遍    [marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(i).Market,targetList(i).Code);    %获取当前仓位        lags=40; % lags为策略需要往前获取多少天    %策略中每次取数据的长度        barnum=traderGetCurrentBar(targetList(i).Market,targetList(i).Code); % K线的序号,后面会增加,前面的值对应的日期固定.    if(barnum<lags)        continue;    end    % 数据长度限制,排除了前lags根k线        [time0,~,~,~,~,volume0,~,~] = traderGetKData(targetList(i).Market,targetList(i).Code,'day',1, 0-lags, 0,true,'FWard'); % 补齐    if volume0(end)==0        continue;    end    % 防止停牌的情况    %------------------------------------------------------------------------------------------------------------------------------------------------------------------------------    % 策略开始部分    [time,open,high,low,close,volume,turnover,openinterest] = traderGetKData(targetList(i).Market,targetList(i).Code,'day',1, 0-lags, 0,false,'FWard');        if length(close)<25        continue;    end    [K,D,J]=traderKDJ(p1,p2,p3,targetList(i).Market,targetList(i).Code,'day',1,0-lags,0,false,'FWard');        EntryLong1=K(end)>30 && K(end-1)<30;    EntryLong2=K(end)<30 && K(end)>D(end) && K(end-1)<D(end-1);   % ===============================================================================================================    ExitLong1=K(end)<70 && K(end)<D(end) && K(end-1)>D(end-1);  % K在70以下,KD产生死叉    ExitLong2=K(end)<70 && K(end-1)>70; % ===============================================================================================================        shareNum=floor(100000000/300/close(end)/100)*100;        if marketposition ==0 && EntryLong1 && time(end)>=datenum('1-Jan-2014');% 做多情况1        orderID1=traderBuy(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','buy1'); % 开多单        strcat(datestr(time(end)),targetList(i).Market,targetList(i).Code) % 把做多的时间和股票显示出来    end        if marketposition ==0 && EntryLong2 && time(end)>=datenum('1-Jan-2014');% 做多情况2        orderID1=traderBuy(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','buy1'); % 开多单        strcat(datestr(time(end)),targetList(i).Market,targetList(i).Code) % 把做多的时间和股票显示出来    end     if marketposition > 0 && ExitLong1 && floor(time(end))~=s(i).time; % 平仓情况1        traderPositionTo(HandleList(1),targetList(i).Market,targetList(i).Code,0,0,'market','sell1');    end        if marketposition > 0 && ExitLong2 && floor(time(end))~=s(i).time; % 平仓情况2        traderPositionTo(HandleList(1),targetList(i).Market,targetList(i).Code,0,0,'market','sell1');    endend


更多免费策略源码下载请登录DigQuant社区-策略资源获取~

二维码

扫码加我 拉你入群

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

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


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

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

沙发
65425856 发表于 2017-3-8 16:26:15
楼主格式乱掉了~

藤椅
挖矿专家 发表于 2017-3-9 10:05:30
65425856 发表于 2017-3-8 16:26
楼主格式乱掉了~
贴过来就乱掉了,想要下载的话建议去digquant网站上去下,有更完整的函数库

板凳
65425856 发表于 2017-3-9 16:56:20
挖矿专家 发表于 2017-3-9 10:05
贴过来就乱掉了,想要下载的话建议去digquant网站上去下,有更完整的函数库
这个好,方便太多,我都懒得复制了

报纸
挖矿专家 发表于 2017-3-13 10:34:19
65425856 发表于 2017-3-9 16:56
这个好,方便太多,我都懒得复制了
哈哈

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

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