以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  提示没有分号,  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=11701)

--  作者:luoyong
--  发布时间:2012/5/16 14:18:57
--  提示没有分号,

我的策略:

开多:MACD(26 12 9)中的DIF金叉DEA且满足CR(26 5 10 20)中的CR值小于100, 以本周期收盘价开多1手 。
平多:MACD(26 12 9)中的DIF死叉DEA,以本周期收盘价平多1手 。
开空:MACD(26 12 9)中的DIF死叉DEA死叉且满足CR(26 5 10 20)中的CR值大于100 ,以本周期收盘价开空1手 。
平空:MACD(26 12 9)中的DIF金叉DEA, 以本周期收盘价平多1手 。
论坛的朋友帮我写了,我自己又改一点,金字塔便提示没有分号,我找不到原因,请帮一下

INPUT:M(26,5,300,30),P1(5,1,100,10),P2(10,1,100,10),P3(20,1,100,10);
INPUT:P(26,20,100,8),S(12,5,40,4),M(9,2,60,6);
DIFF : EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  : EMA(DIFF,M);
MACD : 2*(DIFF-DEA), COLORSTICK;
MID := (HIGH+LOW+CLOSE)/3;
CR:SUM(MAX(0,HIGH-REF(MID,1)),M)/SUM(MAX(0,REF(MID,1)-L),M)*100;
MA1:REF(MA(CR,P1),P1/2.5+1);
MA2:REF(MA(CR,P2),P2/2.5+1);
MA3:REF(MA(CR,P3),P3/2.5+1);

IF CROSS(DIFF,DEA) AND CR<100 THEN 
BEGIN 
SELLSHORT(1,0,MARKET);

BUY(1,1,MARKET);
END


IF CROSS(DEA,DIFF)THEN 
BEGIN SELL(1,0,MARKET);
END  
IF CROSS(DEA,DIFF) AND CR>100 THEN 
BEGIN
SELL(1,0,MARKET);
BUYSHORT(1,1,MARKET);
END 
IF CROSS(DIFF,DEA) THEN 
BEGIN
SELLSHORT(1,0,MARKET);
END 

--  作者:jinzhe
--  发布时间:2012/5/16 14:22:19
--  

如果是这样的话,那么就可能是你在写公式的时候用的是中文输入法,

用英文输入法再写一遍


--  作者:Leon
--  发布时间:2012/5/16 14:33:25
--  

倒数第11行,begin后不能紧跟sell,then前要加上空格

 

INPUT:M(26,5,300,30),P1(5,1,100,10),P2(10,1,100,10),P3(20,1,100,10);
INPUT:P(26,20,100,8),S(12,5,40,4),M(9,2,60,6);
DIFF:EMA(CLOSE,S) - EMA(CLOSE,P);
DEA:EMA(DIFF,M);
MACD:2*(DIFF-DEA),COLORSTICK;
MID:=(HIGH+LOW+CLOSE)/3;
CR:SUM(MAX(0,HIGH-REF(MID,1)),M)/SUM(MAX(0,REF(MID,1)-L),M)*100;
MA1:REF(MA(CR,P1),P1/2.5+1);
MA2:REF(MA(CR,P2),P2/2.5+1);
MA3:REF(MA(CR,P3),P3/2.5+1);

IF CROSS(DIFF,DEA) AND CR<100 THEN
BEGIN
SELLSHORT(1,0,MARKET);
BUY(1,1,MARKET);
END

{-------------------------------------------------------------------------------------}
IF CROSS(DEA,DIFF) THEN
BEGIN
SELL(1,0,MARKET);
END 
IF CROSS(DEA,DIFF) AND CR>100 THEN
BEGIN
SELL(1,0,MARKET);
BUYSHORT(1,1,MARKET);
END
IF CROSS(DIFF,DEA) THEN
BEGIN
SELLSHORT(1,0,MARKET);
END 

[此贴子已经被作者于2012-5-16 14:36:42编辑过]