以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  一个突破模型策略的编写问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=29923)

--  作者:gongxiangban
--  发布时间:2012/10/18 13:01:22
--  一个突破模型策略的编写问题
源码:
DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  := EMA(DIFF,M);
MACD := 2*(DIFF-DEA);
MA1  := ema(close,N);
MACD5 := REF(MACD,5);
long:= close>MA1 and MACD>0  and MACD5<0 ;
if long then
begin
 if not (HOLDING > 0) then
    buy(1,1,thisclose);
end;
if MA1> close +20*mindiff THEN
BEGIN 
 BUYSHORT(holding>0,holding,thisclose);
END
---------------------------------------------------------------------------

大概 思路就是 
  当K线穿越移动平均线,macd从下方向上穿越0轴的时候,做多。
 当 K线向下穿越移动平均线+20点时,平仓。




一个很简单的策略模型,可是为什么测试的时候只做了一个单子,且一直没有平仓.
求解答,

个人认为 是 最后几行的平仓策略写错了,请教。

--  作者:every
--  发布时间:2012/10/18 13:25:32
--  

是的,有错误

BUYSHORT(holding>0,holding,thisclose);-----改为SELL

 

if long and holding=0 then
begin
    buy(1,1,thisclose);
end;

--  作者:gongxiangban
--  发布时间:2012/10/18 15:22:22
--  
那请问,buyshort和 buy有什么区别么
--  作者:jinzhe
--  发布时间:2012/10/18 15:23:11
--  
开空和开多