
Đây là một chiến lược giao dịch định lượng chỉ làm nhiều đầu, nó kết hợp các ưu điểm của chiến lược đảo ngược điểm trung tâm và chiến lược trung bình di chuyển nhỏ nhất. Chiến lược này đi vào thị trường theo xu hướng chính trong thị trường bò, đánh giá tín hiệu đảo ngược nhiều hơn sau khi quan sát sự hình thành đường ray của điểm trung tâm; đồng thời, nó yêu cầu giá mua lại cao hơn trung bình di chuyển nhỏ nhất, làm cho chiến lược ổn định hơn.
Chiến lược này kết hợp chiến lược đảo ngược điểm trung tâm và chiến lược trung bình di chuyển nhỏ nhất. Chiến lược đảo ngược điểm trung tâm sẽ tính toán giá cao nhất và giá thấp nhất trong một ngày giao dịch nhất định trước đây, để có được đường lên và đường xuống. Khi giá phá vỡ đường lên, đánh giá là tín hiệu đảo ngược.
Cụ thể, chiến lược này trước tiên tính giá cao nhất trong 3 đường K và giá thấp nhất trong 16 đường K trước đó, để có được điểm trục trên và dưới đường ray. Khi đường ray trên hình thành, hãy đặt nhiều; khi đường ray dưới hình thành, hãy đặt bằng. Đồng thời, nó yêu cầu giá đóng cửa cao hơn trung bình di chuyển tối thiểu hai lần trong 20 ngày.
Kết hợp lợi thế của hai chiến lược để đưa ra quyết định giao dịch ổn định và đáng tin cậy hơn
Chiến lược điểm trung tâm có thể xác định điểm đảo ngược, lọc các đột phá giả bằng trung bình di chuyển nhỏ nhất, giảm rủi ro giao dịch
Chỉ cần làm nhiều hơn, phù hợp với mong đợi của hầu hết mọi người.
Chiến lược đơn giản, rõ ràng, dễ hiểu và tối ưu hóa
Tần suất giao dịch vừa, phù hợp với hoạt động đường dài trung bình
Không thể nắm bắt cơ hội giảm giá nhanh chóng
Có một số sự chậm trễ, có thể bỏ lỡ một số cơ hội kiếm tiền
Khi chuyển đổi bò và gấu, nó sẽ gây ra tổn thất lớn hơn.
Giải pháp:
Giảm thời gian tính toán và giảm sự chậm trễ
Điều chỉnh các tham số trung bình di chuyển để tối ưu hóa sự tham gia
Tăng chiến lược dừng lỗ, giảm tổn thất đơn lẻ
Tham gia vào một loạt các chỉ số xu hướng để cải thiện tính chính xác của phán đoán
Tăng khả năng dự đoán của mô hình học máy, hướng dẫn ra quyết định
Kết hợp với chỉ số biến động, kiểm soát quy mô vị trí
Tối ưu hóa các tham số để tăng tỷ lệ chiến lược
Kiểm tra dữ liệu chu kỳ lâu hơn để xác minh tính ổn định
Chiến lược này tích hợp các lợi thế của chiến lược đảo ngược điểm trung tâm và chiến lược trung bình di chuyển tối thiểu hai lần, kiểm soát rủi ro trong khi đánh giá xu hướng đảo ngược, thuộc loại chiến lược vững chắc. Nó có cấu trúc đơn giản, dễ hiểu và kiểm tra, rất phù hợp để học tập và thực hành.
/*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)