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

标题: 为何以下公式中MIN(kk,low[1])值为零。而max(high[1],hh)正常 [打印本页]

作者: qsb588986    时间: 2017-7-20 21:51:51     标题: 为何以下公式中MIN(kk,low[1])值为零。而max(high[1],hh)正常

Vars
NumericSeries hh;
NumericSeries kk;
if(A_BuyPosition>0 && BarStatus==2)
maate=maate[1]+1;
if(A_SellPosition>0 && BarStatus==2)
kaate=kaate[1]+1;
if(maate>=1 && A_BuyPosition>0)
{
hh=max(high[1],hh);
kk=Close[1];
}
if(kaate>=1 && A_SellPosition>0)
{
hh=close[1];
kk=Min(kk,low[1]);
}
作者: qsb588986    时间: 2017-7-25 14:29:38

kk=Min(kk,low[1]);的值有时得,有时不得。但不得的时候多。版主帮看下。
作者: 小米    时间: 2017-7-25 16:07:05

qsb588986 发表于 2017-7-25 14:29
kk=Min(kk,low[1]);的值有时得,有时不得。但不得的时候多。版主帮看下。

只有满足if(A_BuyPosition>0 && BarStatus==2),maate才可能大于等于1,然后kk才可能被赋值close[1]。
然后在if(a_sellposition>0 && barstatus==2)条件满足后,kk = min(kk,low[1])的计算中才可能有kk不为零的情况。
也就是说必须是持多仓的情况下,你的KK才可能有大于0的情况。。而没有持仓量,就是为0了。


作者: kookzw    时间: 2017-7-25 22:41:31

本帖最后由 kookzw 于 2017-7-25 22:50 编辑

楼主的程序真绕脑筋。。。佩服小米版主的逻辑分析!

楼主这是拿股票指标改TB程序呢吧。呵呵!
作者: qsb588986    时间: 2017-7-27 16:35:04

改成这样竟然可以!

if(kaate>=1 && A_SellPosition>0)
{
if(kaate==1)
kk=low[1];
Else
kk=Min(kk,low[1]);
hh=close[1];
}
作者: 小米    时间: 2017-7-27 16:44:34

qsb588986 发表于 2017-7-27 16:35
改成这样竟然可以!

if(kaate>=1 && A_SellPosition>0)

呃。。。要考虑一下a_sellposition在非最后K线上是无效值 。而无效值与0比较,是一直都满足大于0的哟。。
确定这个是你想要的吗?




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