关于IF语句是不是有bug? [开拓者 TB]
- 咨询内容:
同样的策略,每一条进场出场的if语句分开写和合并写的结果不一样。
看代码- If(MarketPosition == 0 And Time >= begintime/100)
- {
- if(Buycondition)
- {
- Buy(BuyLots,Open);
- }
-
- if(Sellcondition)
- {
-
- SellShort(BuyLots,Open);
- }
- }
- If(MarketPosition == 0 And Time >= begintime/100)
- TB技术人员:
除了你贴出来的部分,公式里还有其它什么代码?
仅就你贴出来的代码来看(代码一),第一个开仓信号出现后,不可能再出现其它的第二个信号的。。所以那个开空,应该是其它代码来实现的。。 - TB客服:
小米 发表于 2015-2-27 10:25
除了你贴出来的部分,公式里还有其它什么代码?
仅就你贴出来的代码来看(代码一),第一个开仓信号出现后 ...
还有一个出场代码:- if(MarketPosition != 0)
- {
- if(MarketPosition == 1)
- {
-
- /*HighestAfterEntry = Max(High,HighestAfterEntry);
- if(High > EntryPrice + Profit)
- {
- Sell(BuyLots,EntryPrice+ Profit );
- }*/
- if(EntryPrice-low>=par3)
- {
- Sell(BuyLots,Min(open,EntryPrice-par3));
- }
- Else if(BarsSinceEntry >= par1 And low-entryprice<=par2)
- {
- Sell(Buylots,EntryPrice+par2);
- }
- Else if(Sellcondition)
- {
- Sell(BuyLots,Open);
- }
- }
- if(MarketPosition == -1)
- {
- /*if(Low < EntryPrice - Profit)
- {
- BuyToCover(BuyLots,EntryPrice - Profit);
- }*/
- if(high-EntryPrice>=par3 )
- {
- BuyToCover(BuyLots,Max(open,EntryPrice+par3));
- }
- Else if(BarsSinceEntry >= par1 And EntryPrice-High <= par2)
- {
- BuyToCover(BuyLots,entryprice-par2);
- }
- Else if(Buycondition)
- {
- BuyToCover(BuyLots,Open);
- }
- }
- }
- if(Time==0.15143000 and MarketPosition==1)
- {
- Sell(Buylots,open);
- }
- if(Time==0.15143000 and MarketPosition==-1)
- {
- BuyToCover(Buylots,open);
- }
第二种代码的其他部分就是把if全部拆开来的,跟主楼的例子一样。 - if(MarketPosition != 0)
- 网友回复:
vista852 发表于 2015-2-27 10:32
还有一个出场代码:其他的代码都不涉及进出场了。
第二种代码的其他部分就是把if全部拆开来的,跟主楼的 ...
所以你的一楼的测试没有意义呀。。因为信号受了其它语句的影响 。。你要多判断你的代码一与代码二是否结果一致,那只能使用这其中的语句方可。。。 - 网友回复:
小米 发表于 2015-2-27 10:25
除了你贴出来的部分,公式里还有其它什么代码?
仅就你贴出来的代码来看(代码一),第一个开仓信号出现后 ...
是不是在实时行情中,开盘那一个tick,代码一从上到下执行的时候,只会平仓,等到第二个tick来了才会开仓。而代码二在第一个tick的执行中会多次判断持仓状态,从而开仓。
在历史测试中每根K线只执行一次,代码一就只能等到第二根K线才执行?
动态行情中我没有监控过两个的区别,信号太多了..
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 1145508240 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容