编写问题

我是新手,问的问题比较初级,请工程师耐心解答,问题如下: //------------------------------------------------------------------------ // 简称: DualMA // 名称: 双均线交易系统 // 类别: 公式应用 // 类型: 内建应用 //------------------------------------------------------------------------ Params Numeric FastLength(5); Numeric SlowLength(20); Vars Series<Numeric> AvgValue1; //这两句我大概能懂定义变量AvgValue1,AvgValue2但不知道为什么这样写 Series<Numeric> AvgValue2; Events OnBar(ArrayRef<Integer> indexs)//这一句是啥意思? { AvgValue1 = AverageFC(Close,FastLength); AvgValue2 = AverageFC(Close,SlowLength); PlotNumeric("MA1",AvgValue1);//这两句是啥意思? PlotNumeric("MA2",AvgValue2);//这两句是啥意思? If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1]) { Buy(0,Open); } If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1]) { SellShort(0,Open);//这两个IF语句为什么只有买开仓,卖开仓,没有平仓?难道不写平仓就代表着直接反手了? }

Params Numeric FastLength(5); Numeric SlowLength(20); Vars Series<Numeric> AvgValue1; //这两句我大概能懂定义变量AvgValue1,AvgValue2但不知道为什么这样写 (series表示这是一个序列类型,numeric表示是数值类型) Series<Numeric> AvgValue2; Events OnBar(ArrayRef<Integer> indexs)//这一句是啥意思?(这是行情驱动域里的onbar域,该域的效果是每当收到tick行情或者bar变更导致bar数据变化时,该域内代码运行) { AvgValue1 = AverageFC(Close,FastLength); AvgValue2 = AverageFC(Close,SlowLength); PlotNumeric("MA1",AvgValue1);//这两句是啥意思?(作图,把avgvalue1和2画在图上) PlotNumeric("MA2",AvgValue2);//这两句是啥意思? If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1]) { Buy(0,Open); } If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1]) { SellShort(0,Open);//这两个IF语句为什么只有买开仓,卖开仓,没有平仓?难道不写平仓就代表着直接反手了?(对,buy和sellshort优先平对手仓再开仓,不需要写平仓) }

回复:[] 中括号 回溯数据,引用以前的数据,或者数组中的元素。 If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1]) AvgValue1[1] AvgValue2[1] 我不明白这两个变量后边加[1]是什么意思?

回复:明白了取上一个值的意思吧

回复:取上一根bar的运算结果