Chiến lược HODL đột phá dao động trung bình động


Ngày tạo: 2023-09-12 16:02:24 sửa đổi lần cuối: 2023-09-12 16:02:24
sao chép: 0 Số nhấp chuột: 612
1
tập trung vào
1617
Người theo dõi

Chiến lược này là một chiến lược hoạt động phá vỡ đường dài. Chiến lược này theo đuổi việc nắm giữ lâu dài và giảm tần suất giao dịch.

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

  1. Tính toán trung bình di chuyển của một chu kỳ dài, tham số điển hình là đường 200 ngày.

  2. Khi giá đóng cửa phá vỡ đường trung bình từ phía dưới, hãy mua và thực hiện nhiều hoạt động.

  3. Khi giá đóng cửa từ trên xuống dưới đường trung bình, giao dịch bán tháo sẽ được thực hiện.

  4. Trong trạng thái này, giá sẽ tiếp tục giữ cho đến khi giá giảm xuống mức dừng trung bình.

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

  1. Đường trung bình đường dài có thể xác định hiệu quả xu hướng đường dài trong giá.

  2. Phương pháp giao dịch đột phá có thể bắt kịp sự đảo ngược của giá cổ phiếu.

  3. Giảm tần suất giao dịch giúp giảm chi phí và rủi ro giao dịch.

Rủi ro của chiến lược này:

  1. Các trường hợp này có thể được giải thích bằng cách sử dụng các phương pháp khác nhau.

  2. Không thể hạn chế tổn thất do biến động hồi phục sau khi phá vỡ.

  3. Các vụ nổ nhỏ thường xuyên có thể dẫn đến tổn thất nhỏ liên tục.

Tóm lại, chiến lược HODL đánh giá thời gian nắm giữ thông qua biến động đường trung bình trong thời gian dài, có thể làm giảm tần suất giao dịch. Tuy nhiên, vẫn còn chỗ để cải thiện trong việc tối ưu hóa các tham số và thiết lập dừng lỗ để kiểm soát rút lui và thu được lợi nhuận ổn định trong thời gian dài.

Mã nguồn chiến lược
/*backtest
start: 2022-09-05 00:00:00
end: 2023-04-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("HODLBot", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_every_tick=true, overlay=true)
    
//// Time limits 
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(01, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2029, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true

maPeriod = input(200, "MA Period")
smoothing = input(defval="EMA", options=["EMA", "SMA"])

ma(smoothing, src, length) => 
    if smoothing == "EMA"
        ema(src, length)
    else
        if smoothing == "SMA"
            sma(src, length)
        
//// Main ////

movingAverage = ma(smoothing, close, maPeriod)

plot(movingAverage, color=orange, style = line, linewidth = 4)
 
// very simple, price over MA? Buy and HODL 
if (testPeriod() and close > movingAverage)
    strategy.entry("HODL", strategy.long)

// Price under, close long
if (testPeriod() and close < movingAverage)
    strategy.close("HODL")