
Chiến lược này sử dụng đường cân bằng đầu tiên để thực hiện giao dịch cổ phiếu trong ngày, thuộc chiến lược giao dịch ngắn. Nó sử dụng kết hợp đường chuyển đổi, đường chuẩn và đường dẫn đầu của đường cân bằng đầu tiên để đánh giá tín hiệu mua và bán, và hỗ trợ theo dõi dừng lỗ bằng đường SAR đối lập, để thực hiện bảo vệ kép.
Đường cân bằng đầu tiên bao gồm đường chuyển đổi, đường viền, đường 1 và đường 2 trước. Đường chuyển đổi là giá trị trung bình của mức giá thấp nhất và mức giá cao nhất trong 9 ngày qua, phản ánh trạng thái cân bằng giá cổ phiếu trong một khoảng thời gian gần đây. Đường viền là giá trị trung bình của mức giá thấp nhất trong 26 ngày qua, đại diện cho trạng thái cân bằng trung bình và dài hạn.
Khi giá đóng cửa từ bên dưới phá vỡ đường cơ sở và cao hơn đường 2 trước, tạo ra tín hiệu mua. Khi giá đóng cửa từ phía trên phá vỡ đường cơ sở và thấp hơn đường 1 trước, tạo ra tín hiệu bán. SAR đường parabola được sử dụng để theo dõi dừng lỗ và phát ra tín hiệu dừng lỗ khi giá thấp hơn SAR.
Chiến lược này sử dụng sự kết hợp của đường cân bằng để đánh giá xu hướng tương lai của giá cổ phiếu và tính bền vững của xu hướng hiện tại, là một chiến lược theo dõi xu hướng điển hình. Khi có tín hiệu mua và bán, hãy theo xu hướng và giao dịch kịp thời. Trong khi đó, cơ chế dừng lỗ SAR cho phép lợi nhuận tránh sự gia tăng lỗ.
Đường cân bằng chứa thông tin về giá trong các chu kỳ khác nhau, có thể phản ánh sự thay đổi xu hướng trước, sử dụng phán đoán kết hợp để tăng độ chính xác. So với chỉ số đơn lẻ, có thể đánh giá chính xác hơn điểm mua và bán.
SAR có thể theo dõi các hoạt động của cổ phiếu một cách linh hoạt, để dừng lỗ. Kết hợp với đường cân bằng, nó có thể dừng lỗ kịp thời sau khi thu lợi nhuận, tránh sự gia tăng lỗ.
Chiến lược này chỉ có một số ít tham số, không phụ thuộc vào các chỉ số kỹ thuật phức tạp như phù hợp với đường cong, đơn giản, thực tế và dễ thực hiện. Các tham số mặc định có thể đạt được hiệu quả tốt.
Sử dụng biến động giá trong ngày để xác định điểm mua và bán, thuộc chiến lược giao dịch ngắn.
Theo dõi xu hướng mua và bán mang lại sự rút lui cao hơn. Cần thiết lập điểm dừng lỗ hợp lý để kiểm soát tổn thất đơn lẻ.
Trong trường hợp xung đột, tín hiệu từ đường cân bằng có thể thường xuyên, không mang lại lợi nhuận. Các tham số có thể được điều chỉnh thích hợp, lọc một số tín hiệu.
Các tham số đơn giản dễ bị tối ưu hóa quá mức, hiệu quả đĩa cứng có thể không tốt.
Hiệu quả liên quan đến lựa chọn cổ phiếu, nên chọn cổ phiếu có xu hướng rõ ràng để giao dịch, để chiến lược có hiệu quả tối đa.
Có thể kết hợp với các chỉ số khác như trung bình di chuyển để lọc ra một số tín hiệu không chắc chắn và tránh giao dịch ảo.
Các tham số của SAR có thể được điều chỉnh động theo mức độ biến động của thị trường, làm cho dừng lỗ linh hoạt hơn.
Có thể cải thiện hiệu quả của chiến lược bằng cách tối ưu hóa và thử nghiệm kết hợp có hệ thống hơn, tìm kiếm sự kết hợp tốt hơn của các tham số.
Có thể điều chỉnh chiến lược theo môi trường thị trường, như biến động của thị trường lớn, kiểm soát rủi ro.
Chiến lược này sử dụng tín hiệu mua và bán của đường cân bằng, kết hợp với đường SAR để thực hiện theo dõi dừng lỗ, là một chiến lược giao dịch đường ngắn đơn giản và thực tế. Sử dụng hiệu quả chức năng dự đoán xu hướng tương lai của đường cân bằng, thực hiện giao dịch mua và bán khi phá vỡ.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//
// Based on the trading strategy described at
// http://stockcharts.com/school/doku.php?id=chart_school:trading_strategies:ichimoku_cloud
//
// See Also:
// - Backtesting and forwardtesting (of TradingView Strategies) <https://www.tradingview.com/wiki/Strategies#Backtesting_and_forwardtesting>
// - 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(title="Ichimoku Cloud Strategy", shorttitle="Ichimoku Strategy", overlay=true, pyramiding=3)
conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")
usePSARTrailStop = input(true, title="Use Parabolic SAR for Trailing Stop")
psarStart = input(0.02, title="Parabolic SAR Start")
psarIncrement = input(0.02, title="Parabolic SAR Increment")
psarMaximum = input(0.2, title="Parabolic SAR Maximum")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
leadLineDisp1 = leadLine1[displacement]
leadLineDisp2 = leadLine2[displacement]
psar = sar(psarStart, psarIncrement, psarMaximum)
// BUY Signal:
// close > leading span b and
// leading span a > leading span b and
// close crosses over base line and
// close > parabolic sar
buySignal = close > leadLineDisp2 and
leadLineDisp1 > leadLineDisp2 and
crossover(close, baseLine) and
(usePSARTrailStop ? close > psar : not usePSARTrailStop)
// Sell Signal:
// close < leading span a and
// leading span a < leading span b and
// close crosses under base line and
// close < psar
sellSignal = close < leadLineDisp1 and
leadLineDisp1 < leadLineDisp2 and
crossunder(close, baseLine) and
(usePSARTrailStop ? close < psar : not usePSARTrailStop)
hasLong = strategy.position_size > 0
hasShort = strategy.position_size < 0
strategy.entry("ichimoku-long", strategy.long, when = buySignal)
strategy.entry("ichimoku-short", strategy.short, when = sellSignal)
strategy.exit("trailstop-long", "ichimoku-long", stop = psar, when = hasLong and usePSARTrailStop)
strategy.exit("trailstop-short", "ichimoku-short", stop = psar, when = hasShort and usePSARTrailStop)