开拓者期货期权程序化系统交易论坛

标题: 对帮助文件中跟踪止损代码的疑问 [打印本页]

作者: nzqh00036011    时间: 2016-11-22 22:51:02     标题: 对帮助文件中跟踪止损代码的疑问

你好,我在帮助文件中看到如下跟踪止损的示例代码,主要是对开仓同根Bar上记录的HighestAfterEntry和LowestAfterEntry有疑问。
按照代码理解,在开仓同根Bar上,如果Close>AvgEntryPrice,则HighestAfterEntry=Close,LowestAfterEntry=AvgEntryPrice
如果Close<AvgEntryPrice,则HighestAfterEntry=AvgEntryPrice
,LowestAfterEntry=Close
问题一:请问我对代码的理解正确吗?
问题二:实际我在使用上述方法记录HighestAfterEntry和LowestAfterEntry的值时,在开仓同根Bar上用Commentary看到的这两个值都是Close,达不到分别记录两个值的效果,请问为什么?
附帮助文件中的示例代码,请帮忙解答,谢谢
  1. If(BarsSinceentry == 0)
  2.     {
  3.         HighestAfterEntry = Close;
  4.         LowestAfterEntry = Close;
  5.         If(MarketPosition <> 0)
  6.         {
  7.             HighestAfterEntry = Max(HighestAfterEntry,AvgEntryPrice);   // 开仓的Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
  8.             LowestAfterEntry = Min(LowestAfterEntry,AvgEntryPrice);     // 开仓的Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
  9.         }
  10.     }else
  11.     {
  12.         HighestAfterEntry = Max(HighestAfterEntry,High); // 记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断
  13.         LowestAfterEntry = Min(LowestAfterEntry,Low);    // 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断
  14.     }
  15.     Commentary("HighestAfterEntry="+Text(HighestAfterEntry));
  16.     Commentary("LowestAfterEntry="+Text(LowestAfterEntry));
复制代码

作者: nzqh00036011    时间: 2016-11-23 14:06:19

呼叫版主,管理,大神,辛苦解答疑惑,谢谢
作者: 小米    时间: 2016-11-23 15:12:24

你的commentary是写在哪个位置的?
可以将图表上信号所在的K线位置上显示注释信息框后截个图我看看。
作者: nzqh00036011    时间: 2016-11-23 18:43:47

本帖最后由 nzqh00036011 于 2016-11-23 18:44 编辑
小米 发表于 2016-11-23 15:12
你的commentary是写在哪个位置的?
可以将图表上信号所在的K线位置上显示注释信息框后截个图我看看。 ...


是写在和帮助文件中示例代码一样的位置,整个取这两个值的代码是一样的,下图显示的两值结果都是当根K线的Close,品种是RB1701,周期30分钟
[attach]34793[/attach][attach]34792[/attach][attach]34791[/attach]
作者: 小米    时间: 2016-11-24 10:25:34

本帖最后由 小米 于 2016-11-24 10:28 编辑
nzqh00036011 发表于 2016-11-23 18:43
是写在和帮助文件中示例代码一样的位置,整个取这两个值的代码是一样的,下图显示的两值结果都是当根K线 ...


截图上的注释框里怎么会没有信号的注释信息?包括当前K线信息的内容也显示出来再截图给我吧。这样才好直观排查呢。
作者: nzqh00036011    时间: 2016-11-24 10:42:39

小米 发表于 2016-11-24 10:25
截图上的注释框里怎么会没有信号的注释信息?包括当前K线信息的内容也显示出来再截图给我吧。这样才好直 ...

不好意思,之前是放在附图的,现在改过来了,跟K线一起显示那两个值都是Close,K线都是有信号的开仓K线,还是RB1701,30分钟周期,麻烦了
[attach]34797[/attach][attach]34798[/attach][attach]34799[/attach]
作者: 小米    时间: 2016-11-24 11:11:02

nzqh00036011 发表于 2016-11-24 10:42
不好意思,之前是放在附图的,现在改过来了,跟K线一起显示那两个值都是Close,K线都是有信号的开仓K线, ...

你的开仓语句是写在哪个位置的呢?如果是在写上述代码之后,自然只能记录close了
作者: nzqh00036011    时间: 2016-11-24 13:36:10

小米 发表于 2016-11-24 11:11
你的开仓语句是写在哪个位置的呢?如果是在写上述代码之后,自然只能记录close了 ...

谢谢,确实调整到开仓代码之后就能正常记录了
但是我还是想不明白这里面算法的区别,为什么要把开仓语句写在前面,开仓后在同一根K线的情况下,从下个TICK开始就可以读取图表上的信号数据了,BarsSinceentry == 0和MarketPosition <> 0都应该是能满足的,那为什么不能在MarketPosition <> 0内的语句中记录这两个值呢,麻烦能否详细请教一下,谢谢了
作者: 小米    时间: 2016-11-24 13:47:43

nzqh00036011 发表于 2016-11-24 13:36
谢谢,确实调整到开仓代码之后就能正常记录了
但是我还是想不明白这里面算法的区别,为什么要把开仓语句 ...

http://bbs.tb18.net/thread-22580-1-1.html
看看这个贴子,或许会有帮助。
作者: nzqh00036011    时间: 2016-11-24 14:48:20

小米 发表于 2016-11-24 13:47
http://bbs.tb18.net/thread-22580-1-1.html
看看这个贴子,或许会有帮助。

哈哈,明白了,又理解了一点TB的机制,小米大神辛苦了,多谢




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2