日线收盘价模型,收盘时信号正常(比如今天的HC用HC000取信号 ,日线级别KD死叉是空头,14:57:01.745成交,在这个时间之后,没有价格超过14:57:01.745的价格),但晚上21点开盘时却提示信号闪烁(可以确定成交后KD的状态没有发生改变 ,观察不止一次了),工作区的空头信号 变为多头信号(日线KD还是死叉) ,退出工作区重新登录,恢复为空头信号,一直没能找到原因,麻烦帮我看看是不是语法写错了,原码如下,谢谢!
Vars
Series<Numeric> HighestValue;
Series<Numeric> LowestValue;
Series<Numeric> K;
Numeric SumHLValue;
Numeric SumCLValue;
SERIES<Numeric> D;
Global ARRAY <Numeric> TT;
Global BOOL SS;
Global BOOL SS1;
Events
OnInit()
{
TT=[0.145700];
SetTriggerBarClose(TT);
SetOrderMap2MainSymbol();////映射主力
}
OnBar(ArrayRef<Integer> indexs)
{
Range[0:DataSourceSize() - 1]
{
HighestValue = HighestFC(High,14);
LowestValue = LowestFC(Low,14);
//PlotString("HH",TEXT(HighestValue),H);
//PlotString("LL",TEXT(LowestValue),L);
SumHLValue = SummationFC(HighestValue-LowestValue,3);
SumCLValue = SummationFC(Close - LowestValue,3);
If(SumHLValue > 0 OR SumHLValue < 0)
{
K = SumCLValue/SumHLValue*100;
}Else
{
K = 0;
}
D = AverageFC(K,3);
// SS=K[1]<D[1]&&K>D;
//SS1=K<D&&K[1]>D[1];
}
}
OnBarClose(ArrayRef<Integer> indexs)
{
IF(MarketPosition<1)
//IF(MarketPosition<1&&longCurrentContracts()<1)
{
IF(K[1]<D[1]&&K>D)
{
BUY(1,C);
//A_SendOrder(Enum Buy,Enum ENTRY,1,C);//实时直接发单
}
}
IF(MarketPosition>-1)
{
IF(K<D&&K[1]>D[1])
{
SellShort(1,C);
}
}
}
重新 修改了指标和开仓条件,代码如下:
Vars
Series<Numeric> HighestValue;
Series<Numeric> LowestValue;
Series<Numeric> K;
Numeric SumHLValue;
Numeric SumCLValue;
SERIES<Numeric> D;
Global ARRAY <Numeric> TT;
Global BOOL SS;
Global BOOL SS1;
Events
OnInit()
{
TT=[0.145702];
SetTriggerBarClose(TT);
SetOrderMap2MainSymbol();////映射主力
}
OnBar(ArrayRef<Integer> indexs)
{
Range[0:DataSourceSize() - 1]
{
HighestValue = HighestFC(High[1],14);
LowestValue = LowestFC(Low[1],14);
SumHLValue = SummationFC(HighestValue-LowestValue,3);
SumCLValue = SummationFC(C[1]- LowestValue,3);
If(SumHLValue > 0 OR SumHLValue < 0)
{
K = SumCLValue/SumHLValue*100;
}
Else
{
K = 0;
}
D = AverageFC(K,3);
SS=K[1]<D[1]&&K>D;
SS1=K<D&&K[1]>D[1];
}
}
OnBarClose(ArrayRef<Integer> indexs)
{
IF(MarketPosition<1)
{
IF(SS)
{
BuyToCover(0,H);
BUY(1,H);
}
}
IF(MarketPosition>-1)
{
IF(SS1)
{
SELL(0,L);
SellShort(1,L);
}
}
}
用昨天的KD为条件开仓,以当天的HL发单,收盘时正常,晚上开盘后提示信号闪烁(但不会真正 的发单产生交易 ),工作区信号改变,关闭工作区重启后,信号恢复到开盘前的正常信号 ,请老师帮忙看看是什么问题,多谢!