楼主: 挖矿专家
1825 3

[源码分享] 【每日一策】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 论坛币
首先定义杯子与倒杯子形态,然后寻找切入点进行交易。

寻找上涨趋势中的杯子形态,寻找此处作为入场点
同时满足close > average (close,N)均线过滤的有条件下,做多

寻找下跌趋势中的杯子形态,寻找此处作为入场点
同时满足close < average (close,N)均线过滤的有条件下,做空


出场使用并滚动式止盈止损。


在沪深300股指期货与螺纹钢期货里面按照1:50的标准进行投资。测试时间段:2011年1月1日到2017年1月1日。

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

茶杯策略.png

策略源码:

  1. function CupC(freq,N,stop_rate)

  2. % 交易逻辑
  3. % Cups and Caps―Overnight

  4. targetList  =  traderGetTargetList();
  5. HandleList  =  traderGetHandleList();
  6. global entryP;%跟踪价格
  7. global key0;%用来记录进场价格的开关
  8. if isempty(entryP)||isempty(key0)
  9.     entryP=zeros(length(targetList),1);
  10.     key0=zeros(length(targetList),1);
  11. end
  12. sharenum=50*[1,50];
  13. for  i=1:length(targetList)
  14.     lags=N+3;%策略中每次取数据的长度
  15.     [position,Frozen,AvgPrice] = traderGetAccountPosition(HandleList(1),targetList(i).Market,targetList(i).Code);
  16.     %开仓
  17.     [time,open,high,low,close,volume,turnover,openinterest]  =  traderGetKData(targetList(i).Market,targetList(i).Code,'min',freq,  0-lags,0,false,'FWard');
  18.     if  length(close)<lags
  19.         continue;
  20.     end
  21.     con1=high(end)<high(end-1) && high(end-1)>max(high(end-4:end-2)) && close(end)<mean(close(end-N+1:end));
  22.     con2=low(end)>low(end-1) && low(end-1)<min(low(end-4:end-2)) && close(end)>mean(close(end-N+1:end));
  23.     if key0(i)==1
  24.         entryP(i)=AvgPrice;
  25.         key0(i)=0;
  26.     end
  27.    
  28.     if position>0
  29.         
  30.         if close(end)>  entryP(i)*(1+3*stop_rate) || close(end)<entryP(i)*(1-stop_rate)
  31.             traderPositionTo(HandleList(1),targetList(i).Market,targetList(i).Code,0 ,0,'market','stopLong');
  32.         end
  33.         if close(end)>  entryP(i)*(1+stop_rate)
  34.             entryP(i)=close(end);
  35.         end
  36.     elseif position<0
  37.         if  close(end)<entryP(i)*(1-3*stop_rate) || close(end)>entryP(i)*(1+stop_rate)
  38.             traderPositionTo(HandleList(1),targetList(i).Market,targetList(i).Code,0 ,0,'market','stopLong');
  39.         end
  40.         if close(end)<  entryP(i)*(1-stop_rate)
  41.             entryP(i)=close(end);
  42.         end
  43.     else
  44.         if con1
  45.             order=traderSellShort(HandleList(1),targetList(i).Market,targetList(i).Code,sharenum(i),0,'market','short');
  46.             if  order~=0
  47.                 key0(i)=1;
  48.             end
  49.         end
  50.         if con2
  51.             order= traderBuy(HandleList(1),targetList(i).Market,targetList(i).Code,sharenum(i),0,'market','long1');
  52.             if  order~=0
  53.                 key0(i)=1;
  54.             end
  55.         end
  56.     end
  57. end
  58. end
复制代码

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


二维码

扫码加我 拉你入群

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

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


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

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

沙发
ghjktdf 发表于 2017-4-18 11:39:26 |只看作者 |坛友微信交流群
感谢分享

使用道具

藤椅
挖矿专家 发表于 2017-4-26 10:34:41 |只看作者 |坛友微信交流群
ghjktdf 发表于 2017-4-18 11:39
感谢分享
感谢支持

使用道具

板凳
65425856 发表于 2017-6-16 15:00:43 |只看作者 |坛友微信交流群
感谢楼主分享

使用道具

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

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

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

GMT+8, 2024-4-25 20:42