用的跨周期策略,订阅的
并没有碰到你说的问题
这个应该还是您自己代码没写对,自己检查下代码吧。
代码没有指定合约,哪怕是简单的三均线策略加载后也还是那样。。。
//------------------------------------------------------------------------
// 简称: DualMA
// 名称: 三均线交易系统
// 类别: 公式应用
// 类型: 内建应用
//------------------------------------------------------------------------
Params
Numeric FastLength(10);// 短期指数平均线参数
Numeric SlowLength(20);// 长期指数平均线参数
Numeric FastLength1(40);// 短期指数平均线参数
Numeric pos(1);// 仓位
Numeric money(150); //固定市值开仓:单位万
Vars
Series<Numeric> AvgValue1;
Series<Numeric> AvgValue2;
Series<Numeric> AvgValue3;
Series<Numeric> AvgValue4;
Numeric lots(1); //下单手数
Events
OnInit()
{
{
//=========数据源相关设置==============
SetBeginBarMaxCount(1);
AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权
AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格
AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓
AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算
SetOrderMap2MainSymbol(); //设置委托映射到主力
}
}
OnBar(ArrayRef<Integer> indexs)
{
AvgValue1 = AverageFC(Close,FastLength);
AvgValue2 = AverageFC(Close,SlowLength);
AvgValue3 = AverageFC(Close,FastLength1);
lots=IntPart(money*10000/(close*contractunit));
PlotNumeric("MA1",AvgValue1);
PlotNumeric("MA2",AvgValue2);
PlotNumeric("MA3",AvgValue3);
If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1]
and AvgValue2[1] > AvgValue3[1])
{
Buy(lots,Open);
}
If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1]
and AvgValue2[1] < AvgValue3[1])
{
SellShort(lots,Open);
}
//PlotNumeric("PL",Portfolio_TotalProfit);
}
//------------------------------------------------------------------------
// 编译版本 GS2010.12.08
// 版权所有 TradeBlazer Software 2003-2025
// 更改声明 TradeBlazer Software保留对TradeBlazer平
// 台每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------