Pivot Reversal được nâng cấp chỉ dài - Chiến lược động lực kép

Tác giả:ChaoZhang, Ngày: 2023-12-25 17:47:11
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch định lượng chỉ dài kết hợp các lợi thế của đảo ngược điểm pivot và các chiến lược trung bình di chuyển vuông nhỏ nhất. Nó theo xu hướng chính trong một thị trường tăng và xác định các tín hiệu đảo ngược sau khi quan sát đường ray trên điểm pivot để đi dài. Đồng thời, nó yêu cầu giá đóng phải trên Trung bình di chuyển vuông nhỏ nhất trước khi mở các vị trí dài để làm cho chiến lược ổn định hơn.

Chiến lược logic

Chiến lược này tích hợp các chiến lược đảo ngược điểm trục và trung bình động vuông nhỏ nhất. Chiến lược đảo ngược điểm trục tính toán giá cao nhất và thấp nhất trong một số ngày giao dịch nhất định để có được đường ray trên và dưới. Khi giá vượt qua đường ray trên, nó được đánh giá là một tín hiệu đảo ngược.

Đặc biệt, chiến lược này đầu tiên tính toán giá cao nhất của 3 thanh cuối cùng và giá thấp nhất của 16 thanh cuối cùng để có được các đường ray điểm trục trên và dưới. Nó đi dài khi đường ray trên được hình thành. Khi đường ray dưới tiếp theo được hình thành, nó đóng các vị trí. Đồng thời, nó yêu cầu giá đóng phải cao hơn Trung bình Di chuyển vuông nhỏ nhất 20 ngày trước khi mở các vị trí dài.

Ưu điểm

  1. Kết hợp các điểm mạnh của hai chiến lược cho các quyết định giao dịch ổn định và đáng tin cậy hơn

  2. Chiến lược điểm chuyển động đánh giá các điểm đảo ngược, trong khi LSMA lọc các sự phá vỡ sai, giảm rủi ro giao dịch

  3. Chỉ kéo dài, phù hợp với kỳ vọng tâm lý của hầu hết mọi người

  4. Logic chiến lược đơn giản và rõ ràng, dễ hiểu và tối ưu hóa

  5. Tần suất giao dịch vừa phải, thích hợp cho các hoạt động trung bình đến dài hạn

Phân tích rủi ro

  1. Không thể nắm bắt các cơ hội trong sự suy giảm nhanh chóng

  2. Có một sự chậm trễ nhất định tồn tại, có thể bỏ lỡ một số cơ hội tăng lên

  3. Mất nhiều hơn khi xu hướng thị trường đảo ngược

Giải pháp:

  1. Giảm ngắn chu kỳ tính toán để giảm chậm

  2. Điều chỉnh các tham số MA để tối ưu hóa sự tham gia

  3. Thêm stop loss để giảm lỗ đơn

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

  1. Thêm nhiều chỉ số xu hướng để cải thiện độ chính xác

  2. Kết hợp dự đoán học máy để hướng dẫn các quyết định

  3. Kết hợp các chỉ số biến động để kiểm soát kích thước vị trí

  4. Tối ưu hóa các thông số để cải thiện tỷ lệ thắng

  5. Kiểm tra dữ liệu khung thời gian dài hơn để xác minh tính ổn định

Tóm lại

Chiến lược này tích hợp các điểm mạnh của đảo ngược điểm xoay và các chiến lược LSMA để kiểm soát rủi ro trong khi đánh giá sự đảo ngược xu hướng. Với cấu trúc đơn giản để dễ hiểu và kiểm tra, nó hoàn hảo cho những người mới bắt đầu học và thực hành. Nhưng cách tiếp cận dài của nó chỉ ngăn chặn lợi nhuận từ sự sụt giảm thị trường, một hạn chế lớn.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//@author exlux99

strategy(title = "Pivot Reversal Upgraded long only", overlay = true,  pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.1)
/////////////
//time

fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2010, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2031, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
//

length = input(title="Length MA", type=input.integer, defval=20)
offset = 0//input(title="Offset", type=input.integer, defval=0)
src = input(close, title="Source")
lsma = linreg(src, length, offset)

//LSMA
leftBars = input(3)
rightBars = input(16)
swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond and time_cond? true : (le[1] and high > hprice ? false : le[1])
//leverage
multiplier=input(1.0, step=0.5)
g(v, p) => round(v * (pow(10, p))) / pow(10, p)
risk     = input(100)
leverage = input(1.0, step = 0.5)
c = g((strategy.equity * leverage / open) * (risk / 100), 4)

//entry
strategy.entry("long", strategy.long,c, when=le and close > lsma, comment="long", stop=(hprice + syminfo.mintick) * multiplier)

    
swl_cond = not na(swl)
lprice = 0.0
lprice := swl_cond ? swl : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])
strategy.close("long", when=se)




Thêm nữa