欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请老师帮忙改写一个模型为金字塔可用的

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2714人关注过本帖平板打印复制链接

主题:请老师帮忙改写一个模型为金字塔可用的

帅哥哟,离线,有人找我吗?
987654jj
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:37 积分:110 威望:0 精华:0 注册:2012/12/6 12:32:12
请老师帮忙改写一个模型为金字塔可用的  发帖心情 Post By:2017/6/23 11:49:34    Post IP:73.246.148.24[只看该作者]

想用llt模型做金字塔的交易,这里是别的语言的,希望能改成金字塔的 谢谢

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

 回到顶部