以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  帮忙看看这个简单的止损 这么写问题在哪里?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=25254)

--  作者:bigbear
--  发布时间:2012/9/6 2:43:09
--  帮忙看看这个简单的止损 这么写问题在哪里?

\\\\开仓
IF (holding=0) THEN  BEGIN
 IF (开多)  THEN BUY(1,开仓数量%,LIMIT,close+开仓滑点),IGNORECHECKPRICE;
 
 IF (开空)  THEN BUYSHORT(1,开仓数量%,LIMIT,close-开仓滑点),IGNORECHECKPRICE;
 END

 

\\\\计算开仓后的止损点

开单到目前的K线数:enterbars,LINETHICK0;

多单止损点:LLV(LOW,(开单到目前的K线数+7)),LINETHICK0;

空单止损点:HHV(HIGH,(开单到目前的K线数+7)),LINETHICK0;

 

\\\\止损或平仓
IF (holding>0) THEN  BEGIN
 IF (C<=多单止损点) THEN SELL(1,平仓数量%,LIMIT,close-平仓滑点);
 IF (平多)  THEN SELL(1,平仓数量%,LIMIT,close-平仓滑点);
END

 

IF (holding<0) THEN  BEGIN
 IF (C>=空单止损点) THEN SELLSHORT(1,平仓数量%,LIMIT,close+平仓滑点);
 IF (平空)  THEN SELLSHORT(1,平仓数量%,LIMIT,close+平仓滑点);

END

 


--  作者:jinzhe
--  发布时间:2012/9/6 8:49:31
--  
看上去可行
--  作者:bigbear
--  发布时间:2012/9/6 14:22:56
--  

多谢版主答复。

 

 

//止损或平仓
IF (holding>0) THEN  BEGIN
 IF (C<=多单止损点) THEN SELL(1,平仓数量%,LIMIT,多单止损点-平仓滑点);
 IF (平多)  THEN SELL(1,平仓数量%,LIMIT,close-平仓滑点);
END

 

这么写,其中止损的这句,是不是可以实现, 当最后一根K线碰到 止损点位置时,就立即在止损点平仓?  而不是 要等到 最后一个K线收盘再平仓?

 

 


--  作者:jinzhe
--  发布时间:2012/9/6 14:36:25
--  

固定一秒轮询

if ref(c,1)<=ref(多单止损点,1) then sell();


--  作者:bigbear
--  发布时间:2012/9/6 15:00:32
--  

JinZhe版主,

 

如果我是在日线上测试这个系统, 固定轮询 的时候,可能对应到某一根日K 的分笔数据还不全, 这样的话, 用秒来轮询,是不是有问题?

如果我的1f K线数据时全的。  在日线上测试系统的时候, 用1f 以上周期的 固定轮询 是不是就没有问题了?  感谢!


--  作者:jinzhe
--  发布时间:2012/9/6 15:06:14
--  

日线数据测试只要日线数据齐全就行了

 


--  作者:bigbear
--  发布时间:2012/9/6 15:54:32
--  

版主,还是有点不明白;想不通啊。

 

比如  如果是在日线上测试系统, 用20秒固定周期轮询。 就是说在每根日k 上,要轮询 这一句

if ref(c,1)<=ref(多单止损点,1) then sell();     

4.5(每天4.5小时)*60(每小时60分钟)*60(每分钟60秒)/20=810次

 

但是如果只有日k 数据,针对每根日K线,就只有日开盘价, 日最高价,日最低价,日收盘价  这4个值。  轮询810次,没有什么用啊。

 

您是不是指的模拟交易测试?    我其实是想作离线的脱机 算法测试。