请老师帮下忙 (文华财经WH8赢智V8.2)

投资者咨询:请老师帮下忙 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-9-27 10:24
老师您好,请帮我修改为文华8能用的,谢谢

function  chinatt(Int,Begin,cellPar)
%UNTITLED2 此处显示有关此函数的摘要
global idexK
global Tlen
global TimeDT
global TimeKT
N1=cellPar{1};
N2=cellPar{2};
if Int
    traderSetParalMode(false);
    idexK=traderRegKData('day',1);
    Tlen=length(idexK(:,1));
    TimeDT=zeros(Tlen,1);
    TimeKT=zeros(Tlen,1);
else
    %提取数据
    [mp,~,~] = traderGetAccountPositionV2(1,(1:Tlen));
    [~,HandListCap,~,~,~]=traderGetAccountInfoV2(1);
    iddexK = traderGetRegKData(idexK, 100, false);
    [Multiple, ~, ~, ~, ~, ~, ~] = traderGetFutureInfoV2(1:Tlen);
    for i=1:Tlen
        idddexK=iddexK(1+8*(i-1):8*i,:);
        time=idddexK(1,:);
        high=idddexK(3,:);
        low=idddexK(4,:);
        close=idddexK(5,:);
        sharenum=floor(HandListCap*0.8/close(end)/Multiple(i)/Tlen);
        %指标计算
        diff=close(N1+1:end)-close(1:end-N1);
        EF=(max(close(end-N1+1:end))-min(close(end-N2+1:end)))/sum(abs(diff(end-N1+1:end)));
        EF10=EMA(EF,N2);
        t=floor(10-(EF10-0.5)*10);
        if isnan(t)
            continue;
        end
        conbuy=close(end)>max(high(end-t:end-1));
        consell=close(end)<min(low(end-t:end-1));
        %开平仓动作
        if mp(i)==0
            if conbuy
                traderBuyV2(1,i,sharenum,0,'market','buy');
            elseif  consell
                traderSellShortV2(1,i,sharenum,0,'market','sell');
            end
        elseif mp(i)>0
            if consell
                traderPositionToV2(1,i,0,0,'market','stop');
            end
        elseif  mp(i)<0
            if conbuy
                traderPositionToV2(1,i,0,0,'market','stop');
            end
        end
    end
end
end
function EMAValue=EMA(Price,Length)
EMAValue=zeros(length(Price),1);
K=2/(Length+1);
for i=1:length(Price)
    if i==1
        EMAValue(i)=Price(i);
    else
        EMAValue(i)=Price(i)*K+EMAValue(i-1)*(1-K);
    end
end
end
4.2执行文件

targetList1 = traderGetCodeList('dce000');
targetList2 =traderGetCodeList('czce000');
targetList3 = traderGetCodeList('shfe000');
targetList=[targetList1,targetList2,targetList3]; 
targetList=targetList([ 5 7 8 12 14 16  33  40  43 44 ]);
traderSetBacktest(100000000,0.0025,0.02,0,1,0,0);
AccountList(1) = {'FutureBackReplay'};
N1=9;
N2=11;
traderRunBacktestV2('chinatt',@chinatt,{N1,N2},AccountList(1),targetList,'day',1,20110101,20170820,'FWard');
技术人员回复
日期:2018-9-27 11:15
参考:

N:=10;
TR:= MAX(MAX((HIGH-LOW),ABS(REF(CLOSE, 1)-HIGH)), ABS (REF(CLOSE, 1)-LOW));
ATR := MA(TR, 10);
DT:=CLOSE>REF(CLOSE, 1)+REF(ATR, 1)*1.5;
DT2:=COUNT(CLOSE>REF(CLOSE, 1)-REF(ATR, 1)*1.5, 2)=1&&DT;
KT:=CLOSE>REF(CLOSE, 1)+REF(ATR, 1)*1.5;
KT2:=COUNT(CLOSE<REF(CLOSE, 1)-REF(ATR, 1)*1.5, 2)=1&&KT;
DT,BPK;
KT,SPK;
CROSS (BARSLAST (DT),N) || DT2, SP;
CROSS (BARSLAST (KT),N) || KT2, BP;
AUTOFILTER;