以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=256)

--  作者:bhwhui
--  发布时间:2009/11/24 23:40:40
--  [求助]请教程序中设定止损的方法。

程序如下:

 

input: n1(2,1,60),n2(13,1,100),n3(2,2,10),drawdown(3,1,10);

LC := REF(CLOSE,1);
RSI1:=SMA(MAX(CLOSE-LC,0),n1,1)/SMA(ABS(CLOSE-LC),n1,1)*100;
RSI2:=SMA(MAX(CLOSE-LC,0),n2,1)/SMA(ABS(CLOSE-LC),n2,1)*100;
r1:=ema(rsi1,n3);
r2:=ema(rsi2,n3);
r3:(r1-r2),COLORGRAY,LINETHICK0;

ts:=iif(r3>0,1,-1),noaxis;

if holding<>0 then zs:=AVGENTERPRICE-drawdown/100*asset/10/Holding;  //空头是负数,所以能合并

买入价:AVGENTERPRICE,linethick0;
止损:zs,linethick0;

{平多}
sell(holding>0,0,STOP,zs);        //止损价
sell(holding>0 and r3<0,0,thisclose);
{平空}
sellshort(holding<0,0,STOP,zs);    //止损价
sellshort(holding<0 and r3>0,0,thisclose);
{开多}
buy(vol>5000 and holding=0 and r3>0,intpart(asset*0.4/close),thisclose);
{开空}
buyshort(vol>5000 and holding=0 and r3<0,intpart(asset*0.4/close),thisclose);

资产:asset,noaxis,colorgreen;
持仓:holding,noaxis,linethick0;
提示:ts,noaxis,linethick0;

 

请教

1:我能同时2个Sell指令么?如上,一个是定义止损,一个是正常交易用。

2:在RB02 60min看11/20 15:00 怎么会被平空?最高价是4115,而程序显示止损价是4140,更本没有触及啊

 

谢谢


[此贴子已经被作者于2009-11-24 23:41:38编辑过]

--  作者:bhwhui
--  发布时间:2009/11/24 23:45:11
--  

这个是加上止损的效果图

 

图片点击可在新窗口打开查看 

 

这个是没加止损的效果图

 

图片点击可在新窗口打开查看

 

没有触及止损价,为什么会平空了呢?

 

谢谢

[此贴子已经被作者于2009-11-24 23:47:57编辑过]

--  作者:bhwhui
--  发布时间:2009/11/24 23:54:15
--  

再看成交记录

 

图片点击可在新窗口打开查看

 

都没有显示的,奇怪了。。。。

[此贴子已经被作者于2009-11-24 23:54:59编辑过]

--  作者:金字塔
--  发布时间:2009/11/25 8:36:03
--  

STOP表示次周期达到设定价格即操作买入或卖出,否则放弃。

本周起的用STOPr

{平多}
sell(holding>0,0,STOPr,zs);        //止损价
sell(holding>0 and r3<0,0,thisclose);
{平空}
sellshort(holding<0,0,STOPr,zs);    //止损价
sellshort(holding<0 and r3>0,0,thisclose);


--  作者:bhwhui
--  发布时间:2009/11/25 8:56:56
--  

哦。原来如此,没见有通知的?

 

另外,

1:同时写2个Sell,Buy的语法没问题是么?

2:TBuy,Tsell 改成 STPr,对么? 

谢谢

[此贴子已经被作者于2009-11-25 9:01:15编辑过]

--  作者:金字塔
--  发布时间:2009/11/25 9:00:35
--  

在函数表述中有。

 

写2个Sell,Buy的语法没问题。

 


--  作者:bhwhui
--  发布时间:2009/11/25 9:03:44
--  

谢谢

 

Buy,Sell 对应Stopr,TBuy,TSell 对应Stop ??还是STOPr 是单独的止损指令?

 

谢谢,帮助的举例都是Buy,Sell 的。

[此贴子已经被作者于2009-11-25 9:08:24编辑过]

--  作者:金字塔
--  发布时间:2009/11/25 9:08:09
--  

注意:TBuy,TSell 对应Stp

有时就是一字之差


--  作者:金字塔
--  发布时间:2009/11/25 9:12:24
--  
程式化交易系统之开多操作,
用法:TBUY(COND,V,[Type,P1,P2,AC,STOCK]);表示当COND条件成立时,
买入V股(手)当前品种,TYPE表示开仓类型,
LMT限价 MKT市价 STP止损 STPLMT限价止损
P1表示开仓价格,当TYPE为LMT和STP,STPLMT时为指定限价和止损价格,其他情况填0
P2为止损限价,当TYPE为STPLMT时,必须指定P2的止损限价,其他情况填0,当P1止损价触发时按照P2价格止损操作.
当TYPE参数省略时,为市价开仓。AC为帐户ID,为空时为系统默认帐户,否则将下单到指定帐户中
STOCK为品种代码,比如\'SH600215\',为空或者不填时为当前品种
 例如:TBUY(C>O ,1000,LMT,C);表示收阳线则在本周期收盘价上买入1000股(手)。
TBUY(C>0,1000,STP,CLOSE+0.2);表示收阳线则在本周期收盘价高于0.2元下1000股(手)止损单,当盘中价格到了触发价时按市价开仓止损.
TBUY(C>0,1000,STPLMT,CLOSE+0.2,CLOSE);表示收阳线则在本周期收盘价高于0.2元下1000股(手)止损单,当盘中价格到了触发价时按CLOSE价格开仓止损

--  作者:金字塔
--  发布时间:2009/11/25 9:21:38
--  

做系统交易,函数列表中的程式化交易和交易系统函数浏览一下,有助于编写策略

 

图片点击可在新窗口打开查看