Rss & SiteMap

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

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

标题:限制日交易次数为1结果整个2年内交易次数为1,怎么搞的?

1楼
cssfortune 发表于:2014/7/23 17:46:14

随便写了个日内策略,想限制一天内的交易次数为1次(多仓或者空仓,二选一,1次);但是测试了几次发现,整个测试期间2年才1笔交易!

代码如下,求解!!

 

VARIABLE:NUM=0;//统计交易次数用

MA1:MA(C,5);
MA2:MA(C,10);
BUYCOND:=CROSS(MA1,MA2);
BUYSHORTCOND:=CROSS(MA2,MA1);

 

IF TIME=OPENTIME(0) THEN NUM=0;//每天开盘时置0

 

IF TIME>091500 AND TIME<145500 AND HOLDING=0 AND NUM<=1 THEN //NUM<=1限制每天只能开仓1次
BEGIN
  BUY(BUYCOND,1,MARKET);
  NUM=NUM+1;//标记开仓一次
END

 

IF TIME>091500 AND TIME<145500 AND HOLDING=0 AND NUM<=1 THEN
BEGIN
  BUYSHORT(BUYSHORTCOND,1,MARKET);
  NUM=NUM+1;//标记开仓一次
END

IF TIME>=145500 THEN EXIT;//最后5分钟平仓

2楼
cssfortune 发表于:2014/7/23 21:59:14

察觉了2个问题:

1、不能用NUM<=1来表达,而要用NUM<CS,INPUT:CS(1,1,2,1);

但是为啥???NUM不能直接和常数进行比较?参数CS不是视为常数?

2、语法错误;NUM赋值语句掉了冒号;

 

3楼
jinzhe 发表于:2014/7/24 8:41:53

IF TIME>=145500 THEN EXIT;//最后5分钟平仓

 

这个不叫最后5分钟平仓

把这句删了,添加:

if time<=145500 then begin

    sell(1,0,market);

    sellshort(1,0,market);

end

 

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

     

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


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