Chiến lược giao dịch xu hướng đảo ngược trung bình phần vàng


Ngày tạo: 2023-12-07 11:03:20 sửa đổi lần cuối: 2023-12-07 11:03:20
sao chép: 1 Số nhấp chuột: 636
1
tập trung vào
1619
Người theo dõi

Chiến lược giao dịch xu hướng đảo ngược trung bình phần vàng

Tổng quan

Chiến lược giao dịch xu hướng quay trở lại theo tỷ lệ vàng bằng cách sử dụng chỉ số kênh và đường trung bình di chuyển để xác định hướng xu hướng mạnh hơn, sau khi giá có một tỷ lệ điều chỉnh lại, bạn có thể mở vị trí theo hướng xu hướng. Chiến lược này phù hợp với thị trường có đặc điểm xu hướng mạnh và có thể hoạt động tốt hơn trong tình huống xu hướng.

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

Các chỉ số cốt lõi của chiến lược bao gồm các chỉ số kênh, đường trung bình di chuyển và đường kích hoạt quay trở lại.

  1. Chỉ số kênh bao gồm tính toán giá cao nhất và giá thấp nhất để xác định kênh giá;
  2. Đường trung bình di chuyển được sử dụng để đánh giá xu hướng chung của giá cả;
  3. Đường kích hoạt quay trở lại được sử dụng để mở vị trí sau khi giá bật trở lại một tỷ lệ nhất định từ biên giới kênh.

Khi giá chạm đáy của kênh, chiến lược sẽ ghi lại điểm thấp nhất là điểm tham chiếu và đặt dấu hiệu cho phép thực hiện lệnh giảm giá. Khi giá tăng, một khi mức tăng lên đạt tỷ lệ điều chỉnh, sẽ mở một vị trí trống gần điểm phục hồi.

Ngược lại, khi giá chạm đến đỉnh của kênh, chiến lược sẽ ghi lại điểm cao nhất làm điểm tham chiếu và thiết lập cho phép thực hiện nhiều dấu hiệu. Khi giá giảm, nếu mức giảm đạt yêu cầu tỷ lệ điều chỉnh, hãy mở nhiều vị trí gần điểm đó.

Do đó, logic giao dịch của chiến lược này là theo dõi kênh giá và chọn điểm thích hợp để can thiệp vào xu hướng hiện tại khi có tín hiệu đảo ngược. Đây là một cách thức phổ biến của chiến lược giao dịch điều chỉnh xu hướng.

Phân tích lợi thế

Chiến lược này có một số ưu điểm:

  1. Có thể đạt được hiệu suất tốt hơn trong một xu hướng mạnh mẽ;
  2. Độ nghiêm ngặt của chiến lược nhập cảnh có thể được điều chỉnh bằng các tham số tỷ lệ hồi quy;
  3. Kiểm soát rút tiền hợp lý có thể hạn chế tổn thất đơn lẻ

Cụ thể, vì chiến lược chủ yếu mở vị trí tại điểm đảo ngược xu hướng, nên nó có hiệu quả tốt hơn trong thị trường có biến động giá lớn và xu hướng rõ ràng. Ngoài ra, điều chỉnh tham số tỷ lệ điều chỉnh có thể kiểm soát mức độ quyết liệt của chiến lược theo dõi xu hướng. Cuối cùng, bằng cách dừng lỗ, bạn có thể kiểm soát tốt tổn thất đơn lẻ.

Phân tích rủi ro

Chiến lược này cũng có những rủi ro chính như:

  1. Chiến lược này nhạy cảm hơn với các đặc điểm xu hướng của các loại giao dịch.
  2. Thiết lập tỷ lệ điều chỉnh không đúng có thể dẫn đến quá cực đoan hoặc bảo thủ;
  3. Các nhà đầu tư có thể nắm giữ cổ phiếu quá lâu và cần lưu ý đến rủi ro qua đêm.

Cụ thể, nếu các loại giao dịch sử dụng chiến lược có xu hướng yếu và biến động ít hơn, hiệu quả có thể bị chiết khấu. Ngoài ra, việc thiết lập tỷ lệ điều chỉnh quá lớn hoặc quá nhỏ sẽ ảnh hưởng đến hiệu suất của chiến lược. Cuối cùng, vì chiến lược có thể có khoảng thời gian giữ vị trí dài, cũng cần chú ý đến việc kiểm soát rủi ro qua đêm.

Để tránh những rủi ro trên, bạn có thể xem xét tối ưu hóa các khía cạnh sau:

  1. Lựa chọn các loại giao dịch có đặc điểm xu hướng rõ ràng hơn;
  2. Điều chỉnh tỷ lệ điều chỉnh Parameter để tìm các tham số kết hợp tốt nhất;
  3. Cài đặt Exit Stop để kiểm soát hợp lý thời gian giữ.

Tóm tắt

Chiến lược giao dịch xu hướng quay trở về giá trị trung bình bằng cách phân chia vàng dựa trên các chỉ số đơn giản để xác định xu hướng giá và tín hiệu điều chỉnh lại, mở xu hướng theo dõi vị trí trong tình hình mạnh mẽ, thuộc hệ thống xu hướng điển hình hơn. Chiến lược này có nhiều khả năng tối ưu hóa thông số, có thể thích ứng với nhiều môi trường thị trường hơn bằng cách tối ưu hóa, và kiểm soát rủi ro cũng hợp lý hơn. Do đó, nó là một ý tưởng chiến lược tối ưu hóa đáng để thử nghiệm và cải tiến thực tế.

Mã nguồn chiến lược
/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//
// A port of the TradeStation EasyLanguage code for a mean-revision strategy described at
//     http://traders.com/Documentation/FEEDbk_docs/2017/01/TradersTips.html
//
// "In “Mean-Reversion Swing Trading,” which appeared in the December 2016 issue of STOCKS & COMMODITIES, author Ken Calhoun
//  describes a trading methodology where the trader attempts to enter an existing trend after there has been a pullback. 
//  He suggests looking for 50% pullbacks in strong trends and waiting for price to move back in the direction of the trend
//  before entering the trade."
//
//  See Also:
//    - 9 Mistakes Quants Make that Cause Backtests to Lie (https://blog.quantopian.com/9-mistakes-quants-make-that-cause-backtests-to-lie-by-tucker-balch-ph-d/)
//    - When Backtests Meet Reality (http://financial-hacker.com/Backtest.pdf)
//    - Why MT4 backtesting does not work (http://www.stevehopwoodforex.com/phpBB3/viewtopic.php?f=28&t=4020)
//
// 
// -----------------------------------------------------------------------------
// Copyright 2018 sherwind
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// The GNU General Public License can be found here
// <http://www.gnu.org/licenses/>.
//
// -----------------------------------------------------------------------------
//

strategy("Mean-Reversion Swing Trading Strategy v1", shorttitle="MRST Strategy v1", overlay=true)
channel_len  = input(defval=20, title="Channel Period", minval=1)
pullback_pct = input(defval=0.5, title="Percent Pull Back Trigger", minval=0.01, maxval=1, step=0.01)
trend_filter_len = input(defval=50, title="Trend MA Period", minval=1)


upper_band = highest(high, channel_len)
lower_band = lowest(low, channel_len)
trend      = sma(close, trend_filter_len)

low_ref  = 0.0
low_ref  :=  nz(low_ref[1])
high_ref = 0.0
high_ref := nz(high_ref[1])
long_ok  = false
long_ok  := nz(long_ok[1])
short_ok = false
short_ok := nz(short_ok[1])
long_ok2 = false
long_ok2  := nz(long_ok2[1])

if (low == lower_band)
    low_ref  := low
    long_ok  := false
    short_ok := true
    long_ok2 := false

if (high == upper_band)
    high_ref := high
    long_ok  := true
    short_ok := false
    long_ok2  := true

// Pull Back Level
trigger = long_ok2 ? high_ref - pullback_pct * (high_ref - low_ref) : low_ref + pullback_pct * (high_ref - low_ref)

plot(upper_band, title="Upper Band", color=long_ok2?green:red)
plot(lower_band, title="Lower Band", color=long_ok2?green:red)
plot(trigger, title="Trigger", color=purple)
plot(trend, title="Trend", color=orange)

enter_long = long_ok[1] and long_ok and crossover(close, trigger) and close > trend and strategy.position_size <= 0
enter_short = short_ok[1] and short_ok and crossunder(close, trigger) and close < trend and strategy.position_size >= 0

if (enter_long)
    long_ok := false
    strategy.entry("pullback-long", strategy.long, stop=close, comment="pullback-long")
else
    strategy.cancel("pullback-long")

if (enter_short)
	short_ok := false
    strategy.entry("pullback-short", strategy.short, stop=close, comment="pullback-short")
else
    strategy.cancel("pullback-short")

strategy.exit("exit-long", "pullback-long", limit=upper_band, stop=lower_band)
strategy.exit("exit-short", "pullback-short", limit=lower_band, stop=upper_band)