我是新手,问的问题比较初级,请工程师耐心解答,问题如下:
//------------------------------------------------------------------------
// 简称: 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的运算结果