Chiến lược giao dịch xu hướng đảo ngược tỷ lệ vàng

Tác giả:ChaoZhang, Ngày: 2023-12-07 11:03:20
Tags:

img

Tổng quan

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

Chiến lược logic

Các chỉ số cốt lõi của chiến lược này bao gồm các chỉ số kênh, đường trung bình động và các đường kích hoạt rút lui.

  1. Chỉ số kênh được tính từ mức cao nhất và thấp nhất để xác định kênh giá.
  2. Mức trung bình động được sử dụng để xác định hướng xu hướng chung của giá.
  3. Đường kích hoạt pullback sau đó mở các vị trí sau khi giá bật trở lại khỏi ranh giới kênh theo một tỷ lệ nhất định.

Khi giá chạm đáy kênh, chiến lược ghi lại điểm thấp nhất như một điểm tham chiếu và thiết lập tín hiệu bán. Khi giá tăng, một khi giá tăng đạt tỷ lệ pullback, các vị trí ngắn sẽ được mở xung quanh điểm hồi phục.

Ngược lại, khi giá đạt đến đỉnh của kênh, chiến lược ghi lại điểm cao nhất như một điểm tham chiếu và thiết lập cho phép tín hiệu mua. Khi giá giảm, nếu sự sụt giảm đáp ứng yêu cầu tỷ lệ pullback, các vị trí dài được mở xung quanh điểm đó.

Do đó, logic giao dịch của chiến lược này là theo dõi kênh giá và can thiệp vào xu hướng hiện có khi các tín hiệu đảo ngược xuất hiện.

Phân tích lợi thế

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

  1. Nó có thể hoạt động tốt trong các thị trường có xu hướng mạnh.
  2. Sự tích cực của việc tham gia giao dịch có thể được điều chỉnh thông qua tham số tỷ lệ pullback.
  3. Kiểm soát rút vốn hợp lý có thể hạn chế lỗ giao dịch đơn.

Đặc biệt, vì chiến lược chủ yếu mở các vị trí tại các điểm đảo ngược xu hướng, nó hoạt động tốt hơn ở các thị trường có biến động giá lớn hơn và xu hướng rõ ràng hơn. Ngoài ra, điều chỉnh tham số tỷ lệ pullback có thể kiểm soát mức độ tích cực của chiến lược để theo dõi xu hướng. Cuối cùng, dừng lỗ có thể kiểm soát lỗ giao dịch đơn rất tốt.

Phân tích rủi ro

Các rủi ro chính của chiến lược này cũng bao gồm:

  1. Chiến lược nhạy cảm với các đặc điểm xu hướng của các công cụ giao dịch.
  2. Cài đặt tỷ lệ pullback không chính xác có thể dẫn đến tính hung hăng hoặc bảo thủ quá mức.
  3. Thời gian giữ vị trí có thể quá dài, rủi ro qua đêm cần được chú ý.

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

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

  1. Chọn các công cụ giao dịch có đặc điểm xu hướng rõ ràng hơn.
  2. Điều chỉnh tham số tỷ lệ kéo trở lại để tìm kết hợp tham số tốt nhất.
  3. Đặt lợi nhuận ra khỏi để kiểm soát hợp lý thời gian giữ.

Kết luận

Chiến lược giao dịch xu hướng đảo ngược tỷ lệ vàng đánh giá xu hướng giá và tín hiệu pullback thông qua các chỉ số đơn giản, mở các vị trí để theo dõi xu hướng trong thị trường mạnh, và thuộc về một hệ thống xu hướng điển hình. Chiến lược này có không gian điều chỉnh tham số lớn, có thể thích nghi với nhiều môi trường thị trường hơn thông qua tối ưu hóa, và kiểm soát rủi ro cũng hợp lý. Do đó, đây là một ý tưởng chiến lược đáng được xác minh và cải thiện trong giao dịch trực tiếp.


/*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)


Thêm nữa