Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共14 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:帮我看看止损条件为什么没用

1楼
crystal731 发表于:2014/2/17 11:19:57
我的策略是日内亏损达到1000后就平仓,当头不再开仓,可在测试焦炭指数的时候有亏损达到3000以上的,不知道为什么,语句如下:
INPUT:N(1,1,100,1),NMIN(10,1,100,1),SS(1,1,10000,1),x(20,10,100,1),q(10,1,50,1);
VARIABLE:趋买势:=0,k1:=0.7,k2:=0.7,y=:0;

M:=NUMTOSTR(N,0);
p:=NUMTOSTR(q,0);
S:=TODAYBAR;
HH:=HHV(H,S);//当日最高价
LL:=LLV(L,S);//当日最低价
OO:=STKINDI('','MAO.MAO1(1)',0,6,0);//当日开盘价
昨收:=stkindi('','MAO.MAO2(1)',0,6,-1);
昨昨收:=stkindi('','MAO.MAO2(1)',0,6,-2);//昨天的前一天的收盘价,暂称为昨昨收


昨高:=STKINDI('','MAO.hh('&M&')',0,6,-1);
昨低:=STKINDI('','MAO.ll('&M&')',0,6,-1);
高收:=STKINDI('','MAO.hc('&M&')',0,6,-1);
低收:=STKINDI('','MAO.lc('&M&')',0,6,-1);
关键点:=(stkindi('','MAO.MAO2(1)',0,6,-1)-stkindi('','MAO.MAO2(1)',0,6,-q))/(stkindi('','MAO.hh(&q&)',0,6,-1)-stkindi('','MAO.ll(&q&)',0,6,-1))*100;


浮动区间:=MAX(昨高-低收,高收-昨低);//RANGE 


if 昨收>昨昨收 then begin 
    if 关键点<x then begin
      k1:=0.35;
      k2:=0.7;
    end
    if 关键点>=x then BEGIN
      k1:=0.7;
      k2:=0.35;
    end
end

if 昨收<=昨昨收 then begin
   if 关键点<x then begin
   k1:=0.7;
   k2:=0.35; 
   end
   if 关键点>=x then BEGIN
   k1:=0.35;
   k2:=0.7;
   end
end


上轨:OO+K1*浮动区间;
下轨:OO-K2*浮动区间;
T1:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-NMIN*100;
T2:=TIME>=CLOSETIME(0)-NMIN*100;
手数:=SS;
a1:=ref(asset,todaybar);
if a1-asset>1000 then y:=1;


//交易条件
开多条件:=C>上轨 AND (HOLDING=0 or holding<0) and y=0;
开空条件:=C<下轨 AND (HOLDING=0 or holding>0) and y=0;
平空条件:=C>上轨 AND HOLDING<0;
平多条件:=C<下轨 AND HOLDING>0;
//交易系统
平空:sellshort(平空条件 and t1,手数,market);
开多:BUY(开多条件 AND T1,手数,MARKET);
平多:sell(平多条件 and t1,手数,market);
开空:BUYSHORT(开空条件 AND T1,手数,MARKET);

//亏损1000元自动止损可以写成这样
if asset-a1<=-1000 then begin
   sell(1,0,market);
   sellshort(1,0,market);
end
收盘平多:SELL(T2,手数,MARKET);
收盘平空:SELLSHORT(T2,手数,MARKET);

ak1:k1,LINETHICK0;
ak2:k2,LINETHICK0;

if time=closetime(0) then y:=0;




//最后每天收盘时重置全局变量
亏损:a1,LINETHICK0;
总亏损:a1-asset,LINETHICK0;
浮动盈亏:OPENPROFIT,LINETHICK0;
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值
2楼
jinzhe 发表于:2014/2/17 11:23:45
这个亏损3000是一天之内亏损的总和还是单笔?
3楼
crystal731 发表于:2014/2/18 15:02:10

单笔,而且我在程序里编写的是要求一天亏损只有1000的。

4楼
jinzhe 发表于:2014/2/19 9:05:19
发下测评截图
5楼
crystal731 发表于:2014/2/19 11:30:07

没法上传图片啊

 

6楼
jinzhe 发表于:2014/2/19 11:31:19

http://www.weistock.com/bbs/dispbbs.asp?boardid=2&Id=31614&page=3

 

7楼
crystal731 发表于:2014/2/19 14:18:48

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看
8楼
jinzhe 发表于:2014/2/19 14:30:19
//亏损1000元自动止损可以写成这样
if asset-a1<=-1000 then begin
   sell(1,0,market);
   sellshort(1,0,market);
end

 

 

这个是亏损1000平仓的代码?

 

那么逻辑清楚了,亏损3000也就是asset-a1=-3000,那么asset-a1<-1000不也是成立的

改成 asset-a1<0 and asset-a1>-1000表示在亏损1000-0之间可以平仓了

9楼
crystal731 发表于:2014/2/19 14:46:29

改成 asset-a1<0 and asset-a1>-1000表示在亏损1000-0之间可以平仓,那如果他只亏损了1元就平仓了呢?》还有,asset-a1<=-1000 亏损到1000以上的时候平仓,那么为什么他亏损到1001或者1500的时候不平仓,那个时候肯定应该出信号了。而不是到了3000才平仓吧

10楼
jinzhe 发表于:2014/2/19 15:06:30

还有可能是平仓条件也是满足的,所以按照平仓条件进行平仓而不是止损平的

 

你把止损语句写在开平语句前面

共14 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.03906 s, 3 queries.