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
ai写的东西让ai去修改吧
付费代写看置顶帖