以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请老师帮忙改写一个模型为金字塔可用的  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=155367)

--  作者:987654jj
--  发布时间:2017/6/23 11:49:34
--  请老师帮忙改写一个模型为金字塔可用的
想用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

--  作者:wenarm
--  发布时间:2017/6/23 12:57:58
--  

表达你上面代码中使用的所有函数的含义 。并且提供完整的逻辑处理思路。

[此贴子已经被作者于2017/6/23 13:08:33编辑过]

--  作者:yangyang
--  发布时间:2017/8/1 15:30:06
--  
别的语言 是什么语言  ?
--  作者:FireScript
--  发布时间:2017/8/1 16:05:13
--  
以下是引用yangyang在2017/8/1 15:30:06的发言:
别的语言 是什么语言  ?

VBA的。