Params
Numeric ss(1);//开仓手数
Numeric Length(9);
Numeric SlowLength(3);
Numeric SmoothLength(3);
Numeric M1(5);
Numeric M2(60);
Vars
Series<Numeric> HighestValue;
Series<Numeric> LowestValue;
Series<Numeric> KValue;
Numeric SumHLValue;
Numeric SumCLValue;
Series<Numeric> DValue;
Series<Numeric> MA1;
Series<Numeric> MA2;
BOOL PDCON1;
BOOL PKCON1;
BOOL DCON1;
BOOL KCON1;
Numeric MyEntryPrice;
Numeric MyExitPrice;
Numeric MINPOINT;
Events
onBar(ArrayRef<Integer> indexs)
{
HighestValue = HighestFC(High, Length);
LowestValue = LowestFC(Low, Length);
SumHLValue = SummationFC(HighestValue-LowestValue,SlowLength);
SumCLValue = SummationFC(Close - LowestValue,SlowLength);
If(SumHLValue <> 0)
{
KValue = SumCLValue/SumHLValue*100;
}Else
{
KValue = 0;
}
DValue = AverageFC(KValue,SmoothLength);
MinPoint = MinMove*PriceScale;//取得合约的最小波动单位
MA1=Average(CLOSE,M1);
MA2=Average(CLOSE,M2);
PlotNumeric("MA1",MA1);
PlotNumeric("MA2",MA2);
DCON1=KValue[1]>DValue[1] && C[1]>MA1[1];
KCON1=KValue[1]<DValue[1] && C[1]<MA1[1];
//开仓指令
IF((DCON1) && MarketPosition!=1 && (MaxEntries==0||BarsSinceExit>=1 ||BarsSinceEntry >= 1))
{
Buy(ss,open);
}
IF((KCON1) && MarketPosition!=-1 && (MaxEntries==0||BarsSinceExit>=1 ||BarsSinceEntry >= 1))
{
SellShort(SS,open);
}
PKCON1=KValue[1]>DValue[1];
PDCON1=KValue[1]<DValue[1];
MyEntryPrice=AvgEntryPrice;
//PlotNumeric("均价",AvgEntryPrice);
If(MarketPosition == 1 and BarsSinceEntry>=1 )
{
If(Close < MA1 && BarsSinceEntry>=1)
{
Sell(0,OPEN);
}
}
If(MarketPosition == -1 and BarsSinceEntry>=1)
{
If(Close > MA1 && BarsSinceEntry>=1)
{
BuyToCover(0,OPEN);
}
}
}
这里面两个close改成close[1]
谢谢老师🤝