请选择 进入手机版 | 继续访问电脑版
楼主: zhouwenzi
36534 28

[程序化交易] 十大经典日内策略之菲阿里四价(附源码分享) [推广有奖]

  • 1关注
  • 8粉丝

硕士生

26%

还不是VIP/贵宾

-

威望
0
论坛币
45 个
通用积分
4.0026
学术水平
2 点
热心指数
1 点
信用等级
1 点
经验
1288 点
帖子
78
精华
0
在线时间
169 小时
注册时间
2013-3-9
最后登录
2023-7-28

zhouwenzi 发表于 2016-11-18 15:02:23 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
继上次的RangeBreak,今天为大家介绍第二个十大经典日内策略——菲阿里四价策略。菲阿里四价仍然是依据昨日的价格情况,确定今天的交易通道。上轨=昨日最高价;下轨=昨日最低价。
      入场条件:和RangeBreak类似,价格突破上轨做多,价格突破下轨做空。但是为了考虑行情的影响,加入MA作为时间过滤。
      出场条件:为表示LZ为懒惰的人,反手出场。同时,收盘前,主动出场。  
      下为源代码:
  1. function feialiMA(freq)%
  2. targetList = traderGetTargetList();
  3. %获取目标资产信息
  4. HandleList = traderGetHandleList();
  5. %获取账户句柄
  6. for k=1:length(targetList);
  7.     %--------------------仓位、K线、当前bar的提取-----------------------------%
  8.     %获取当前仓位
  9.     [marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(k).Market,targetList(k).Code);
  10.     %策略中每次取数据的长度
  11.     lags=40;
  12.     dlags=31;
  13.     barnum=traderGetCurrentBar(targetList(k).Market,targetList(k).Code);
  14.     %数据长度限制
  15.     if(barnum<lags)
  16.         continue;
  17.     end
  18.     %获取K线数据
  19.     [time,open,high,low,close,volume,~,~] = traderGetKData(targetList(k).Market,targetList(k).Code,'min',freq, 0-lags, 0,false,'FWard');
  20.     [Dtime,Dopen,Dhigh,Dlow,Dclose,Dvolume,~,~] = traderGetKData(targetList(k).Market,targetList(k).Code,'day',1, 0-dlags, 0,false,'FWard');
  21.     if length(close)<lags || length(Dclose)<dlags
  22.         continue;
  23.     end;
  24.    
  25.     %--------------------- 止损/入场条件计算 ------------------------------------%
  26.     %计算出场时间
  27.     gettime=datevec(time);
  28.     numtime=gettime(end,4)*100+gettime(end,5);
  29.     cont=0;
  30.     if numtime>=0900&&numtime<1400||numtime>=2100&&numtime<=2400||numtime>0000&&numtime<0100
  31.         cont=1;
  32.     end
  33.     upline=Dhigh(end-1);%上轨
  34.     dnline=Dlow(end-1);%今日下轨
  35.     MA30=MA(Dclose,30);
  36.     buycon=close(end)>upline && cont&&close(end)>MA30(end); % 突破range上轨道做多(每天只做一手)
  37.     sellshortcon=close(end)<dnline && cont&&close(end)<MA30(end);% 突破 range下轨道做空(每天只做一手)
  38.     shareNum=10;
  39.     %--------------------------------------仓位操作-----------------%
  40.     %-----------------入场--------------------------%
  41.     if  marketposition==0
  42.         if buycon
  43.             order=traderBuy(HandleList(1),targetList(k).Market,targetList(k).Code,shareNum,0,'market','buy');%开多单
  44.         elseif sellshortcon
  45.             order=traderSellShort(HandleList(1),targetList(k).Market,targetList(k).Code,shareNum,0,'market','sellshort');%开空单
  46.         end
  47.     end
  48.     if cont~=0
  49.         %------------------------------多头出场----------------------------%
  50.         if marketposition>0
  51.             if  sellshortcon
  52.                 traderPositionTo(HandleList(1),targetList(k).Market,targetList(k).Code,0,0,'market','sell');
  53.             end
  54.         end
  55.         if marketposition<0
  56.             if buycon
  57.                 traderPositionTo(HandleList(1),targetList(k).Market,targetList(k).Code,0,0,'market','sell');
  58.             end
  59.         end
  60.     end
  61.     %-------------------------------------------------------------日内平仓-----------------------------------%
  62.     if cont==0
  63.         traderPositionTo(HandleList(1),targetList(k).Market,targetList(k).Code,0,0,'market','sell');
  64.     end
  65. end
  66. end


  67. function MAValue=MA(Price,Length)
  68. MAValue=zeros(length(Price),1);
  69. for i=Length:length(Price)
  70.     MAValue(i)=sum(Price(i-Length+1:i))/Length;
  71. end
  72. MAValue(1:Length-1)=Price(1:Length-1);
  73. end


  74. %----------------------------------分割线--下为另一个.m文件-----------------------%

  75. %回测启动函数
  76. clear
  77. clc;
  78. %-----------获取targetList-----------------%
  79. targetList(1).Code = 'hc0000';
  80. targetList(1).Market =  'SHFE';

  81. freq=10;%回测频率
  82. %-------------------参数设定与全局变量----------------------%
  83. %-----------------------回测----------------------------------%
  84. % 在回测时设置初始资本10000000000元、手续费率0.000026、无风险利率0.02、滑价0、默认1下一个bar的开盘价、默认0成交价、默认0直接成交
  85. % traderSetBacktest(1000000,0.000026,0.02,0,1,0,0);
  86. AccountList(1) = {'FutureBackReplay'};
  87. traderRunBacktest('feialiMA',@feialiMA,{freq},AccountList,targetList,'min',freq,20120101,20160615,'FWard');
复制代码
下为策略表现:
行情图及下单情况:

行情图及下单情况

行情图及下单情况

多头表现情况:

多头曲线表现

多头曲线表现

空头表现情况:

空头曲线表现

空头曲线表现

权益曲线情况:

权益曲线表现

权益曲线表现

策略绩效:

绩效表现

绩效表现


改为非日内策略的效果:

多头表现:

非日内的多头表现

非日内的多头表现

空头表现:

非日内的空头表现

非日内的空头表现

权益曲线表现:

非日内的权益曲线

非日内的权益曲线

策略绩效:

非日内的绩效

非日内的绩效





二维码

扫码加我 拉你入群

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

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

关键词:菲阿里 position function CURRENT Account 收盘 通道 价格下跌 源代码 开盘价

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

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

本帖被以下文库推荐

3862161 在职认证  发表于 2016-11-18 15:57:12 |显示全部楼层 |坛友微信交流群
看起来不错哦  这个非日内的表现怎么样

使用道具

zhouwenzi 发表于 2016-11-18 15:59:21 |显示全部楼层 |坛友微信交流群
3862161 发表于 2016-11-18 15:57
看起来不错哦  这个非日内的表现怎么样
非日内还没试,我一会可以试试看~

使用道具

3862161 在职认证  发表于 2016-11-18 15:59:52 |显示全部楼层 |坛友微信交流群
{:3_42:}

使用道具

zhouwenzi 发表于 2016-11-18 16:02:33 |显示全部楼层 |坛友微信交流群
3862161 发表于 2016-11-18 15:59

使用道具

sukiyou2000 发表于 2016-11-18 16:54:35 |显示全部楼层 |坛友微信交流群
用这个软件需要买他们的数据,要不跑不出来

使用道具

3862161 在职认证  发表于 2016-11-18 17:26:53 |显示全部楼层 |坛友微信交流群
sukiyou2000 发表于 2016-11-18 16:54
用这个软件需要买他们的数据,要不跑不出来
里面内置是两年数据吧   我也发现这个问题了 后来买了点数据  {:3_42:}

使用道具

zhouwenzi 发表于 2016-11-18 17:27:32 |显示全部楼层 |坛友微信交流群
zhouwenzi 发表于 2016-11-18 15:59
非日内还没试,我一会可以试试看~
测试发现,非日内表现更好耶~~~

使用道具

zhouwenzi 发表于 2016-11-18 17:31:15 |显示全部楼层 |坛友微信交流群
sukiyou2000 发表于 2016-11-18 16:54
用这个软件需要买他们的数据,要不跑不出来
那看你需求咯~有两年的免费数据可以提供哦,而且支持各种频率的,两年测试1min的,也可以得到很多检验样本啦啦啦~~邀请好友就可以送数据哦~~

使用道具

zhouwenzi 发表于 2016-11-18 17:33:48 |显示全部楼层 |坛友微信交流群
sukiyou2000 发表于 2016-11-18 16:54
用这个软件需要买他们的数据,要不跑不出来
而且,如果要求精度不高的话,日线数据是可以任意长的呢~

使用道具

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

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

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

GMT+8, 2024-4-16 14:10