图表程序是下面这个 我要改后台 然后呢 后台的手数不对 还有开仓重复了 老师帮我看下 后台程序再图表下面
N_DAY:=10;
FUND:=20000;
VAR1:=MAX(1,INTPART(Fund/(O*MULTIPLIER*0.1)));
NN:=BARSLAST(DATE<>REF(DATE,1))+1;
LENGTH_DAY:=HHV(NN,NN+62);
O_TODAY:=VALUEWHEN(NN=1,OPEN);
H_TODAY:=HHV(HIGH,NN);
L_TODAY:=LLV(LOW,NN);
H_YESTERDAY:=REF(H_TODAY,NN);
L_YESTERDAY:=REF(L_TODAY,NN);
C_YESTERDAY:=REF(C,NN);
LENGTH:=N_DAY*LENGTH_DAY;
DISTANCE:=MA(H_YESTERDAY-L_YESTERDAY,LENGTH);
ORB:=MIN(ABS(H_YESTERDAY-C_YESTERDAY),ABS(L_YESTERDAY-C_YESTERDAY));
BAND:=MAX(ORB,DISTANCE*0.1);
UPBAND:=O_TODAY+BAND;
DOWNBAND:=O_TODAY-BAND;
MAC:=MA(CLOSE,LENGTH);
MA_HH:=MA(HHV(HIGH,LENGTH),LENGTH);
MA_LL:=MA(LLV(LOW,LENGTH),LENGTH);
BUYPK:=CLOSE>UPBAND AND CLOSE>MAC AND CLOSE>MA_HH;
SELLPK:=CLOSE<DOWNBAND AND CLOSE<MAC AND CLOSE<MA_LL;
SELLY:=CLOSE<MAC AND CLOSE>ENTERPRICE;
BUYY:=CLOSE>MAC AND CLOSE<ENTERPRICE;
IF BARPOS >LENGTH THEN
BEGIN
IF BuyPK THEN
BEGIN
sellshort(holding<0,0,market);
Buy(holding=0,Var1,market);
END
IF SellPK THEN
BEGIN
sell(holding>0,0,market);
buyShort(holding=0,Var1,MARKET);
END
END
if ENTERBARS>1 then
begin
卖盈:SELL(holding>0 and SellY,0,market);
买盈:SELLSHORT(holding<0 and BuyY,0,market);
end
后台
N_DAY:=10;
FUND:=20000;
VAR1:=MAX(1,INTPART(Fund/(O*MULTIPLIER*0.1)));
NN:=BARSLAST(DATE<>REF(DATE,1))+1;
LENGTH_DAY:=HHV(NN,NN+62);
O_TODAY:=VALUEWHEN(NN=1,OPEN);
H_TODAY:=HHV(HIGH,NN);
L_TODAY:=LLV(LOW,NN);
H_YESTERDAY:=REF(H_TODAY,NN);
L_YESTERDAY:=REF(L_TODAY,NN);
C_YESTERDAY:=REF(C,NN);
LENGTH:=N_DAY*LENGTH_DAY;
DISTANCE:=MA(H_YESTERDAY-L_YESTERDAY,LENGTH);
ORB:=MIN(ABS(H_YESTERDAY-C_YESTERDAY),ABS(L_YESTERDAY-C_YESTERDAY));
BAND:=MAX(ORB,DISTANCE*0.1);
UPBAND:=O_TODAY+BAND;
DOWNBAND:=O_TODAY-BAND;
MAC:=MA(CLOSE,LENGTH);
MA_HH:=MA(HHV(HIGH,LENGTH),LENGTH);
MA_LL:=MA(LLV(LOW,LENGTH),LENGTH);
BUYPK:=CLOSE>UPBAND AND CLOSE>MAC AND CLOSE>MA_HH;
SELLPK:=CLOSE<DOWNBAND AND CLOSE<MAC AND CLOSE<MA_LL;
SELLY:=CLOSE<MAC AND CLOSE>ENTERPRICE;
BUYY:=CLOSE>MAC AND CLOSE<ENTERPRICE;
IF BARPOS >LENGTH THEN
BEGIN
IF BuyPK THEN
BEGIN
sellshort(holding<0,0,market);
Buy(holding=0,Var1,market);
END
IF SellPK THEN
BEGIN
sell(holding>0,0,market);
buyShort(holding=0,Var1,MARKET);
END
END
if ENTERBARS>1 then
begin
卖盈:SELL(holding>0 and SellY,0,market);
买盈:SELLSHORT(holding<0 and BuyY,0,market);
end
你把你后台修改的策略贴出来看下,我们看下具体什么地点造成的差异。
老师 看下 这是修改的
N_DAY:=10;
FUND:=20000;
VAR1:=MAX(1,INTPART(Fund/(O*MULTIPLIER*0.1)));
NN:=BARSLAST(DATE<>REF(DATE,1))+1;
LENGTH_DAY:=HHV(NN,NN+62);
O_TODAY:=VALUEWHEN(NN=1,OPEN);
H_TODAY:=HHV(HIGH,NN);
L_TODAY:=LLV(LOW,NN);
H_YESTERDAY:=REF(H_TODAY,NN);
L_YESTERDAY:=REF(L_TODAY,NN);
C_YESTERDAY:=REF(C,NN);
LENGTH:=N_DAY*LENGTH_DAY;
DISTANCE:=MA(H_YESTERDAY-L_YESTERDAY,LENGTH);
ORB:=MIN(ABS(H_YESTERDAY-C_YESTERDAY),ABS(L_YESTERDAY-C_YESTERDAY));
BAND:=MAX(ORB,DISTANCE*0.1);
UPBAND:=O_TODAY+BAND;
DOWNBAND:=O_TODAY-BAND;
MAC:=MA(CLOSE,LENGTH);
MA_HH:=MA(HHV(HIGH,LENGTH),LENGTH);
MA_LL:=MA(LLV(LOW,LENGTH),LENGTH);
BUYPK:=CLOSE>UPBAND AND CLOSE>MAC AND CLOSE>MA_HH;
SELLPK:=CLOSE<DOWNBAND AND CLOSE<MAC AND CLOSE<MA_LL;
SELLY:=CLOSE<MAC AND CLOSE>ENTERPRICE;
BUYY:=CLOSE>MAC AND CLOSE<ENTERPRICE;
IF tbuyholding(1)>0 and BARPOS >LENGTH and SELLPK THEN tsell(1,tbuyholding(1),mkt);
if tsellholding(1)>0 and BARPOS >LENGTH and BUYPK THEN tsellshort(1,tsellholding(1),mkt);
if TBUYHOLDING(1)=0 and tsellholding(1)=0 and BARPOS >LENGTH and BUYPK then tbuy(1,Var1,mkt);
if TBUYHOLDING(1)=0 and tsellholding(1)=0 and BARPOS >LENGTH and SELLPK then tbuyshort(1,Var1,mkt);
if tbuyholding(1)>0 and TENTERBARS>1 and SELLY then tSELL(1,tbuyholding(1),mkt);
if tsellholding(1)>0 and TENTERBARS>1 and BUYY then tSELL(1,tsellholding(1),mkt);
ENTERPRICE 这是图表上的。你怎么用在后台代码里面了。
SELLY:=CLOSE<MAC AND CLOSE>ENTERPRICE;
BUYY:=CLOSE>MAC AND CLOSE<ENTERPRICE;
这段代码编译时候应该直接就报提示的啊,你换成tENTERPRICE。
然后还有这里
if tsellholding(1)>0 and TENTERBARS>1 and BUYY then tSELL(1,tsellholding(1),mkt);
你是要平空吧。怎么写成平多了。