Chiến lược giao dịch trung bình động kép

Tác giả:ChaoZhang, Ngày: 2024-02-18 15:11:04
Tags:

img

Tổng quan

Chiến lược này tạo ra tín hiệu giao dịch bằng cách sử dụng trung bình di chuyển kép. Nó gửi tín hiệu mua khi trung bình di chuyển ngắn hạn vượt quá trung bình di chuyển dài hạn và bán tín hiệu khi điều ngược lại xảy ra. Chiến lược này kết hợp khả năng theo dõi xu hướng của trung bình di chuyển để nắm bắt hiệu quả xu hướng giá và thực hiện giao dịch xu hướng.

Chiến lược logic

Chiến lược này tận dụng hai đường trung bình động theo cấp số nhân (EMA) với các khoảng thời gian khác nhau. EMA1 là MA ngắn hạn với khoảng thời gian đặt thành 9, trong khi EMA2 là MA dài hạn với khoảng thời gian đặt thành 21. Chiến lược tạo ra tín hiệu mua khi EMA1 vượt qua trên EMA2, và bán tín hiệu khi nó vượt qua dưới.

Bằng cách đó, chiến lược sử dụng khả năng theo dõi xu hướng của các đường trung bình động để nắm bắt tín hiệu khi giá bắt đầu một hướng xu hướng mới. Ví dụ, khi giá bật lên từ mức giảm, MA ngắn hạn sẽ tăng sớm hơn MA dài hạn.

Ưu điểm

Sức mạnh lớn nhất của chiến lược này nằm trong khả năng xác định hiệu quả xu hướng giá, đặc biệt phù hợp với các thị trường có xu hướng xu hướng mạnh. Đường trung bình động có các tính năng theo xu hướng tuyệt vời, và cơ chế MA kép tiếp tục cải thiện nó. Ngoài ra, so với các chiến lược MA đơn, MA kép có thể lọc ra nhiều tín hiệu sai hơn và cải thiện độ tin cậy.

Nhược điểm

Nguy cơ lớn nhất là khi giá dao động mạnh mẽ, bản chất chậm của MAs có thể dẫn đến việc bỏ lỡ các điểm vào hoặc ra tốt nhất.

Để giảm thiểu rủi ro, các thông số như thời gian MA có thể được điều chỉnh phù hợp hoặc thêm các bộ lọc. ví dụ, kết hợp chỉ số biến động để thiết lập ngưỡng và tránh giao dịch trong điều kiện biến động cao.

Tăng cường

Không gian tối ưu hóa chủ yếu nằm ở các khía cạnh sau:

  1. Tối ưu hóa các tham số thời gian MA để tìm kết hợp tối ưu
  2. Thêm các chỉ số khác như bộ lọc để cải thiện độ tin cậy tín hiệu
  3. Thiết lập các tham số thích nghi theo các sản phẩm và chế độ thị trường khác nhau
  4. Kết hợp các chỉ số khối lượng để xác định các điểm nhập chính xác
  5. Tối ưu hóa các cơ chế dừng lỗ

Tóm lại

Chiến lược này tạo ra các tín hiệu bằng đường trung bình động hàm số kép, với khả năng theo dõi xu hướng giá mạnh để phát hiện sự đảo ngược xu hướng.


/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © technicalTruff99446

//@version=4
strategy("AhmetMSA", overlay=true, initial_capital = 10000, commission_value = 0.002, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, calc_on_order_fills = true)
//2. DEĞERDEN SONRA GEÇMİŞ HESAPLAMA DEĞERİ, KOMİSYON ORANI, PARANIN TAMAMI, DEĞERLERİ EKLEMDİ

emaShPD = input (title="EMA KISA PERİYOT", defval=9, minval=1)
emaLngPD = input (title="EMA UZUN PERİYOT", defval=21, minval=1)

//input   DEĞİŞKEN DEĞER ATAMA

ema1 = ema (close,emaShPD)
ema2 = ema (close,emaLngPD)

//EMALAR ARASINI BOYAMA upTrend downTrend
upTrend   = plot (ema1, color=#4DFF00, linewidth=2, title= "EMA KISA", transp=0)
downTrend = plot (ema2, color=#FF0C00, linewidth=3, title= "EMA UZUN", transp=0)
//linewidth ÇİZGİ KALINLIĞI
//title     İSİM VERME

//BACKTESTİN BAŞLANGIÇ TARİHİNİ BELİRLEME
yearin = input(2024, title = "Backtest Başlangıç Tarihi")
//longCondition = crossover(ema1, ema2)
//shortCondition = crossover(ema2, ema1)
buy = crossover(ema1, ema2) and yearin >= year
sell = crossover(ema2, ema1) and yearin >= year
//ta.crossunder  KESİŞİM KODU

//Barları BOYAMA
barbuy  = ema1 >= ema2
barsell = ema2 <  ema1




//AL SAT AŞK KUTUCUKLU EKRANA YAZMA
plotshape(buy, title = "AL AŞK", text = 'AL AŞK', style = shape.labelup, location = location.belowbar, color= color.green,   textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "SAT AŞK", text = 'SAT AŞK', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

//Barları BOYAMA KOŞULU
barcolor(barbuy? #4DFF00: barsell? #FF0C00: #FF0C00)


fill(upTrend, downTrend, color = ema1 >= ema2?#4DFF00 : #FF0C00, transp = 80, title = "bgcolor")

//longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
//shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
//14 GÜNLÜĞÜN KAPANIŞDEĞERİNİN 28 GÜNLÜK KAPANIŞ DEĞERİNİ KESMESİ KOŞULU



if (buy)
    strategy.entry("AL AŞK", strategy.long)


if (sell)
    strategy.entry("SAT AŞK", strategy.short)


Thêm nữa