行情永远在上下分形之间来回转换,实现过程中出现问题 [开拓者 TB]
- 咨询内容:
思路是这样的,上分形,第三根K线大于左边两根和右边两根线高点,(下分形与之相反),收盘价高于上分形开多单,止损为收盘小于开仓K线最低价,多单止损后,认为假突破,即开空单,空单止损是开仓K线最高价,止损后,认为是假突破,开多单,如果多单没有被止损,直到下分形被突破,平多单后,开空单,空单止损
开仓K线最高价,空单止损后认为是假突破,开回多单。写了代码,但是问题多,请各位指点,我刚开好TB 权限,处于学习阶段
- TB技术人员:
这里出现两个问题,1 止损K线如果用普通变量,止损语句不能执行,要用序列变量才能实现止损功能
,为什么? 2 在突破下分形时开了空单,但之后为什么又开了多单,难道是收盘价大于上一次上分形的高点?
Vars
NumericSeries Myn1;
NumericSeries Myn2;
Numeric EXITPRICE1;
Numeric MINPOINT1;
Numeric MYENTRYPRICE;
Numeric TAKEPROFITSET(40);
NumericSeries mylow;
NumericSeries myhigh;
Numeric StopPrice(10);
BOOLSERIES CONDITION1(FALSE);
BOOLSERIES CONDITION2(FALSE);
Begin
If(High[3]>high[4] and high[3]>high[5] and high[3]>high[2] and high[3]>high[1])
{
Myn1=High[3];
}Else
{
Myn1=Myn1[1];
}
Condition1=c[1]>myn1[1];
If(Condition1)
{
Buy(0,o+2);
}
If(MarketPosition==1 AND BARSSINCEENTRY==0)
{mylow=l;}
If(MarketPosition==1 AND BARSSINCEENTRY>=1 and c[1]<mylow[1])
{
EXITPRICE1=c[1];
Sellshort(0,EXITPRICE1);
}
If(MarketPosition==-1 AND BARSSINCEENTRY==0)
{myhigh=h;}
If(MarketPosition==-1 AND BARSSINCEENTRY>=1 and c>myhigh[1])
{myhigh=h;
Buy(0,MYHIGH);}
{If(l[3]<l[4] and l[3]<l[5] and l[3]<l[2] and l[3]<l[1])
{
Myn2=l[3];
}Else
{
Myn2=Myn2[1];
}
CONDITION2=(c[1]<myn2[1] and MarketPosition==1 );
If(CONDITION2)
{ExitPrice1=c[1];
SellShort(0,EXITPRICE1);}}
1 low1 多头 m1605 2015/12/09 23:05 2306 2015/12/09 23:15 2303 1 10.00 (40.00) (40.00) (1.73%) (1.73%)
2 low1 空头 m1605 2015/12/09 23:15 2303 2015/12/09 23:20 2308 1 10.00 (60.00) (100.00) (2.61%) (4.34%)
3 low1 多头 m1605 2015/12/09 23:20 2308 2015/12/10 09:05 2294 1 10.00 (150.00) (250.00) (6.50%) (10.84%)
4 low1 空头 m1605 2015/12/10 09:05 2294 2015/12/10 09:40 2297 1 10.00 (40.00) (290.00) (1.74%) (12.58%)
5 low1 多头 m1605 2015/12/10 09:40 2297 2015/12/10 09:45 2296 1 10.00 (20.00) (310.00) (0.87%) (13.45%)
6 low1 空头 m1605 2015/12/10 09:45 2296 2015/12/10 09:55 2298 1 10.00 (30.00) (340.00) (1.31%) (14.76%)
7 low1 多头 m1605 2015/12/10 09:55 2298 2015/12/10 10:00 2298 1 10.00 (10.00) (350.00) (0.44%) (15.20%)
8 low1 空头 m1605 2015/12/10 10:00 2298 2015/12/10 21:05 2302 1 10.00 (50.00) (400.00) (2.18%) (17.37%)
9 low1 多头 m1605 2015/12/10 21:05 2302 2015/12/10 21:10 2300 1 10.00 (30.00) (430.00) (1.30%) (18.67%)
10 low1 空头 m1605 2015/12/10 21:10 2300 2015/12/10 21:15 2300 1 10.00 (10.00) (440.00) (0.43%) (19.11%)
11 low1 多头 m1605 2015/12/10 21:15 2300 2015/12/11 09:35 2306 1 10.00 50.00 (390.00) 2.17% (16.94%)
12 low1 空头 m1605 2015/12/11 09:35 2306 2015/12/11 09:40 2308 1 10.00 (30.00) (420.00) (1.30%) (18.24%)
13 low1 多头 m1605 2015/12/11 09:40 2308 2015/12/11 09:45 2306 1 10.00 (30.00) (450.00) (1.30%) (19.54%)
14 low1 空头 m1605 2015/12/11 09:45 2306 2015/12/11 10:05 2309 1 10.00 (40.00) (490.00) (1.73%) (21.27%)
15 low1 多头 m1605 2015/12/11 10:05 2309 2015/12/14 21:05 2337 1 10.00 270.00 (220.00) 11.69% (9.58%)
16 low1 空头 m1605 2015/12/14 21:05 2337 2015/12/14 21:10 2343 1 10.00 (70.00) (290.00) (3.00%) (12.57%)
17 low1 多头 m1605 2015/12/14 21:10 2343 2015/12/15 10:55 2359 1 10.00 150.00 (140.00) 6.40% (6.17%)
18 low1 空头 m1605 2015/12/15 10:55 2359 2015/12/15 11:00 2359 1 10.00 (10.00) (150.00) (0.42%) (6.59%)
19 low1 多头 m1605 2015/12/15 11:00 2359 2015/12/15 11:00 2359 1 10.00 (10.00) (160.00) (0.42%) (7.02%)
20 low1 空头 m1605 2015/12/15 11:00 2359 2015/12/15 22:50 2339 1 10.00 190.00 30.00 8.05% 1.04% - TB客服:
为什么没人帮忙啊?
- 网友回复:
大神们去哪里了?
- 网友回复:
cts2015deng 发表于 2015-12-17 15:42
大神们去哪里了?
您的策略有点绕来绕去,调试还是需要花时间的。一根BAR又是多又是空,肯定会存在各种各样的问题,这个有时间可以慢慢去试。
简单看了一下,主要问题应该是两个:
一是序列变量的初始化没考虑
比如:进场的 Condition1条件的计算,Myn1的初始值是0,那在图表的开始几根BAR即使还没形成任何分形Condition1也会满足,这样莫名其妙就开多了。
二是多空开仓平仓语句都有多条,而公式中并不是每条交易指令执行后序列变量都去做相应修改,这样就导致了信号的紊乱
比如:您问到的突破下分形开了空单后又立即开了多单,就是因为这个开仓指令几乎是放在公式的最后部分,开仓后,止损要判断的myhigh并没有做任何修改,这样到了下一根BAR,myhigh要么是初始值0,要么是上一轮交易的值传递下来的,因此就会出现立即又开多了。
总之,类似的问题应该不少,需要好好去对照信号不断地调试。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容