Ba chiến lược động lực chéo SMA

Tác giả:ChaoZhang, Ngày: 2023-12-25 12:06:36
Tags:

img

Tổng quan

Chiến lược Three SMA Crossover Momentum là một chiến lược chỉ số kỹ thuật điển hình theo dõi xu hướng thị trường. Nó kết hợp các đường trung bình di chuyển đơn giản 16-, 36- và 72 giai đoạn và sử dụng các đường chéo tăng và giảm của chúng để xác định xu hướng thị trường, cùng với Đường trung bình di chuyển thích nghi Kaufman (KAMA) như một bộ lọc để có các vị trí dài hoặc ngắn khi hướng xu hướng tương đối rõ ràng.

Chiến lược logic

Các chỉ số cốt lõi của chiến lược này là các đường trung bình di chuyển đơn giản 16-, 36- và 72-thời gian. Khi SMA ngắn hạn vượt qua đường SMA dài hơn lên, nó báo hiệu rằng thị trường đang bước vào xu hướng tăng. Khi SMA ngắn hạn vượt qua đường SMA dài hơn xuống, nó báo hiệu rằng thị trường đang bước vào xu hướng giảm. Ví dụ, khi 16-SMA vượt qua đường 36-SMA và 72-SMA, đó là một tín hiệu tăng. Và khi 16-SMA vượt qua đường 36-SMA và 72-SMA, đó là một tín hiệu giảm.

Đường trung bình chuyển động thích nghi Kaufman (KAMA) phục vụ như một bộ lọc để tránh các tín hiệu sai khi xu hướng không rõ ràng.

Chiến lược theo dõi các tình huống chéo SMA để có các vị trí dài hoặc ngắn khi xu hướng tương đối rõ ràng. Điều kiện dài là 16-SMA vượt qua 36-SMA và 72-SMA với KAMA tuyến tính. Điều kiện ngắn là 16-SMA vượt qua dưới 36-SMA và 72-SMA với KAMA tuyến tính.

Phân tích lợi thế

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

  1. Kết hợp các SMA đa thời gian có thể theo dõi hiệu quả xu hướng thị trường trung và dài hạn
  2. Việc giới thiệu trung bình động thích nghi như một bộ lọc có thể giảm các tín hiệu sai khi xu hướng không rõ ràng
  3. Dễ dàng thực hiện, phù hợp với giao dịch tự động hoặc chương trình

Phân tích rủi ro

Ngoài ra còn có một số rủi ro với chiến lược này:

  1. Các tín hiệu không hiệu quả thường xuyên có thể xảy ra trên các thị trường dao động do giao thoa SMA thường xuyên
  2. Không đặt dừng lỗ, lỗ có thể mở rộng
  3. Được thiết kế cho các thị trường tiền điện tử biến động cao, có thể hoạt động kém hơn ở các thị trường biến động ít hơn

Các rủi ro có thể được giảm bằng cách điều chỉnh các thông số SMA, thiết lập các hạn chế dừng lỗ hoặc chỉ áp dụng cho các thị trường biến động cao.

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa theo những cách sau:

  1. Kiểm tra các kết hợp khác nhau của các thông số SMA để tìm ra tối ưu
  2. Thêm các chỉ số khối lượng giao dịch hoặc biến động như các điều kiện lọc bổ sung
  3. Thiết lập các cơ chế dừng lỗ
  4. Kết hợp các chỉ số khác để xác định thời gian nhập cảnh
  5. Tối ưu hóa kích thước vị trí, điều chỉnh rủi ro thông qua việc tăng và giảm vị trí dần dần

Kết luận

Chiến lược Three SMA Crossover Momentum là một chiến lược theo xu hướng khá cổ điển và thực tế nói chung. Nó đánh giá các xu hướng thị trường trung và dài hạn hiệu quả thông qua các giao dịch chéo SMA nhiều giai đoạn và lọc ra một số tiếng ồn. Nó có thể phục vụ như một trong những chỉ số tham chiếu thời gian cho giao dịch vị trí. Nhưng chiến lược này cũng có một số điểm yếu, đòi hỏi phải cải thiện và tối ưu hóa hơn nữa để đứng ở các thị trường đa dạng hơn.


/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_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/
// © Wielkieef


//@version=5
strategy(title='Three SMA-crossover strategy [30min] ', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=10000, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03)

src = close

Length1 = input.int(16, title='  1-SMA Lenght', minval=1, group='SMA')
Length2 = input.int(36, title='  2-SMA Lenght', minval=1, group='SMA')
Length3 = input.int(72, title='  3-SMA Lenght', minval=1, group='SMA')
SMA1 = ta.sma(close, Length1)
SMA2 = ta.sma(close, Length2)
SMA3 = ta.sma(close, Length3)

Long_ma = SMA1 > SMA2 and SMA2 > SMA3
Short_ma = SMA1 < SMA2 and SMA2 < SMA3

LengthMainSMA = input.int(100, title='  Trend SMA ', minval=1)

SMAas = ta.sma(src, LengthMainSMA)

//  Powered Kaufman Adaptive Moving Average by alexgrover (modificated by Wielkieef)
lengthas = input.int(50, title='   KAMA Lenght')
sp = input.bool(true, title='  Self Powered')

er = math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas)
pow = sp ? 1 / er : 2
per = math.pow(math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas), pow)
a = 0.
a := per * src + (1 - per) * nz(a[1], src)
mad4h = 0.
a_f = a / a[1] > .999 and a / a[1] < 1.001

///.

Bar_color = close > SMAas ? color.green : Long_ma ? color.blue : Short_ma ? color.maroon : color.gray

barcolor(color=Bar_color)

long_cond = Long_ma and SMAas < close and not a_f and close > a

short_cond = Short_ma and SMAas > close and not a_f and close < a
  
long_stop = Short_ma and SMAas < close

short_stop = Long_ma and SMAas > close

SMA1plot = plot(SMA1, color=Bar_color, linewidth=2)
SMA2plot = plot(SMA2, color=Bar_color, linewidth=4)
SMA3plot = plot(SMA3, color=Bar_color, linewidth=2)

fill(SMA1plot,SMA3plot,title="RANGE " ,color = color.new(Bar_color, 50))



if  long_cond
    strategy.entry('Long', strategy.long)

if  short_cond
    strategy.entry('Short', strategy.short)

strategy.close_all(when=long_stop or short_stop)



//by wielkieef

Thêm nữa