金字塔策略写好,但是无法回测,在历史数据回测时候,报告中没有任何一笔交易 [金字塔]
- 咨询内容: 我的策略是这样的。
〔逐K线模式〕下一开始有部分代码,变量、序列变量赋值等等。然后进入后面的运算时候,因为运算过度复杂,所以设定成如下:
IF NOT(ISLASTBAR) THEN EXIT;……后面接余下的代码。包含这段,买卖模版if holding=0 then begin
6 //多头开仓
7 if tradingtime and enlongcond then begin
8 buy(1,1,limitr,close);
9 maxprofit:=0;
10 end
11
12 //空头开仓
13 if tradingtime and enshortcond then begin
14 buyshort(1,1,limitr,close);
15 maxprofit:=0;
16 end
17 end
18
19 if holding>0 then begin
20 //多头平仓
21 if exlongcond then
22 sell(1,holding,limitr,close);
23
24 //多头收盘平仓
25 if not(tradingtime) then
26 sell(1,holding,limitr,close);
27
28 //盈亏计算
29 if enterbars>0 then begin
30 win:=(c-enterprice)/enterprice*100;
31 if win>maxprofit then
32 maxprofit:=win;
33 win2:=(maxproift-win)/maxprofit*100;
34 end
35
36 //多头初始止损
37 if win<-2 then
38 sell(1,holding,limitr,close);
39
40 //多头利润止盈
41 if win>4 then
42 sell(1,holding,limitr,close);
43
44 //多头回撤止盈
45 if win2>60 and openprofit>0 then
46 sell(1,holding,limitr,close);
47 end
48
49 if holding<0 then begin
50 //空头平仓
51 if exshortcond then
52 sellshort(1,holding,limitr,close);
53
54 //空头收盘平仓
55 if not(tradingtime) then
56 sellshort(1,holding,limitr,close);
57
58 //盈亏计算
59 if enterbars>0 then begin
60 win:=(enterprice-c)/enterprice*100;
61 if win>maxprofit then
62 maxprofit:=win;
63 win2:=(maxprofit-win)/maxprofit*100;
64 end
65
66 //空头初始止盈
67 if win<-2 then
68 sellshort(1,holding,limitr,close);
69
70 //空头利润止盈
71 if win>4 then
72 sellshort(1,holding,limitr,close);
73
74 //空头回撤止盈
75 if win2>60 and openprofit>0 then
76 sellshort(1,holding,limitr,close);
77 end
78
现在用〔训练模式〕回溯到过去的历史里看,满足条件的情况下,买卖信号确实发出了。但是遇到如下问题:1、当某时刻,第一次满足我的买入条件,于是策略确实提示买入了,但是到了下一根K棒,因为仍然满足我的买入条件,策略继续在提示买入。似乎完全不记得我已经在前一根K棒已经买入了? 这是不是和我使用了IF NOT(ISLASTBAR) THEN EXIT;有关系呢? 为什么前面的已经持仓未被记住呢?2、可能因为1的缘故,在历史数据回测时候,报告中没有任何一笔交易……因此无法回测了……
请高手稍微指导一下这个菜鸟级的问题。 [此贴子已经被作者于2013-2-25 23:29:43编辑过] - 金字塔客服:
图表的程序化交易的运行逻辑是会不断刷新K线信号的,当然不会记住你之前的状态。
因此你是不能用IF NOT(ISLASTBAR) THEN EXIT;这样的语法在图表程序化中使用的
- 用户回复: 谢谢admin。
(如果不用IF NOT(ISLASTBAR) THEN EXIT,该策略的运算量太大了)那么这种策略要在历史K线数据中回测,有啥其他办法吗? - 网友回复: 没有办法的,只能是慢慢等他测试了
- 网友回复: 继续请教admin,IF NOT(ISLASTBAR) THEN EXIT 这样的语句,即使在实时行情下运行(即白天行情在进行的时候),也是不允许用在程序化交易中的,包括后台程序化执行,是吧?
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 262069696 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容