以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  修正错误 图表改后台  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=167434)

--  作者:f三年
--  发布时间:2019/1/1 10:47:13
--  修正错误 图表改后台
图表程序是下面这个  我要改后台  然后呢  后台的手数不对  还有开仓重复了   老师帮我看下   后台程序再图表下面

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





--  作者:yukizzc
--  发布时间:2019/1/2 9:02:49
--  
下面这个和上面一样,都是图表的
--  作者:f三年
--  发布时间:2019/1/3 11:29:56
--  
求老师帮忙改下后台 谢谢
--  作者:wenarm
--  发布时间:2019/1/3 13:18:05
--  
你把你后台修改的策略贴出来看下,我们看下具体什么地点造成的差异。

--  作者:f三年
--  发布时间:2019/1/3 16:23:05
--  
老师  看下  这是修改的 


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);

--  作者:FireScript
--  发布时间:2019/1/4 9:25:36
--  
 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);

你是要平空吧。怎么写成平多了。