Chiến lược mua thấp bán cao đơn giản


Ngày tạo: 2023-12-26 10:49:19 sửa đổi lần cuối: 2023-12-26 10:49:19
sao chép: 0 Số nhấp chuột: 829
1
tập trung vào
1623
Người theo dõi

Chiến lược mua thấp bán cao đơn giản

Tổng quan

Chiến lược mua thấp, bán cao là một chiến lược giao dịch dài hạn rất đơn giản nhưng hiệu quả. Chiến lược này tự động mua sau khi tiền điện tử giảm mạnh và bán khi tăng đạt mục tiêu được đặt ra, do đó thu được lợi nhuận khi thị trường biến động mạnh.

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

Cốt lõi của chiến lược này là đánh giá thị trường có giảm mạnh hay không bằng cách tính toán sự tăng giảm của đồng tiền điện tử trong một khoảng thời gian suy thoái nhất định. Chiến lược này sẽ tự động mua vào khi giá đồng tiền điện tử giảm mạnh hơn mức giảm giá được đặt trong một khoảng thời gian gần đây, cho thấy thị trường có thể đang trong tình trạng hoảng loạn cực độ. Ngoài ra, chiến lược này cũng đặt điểm dừng lỗ và điểm dừng, sẽ tự động dừng lỗ hoặc dừng lại khi giá chạm đến cả hai điểm này.

Cụ thể, chiến lược này sử dụng hàm trailing_change để tính toán sự thay đổi tổng thể của đồng tiền điện tử trong một khoảng thời gian hồi quy nhất định. Khi trong dòng K gốc inp_lkb gần đây, sự thay đổi của đồng tiền điện tử nhỏ hơn giá trị âm của tham số dip được đặt, thì đó là sự sụt giảm đáng kể phù hợp với điều kiện mua. Tại thời điểm này trong cửa sổ thời gian đo lường lại, sẽ kích hoạt hoạt giao dịch mua của chiến lược.

Sau khi mua và mở vị trí, chiến lược này sẽ theo dõi sự thay đổi giá trong thời gian thực, đặt hai điều kiện thoát: 1) Khi giá giảm xuống mức 1% của giá mở vị trí (1 - Stop Loss Ratio), sẽ kích hoạt lệnh dừng lỗ; 2) Khi giá phá vỡ mức 1% của giá mở vị trí (1 + Stop Loss Ratio), sẽ kích hoạt lệnh dừng lỗ.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là rất đơn giản và dễ thực hiện. Nó không yêu cầu các chỉ số kỹ thuật phức tạp, chỉ dựa vào sự thay đổi của thị trường trong thời gian gần đây, rất phù hợp với người mới bắt đầu giao dịch. Đồng thời, mua mua mua bán cũng là một chiến lược hiệu quả lâu dài, đặc biệt là trong thị trường biến động cao của tiền điện tử, chiến lược giao dịch đảo ngược như vậy có thể thu được lợi nhuận dài hạn đáng kể.

Ngoài ra, chiến lược này hỗ trợ các thiết lập dừng lỗ và dừng, có thể kiểm soát hiệu quả các tổn thất của các giao dịch cá nhân và khóa một phần lợi nhuận. Điều này cũng làm cho chiến lược này phù hợp với giao dịch trực tiếp, ngay cả khi thị trường có biến động bất lợi lớn, có thể kiểm soát tổn thất trong phạm vi khả thi.

Phân tích rủi ro

Rủi ro chính của chiến lược này là không thể xác định thời điểm thị trường đảo ngược. Nếu thị trường tiếp tục giảm và không phục hồi, thì vị trí mua có thể có tổn thất lớn. Do đó, thiết lập điểm dừng lỗ là rất quan trọng. Nếu thiết lập điểm dừng lỗ quá rộng, tổn thất đơn lẻ có thể rất lớn.

Một rủi ro khác cần lưu ý là giá có thể kích hoạt các điều kiện dừng hoặc dừng trong thời gian ngắn nếu có sự biến động mạnh mẽ. Điều này có thể dẫn đến chi phí giao dịch bổ sung.

Đối với các rủi ro trên, chúng ta có thể thiết lập thời gian lùi rộng hơn, đảm bảo tín hiệu mua ổn định và đáng tin cậy hơn, có thể lọc các tín hiệu giả trong một số biến động. Ngoài ra, thêm một khoảng thời gian giao dịch yên tĩnh, không mở vị trí mới trong một khoảng thời gian sau khi giảm vị trí, cũng có thể làm giảm hiệu quả các vấn đề về tần suất giao dịch quá cao do biến động giá.

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

Chiến lược này còn có thể được tối ưu hóa hơn nữa, chủ yếu tập trung vào các khía cạnh sau:

  1. Động thái điều chỉnh các tham số dừng lỗ. Bạn có thể điều chỉnh mức dừng lỗ và mức dừng lỗ theo động thái biến động của thị trường, đặt mức dừng lỗ thoải mái khi thị trường hoảng loạn và thắt chặt mức dừng lỗ khi thị trường tốt hơn.

  2. Kết hợp nhiều yếu tố để xác định thời điểm mua. Ngoài những biến động gần đây, các yếu tố khác như thay đổi khối lượng giao dịch có thể được đưa vào để xác định tín hiệu đảo ngược đáng tin cậy hơn.

  3. Tham gia vào cơ chế tái nhập. Sau khi dừng lỗ hoặc dừng, bạn có thể thiết lập một chiến lược tái nhập nhất định và mua lại khi có cơ hội đảo ngược mới.

Tóm tắt

Chiến lược này rất đơn giản, dễ hiểu và thực hiện, rất phù hợp với người mới bắt đầu giao dịch. Bằng cách tối ưu hóa hơn nữa, có thể đạt được hiệu suất chiến lược ổn định hơn. Nói chung, mua bán thấp là một chiến lược giao dịch dài hạn đáng được đề xuất.

Mã nguồn chiến lược
/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
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/
// © Coinrule

//@version=3
strategy(shorttitle='Buy the Dips',title='Buy the Dips (by Coinrule)', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,  title = "From Month")     
fromDay   = input(defval = 10,    title = "From Day")       
fromYear  = input(defval = 2020, title = "From Year")       
thruMonth = input(defval = 1,    title = "Thru Month")     
thruDay   = input(defval = 1,    title = "Thru Day")     
thruYear  = input(defval = 2112, title = "Thru Year")       

showDate  = input(defval = true, title = "Show Date Range")

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

inp_lkb = input(1, title='Lookback Period')
 
perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100

// Call the function    
overall = perc_change(inp_lkb)

//Entry

dip= -(input(2))

strategy.entry(id="long", long = true, when = overall< dip and window()) 

//Exit
Stop_loss= ((input (2))/100)
Take_profit= ((input (2))/100)

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())