Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共4 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
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
2楼
wenarm 发表于:2017/6/23 12:57:58

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

[此贴子已经被作者于2017/6/23 13:08:33编辑过]
3楼
yangyang 发表于:2017/8/1 15:30:06
别的语言 是什么语言  ?
4楼
FireScript 发表于:2017/8/1 16:05:13
以下是引用yangyang在2017/8/1 15:30:06的发言:
别的语言 是什么语言  ?

VBA的。

共4 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.01563 s, 3 queries.