
Chiến lược này là một chiến lược giao dịch robot BTC với nhiều mức dừng hàng loạt. Nó thực hiện mua vào bằng cách tìm kiếm điểm thấp nhất, sau đó thiết lập điểm dừng hàng loạt để thực hiện thoát hàng loạt. Đồng thời thiết lập điểm dừng lỗ để kiểm soát rủi ro.
Tìm thời điểm vào: Một tín hiệu mua được tạo ra khi đường CC đi qua 0 và mua nhiều lệnh tại thời điểm đó.
Cài đặt điểm dừng lỗ: Cài đặt phần trăm dừng lỗ đầu vào, chuyển đổi thành giá.
Thiết lập điểm dừng nhiều cấp: chia thành 4 điểm xuất phát, bằng cách nhập phần trăm dừng của mỗi điểm xuất phát, chuyển đổi thành giá.
Kiểm soát rủi ro: thiết lập số lượng nắm giữ tối đa, phân tán rủi ro bằng cách thiết lập phần trăm số lượng ra của mỗi điểm ra vào.
Chiến lược này có những lợi thế sau:
Tín hiệu mua vào là đáng tin cậy hơn, tìm mua ở điểm thấp nhất và tránh mua ở điểm cao.
Multi-level stop-loss có thể khóa một phần lợi nhuận, trong khi vẫn giữ một phần lợi nhuận để tiếp tục hoạt động.
Thiết lập điểm dừng để kiểm soát rủi ro, có thể kiểm soát tổn thất trong một phạm vi nhất định.
Việc tham gia một loạt có thể phân tán rủi ro, tránh mất mát toàn bộ một lần.
Việc rút lui có thể được kiểm soát ở một mức độ nào đó.
Chiến lược này cũng có những rủi ro sau:
Chỉ số CC không thể xác định được 100% điểm thấp nhất, có thể bỏ lỡ cơ hội mua.
Thiết lập điểm dừng không đúng có thể gây ra các điểm dừng không cần thiết.
Việc đặt ra một loạt trò chơi không đúng cách cũng có thể gây thiệt hại cho lợi nhuận.
Những người dân địa phương nói rằng những cơn động đất gây ra nhiều thiệt hại.
Những người này có thể sẽ không dừng lại khi tình hình thay đổi.
Có thể tối ưu hóa theo các khía cạnh sau:
Tối ưu hóa tín hiệu mua vào, thêm các chỉ số hoặc phán đoán học máy để xác định thời điểm mua.
Tối ưu hóa chiến lược dừng lỗ, làm cho nó linh hoạt hơn và có thể đối phó tốt hơn với tình hình.
Các chiến lược ra sân được tối ưu hóa để có thể thích ứng tốt hơn với các biến động và xu hướng.
Thêm các chiến lược như trailing stop để làm cho các quầy dừng trở nên linh hoạt hơn.
Kiểm tra các thiết lập tham số của các giống khác nhau để tìm ra sự kết hợp tham số tốt nhất.
Chiến lược này nói chung là một chiến lược giao dịch BTC dựa trên việc tìm kiếm tín hiệu mua điểm thấp nhất và thiết lập nhiều mức dừng và dừng. Nó có một số lợi thế, nhưng cũng có những hướng có thể được tối ưu hóa. Bằng cách tối ưu hóa hơn nữa, chiến lược có thể làm tốt hơn về kiểm soát rút lui và dừng.
/*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)