Chiến lược giao dịch Robot BTC Multi-level Batch Take Profit

Tác giả:ChaoZhang, Ngày: 2023-10-18 11:12:39
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch robot lấy lợi nhuận BTC đa cấp. Nó nhập vào các vị trí dài bằng cách tìm điểm thấp nhất và thiết lập nhiều điểm lấy lợi nhuận cho việc thoát hàng loạt. Nó cũng thiết lập điểm dừng lỗ để kiểm soát rủi ro. Chiến lược này phù hợp khi tăng trên BTC.

Chiến lược logic

  1. Tìm tín hiệu nhập cảnh: Tạo tín hiệu mua khi chỉ số CC vượt dưới 0. Mua các vị trí dài tại thời điểm này.

  2. Thiết lập stop loss: Thiết lập tỷ lệ stop loss thông qua đầu vào, chuyển đổi sang mức giá cho stop loss.

  3. Đặt nhiều điểm lợi nhuận: 4 điểm thoát, đặt tỷ lệ lợi nhuận cho mỗi điểm thông qua đầu vào, chuyển đổi thành mức giá.

  4. Kiểm soát rủi ro: Đặt kích thước vị trí tối đa, đặt tỷ lệ thoát cho mỗi điểm thoát thông qua đầu vào để phân tán rủi ro.

Phân tích lợi thế

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

  1. Tín hiệu đầu vào đáng tin cậy bằng cách mua ở điểm thấp nhất, tránh mua ở mức cao nhất.

  2. Nhiều cấp độ lấy lợi nhuận khóa trong lợi nhuận một phần trong khi giữ một số lợi nhuận chạy.

  3. Dừng lỗ kiểm soát rủi ro và hạn chế lỗ đến một phạm vi nhất định.

  4. Việc thoát hàng loạt làm phân tán rủi ro, tránh mất mát hoàn toàn cùng một lúc.

  5. Việc rút tiền có thể được kiểm soát một cách nhất định.

Phân tích rủi ro

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

  1. Chỉ số CC không thể đảm bảo hoàn toàn điểm thấp nhất, có thể bỏ lỡ cơ hội mua.

  2. Cài đặt stop loss không chính xác có thể gây ra stop loss không cần thiết.

  3. Việc ra khỏi lô không đúng cũng có thể dẫn đến mất lợi nhuận.

  4. Lấy lợi nhuận là khó khăn hơn trong các thị trường khác nhau.

  5. Có thể khó ngăn chặn sự mất mát trong những sự đảo ngược đột ngột.

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

Tối ưu hóa tiềm năng:

  1. Tối ưu hóa các tín hiệu đầu vào với nhiều chỉ số hơn hoặc học máy để có thời gian tốt hơn.

  2. Tối ưu hóa chiến lược dừng lỗ để làm cho nó đàn hồi hơn đối với các chuyển động của thị trường.

  3. Tối ưu hóa lối ra để thích nghi tốt hơn trong các thị trường dao động và xu hướng.

  4. Thêm các điểm dừng lại để có lợi nhuận linh hoạt hơn.

  5. Kiểm tra các tài sản khác nhau cho các bộ tham số tốt nhất.

Kết luận

Tóm lại, đây là một chiến lược giao dịch BTC dựa trên việc mua tại các điểm thấp nhất với nhiều mức độ lấy lợi nhuận và dừng lỗ. Nó có một số ưu điểm nhất định và cũng có những lĩnh vực có thể được cải thiện. Việc tối ưu hóa hơn nữa về kiểm soát rút và lấy lợi nhuận có thể làm cho chiến lược hoạt động tốt hơn.


/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_1",2]]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RafaelZioni


// © theCrypster 2020

//@version=4
// strategy(title = "BTC bot", overlay = true, pyramiding=1,initial_capital = 10000, 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.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
//INPUTS
higherTF = input("W", type=input.resolution)
pc = security(syminfo.tickerid, higherTF, close[1], lookahead=true)
ph = security(syminfo.tickerid, higherTF, high[1], lookahead=true)
pl = security(syminfo.tickerid, higherTF, low[1], lookahead=true)

PP = 0.0,R1 = 0.0, R2 = 0.0, R3 = 0.0,S1 = 0.0, S2 = 0.0, S3 = 0.0

PP := (ph + pl + pc) / 3
R1 := PP     + (PP   - pl)
S1 := PP     - (ph - PP)
R2 := PP     + (ph - pl)
S2 := PP     - (ph - pl)
factor=input(2)
R3 := ph  + factor * (PP   - pl) 
S3 := pl   - 2 * (ph - PP) 

// 
length=input(21)
//
p = close
vrsi = rsi(p, length)
pp=ema(vrsi,length)
d=(vrsi-pp)*5
cc=(vrsi+d+pp)/2
//
low1=crossover(cc,0)

sell=crossover(close[1],R3) 
//
l = low1
s=sell
if l 
    strategy.entry("buy", strategy.long)
if s 
    strategy.entry("sell", strategy.short)
per(pcnt) =>
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=15, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=3, minval=0.01)
tp2=input(title=" Take profit2", defval=5, minval=0.01)
tp3=input(title=" Take profit3", defval=7, minval=0.01)
tp4=input(title=" Take profit4", defval=10, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


Thêm nữa