Chiến lược giao dịch EMA

Tác giả:ChaoZhang, Ngày: 2023-09-11 12:02:56
Tags:

Chiến lược giao dịch EMA

Chiến lược này giao dịch dựa trên phân tích EMA, với các quy tắc sau:

  • Nhập dài nếu ngày trước đóng cửa cao hơn EMA

  • Ra khỏi dài nếu nến hiện tại đóng dưới EMA

Ưu điểm của chiến lược này:

  • Sử dụng EMA để xác định hướng xu hướng
  • Quy tắc đơn giản và rõ ràng, dễ thực hiện
  • Thời gian EMA tùy chỉnh để tối ưu hóa

Các vấn đề tiềm ẩn:

  • Có xu hướng tín hiệu sai trong các thị trường giới hạn phạm vi
  • Đến muộn, có nguy cơ bị bắt trong cọc.
  • Không có dừng lỗ, rủi ro mất mát không kiểm soát
  • Không có quy tắc về tần suất giao dịch hoặc quy định kích thước vị trí

Nhìn chung, chiến lược EMA hoạt động tốt hơn trong các thị trường xu hướng nhưng nên được sử dụng thận trọng.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ericdwyang

//@version=5
strategy("EMA Strat", overlay=true, margin_long=100, margin_short=100)

// EMA Variables
emaInput = input(21, "Length")
ema = ta.ema(close, emaInput)

// Variable Declaration
p = 0

start = false

// Start Date
yearInput = input(2000, "Year")
if (time >= timestamp(2000,01,01,01,01))
    start := true


// Check first candle relative to EMA
if (close > ema and start == true)
    p += 1
    strategy.entry("Long", strategy.long, comment = "Entry")
    

// Candle close above EMA (p + 1, count reset to 0)
above = close[1] > ema[1]
if (above)
    p += 1



// Candle close below EMA (reset p to 0, count -1)
below = close < ema
if (below)
    p := 0
    strategy.close("Long", comment = "Flat")

// // Exit Position
// if (redCount == -2)
//     strategy.close("Long", comment = "Flat")
    
// goLong = p[1] == 0 and p == 1
// flatten = p == 0
    
// // Restablish long    
// if (goLong and start == true)
//     strategy.entry("Long", strategy.long, comment = "Entry")
    

plot(p)
plot(ema)

    

Thêm nữa