请选择 进入手机版 | 继续访问电脑版
楼主: 挖矿专家
5262 15

[交易策略] 【每日一策】Matlab量化交易策略之 PivotPoint策略 [推广有奖]

  • 0关注
  • 74粉丝

讲师

22%

还不是VIP/贵宾

-

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

挖矿专家 发表于 2017-2-14 15:02:46 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
最近收集了近百个量化交易策略,准备以系列的方式发出来,将好东西分享给大家~

策略名称:PivotPoint
思路说明系统不断跟踪实时交易价格,根据前一交易日计算得到的六个价位作为触发条件,当当前价位达到触发价格时,产生交易信号,系统自行执行交易策略。因此我们的具体交易策略如下:
1) 趋势跟踪策略:
在空仓情况下,若盘中价格超过买入突破价,则认为出现上升趋势,开仓做多;
在空仓情况下,若盘中价格跌破卖出突破价,则认为出现下降趋势,开仓做空;
2) 反转趋势策略:
当日内最高价超过上观察价后,盘中价格出现回落,且进一步跌破卖出反转价
构成的支撑线时,即在该点位(反手、开仓)做空;
当日内最低价跌破下观察价后,盘中价格出现反弹,且进一步超过反转买入价
构成的阻力线时,即在该点位(反手、开仓)做多;

权益曲线:
QQ图片20170214145644.png



策略代码:

function  PivotPoint(freq2,shareNum)      %上面五个为输入参数


%  Freq  为输入时间频率

%---------------------策略初始化与是否日内平仓---------------%

%  traderDailyCloseTime(145000);          %  每天14:50分平仓        如果没有日内平仓,去掉这句话就可以了。

targetList  =  traderGetTargetList();  %获取交易标的句柄

HandleList  =  traderGetHandleList();  %获取账户句柄


global  s;

lags=3;


%---------------------策略提取数据---------------%


for  i=1:length(targetList)

        [time,open,high,low,close,volume,turnover,openinterest]  =  traderGetKData(targetList(i).Market,targetList(i).Code,'day',freq2,  0-lags,  0,false,'FWard');  %提取数据,从当前开始往前取lags个数据


        BarNumber=traderGetCurrentBar(targetList(i).Market,targetList(i).Code);


        if  length(close)<lags

                continue;

        end


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


        t=datevec(time(end));

        if  t(4)==9&&t(5)<35;

                s(i).switch1=1;

                s(i).switch2=1;

                s(i).switch3=0;

                s(i).switch4=1;

                s(i).switch5=1;

                s(i).switch6=0;


                s(i).OrderID1=0;

                s(i).OrderID2=0;

                s(i).OrderID3=0;

                s(i).OrderID4=0;

                continue;

        end


        if  t(4)==14&&t(5)>50  &&  mp~=0

                traderPositionTo(HandleList(1),targetList(i).Market,targetList(i).Code,0,0,'market','反转做空')

                continue;

        end

        %%  计算轨迹


        HH=high(end-1);%  上一个交易日的最高价

        LL=low(end-1);  %  上一个交易日的最低价

        CC=close(end-1);  %  上一个交易日的收盘价


        pp=(HH+LL+2*CC)/4;


        R3=pp+(HH-LL)+(pp-LL);

        R2=pp+(HH-LL);

        R1=pp+(HH-pp);

        S1=pp-(HH-pp);

        S2=pp-(HH-LL);

        S3=pp-(HH-LL)-(HH-pp);





        %%  判断状态下单

        if  close(end)>R3  &&  s(i).switch1==1;

                s(i).OrderID1=traderDirectBuy(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','突破做多');

                s(i).switch1=0;

        end


        if  close(end)>R2  &&  s(i).switch2==1

                s(i).switch2=0;

                s(i).switch3=1;

        end


        if    s(i).switch3==1  &&  close(end)<R1

                s(i).OrderID2=traderDirectSell(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','反转做空');

                s(i).switch3=0;

        end


        if  close(end)<S3  &&  s(i).switch4==1

                s(i).OrderID3=traderDirectSell(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','突破做多');

                s(i).switch4=0;

        end


        if  close(end)<S2  &&  s(i).switch5==1

                s(i).switch5=0;

                s(i).switch6=1;

        end


        if    s(i).switch6==1  &&  close(end)>S1

                s(i).OrderID4=traderDirectBuy(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','反转做多');

                s(i).switch6=0;

        end



        if  s(i).OrderID1~=0  &&  close(end)<R2

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

                s(i).OrderID1=0;

        end


        if  s(i).OrderID2~=0  &&  close(end)>R2

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

                s(i).OrderID2=0;

        end


        if  s(i).OrderID3~=0  &&  close(end)>S2

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

                s(i).OrderID3=0;

        end


        if  s(i).OrderID4~=0  &&  close(end)<S2

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

                s(i).OrderID4=0;

        end




end


为尊重作者原创权益,附上作者信息

作者:chao9002   来源:http://www.atrader.com.cn/stra.php


二维码

扫码加我 拉你入群

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

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

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

已有 1 人评分经验 收起 理由
crystal8832 + 5 精彩帖子

总评分: 经验 + 5   查看全部评分

lizhaohe 发表于 2017-2-14 18:09:38 |显示全部楼层 |坛友微信交流群
这个不得不顶了,期待楼主后续精彩分享。最好可以实盘的。

使用道具

挖矿专家 发表于 2017-2-14 18:42:23 |显示全部楼层 |坛友微信交流群
多谢支持,其实我也是从网上搜集到的,推荐一个网站,http://www.atrader.com.cn/stra.php  里面有上百个策略,都公开了源码,而且是免费的。

使用道具

挖矿专家 发表于 2017-2-15 10:41:54 |显示全部楼层 |坛友微信交流群
感谢支持~

使用道具

3862161 在职认证  发表于 2017-2-15 11:09:47 |显示全部楼层 |坛友微信交流群
这个必须顶,期待楼主后续精彩分享。赞

使用道具

挖矿专家 发表于 2017-2-15 13:48:48 |显示全部楼层 |坛友微信交流群
后续会每天发一篇的,敬请关注~

使用道具

ghjktdf 发表于 2017-2-16 14:42:17 |显示全部楼层 |坛友微信交流群
顶!d=====( ̄▽ ̄*)b  期待楼主后续分享~

使用道具

挖矿专家 发表于 2017-2-17 09:49:51 |显示全部楼层 |坛友微信交流群
感谢支持~

使用道具

挖矿专家 发表于 2017-2-23 19:01:45 |显示全部楼层 |坛友微信交流群
顶,让更多人看到~

使用道具

ghjktdf 发表于 2017-2-25 15:59:49 |显示全部楼层 |坛友微信交流群
帮顶

使用道具

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

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

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

GMT+8, 2024-4-19 06:56