请老师修改
Params Numeric EMA20Length(20); Numeric EMA100Length(100); Numeric EMA500Length(500); Numeric Lot(1);Vars Numeric EMA20; Numeric EMA100; Numeric EMA500; NumericSeries CrossUp20_100; NumericSeries CrossDn20_100; NumericSeries CrossUp100_500; NumericSeries CrossDn100_500; Bool IsTradingTime;Begin EMA20 = XAverage(Close, EMA20Length); EMA100 = XAverage(Close, EMA100Length); EMA500 = XAverage(Close, EMA500Length); CrossUp20_100 = CrossOver(EMA20, EMA100); CrossDn20_100 = CrossUnder(EMA20, EMA100); CrossUp100_500 = CrossOver(EMA100, EMA500); CrossDn100_500 = CrossUnder(EMA100, EMA500); IsTradingTime = True; If (Time >= 085500 And Time <= 090000) Or (Time >= 145500 And Time <= 150000) Then IsTradingTime = False; If Abs((EMA500 - EMA500[1])/MinMove) < 0.1 Then Begin If MarketPosition > 0 Then Begin If CrossDn20_100 Then Sell(Lot, Close); End Else If MarketPosition < 0 Then Begin If CrossUp20_100 Then BuyToCover(Lot, Close); End Return; End; If IsTradingTime And MarketPosition == 0 Then Begin If CrossUp20_100 And EMA20 > EMA500 And EMA100 > EMA500 Then Begin Buy(Lot, Close); End Else If CrossUp100_500 Then Begin Buy(Lot, Close); End; End; If MarketPosition > 0 Then Begin If CrossDn20_100 Then Sell(Lot, Close); End; If IsTradingTime And MarketPosition == 0 Then Begin If CrossDn20_100 And EMA20 < EMA500 And EMA100 < EMA500 Then Begin SellShort(Lot, Close); End Else If CrossDn100_500 Then Begin SellShort(Lot, Close); End; End; If MarketPosition < 0 Then Begin If CrossUp20_100 Then BuyToCover(Lot, Close); End;End