以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  我这个只会开多。不会开空,请教老师这个在平多开空,平空开多要怎么写呀。帮我加一条可以吗。谢谢  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=88755)

--  作者:sjl5303
--  发布时间:2015/12/23 12:47:32
--  我这个只会开多。不会开空,请教老师这个在平多开空,平空开多要怎么写呀。帮我加一条可以吗。谢谢

MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);

variable:maxprofit=0;//有仓位时最大获利幅度

//开仓
IF CROSS(MA1,MA2) THEN
 BEGIN
 BUY(1,1);
 maxprofit:=0;
 END

//平仓
SELL(CROSS(MA2,MA1),0);

//判断当前持仓状态下的最大盈利
win:=0;
 win2:=0;

if holding > 0 and enterbars > 0 then
 begin
 win:=(c-enterprice)/enterprice*100; //记录最大盈利
if win > maxprofit then
   maxprofit:=win;
  
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

if holding < 0 and enterbars > 0 then
 begin
 win:=(enterprice-c)/enterprice*100; //记录最大盈利
if win > maxprofit then
   maxprofit:=win;

 

我这个只会开多。不会开空,请教老师这个在平多开空,平空开多要怎么写呀。帮我加一条可以吗。谢谢


--  作者:jinzhe
--  发布时间:2015/12/23 13:11:43
--  
你的代码里面只有开多,并没有开空
--  作者:sjl5303
--  发布时间:2015/12/23 14:20:32
--  
是的。能帮我加个代码进去。开空吗
--  作者:jinzhe
--  发布时间:2015/12/23 14:25:01
--  

MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,30);

variable:maxprofit=0;//有仓位时最大获利幅度

//开仓

sellshort(cross(ma1,ma2),0);

IF CROSS(MA1,MA2) and holding=0 THEN
 BEGIN

 BUY(1,1);
 maxprofit:=0;
 END

//平仓

SELL(CROSS(MA2,MA1),0);

if cross(ma2,ma1) and holding=0 then

 begin

   buyshort(1,1);

   maxprofit:=0;

end

//判断当前持仓状态下的最大盈利
win:=0;
 win2:=0;

if holding > 0 and enterbars > 0 then
 begin
 win:=(c-enterprice)/enterprice*100; //记录最大盈利
if win > maxprofit then
   maxprofit:=win;
  
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
end

if holding < 0 and enterbars > 0 then
 begin
 win:=(enterprice-c)/enterprice*100; //记录最大盈利
if win > maxprofit then
   maxprofit:=win;