Chiến lược theo dõi xu hướng chênh lệch nhiều trung bình động


Ngày tạo: 2024-01-04 17:43:17 sửa đổi lần cuối: 2024-01-04 17:43:17
sao chép: 0 Số nhấp chuột: 630
1
tập trung vào
1619
Người theo dõi

Chiến lược theo dõi xu hướng chênh lệch nhiều trung bình động

Tổng quan

Chiến lược này dựa trên chênh lệch đa khung thời gian của đường trung bình, theo dõi xu hướng đường dài trung bình, áp dụng mô hình theo dõi vị trí vị trí chênh lệch, để đạt được sự tăng trưởng chỉ số của vốn. Ưu điểm lớn nhất của chiến lược là có thể nắm bắt xu hướng đường dài trung bình, theo dõi theo từng giai đoạn, do đó có thể thu được lợi nhuận dư thừa.

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

  1. Xây dựng nhiều khung thời gian dựa trên đường trung bình 9 ngày, đường trung bình 100 ngày và đường trung bình 200 ngày
  2. Một tín hiệu mua được tạo ra khi đường trung bình ngắn hạn phá vỡ đường trung bình dài hạn từ dưới lên.
  3. Sử dụng mô hình theo dõi vị trí chênh lệch 7 cấp, mỗi lần mở vị trí mới, hãy đánh giá xem vị trí trước đó đã đầy chưa, nếu đã có 6 vị trí, không tăng vị trí nữa.
  4. Mỗi vị trí đặt điểm dừng cố định là 3%, kiểm soát rủi ro.

Đây là logic giao dịch cơ bản của chiến lược này.

Lợi thế chiến lược

  1. Có thể nắm bắt được các xu hướng trung bình và dài hạn một cách hiệu quả và tận hưởng tối đa sự tăng trưởng theo chỉ số của thị trường.
  2. Sử dụng đường trung bình chu kỳ nhiều thời gian để phân cấp, có thể tránh hiệu quả bị nhiễu bởi tiếng ồn thị trường đường ngắn.
  3. Thiết lập điểm dừng cố định để kiểm soát rủi ro của mỗi vị trí.
  4. Sử dụng mô hình theo dõi chênh lệch cấp độ, xây dựng kho hàng loạt, có thể nắm bắt cơ hội xu hướng, thu được lợi nhuận vượt trội.

Rủi ro chiến lược và giải pháp

  1. Có nguy cơ bị chấm dứt. Nếu thị trường có xu hướng, không thể dừng lỗ rút ra kịp thời, có thể phải đối mặt với tổn thất lớn. Giải pháp là rút ngắn chu kỳ đường trung bình, tăng tốc độ dừng lỗ.
  2. Có rủi ro vị trí. Nếu sự cố bất ngờ dẫn đến tổn thất vượt quá phạm vi chịu đựng, sẽ phải đối mặt với rủi ro tiền bảo hiểm bổ sung hoặc phá vỡ vị trí. Giải pháp là giảm tỷ lệ vị trí ban đầu một cách thích hợp.
  3. Có nguy cơ thua lỗ quá lớn. Nếu thị trường giảm mạnh, chênh lệch xếp hạng sẽ quay trở lại, có thể thua lỗ lên đến 700%. Giải pháp là tăng tỷ lệ dừng cố định, tăng tốc độ dừng lỗ.

Hướng tối ưu hóa chiến lược

  1. Bạn có thể thử nghiệm các kết hợp trung bình của các tham số khác nhau để tìm các tham số tốt hơn.
  2. Số vị trí có thể tối ưu hóa để xây dựng kho. Kiểm tra các vị trí khác nhau để tìm ra giải pháp tối ưu nhất.
  3. Bạn có thể thử nghiệm các thiết lập dừng lỗ cố định. Lớn phạm vi dừng một cách thích hợp, theo đuổi lợi nhuận cao hơn.

Tóm tắt

Chiến lược này nói chung rất phù hợp để nắm bắt xu hướng đường dài trong thị trường, sử dụng phương pháp theo dõi theo giai đoạn theo từng đợt, có thể đạt được lợi nhuận vượt quá rủi ro. Ngoài ra, cũng có một số rủi ro hoạt động cần được kiểm soát bằng cách điều chỉnh các tham số, tìm sự cân bằng giữa lợi nhuận và rủi ro. Nói chung, chiến lược này rất đáng để kiểm tra thực tế, điều chỉnh tối ưu hóa hơn nữa dựa trên kết quả kiểm tra thực tế.

Mã nguồn chiến lược
/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
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='Pyramiding Entry On Early Trends',title='Pyramiding Entry On Early Trends (by Coinrule)', overlay=false, pyramiding= 7, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 20, 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()  => true       // create function "within window of time"
    
    
//MA inputs and calculations
inSignal=input(9, title='MAfast')
inlong1=input(100, title='MAslow')
inlong2=input(200, title='MAlong')
    
MAfast= sma(close, inSignal)
MAslow= sma(close, inlong1)
MAlong= sma(close, inlong2)
    
    
Bullish = crossover(close, MAfast) 
    
longsignal = (Bullish and MAfast > MAslow and MAslow < MAlong and window())
    
//set take profit
    
ProfitTarget_Percent = input(3)
Profit_Ticks = (close * (ProfitTarget_Percent / 100)) / syminfo.mintick
    
//set take profit
    
LossTarget_Percent = input(3)
Loss_Ticks = (close * (LossTarget_Percent / 100)) / syminfo.mintick
    
    
//Order Placing
    
strategy.entry("Entry 1", strategy.long, when = (strategy.opentrades == 0) and longsignal)
    
strategy.entry("Entry 2", strategy.long, when = (strategy.opentrades == 1) and longsignal)
        
strategy.entry("Entry 3", strategy.long, when = (strategy.opentrades == 2) and longsignal)
    
strategy.entry("Entry 4", strategy.long, when = (strategy.opentrades == 3) and longsignal)
    
strategy.entry("Entry 5", strategy.long, when = (strategy.opentrades == 4) and longsignal)
        
strategy.entry("Entry 6", strategy.long, when = (strategy.opentrades == 5) and longsignal)
        
strategy.entry("Entry 7", strategy.long, when = (strategy.opentrades == 6) and longsignal)
    
    
    
if (strategy.position_size > 0)
    strategy.exit(id="Exit 1", from_entry = "Entry 1", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 2", from_entry = "Entry 2", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 3", from_entry = "Entry 3", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 4", from_entry = "Entry 4", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 5", from_entry = "Entry 5", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 6", from_entry = "Entry 6", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 7", from_entry = "Entry 7", profit = Profit_Ticks, loss = Loss_Ticks)