请问这两种表示方法有差别没?特别是实盘中
请教一下,这两种方法在实战中有什么差别吗?Line = Highest(Close, N);
if(open>Line) {...}
和
Line = Highest(Close, N);
if(open>Line) {...}
从数据上看好像是一样的。但是我今天在开盘那一刻触发的交易中产生了一些问题,在排查中,现在就想问问:
- 第一种写法对的不?
- 这两种写法,实盘交易里有什么差别没?特别是开盘的时刻?
谢谢!
今天实盘,第一种产生了信号消失的提示。。。
有点不好理解了,准备改成第二种再实盘看看,或者是其它哪里还有问题。 bigzhang 发表于 2013-8-2 09:45 static/image/common/back.gif
今天实盘,第一种产生了信号消失的提示。。。
有点不好理解了,准备改成第二种再实盘看看,或者是其它哪里 ...
仅你所写的部分内容,是没有信号消失的情况。
建议从整个公式来排查信号消失的原因。 本帖最后由 bigzhang 于 2013-8-2 10:16 编辑
我的源码这部分就是个简单的浮板触发,上浮板是这样的,取一个固定周期的最高值:
High_M = Highest(Close,MDay_T);
然后交易指令是这样的:
If(MarketPosition == 0 And High>=High_M And Time>=Time_StartTrading/10000 And time<Time_StopTrading/10000 )
{
Buy(Lots, High_M );}
}
今天早上9:06,Ru上涨触发了,但是跟着软件就提示信号消失。交易单子倒是发出去了。
图上看了半天确实没看出个问题来。
我继续观察中。
附图:图表上的显示
附图:出错告警
bigzhang 发表于 2013-8-2 10:12 static/image/common/back.gif
我的源码这部分就是个简单的浮板触发,上浮板是这样的,取一个固定周期的最高值:
High_M = Highest(Clos ...
其它逻辑呢?有没有上层条件?
前面就没有和交易相关的逻辑判断了,只是简单的计算个取样周期,就是上面那个MDay_T,不过这个就是固定数的计算。
因为在排查问题,所以几乎是能简化的都简化了。
我现在在程序里加了段数据记录的代码,把当前的价格啥的记录到个文件里去,等着出问题,然后看看是咋回事。 本帖最后由 小米 于 2013-8-2 11:27 编辑
bigzhang 发表于 2013-8-2 10:39 static/image/common/back.gif
前面就没有和交易相关的逻辑判断了,只是简单的计算个取样周期,就是上面那个MDay_T,不过这个就是固定数的 ...
不一定与交易相关的。
比如说你前面有某个条件判断 并return的。这个判断以及return也会导致此提示哟。
出现此提示,就一定是有信号消失的隐患啊,除了系统的分析代码排查问题,别无它法。而这个排查不能只看这一句的。 谢谢版主提醒,这对我确实是个大隐患,只是这段指令被精简了很多,一时之间实在看不出哪里有问题,而且它只是出在信号突破的时候,今天另外测试的几个商品也有的产生了触发信号,但是都还没产生这样的出错提示,所以只好耐心等待它再次出错了。
你说return,倒是有一句,不过这个是开盘时候用的:
//---防止开盘集合竞价----------
If(BarStatus==2 && Time==0.090000 && High==Low) return;
感觉也不像,因为今天的问题是在9:06出的。
我准备把这套指令,分别用1楼的两种写法,加载在两台电脑上,然后同时运行。
假设同时出错,那可以排除是这个指令引起的,我就再查其它啥问题引起的。
假设其中一个出错,那可能就是这写法在哪里还是被系统认为是不同的。
本帖最后由 bigzhang 于 2013-8-2 12:28 编辑
小米 发表于 2013-8-2 11:25 static/image/common/back.gif
不一定与交易相关的。
比如说你前面有某个条件判断 并return的。这个判断以及return也会导致此提示哟。
...
这是这段的完整代码,直到开仓,后面就是平仓的了。我尽量加了注释。麻烦帮我看看,谢谢!//---防止开盘集合竞价----------
If(BarStatus==2 && Time==0.090000 && High==Low) return;
//---初始化
//---计算均线参数,转换天数到分钟数对应的均线取值------
If(BarType==0) { MDay_T = MDay; }
If(BarType==1)
{
If(Lower(SymbolType)=="if"){MinutesPerDay=270;} //如果是股指,一天270分钟交易时间
Else {MinutesPerDay=225;}
MDay_T = Round(MDay*MinutesPerDay/BarInterval,0); //计算当前采用的时间周期下按天折算,有多少根bar
}
//---取得最近N、M日的最高最低
High_M = Highest(Close,MDay_T);
Low_M = Lowest(Close,MDay_T);
//---画线
PlotNumeric("High_M",High_M,0,LightGray);
PlotNumeric("Low_M",Low_M,0,LightGray);
//==========多头交易============
//---多头开仓
If(MarketPosition == 0 And High>=High_M And Time>=Time_StartTrading/10000 And time<Time_StopTrading/10000 )
{
Buy(Lots, High_M); }
}
。。。。。。。。。。。
bigzhang 发表于 2013-8-2 12:25 static/image/common/back.gif
这是这段的完整代码,直到开仓,后面就是平仓的了。我尽量加了注释。麻烦帮我看看,谢谢! ...
嗯。这里的return不会导致 问题,原因不是这个。
从上述代码里,我也看不出有什么可导致信号消失的可能。
建议将公式里加上注释信息,对每一个条件下产生的信号加识别信息,从而定位出问题的出自的条件。
最好将条件所使用到的变量写入fileappend里,以便更进一步排查。
页:
[1]
2