Chiến lược giao dịch xu hướng Ruda Momentum

EMA OBV
Ngày tạo: 2024-04-03 15:16:47 sửa đổi lần cuối: 2024-04-03 15:16:47
sao chép: 0 Số nhấp chuột: 700
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch xu hướng Ruda Momentum

Tổng quan

Chiến lược giao dịch xu hướng động của Ruda là một chiến lược giao dịch định lượng dựa trên các chỉ số động lực và xu hướng. Chiến lược này sử dụng các chỉ số như OBV (trên khối lượng cân bằng), EMA (trung bình di chuyển theo cấp số nhân) và tỷ lệ thực thể K để xác định thời gian mua và bán.

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

  1. Tính hai đường EMA, tham số EMA ngắn hạn là 5 và tham số EMA dài hạn là 21. Khi EMA ngắn hạn được đeo trên EMA dài hạn, nó được coi là xu hướng lên, ngược lại là xu hướng xuống.
  2. Tính theo chỉ số OBV, khi OBV đạt mức cao nhất trong 10 ngày, được coi là hoạt động đa đầu mạnh mẽ.
  3. Tính toán tỷ lệ thực thể K-line, khi tỷ lệ thực thể lớn hơn so với ngưỡng thiết lập (bằng mặc định là 50%), cho rằng xu hướng được thiết lập.
  4. Khi xu hướng lên, đa chiều mạnh mẽ và xu hướng được thiết lập, chiến lược mua vào giá mở cửa vào ngày hôm sau, giá dừng là giá thấp nhất trong ngày và giá mở cửa tối thiểu là -1%.
  5. Chiến lược này được sử dụng khi giá phá giá dừng lỗ hoặc giá đóng cửa phá giá EMA ngắn hạn.

Phân tích lợi thế

  1. Kết hợp các chỉ số xu hướng và động lực, có thể bắt được các giống mạnh mẽ.
  2. Sử dụng giá mua và dừng động vào ngày hôm sau, bạn có thể tránh một số phá vỡ giả.
  3. Điều kiện dừng lỗ và dừng lại rõ ràng, rủi ro có thể kiểm soát được.

Phân tích rủi ro

  1. Các chỉ số xu hướng và động lực có sự chậm trễ, có thể xảy ra việc mua cao và dừng lỗ quá sớm.
  2. Các tham số là cố định, thiếu khả năng tự điều chỉnh, có thể có sự khác biệt lớn trong các tình trạng thị trường khác nhau.
  3. Thị trường duy nhất và thử nghiệm giống, sự ổn định và khả năng ứng dụng của chiến lược sẽ được xác minh thêm.

Hướng tối ưu hóa

  1. Tối ưu hóa các tham số của các chỉ số xu hướng và động lực, nâng cao độ nhạy và hiệu quả của các chỉ số.
  2. Tiếp theo, đưa ra các thông số điều chỉnh động lực dựa trên các đặc điểm thị trường hiện tại.
  3. Mở rộng phạm vi kiểm tra lại, tăng thử nghiệm cho các thị trường và giống khác nhau, cải thiện tính ổn định của chiến lược.
  4. Xem xét việc giới thiệu các mô-đun quản lý vị trí và kiểm soát rủi ro để tăng tỷ lệ rủi ro lợi nhuận.

Tóm tắt

Chiến lược giao dịch xu hướng động lượng Ruda là một chiến lược giao dịch định lượng đơn giản, dễ sử dụng, có thể nắm bắt các giống và cơ hội xu hướng mạnh mẽ thông qua sự kết hợp của xu hướng và chỉ số động lượng. Tuy nhiên, chiến lược này cũng có một số hạn chế, chẳng hạn như các vấn đề về đà chỉ số, cố định tham số. Trong tương lai, có thể tối ưu hóa và cải tiến chiến lược từ việc tối ưu hóa tham số chỉ số, giới thiệu cơ chế thích ứng, mở rộng phạm vi đo lường và tăng cường quản lý rủi ro để tăng cường sự ổn định và khả năng sinh lợi của chiến lược.

Mã nguồn chiến lược
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
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/
// © lhcbenac

//@version=5
strategy('Ruda_Strategy', overlay=true , initial_capital=5000 , pyramiding = 3, commission_type =  strategy.commission.cash_per_contract , commission_value =  1 )

//
// 
////////////////////////////////////////////////////////
//                                                    //
//                                                    //
//                    Otimizações                     //
//                                                    //
//                                                    //
////////////////////////////////////////////////////////
//
// 

////////////////////////////////////////////////////////
//                                                    //
//                                                    //
//                 Codigo Operacional                 //
//                                                    //
//                                                    //
////////////////////////////////////////////////////////
//
//
// Indica situação de Compra ou Venda

// Condição True or False 
YEAR_BT= input.int(1,title="Nº Anos ", group = "Backtest")

INPUT_ME1 = input.int(5,title="Momentum ", group = "RUDA")
INPUT_ME2 = input.int(21,title="Trend ", group = "RUDA")
INPUT_CORPO = input.int(50,title="CORPO ", group = "RUDA")/100



v_obv = ta.obv
v_med1 = ta.ema(close , INPUT_ME1)
v_med2 = ta.ema(close , INPUT_ME2)
valid_1 = v_med1 > v_med2 
valid_2 = v_obv >= ta.highest(v_obv[1], 10)
valid_3 = math.abs(close - open) / (high-low) > INPUT_CORPO
plot(v_med1)
plot(v_med2)

compra = valid_1 and valid_2 and  strategy.position_size == 0 and valid_3


var float v_minima_ref = na

dataInicio = timestamp(year(timenow) - YEAR_BT, month(timenow), dayofmonth(timenow), 00, 00)

// Variáveis globais
var float preco_entrada = na
var float preco_stop = na

if compra and time >= dataInicio and ta.change(time("D")) != 0 and ta.change(compra)  
    v_minima_ref := low
    preco_entrada := open
    preco_stop := math.min(low, open - 0.01 * open)
    strategy.entry("Compra", strategy.long , stop = preco_stop )
    if (not na(preco_entrada) and not na(preco_stop))
        label.new(x=bar_index, y= low * 0.9, text= "Dia: " + str.tostring(dayofmonth) + "\nPreço de Entrada: " + str.tostring(preco_entrada) + "\nPreço de Stop Loss: " + str.tostring(preco_stop), style=label.style_label_up, color=color.green)

    
    
// Lógica de saída
// Saída no stop loss
if (not na(preco_stop) and low < preco_stop and ta.change(low) < 0)
    strategy.close("Compra", comment="Saída no Stop")

// Saída no lucro
if (close < v_med1 and ta.change(close) < 0)
    strategy.close("Compra", comment="Saída na Media")

venda =( (not na(preco_stop) and low < preco_stop and ta.change(low) < 0) or (close < v_med1 and ta.change(close) < 0) ) and strategy.position_size > 0
codiff = compra ? 1 : venda ? -1 : na 
plotarrow(codiff, colorup=#00c3ff, colordown=#ff0062,title="Compra", maxheight=20, offset=0)