这段代码中,32、37行的Range[0:0]、Range[1:1]分别代表什么,是怎么个用法,有什么注意事项?假如要设置条件:日线上5、10周期均线金叉,同时5分钟周期上10、250周期均线金叉买入,日线上5、10周期均线死叉或5分钟周期10、250周期均线死叉卖出,具体该怎么做?//------------------------------------------------------------------------
// 简称: L_CrossCycleDualMAEMA
// 名称: 跨周期混合双均线多头
// 类别: 策略应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
Vars
Series<Numeric> ma5;
Series<Numeric> ma20;
Events
OnInit()
{
SubscribeBar(Symbol,"3m",BeginDateTime); //自动订阅3mins
SetBasePeriod("3m"); //大周期15m是小周期3min的整数倍。这种情况下,可以不用设置SetBasePeriod,软件会自动启用这个设置。
}
OnReady()
{
//设置收盘提前触发的时间点
Range[0:DataCount-1]
{
Array<Numeric> timePoint;
ArrayPushBack(timePoint, 0.145900);
SetTriggerBarClose(timePoint);
}
}
OnBarClose(ArrayRef<Integer> indexs)
{
//计算大周期的均线
Range[0:0]
{
ma20=Average(close,20);
}
//计算小周期的均线,且结合大周期均线,进行交易
Range[1:1]
{
ma5=Average(close,5);
ma20=Average(close,20);
PlotNumeric("ma5",ma5);
PlotNumeric("ma20",ma20);
PlotNumeric("d1ma20",data0.ma20);
Commentary(text(Minute));
if(mod(Minute+3,15)==0) //只在15分钟的最后三分钟那根BAR才执行交易
{
Print("OnBarClose:" + DateTimeToString(MakeDateTime(Date, Time)));
if(MarketPosition<>1 and close > data0.ma20 and ma5 > ma20)
{
Buy(1, close);
}
if(MarketPosition<> -1 and close < data0.ma20 and ma5 < ma20)
{
SellShort(1, close);
}
}
}
}
//------------------------------------------------------------------------
// 编译版本 2025/10/23 102902
// 版权所有 winter110
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TradeBlazer策略修改和重写的权利
//------------------------------------------------------------------------?
使setbaseperiod设置的周期,就是实际操作的周期吗,这个一般是选择较小周期吗
setbaseperiod和你的问题无关
使用这个函数的意义是什么