以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  策略编写,如何在一个策略上增加止损功能?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=87573)

--  作者:MyGabriel
--  发布时间:2015/11/20 19:32:16
--  策略编写,如何在一个策略上增加止损功能?
 如果我有一个策略,我如何增加一个止损功能,比如按点位,或者按金额止损

如下系统自带的一个策略

INPUT:SS(1,1,10000,10);
手数:=SS;
N:=BARSLAST(DATE<>REF(DATE,1));
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);//昨高
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);//昨低
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);//昨收
A:=HHV(H,N+1);
B:=LLV(L,N+1);
IF N>=1 THEN BEGIN
今高:=A;//今高
今低:=B;//今低
END
观察卖出价:昨高+0.35*(昨收-昨低);//SSETUP
反转卖出价:(1.07/2)*(昨高+昨低)-0.07*昨低;//SENTER
反转买入价:(1.07/2)*(昨高+昨低)-0.07*昨高;//BENTER
观察买入价:昨低-0.35*(昨高-昨收);//BSETUP
突破买入价:(观察卖出价+0.25*(观察卖出价-观察买入价));//BBREEAK
突破卖出价:观察买入价-0.25*(观察卖出价-观察买入价);//SBREAK
//条件
空仓做多条件:=C>突破买入价 AND HOLDING=0;
空仓做空条件:=C<突破卖出价 AND HOLDING=0;
多单反转条件:=HOLDING>0 AND 今高>观察卖出价 AND C<反转卖出价;
空单反转条件:=HOLDING<0 AND 今低<观察买入价 AND C>反转买入价;
//交易系统
IF TIME>=092000 AND TIME<151000 THEN BEGIN
 空仓开多:BUY(空仓做多条件,手数,MARKET);
 空仓开空:BUYSHORT(空仓做空条件,手数,MARKET);
//多单反转:
 IF 多单反转条件 THEN BEGIN
  平多:SELL(1,手数,MARKET);
  翻空:BUYSHORT(1,手数,MARKET);
  END
 //空单反转:
 IF 空单反转条件 THEN BEGIN
 平空:SELLSHORT(1,手数,MARKET);
 翻多:BUY(1,手数,MARKET);
 END
END
//日内平仓
IF TIME>=151000 THEN BEGIN
 收盘平多:SELL(1,手数,MARKET);
 收盘平空:SELLSHORT(1,手数,MARKET);
END

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值


请老师指导下,目前还在摸索中。

--  作者:jinzhe
--  发布时间:2015/11/23 8:56:16
--  

INPUT:SS(1,1,10000,10);
手数:=SS;
N:=BARSLAST(DATE<>REF(DATE,1));
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);//昨高
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);//昨低
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);//昨收
A:=HHV(H,N+1);
B:=LLV(L,N+1);
IF N>=1 THEN BEGIN
今高:=A;//今高
今低:=B;//今低
END
观察卖出价:昨高+0.35*(昨收-昨低);//SSETUP
反转卖出价:(1.07/2)*(昨高+昨低)-0.07*昨低;//SENTER
反转买入价:(1.07/2)*(昨高+昨低)-0.07*昨高;//BENTER
观察买入价:昨低-0.35*(昨高-昨收);//BSETUP
突破买入价:(观察卖出价+0.25*(观察卖出价-观察买入价));//BBREEAK
突破卖出价:观察买入价-0.25*(观察卖出价-观察买入价);//SBREAK
//条件
空仓做多条件:=C>突破买入价 AND HOLDING=0;
空仓做空条件:=C<突破卖出价 AND HOLDING=0;
多单反转条件:=HOLDING>0 AND 今高>观察卖出价 AND C<反转卖出价;
空单反转条件:=HOLDING<0 AND 今低<观察买入价 AND C>反转买入价;
//交易系统
IF TIME>=092000 AND TIME<151000 THEN BEGIN
 空仓开多:BUY(空仓做多条件,手数,MARKET);
 空仓开空:BUYSHORT(空仓做空条件,手数,MARKET);
//多单反转:
 IF 多单反转条件 THEN BEGIN
  平多:SELL(1,手数,MARKET);
  翻空:BUYSHORT(1,手数,MARKET);
  END
 //空单反转:
 IF 空单反转条件 THEN BEGIN
 平空:SELLSHORT(1,手数,MARKET);
 翻多:BUY(1,手数,MARKET);
 END
END

 

if holding>0 and close<enterprice-5 then sell(1,0,market);//多头固定5点止损

if holding<0 and close>enterprice+5 then sellshort(1,0,market);//空头5点止损
//日内平仓
IF TIME>=151000 THEN BEGIN
 收盘平多:SELL(1,手数,MARKET);
 收盘平空:SELLSHORT(1,手数,MARKET);
END

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值