2个数据单元,一个15分钟周期,一个120分钟周期; 2小时周期,2线大于100线,15分钟周期金叉,做多,反之做空,
这样写为什么信号会和委托不一致,是信号闪烁导致的吗?这样写信号会闪烁吗? 2025年5月15日-2025年5月16日,烧碱2509出现情况,
还请大神帮忙看下代码,代码如下:
Params
//此处添加参数
Numeric LongNum1(2);
Numeric LongNum2(100);
Numeric ShortNum1(2);
Numeric ShortNum2(15);
Vars
//此处添加变量
Series<Numeric> AvgLong1;
Series<Numeric> AvgLong2;
Series<Numeric> AvgShort1;
Series<Numeric> AvgShort2;
Bool con1(False);
Bool con2(False);
Bool con3(False);
Bool con4(False);
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
AvgLong1 = Data1.AverageFC(Data1.Close,LongNum1);
AvgLong2 = Data1.AverageFC(Data1.Close,LongNum2);
AvgShort1 = AverageFC(Close,ShortNum1);
AvgShort2 = AverageFC(Close,ShortNum2);
con1 = CrossOver(AvgShort1[1],AvgShort2[1]);
con2 = CrossUnder(AvgShort1[1],AvgShort2[1]);
con3 = CrossOver(AvgLong1[1],AvgLong2[1]);
con4 = CrossUnder(AvgLong1[1],AvgLong2[1]);
//开仓
If(MarketPosition == 0 && AvgLong1[1]>AvgLong2[1] && con1)
{
Buy(lots,Open);
}
If(MarketPosition == 0 && AvgLong1[1]<AvgLong2[1] && con2)
{
SellShort(lots,Open);
}
//平仓
if(MarketPosition > 0 && con4 && BarsSinceEntry > 0 )
{
Sell(0,Open);
}
If(MarketPosition < 0 && (con3 && BarsSinceEntry > 0)
{
BuyToCover(0,Open);
}
}
委托和信号哪里不一样?是价格吗