设为首页收藏本站

 找回密码
 注册
查看: 2830|回复: 0
打印 上一主题 下一主题

LLT原始(附源码) [复制链接]

精华
0
UID
247176
积分
162
帖子
72
主题
68
阅读权限
0
注册时间
2017-2-14
最后登录
2017-5-18
跳转到指定楼层
1#
发表于 2017-3-17 11:45:48 |只看该作者 |倒序浏览
LLT择时模型,低延迟趋势线,。利用最近20个LLT指标数值,大部分LLT呈现上涨(斜率为正),做多;大部分下跌(斜率为负),做空;反向出场。

策略代码:

function LLTg(freq)

targetList = traderGetTargetList();
HandleList = traderGetHandleList();
for i=1:length(targetList)
    marketposition=traderGetAccountPosition(HandleList(1),targetList(i).Market,targetList(i).Code);
    barnum=traderGetCurrentBar(targetList(i).Market,targetList(i).Code);
    len=60;
    dlen=60;
    [time,open,high,low,close,volume,turnover,openinterest] = traderGetKData(targetList(i).Market,targetList(i).Code,'min',freq, 0-len, 0,false,'FWard');
    [Dtime,Dopen,Dhigh,Dlow,Dclose,Dvolume,Dturnover,Dopeninterest] = traderGetKData(targetList(i).Market,targetList(i).Code,'day',1, 0-dlen, 0,false,'FWard');
    if length(close)<len+1||length(Dclose)<dlen+1
        continue;
    end
    a=2/(1+30);%d=30
    %计算操作指标
    lltv=LLT(close,a);
    k=lltv(2:end)>lltv(1:end-1);
    con1=sum(k(end-20:end))>=fix(0.9*21)&&k(end)==1;%斜率为正,上升阶段
    con2=sum(k(end-20:end))>=fix(0.1*21)&&k(end)==0; %斜率为负,下降阶段
   
    shareNum=1;
   
    %%
    if  marketposition==0
        if con1
            %             traderBuy(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','buy');%开多单
            orderID = traderBuy(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','1');
        elseif con2
            orderID = traderSellShort(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','1');
        end
    end
   
    if  marketposition>0 &&con2
        order= traderPositionTo(HandleList(1),targetList(i).Market,targetList(i).Code,0,0,'market','sell');%平多单
    end
   
    if  marketposition<0 &&con1
        traderBuyToCover(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','buytocover');%平空单
    end   
   
end
end


function LLTv=LLT(price,a)
LLTv=zeros(length(price),1);
LLTv(1:2)=price(1:2);
for i=3:length(price)
    LLTv(i)=(a-a^2/4)*price(i)+(a^2/2)*price(i-1)-(a-3*a^2/4)*price(i-2)+2*(1-a)*LLTv(i-1)-(1-a)^2*LLTv(i-2);
end
end


更多免费策略源码下载请登录DigQuant社区-策略资源下载,http://www.digquant.com.cn/stra.php

LLT原始策略源码下载:http://www.digquant.com.cn/stra.php?mod=model&pid=101
您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-2 15:42

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部