Rss & SiteMap

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

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

标题:[求助]关于extgbdata

1楼
zzzlondon 发表于:2012/2/14 10:27:48

代码片段如下,逐K线运行,目的是提前2秒进场,但如果进场后不再满足进场条件,不让信号消失

 

以下内容为程序代码:

1 if ref(date,1)<>date then begin
2     extgbdataset('ex03',0);    //开盘第一分钟,将做多次数记为0
3     extgbdataset('ex04',0);    //开盘第一分钟,将做空次数记为0
4 end
5
6 if barpos>30 then begin
7     if 做多条件 then bb:=1;
8     if 做空条件 then ss:=1;
9 end
10
11 sec:=dynainfo(207);
12 secfilter:=mod(sec,100)>=secEntry;    //如果秒数到达58(即提前2秒下单)
13
14 if secfilter and islastbar then begin
15     if ceiling(sec/100.0)*100=EXTGBDATA('ex01') then begin    //如果当前时间是最后一次进场时间
16         if EXTGBDATA('ex02')=1 then buy(1,1,thisclose);
17         if EXTGBDATA('ex02')=-1 then buyshort(1,1,thisclose);
18     end
19     else if ss=1 and holding=0 and EXTGBDATA('ex04')<2 then begin    //满足做空条件,且当天做空次数<2
20         buyshort(1,units,limitr,close-4*mindiff),IGNORECHECKPRICE;
21         extgbdataset('ex01',ceiling(sec/100.0)*100);    //记录(最后一次)进场时间
22         extgbdataset('ex02',-1);    //记录进场方向为做空
23         trades2:=EXTGBDATA('ex04')+1;
24         extgbdataset('ex04',trades2);    //做空次数+1

25     end
26     else if bb=1 and holding=0 and EXTGBDATA('ex03')<2 then begin    //满足做多条件,且当天做多次数<2
27         buy(1,units,limitr,close+4*mindiff),IGNORECHECKPRICE;
28         extgbdataset('ex01',ceiling(sec/100.0)*100);    //记录(最后一次)进场时间
29         extgbdataset('ex02',1);        //记录进场方向为做多
30         trades1:=EXTGBDATA('ex03')+1;
31         extgbdataset('ex03',trades1);    //做多次数+1
32     end
33 end
34
35 if (time=EXTGBDATA('ex01') and date=currentdate and not(islastbar)) then begin    //如果不是最后一跟bar,且是最后一次进场时间,显示进场
36     if EXTGBDATA('ex02')=1 then begin
37         buy(1,units,thisclose);
38     end
39     if EXTGBDATA('ex02')=-1 then begin
40         buyshort(1,units,thisclose);
41     end
42 end
43
44 bb:=0;
45 ss:=0;

 

实盘运行时,(图表交易,固定轮询-高频)在10:04有做空信号,查看工具-数据-全局变量,EX01=100400,正确,EX02=-1,正确,但EX04=0,应该等于1,请版主帮忙看下红色语句

2楼
fly 发表于:2012/2/14 14:32:22

红色语句看起来没问题.

 

23         trades2:=EXTGBDATA('ex04')+1;
24         extgbdataset('ex04',trades2);    //做空次数+1

 

将这两句并为1句:extgbdataset('ex04',EXTGBDATA('ex04')+1);  

重点跟踪一下全局变量ex04在语句执行前后的值

3楼
王锋 发表于:2012/2/14 20:16:06
建议使用专业版的信号消失后恢复持仓功能
4楼
阿火 发表于:2012/2/14 21:13:47

你第一句 就把 ex04 就赋值为 0 了。 而且这个是每次都执行的。

 

5楼
zzzlondon 发表于:2012/2/17 8:51:14

对哦,非常感谢

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


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