楼主: 挖矿专家
1421 5

[源码分享] 【每日一策】Matlab量化交易策略之 多均线系统 [推广有奖]

  • 0关注
  • 74粉丝

讲师

22%

还不是VIP/贵宾

-

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

楼主
挖矿专家 发表于 2017-3-23 18:10:35 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
策略说明:

将一系列的均线参数存入矩阵,组成一个均线系统。可自己选择策略所使用的几组均线。
通过组合均线产生对应的做多和做空信号。

回测曲线(由Auto-Trader提供回测曲线)

多均线系统.png

策略源码:

function Strategy1(default_unit,default_exitway,freq)%targetList = traderGetTargetList(); %获取目标资产信息HandleList = traderGetHandleList();%获取账户句柄global parameters;for k=1:length(targetList);        %--------------------仓位、K线、当前bar的提取-----------------------------%    %获取当前仓位    [marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(k).Market,targetList(k).Code);    %策略中每次取数据的长度    lags=110;    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');    if length(close)<lags        continue;    end;        %-------------------------交易逻辑-------------------------------%    %----------入场信号--------------------%    [m,n]=size(parameters.value);    ma_mat=zeros(m,n);    for i=1:m;        for j=1:n;            ma_mat(i,j)=mean(close(end-parameters.value(i,j)+1:end));        end;    end;    for group=1:m;        bcon1=close(end)>max(ma_mat(group,:));        bcon2=isempty(find(parameters.switch(group,:)==1,1));        buycon=bcon1 && bcon2;        buyunit=n;        set1=find(parameters.switch(group,:)==1);        set2=find(close(end)<ma_mat(group,:));        index=intersect(set1,set2);        sellcon=0;        if ~isempty(index)            sellcon=1;            sellunit=length(index);        end;        %---------------------------入场操作--------------------------------%        if buycon            orderID1=traderDirectBuy(HandleList(1),targetList(k).Market,targetList(k).Code,buyunit,0,'market','buy');            if orderID1==0                continue;            end;            parameters.switch(group,:)=1;        end;        if sellcon            orderID1=traderDirectSell(HandleList(1),targetList(k).Market,targetList(k).Code,sellunit,0,'market','sell');            if orderID1==0                continue;            end;            parameters.switch(group,index)=0;        end;    end;endend


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

二维码

扫码加我 拉你入群

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

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


沙发
ghjktdf 发表于 2017-3-23 20:09:19
如果回测时间再长点,估计曲线会更好~

藤椅
挖矿专家 发表于 2017-3-24 10:14:57
可以试试
~

板凳
ghjktdf 发表于 2017-3-27 15:04:56
楼主记得发出来哈

报纸
65425856 发表于 2017-3-27 18:32:35
学习中~

地板
ghjktdf 发表于 2017-3-28 10:04:17
65425856 发表于 2017-3-27 18:32
学习中~
同学习中。。。

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

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