有没有老师帮忙修改下,把它改成金叉平空买多死叉平多卖空
Params
Numeric FastLength(8);
Numeric SlowLength(98);
Numeric MACDLength(9);
Vars
Series<Numeric> MACDDiff;
Numeric AvgMACD;
Numeric MACDValue;
Numeric AvgValue1;
Numeric AvgValue2;
Series<Numeric> s_counter;
global Numeric g_counter;
EVENTS
OnInit()
{
array<Numeric> timepoint;
timepoint[0] = 0.112900;
timepoint[1] = 0.145900;
timepoint[2] = 0.225900;
SetTriggerBarClose(timepoint);
}
OnBarOpen(ArrayRef<Integer> indexs)
{
Range[0:DataSourceSize() - 1]
{
MACDDiff = XAverage(Close, FastLength) - XAverage(Close, SlowLength);
AvgMACD = XAverage(MACDDiff, MACDLength);
MACDValue = MACDDiff - AvgMACD;
AvgValue1 = XAverage(Close, 10); // 根据实际情况修改平均值1
AvgValue2 = XAverage(Close, 20); // 根据实际情况修改平均值2
if (MACDDiff > 0 && MACDDiff > MACDDiff[1] && MarketPosition <> 1)
{
Buy(0, Open);
}
if (MACDDiff < 0 && MACDDiff < MACDDiff[1] && MarketPosition <> -1)
{
SellShort(0, Open);
}
if (MACDDiff < 0 && MACDDiff > MACDDiff[1] && MarketPosition <> 1)
{
Sell(0, Open);
}
if (MACDDiff > 0 && MACDDiff < MACDDiff[1] && MarketPosition <> -1)
{
BuyToCover(0, Open);
}
}
}
OnBarClose(ArrayRef<Integer> indexs)
{
if(time == 0.1129 or time == 0.1459 or time == 0.2259)
{
sell(0,close);
BuyToCover(0,close);
Commentary(\"收盘平仓\");
}
}
crossover(a,b); 表示A金叉B
crossunder(a,b);表示A死叉B
buy可以直接平空买多
sellshort一样
代码问题看置顶帖投稿。