楼主: ghjktdf
2346 7

[源码分享] 网格资金管理(突破进场)策略源码 [推广有奖]

  • 1关注
  • 1粉丝

硕士生

19%

还不是VIP/贵宾

-

威望
0
论坛币
166 个
通用积分
0
学术水平
1 点
热心指数
2 点
信用等级
1 点
经验
1340 点
帖子
225
精华
0
在线时间
39 小时
注册时间
2017-2-16
最后登录
2017-6-26

楼主
ghjktdf 发表于 2017-2-28 14:54:35 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
策略原理:
          将资金分为N份,采取突破高点的形式入场,止损为10%,止盈为11%
          如果该份资金获利超过11%,则上移止盈止损线,且启动下一份资金抛点入场。
          仅多头入场

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


网格资金管理(突破进场).png

策略源码:

function  Strategy1(freq)%


targetList  =  traderGetTargetList();  

%获取目标资产信息

HandleList  =  traderGetHandleList();

%获取账户句柄

global  record;

for  k=1:length(targetList);


        %--------------------仓位、K线、当前bar的提取-----------------------------%

        %获取当前仓位

        [marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(k).Market,targetList(k).Code);

        %策略中每次取数据的长度

        lags=90;

        dlags=31;

        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,~,~]  =  traderGetKData(targetList(k).Market,targetList(k).Code,'min',freq,  0-lags,  0,false,'FWard');

        [Dtime,Dopen,Dhigh,Dlow,Dclose,Dvolume,~,~]  =  traderGetKData(targetList(k).Market,targetList(k).Code,'day',1,  0-lags,  0,false,'FWard');

        if  length(close)<lags  ||  length(Dclose)<dlags

                continue;

        end;        

        %-------------------------交易逻辑-------------------------------%

        %----------入场信号--------------------%

        stoplossratio=0.01;

        stopearnratio=0.011;

        remain_num=find(record.isopen==1);

        remain.isopen=record.isopen(remain_num);

        remain.isearn=record.isearn(remain_num);

        remain.pivotprice=record.pivotprice(remain_num);

        remain.entrybar=record.entrybar(remain_num);

        remain.unit=record.unit(remain_num);

        [ValidCash,MarketCap,OrderFrozen,MarginFrozen,PositionProfit]  =  traderGetAccountInfo(HandleList(1));

        [~,~,Multiple,~,~,~,~,~,~]  =  traderGetFutureInfo(targetList(k).Market,targetList(k).Code);

        remain_share=10-length(remain_num);

        con1=0;

        if  remain_share~=0;

                con1=1;

                buyunit=fix(ValidCash/remain_share/close(end)/Multiple);

        end;

        for  i=1:length(remain_num)

                index=remain_num(i);

                if  close(end)<remain.pivotprice(i)-stoplossratio*remain.pivotprice(i)  %  触发止损线

                        orderID2=traderDirectSell(HandleList(1),targetList(k).Market,targetList(k).Code,remain.unit(i),0,'market','sell');

                        if  orderID2==0

                                continue;

                        end;

                        record.isopen(index)=0;

                elseif  close(end)>remain.pivotprice(i)+stopearnratio*remain.pivotprice(i)  %  触发止盈线

                        record.pivotprice(index)=close(end);

                        record.isearn(index)=2;

                end;

        end;

        %  入场条件

        ma2=ma(Dclose,30);

        con2=high(end)>max(high(end-60:end-20))  &&  close(end)>ma2(end);

        con3=isempty(find(remain.isearn==1,1));

        buycon=con1  &&  con2  &&  con3;

        %---------------------------入场操作--------------------------------%

        if  buycon

                orderID1=traderDirectBuy(HandleList(1),targetList(k).Market,targetList(k).Code,buyunit,0,'market','buy');

                if  orderID1==0

                        continue;

                end;

                record.pivotprice=[record.pivotprice,close(end)];

                record.isearn=[record.isearn,1];

                record.isopen=[record.isopen,1];

                record.unit=[record.unit,buyunit];

                record.entrybar=[record.entrybar,barnum];

        end;

end

end



策略来源:atrader社区-策略服务

目测有上百个策略可以免费下载~





二维码

扫码加我 拉你入群

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

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


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

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

沙发
3862161 在职认证  发表于 2017-3-1 10:01:23
很好的思路   

藤椅
peppep 发表于 2017-3-3 16:01:44
进入看了,有好多策略

板凳
ghjktdf 发表于 2017-3-4 14:52:28
资金管理类策略都上传到社区了,需要的自取

报纸
peppep 发表于 2017-3-7 19:23:51
ghjktdf 发表于 2017-3-4 14:52
资金管理类策略都上传到社区了,需要的自取
谢谢楼主

地板
hsf1117 发表于 2017-3-7 22:22:16 来自手机
哪个社区?

7
挖矿专家 发表于 2017-3-8 10:41:51
hsf1117 发表于 2017-3-7 22:22
哪个社区?
atrader 社区已经更名为 digquant 社区,迁移至 www.digquant.com.cn

8
ghjktdf 发表于 2017-3-13 10:43:42
挖矿专家 发表于 2017-3-8 10:41
atrader 社区已经更名为 digquant 社区,迁移至 www.digquant.com.cn

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

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