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

Tác giả:ChaoZhang, Ngày: 2023-12-01 18:02:24
Tags:

img

Tổng quan

Chiến lược đột phá chéo vàng EMA nhanh và chậm 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 các chéo chéo của EMA của các chu kỳ khác nhau để tạo ra tín hiệu mua và bán. Ý tưởng cơ bản là: khi EMA chu kỳ ngắn vượt qua trên EMA chu kỳ dài hơn, một tín hiệu mua được tạo ra; khi EMA chu kỳ ngắn vượt qua dưới EMA chu kỳ dài hơn, một tín hiệu bán được tạo ra.

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

Chiến lược chủ yếu dựa trên việc so sánh các EMA 5 chu kỳ, 8 chu kỳ và 13 chu kỳ để tạo ra các tín hiệu giao dịch.

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

Điều này nhận ra hiệu quả của việc theo dõi xu hướng trung bình và dài hạn. Khi đường trung bình động chu kỳ ngắn vượt qua đường trung bình động chu kỳ dài, điều đó có nghĩa là xu hướng ngắn hạn đã trở nên tăng và có thể được mua; khi đường trung bình động chu kỳ ngắn vượt qua đường trung bình động chu kỳ dài, điều đó có nghĩa là xu hướng ngắn hạn đã trở nên giảm và nên được bán.

Phân tích lợi thế

Những lợi thế chính của chiến lược này là:

  1. Hoạt động đơn giản, dễ thực hiện.
  2. Sử dụng đầy đủ hiệu ứng làm mịn của EMA để theo dõi xu hướng hiệu quả.
  3. Nhiều sự kết hợp EMA thực hiện giao thoa để tránh tín hiệu sai.
  4. Kết hợp với chỉ số ADX, tín hiệu đáng tin cậy hơn.
  5. Thu hút tương đối thấp và giảm tối đa.

Phân tích rủi ro

Có một số rủi ro trong chiến lược này:

  1. Stop loss có thể lớn hơn khi xu hướng đảo ngược mạnh.
  2. Tần suất giao dịch cao có thể làm tăng chi phí giao dịch. Các thông số EMA có thể được điều chỉnh thích hợp để giảm tần suất giao dịch.

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

Chiến lược có thể được tối ưu hóa trong các khía cạnh 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 chỉ số khác để lọc, chẳng hạn như KDJ, BOLL, vv, để cải thiện chất lượng tín hiệu.
  3. Điều chỉnh quản lý vị trí để 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 ra các quy tắc nhập và xuất tốt hơn.

Tóm lại

Tóm lại, hoạt động của chiến lược đột phá chéo vàng EMA nhanh và chậm là mượt mà, các tín hiệu đáng tin cậy hơn, rút vốn không cao và nó phù hợp để theo dõi xu hướng trung và dài hạn. Kết quả chiến lược tốt hơn có thể đạt được thông qua tối ưu hóa tham số và cải thiện các quy tắ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())

Thêm nữa