Chiến lược đột phá Golden Cross EMA nhanh và chậm


Ngày tạo: 2023-12-01 18:02:24 sửa đổi lần cuối: 2023-12-01 18:02:24
sao chép: 0 Số nhấp chuột: 754
1
tập trung vào
1621
Người theo dõi

Chiến lược đột phá Golden Cross EMA nhanh và chậm

Tổng quan

Chiến lược đột phá chéo vàng của EMA nhanh là một chiến lược đơn giản và hiệu quả để theo dõi xu hướng thị trường. Nó sử dụng đường trung bình của EMA trong các chu kỳ khác nhau để đột phá chéo, tạo ra tín hiệu mua và bán. Ý tưởng cơ bản là: khi EMA ngắn kỳ vượt qua EMA dài kỳ, tạo ra tín hiệu mua; khi EMA ngắn kỳ vượt qua EMA dài kỳ, tạo ra tín hiệu bán.

Nguyên tắc chiến lược

Chiến lược này dựa chủ yếu vào so sánh đường trung bình EMA của chu kỳ 5, chu kỳ 8 và chu kỳ 13 để tạo ra tín hiệu giao dịch. Nó bao gồm:

  1. Tính toán 5 chu kỳ EMA, 8 chu kỳ EMA và 13 chu kỳ EMA.
  2. Một tín hiệu mua được tạo ra khi 5 chu kỳ EMA đi qua 8 chu kỳ và 13 chu kỳ EMA.
  3. Khi 5 chu kỳ EMA đi qua 8 chu kỳ và 13 chu kỳ EMA, tạo ra một tín hiệu bán.
  4. Đồng thời kết hợp với chỉ số ADX để đánh giá cường độ của xu hướng, chỉ phát ra tín hiệu khi xu hướng đủ mạnh.

Như vậy, có hiệu quả theo dõi xu hướng đường dài trung bình. Khi đường trung bình ngắn hạn đi qua đường trung bình dài hạn, biểu thị xu hướng ngắn hạn chuyển sang đa đầu, bạn có thể mua; Khi đường trung bình ngắn hạn đi qua đường trung bình dài hạn, biểu thị xu hướng ngắn hạn chuyển sang không đầu, bạn nên bán.

Phân tích lợi thế

Chiến lược này có những lợi thế chính như sau:

  1. Nó hoạt động đơn giản và dễ thực hiện.
  2. Tận dụng hiệu quả của đường trung bình EMA để theo dõi xu hướng hiệu quả.
  3. Giao diện EMA đa nhóm được thực hiện để tránh tín hiệu giả.
  4. Kết hợp với các chỉ số ADX, tín hiệu này đáng tin cậy hơn.
  5. Trong khi đó, tỷ lệ rút và giảm tối đa đều không cao.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Khi xu hướng bị đảo ngược mạnh, stop loss có thể lớn hơn. Bạn có thể mở rộng phạm vi stop loss thích hợp.
  2. Tần suất giao dịch cao, dễ dàng tăng phí giao dịch. Bạn có thể điều chỉnh các tham số EMA để giảm tần suất giao dịch.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các hướng sau:

  1. Tối ưu hóa các tham số EMA để tìm ra sự kết hợp tốt nhất.
  2. Thêm các bộ lọc cho các chỉ số khác, chẳng hạn như KDJ, BOLL, để cải thiện chất lượng tín hiệu.
  3. Điều chỉnh quản lý vị thế, tối ưu hóa kiểm soát rủi ro.
  4. Sử dụng các phương pháp học máy để tìm kiếm các quy tắc xuất nhập cảnh tốt hơn.

Tóm tắt

Tóm lại, chiến lược đột phá EMA Gold Cross hoạt động suôn sẻ, tín hiệu đáng tin cậy, rút lui thấp, phù hợp để theo dõi xu hướng đường dài trung bình. Bằng cách tối ưu hóa tham số và hoàn thiện quy tắc, có thể đạt được hiệu quả chiến lược tốt hơn.

Mã nguồn chiến lược
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// 
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gregoirejohnb
// @It is modified by ttsaadet.
// Moving average crossover systems measure drift in the market. They are great strategies for time-limited people.
// So, why don't more people use them?
// 

//
strategy(title="EMA Crossover Strategy by TTS", shorttitle="EMA-5-8-13 COS by TTS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.TRY,commission_type=strategy.commission.percent,commission_value=0.04, process_orders_on_close = true, initial_capital = 100000)

// === GENERAL INPUTS ===
//strategy start date
start_year = input(defval=2020, title="Backtest Start Year")

// === LOGIC ===
short_period = input(type=input.integer,defval=5,minval=1,title="Length")
mid_period = input(type=input.integer,defval=8,minval=1,title="Length")
long_period = input(type=input.integer,defval=13,minval=1,title="Length")
rsi_period = input(type=input.integer,defval=14,minval=1,title="Length")
longOnly = input(type=input.bool,defval=false,title="Long Only")
shortEma = ema(close,short_period)
midEma = ema(close,mid_period)
longEma = ema(close,long_period)

rsi = rsi(close, rsi_period)

[diplus, diminus, adx] = dmi(short_period, short_period)
plot(shortEma,linewidth=2,color=color.red,title="Fast")
plot(midEma,linewidth=2,color=color.orange,title="Fast")
plot(longEma,linewidth=2,color=color.blue,title="Slow")

longEntry = crossover(shortEma,midEma) and crossover(shortEma,longEma) //or ((shortEma > longEma) and crossover(shortEma,midEma)))and (adx > 25)
shortEntry =((shortEma < midEma) and crossunder(shortEma,longEma)) or ((shortEma < longEma) and crossunder(shortEma,midEma))

plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle")
plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle")
plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign")

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() =>
    longEntry and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitLong() =>
    crossunder(shortEma,longEma) or crossunder(close, longEma)

strategy.entry(id="Long", long=strategy.long, when=enterLong())
strategy.close(id="Long", when=exitLong())


// === STRATEGY - SHORT POSITION EXECUTION ===

enterShort() =>
    not longOnly and shortEntry and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitShort() =>
    crossover(shortEma,longEma)

strategy.entry(id="Short", long=strategy.short, when=enterShort())
strategy.close(id="Short", when=exitShort())