以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  走完k线模式实时止损  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=54943)

--  作者:uime
--  发布时间:2013/8/10 16:02:58
--  走完k线模式实时止损
在测试dual thrust策略时,在走完k线模式下,用15分钟周期测试,想加入实时止损的语句测试该策略的历史效果,请问如何实现?谢谢
--  作者:jinzhe
--  发布时间:2013/8/12 9:16:28
--  

1.走完k线模式下的实时止损:用系统自带的止盈止损功能

2.测评都是k线走完模式下进行的测评,每个开平仓都在k线结束时间进行操作


--  作者:uime
--  发布时间:2013/8/12 10:37:41
--  
以下是引用jinzhe在2013/8/12 9:16:28的发言:

1.走完k线模式下的实时止损:用系统自带的止盈止损功能

2.测评都是k线走完模式下进行的测评,每个开平仓都在k线结束时间进行操作

系统自带的止盈止损功能显然不能用于测评。 止损是策略的重要组成部分,金字塔软件有没有变通的解决方案
--  作者:jinzhe
--  发布时间:2013/8/12 10:48:56
--  
这个不行,走完k线实时止损只有系统自带的才可以
--  作者:qwer123
--  发布时间:2013/8/12 11:02:06
--  
测评时,在程序里使用limitr指令就可以。
比如持多仓,从最高下跌20点平仓。

r20:=enterbars+1;
r21:=hhv(h,r20);
r22:=llv(l,r20);
r23:=20;
hd1:=0.6;//考虑的滑点。
if holding>0 and r21-l>r23 and r20>1  then
begin
sell(holding>0,holding,limitr,r20-r23-hd1);
end
if holding<0 and h-r22>r23 and r20>1 then
begin
sellshort(holding<0,abs(holding),limitr,r21+r23+hd1);
end



--  作者:qwer123
--  发布时间:2013/8/12 11:03:53
--  
r20:=enterbars+1;
r21:=hhv(h,r20);
r22:=llv(l,r20);
r23:=20;
hd1:=0.6;//考虑的滑点。
if holding>0 and r21-l>r23 and r20>1  then
begin
sell(holding>0,holding,limitr,r20-r23-hd1);
end
if holding<0 and h-r22>r23 and r20>1 then
begin
sellshort(holding<0,abs(holding),limitr,r21+r23+hd1);
end

--  作者:uime
--  发布时间:2013/8/14 11:09:03
--  
以下是引用qwer123在2013/8/12 11:03:53的发言:
r20:=enterbars+1;
r21:=hhv(h,r20);
r22:=llv(l,r20);
r23:=20;
hd1:=0.6;//考虑的滑点。
if holding>0 and r21-l>r23 and r20>1  then
begin
sell(holding>0,holding,limitr,r20-r23-hd1);
end
if holding<0 and h-r22>r23 and r20>1 then
begin
sellshort(holding<0,abs(holding),limitr,r21+r23+hd1);
end

谢谢回复 holding>0表示持多仓
 r20>1表示已经开仓,和holding>0是不是条件重复了? 
 r21-l>r23这个条件有什么用?
[此贴子已经被作者于2013/8/14 11:09:59编辑过]

--  作者:uime
--  发布时间:2013/8/14 16:09:33
--  
//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!

//策略:DUAL THRUST
//简介:Dual Thrust与R-Breaker一样,曾长期排名 Future Trust杂志最赚钱的策略。
//类型:日内
//周期:
//使用市场:
//详情介绍网址:http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=30283
//修订时间:2012.11.1
//DESIGNED BY ROGARZ

//中间变量
INPUT:N(1,1,100,1),K1(0.7,0.1,1,0.1),K2(0.7,0.1,1,0.1),NMIN(10,1,100,1),SS(1,1,10000,1);
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);
开盘价:=VALUEWHEN(CYC=1,OPEN);
HH:=HHV(昨高,N);//N日HIGH的最高价
HC:=HHV(昨收,N);//N日CLOSE的最高价
LC:=LLV(昨收,N);//N日CLOSE的最低价
LL:=LLV(昨低,N);//N日LOW的最低价
浮动区间:=MAX(HH-LL,HC-LL);//RANGE 
上轨:开盘价+K1*浮动区间;
下轨:开盘价-K2*浮动区间;
T1:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
T2:=TIME>=CLOSETIME(0)-NMIN*100;
手数:=SS;
//交易条件
开多条件:=C>上轨 AND HOLDING=0;
开空条件:=C<下轨 AND HOLDING=0;
//交易系统
开多:BUY(开多条件 AND T1 AND CYC>1,手数,MARKET);
开空:BUYSHORT(开空条件 AND T1 AND CYC>1,手数,MARKET);
收盘平多:SELL(T2,手数,MARKET);
收盘平空:SELLSHORT(T2,手数,MARKET);

>以这个系统为例,当亏损达到开仓时价位的1%时,就止损,上述代码如何改写?
[此贴子已经被作者于2013/8/14 16:10:21编辑过]