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

标题: 请教 如何避免单根K线 既满足开多又满足开空条件时 图表重复开仓? [打印本页]

作者: szchonger    时间: 2017-11-1 18:39:09     标题: 请教 如何避免单根K线 既满足开多又满足开空条件时 图表重复开仓?

如何避免单根K线 既满足开多又满足开空条件时 图表重复开仓?
作者: 小米    时间: 2017-11-2 11:05:37

除了将多与空的条件分设大些,尽可能避免同一个bar内出现矛盾的两个方向。其它没有什么很好的办法可有效解决呢。
作者: saber    时间: 2017-11-2 11:07:02

多空分两个策略写?
作者: szchonger    时间: 2017-11-2 22:05:01

谢谢兄弟们
作者: szchonger    时间: 2017-11-12 22:54:05

saber 发表于 2017-11-2 11:07
多空分两个策略写?

2017-11-12
.szchonger: 关于你在“请教    如何避免单根K线 既满足开多又满足开空条件时 图表重复开仓?”的帖子
if (High>UpperBand&&MarketPosition ==0)
   {
      Buy(Lots,Max(Open,UpperBand));return;
          //PlotString("多","趋势",High*1.01,White,1);
   }

   if (Low<LowerBand&&MarketPosition ==0)
   {
          Sellshort(Lots,Min(Open,LowerBand));return;
          //PlotString("空","趋势",Low*0.99,White,1);return;
   }

这段代码 同一根BAR上 既满足开空条件 又满足开多条件 图表会重复开仓么?MarketPosition ==0语句不起作用么? 假设先开了多 MarketPosition 是否会立刻变成1 而当条件又满足开空时,因为MarketPosition ==1了 而不会再重复开空呢?.szchonger: 麻烦 老师解答一下
谢谢.
作者: szchonger    时间: 2017-11-12 23:32:37

小米 发表于 2017-11-2 11:05
除了将多与空的条件分设大些,尽可能避免同一个bar内出现矛盾的两个方向。其它没有什么很好的办法可有效解 ...

2017-11-12
.szchonger: 关于你在“请教    如何避免单根K线 既满足开多又满足开空条件时 图表重复开仓?”的帖子
if (High>UpperBand&&MarketPosition ==0)
   {
      Buy(Lots,Max(Open,UpperBand));return;
          //PlotString("多","趋势",High*1.01,White,1);
   }

   if (Low<LowerBand&&MarketPosition ==0)
   {
          Sellshort(Lots,Min(Open,LowerBand));return;
          //PlotString("空","趋势",Low*0.99,White,1);return;
   }

这段代码 同一根BAR上 既满足开空条件 又满足开多条件 图表会重复开仓么?MarketPosition ==0语句不起作用么? 假设先开了多 MarketPosition 是否会立刻变成1 而当条件又满足开空时,因为MarketPosition ==1了 而不会再重复开空呢?.szchonger: 麻烦 老师解答一下
谢谢.
作者: 小米    时间: 2017-11-13 11:27:23

szchonger 发表于 2017-11-12 23:32
2017-11-12
.szchonger: 关于你在“请教    如何避免单根K线 既满足开多又满足开空条件时 图表重复开仓? ...

当前条件下,如果是先满足了开多的信号,那是不会有开空的。。
如果行情是先满足开空再满足开多。那么实时交易中则会是有开空的交易。然后再变成开多的信号。。这样就会有问题了。。
所以我们一直建议不要让一个bar上满足两个矛盾的信号条件。
作者: szchonger    时间: 2017-11-13 13:55:51

小米 发表于 2017-11-13 11:27
当前条件下,如果是先满足了开多的信号,那是不会有开空的。。
如果行情是先满足开空再满足开多。那么实 ...

if (High>UpperBand&&MarketPosition ==0)
   {
      Buy(Lots,Max(Open,UpperBand));          }

   if (Low<LowerBand&&MarketPosition ==0)
   {
          Sellshort(Lots,Min(Open,LowerBand));             }

如果去掉return语句是不是情况又不一样,先开了多还会再开空
开仓以后我把MarketPosition输出来看了一下 当前BAR的MarketPosition不等于0呀 按理有MarketPosition==0的条件限制 不应该再重复开仓呀
求解 谢谢老师


作者: 小米    时间: 2017-11-13 14:33:03

szchonger 发表于 2017-11-13 13:55
if (High>UpperBand&&MarketPosition ==0)
   {
      Buy(Lots,Max(Open,UpperBand));          }


去掉return也不会先开多再开空吧? 必竟开多后,就不会再满足marketposition==0了呀。。何来的开空
除非开多的信号消失了。
作者: szchonger    时间: 2017-11-14 19:39:05

小米 发表于 2017-11-13 14:33
去掉return也不会先开多再开空吧? 必竟开多后,就不会再满足marketposition==0了呀。。何来的开空
除非 ...

那开空后也不满足marketposition==0,为何图表会开空后再开多呢??
发表于 昨天 11:27 |只看该作者 szchonger 发表于 2017-11-12 23:32
2017-11-12
.szchonger: 关于你在“请教    如何避免单根K线 既满足开多又满足开空条件时 图表重复开仓? ...
当前条件下,如果是先满足了开多的信号,那是不会有开空的。。
如果行情是先满足开空再满足开多。那么实时交易中则会是有开空的交易。然后再变成开多的信号。。这样就会有问题了。。
所以我们一直建议不要让一个bar上满足两个矛盾的信号条件。

作者: 小米    时间: 2017-11-15 08:58:29

szchonger 发表于 2017-11-14 19:39
那开空后也不满足marketposition==0,为何图表会开空后再开多呢??
发表于 昨天 11:27 |只看该作者 szc ...

你使用commentary在不同的位置输出marketposition的值 看看估计就清楚了。。
你的开多语句在前,开空在后。在信号发生的bar上,他是先执行开多语句的。此时他并没有识别到在当时运算有开空的满足呀。所以会有开多。。
参考此贴看看http://bbs.tb18.net/thread-22580-1-1.html
作者: szchonger    时间: 2017-11-15 23:26:25

小米 发表于 2017-11-15 08:58
你使用commentary在不同的位置输出marketposition的值 看看估计就清楚了。。
你的开多语句在前,开空在后 ...

谢谢





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