下面代码逻辑里面的SellShort,Buy价格是否头偷价行为,请问是否需要优化?如何优化?
Series<Numeric> openm ;
Series<Numeric> closem ;
Series<Bool> longCond;
Series<Bool> sellCond;
OnBar(ArrayRef<Integer> indexs)
{
openm = 变换以后得的开盘价
closem = 变换以后得的收盘价
longCond = openm和 closem计算以后得做多条件
sellCond = openm和 closem计算以后得做空条件
if (MarketPosition != -1 && longCond[1])
{
SellShort(lots, Max(openm, open));
}
if (MarketPosition != 1 && sellCond[1])
{
Buy(lots, Min(openm, open));
}
}
我理解的偷价,是买卖价格定在一个实盘无法成交的有利价格上。
所以就需要看看你的成交价格是不是在实盘肯定可以成交
但是,你的条件中 openm 是没有明确定义的。
所以,感觉你的问题无法判断。
但,用开盘价做条件,是很大可能存在偷价的。
这个解释挺不错的。
楼主这个代码的核心问题是openm
我其实不太明白,条件里都是回溯,意味着bar开盘就确认了,那直接用open作为信号价格就行了,为什么要跑出来一个min和max的判断?