Chiến lược đảo ngược động lực

Tác giả:ChaoZhang, Ngày: 2024-01-03 17:14:15
Tags:

img

Tổng quan

Chiến lược này là một chiến lược đảo ngược động lực dựa trên đường trung bình động và chỉ số sức mạnh tương đối (RSI).

Chiến lược logic

Chiến lược này sử dụng trung bình động 14 ngày như đường tín hiệu nhanh và trung bình động 28 ngày như đường chậm.

Khi MA 14 ngày vượt qua trên MA 28 ngày và chỉ số RSI dưới 30 hoặc chỉ số RSI dưới 13, nó báo hiệu sự đảo ngược trong đà tăng, thúc đẩy một bước vào dài.

Ngoài ra, chiến lược có một cơ chế lấy lợi nhuận một phần. Khi lợi nhuận của vị trí mở đạt mức lợi nhuận được đặt (thất định 8%), nó sẽ lấy lợi nhuận một phần (thất định bán 50%).

Phân tích lợi thế

Chiến lược kết hợp các lợi thế của đường trung bình động trong khi tránh thua lỗ.

  1. Sử dụng trung bình di chuyển nhanh và chậm lọc ra một số tiếng ồn.

  2. Chỉ số RSI đánh giá mức mua quá mức và bán quá mức, tránh theo đuổi mức cao mới.

  3. Việc lấy lợi nhuận một phần khóa một số lợi nhuận và giảm rủi ro.

Phân tích rủi ro

  1. Sự giao thoa giữa hai đường trung bình động có thể tạo ra whipsaws, dẫn đến thua lỗ.

  2. Lượng lợi nhuận có thể được điều chỉnh để cân bằng rủi ro so với phần thưởng.

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

  1. Kiểm tra các kết hợp tham số khác nhau của các đường trung bình động để tìm các thiết lập tối ưu.

  2. Kiểm tra các ngưỡng RSI khác nhau.

  3. Điều chỉnh mức độ thu lợi nhuận một phần và tỷ lệ bán để cân bằng rủi ro / phần thưởng.

Kết luận

Nói chung, đây là một chiến lược đảo ngược trung bình điển hình. Nó sử dụng đường chéo MA nhanh / chậm để xác định các vòng quay thị trường được bổ sung bởi RSI để lọc tín hiệu. Nó cũng thực hiện lấy lợi nhuận một phần để khóa một số lợi nhuận. Chiến lược đơn giản nhưng thực tế. Các tham số có thể được điều chỉnh để phù hợp với các điều kiện thị trường khác nhau.


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

//@version=3
strategy(title = "14/28 SMA and RSI", shorttitle = "14/28 SMA and RSI", overlay = false, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.USD)
src = close, len = input(14, minval=1, title="Length")
take_Profit=input(8, title="Take Profit")
quantityPercentage=input(50, title="Percent of Quantity to Sell")
closeOverbought=input(true, title="Close Overbought and Take Profit")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
longCondition = 0
sellCondition = 0
takeProfit = 0
quantityRemainder = 100
smaSignal = input(14, title="SMA Signal Period")
smaLong = input(28, title="SMA Longer Period")
if ((sma(close, smaSignal) >= sma(close, smaLong) and rsi<= 30) or (rsi<=13)) and strategy.position_size==0
    longCondition:=1

if longCondition==1
    strategy.entry("Buy", strategy.long)
    
profit = ((close-strategy.position_avg_price)/strategy.position_avg_price) * 100

if sma(close, smaSignal) <= sma(close, smaLong) and strategy.position_size>1
    sellCondition := 1

if strategy.position_size>=1
    if closeOverbought == true
        if profit>=take_Profit and takeProfit == 0
            strategy.exit("Take Profit", profit=take_Profit, qty_percent=quantityPercentage)
            takeProfit:=1
            quantityRemainder:=100-quantityPercentage
    if sellCondition == 1 and quantityRemainder<100
        strategy.close("Buy")

    if closeOverbought == false and rsi>70
        strategy.close("Take Profit")
        
plot(longCondition, "Buy Condition", green)
plot(takeProfit, "Partial Sell Condition", orange)
plot(sellCondition, "Sell Condition", red)

Thêm nữa