
Chiến lược phá vỡ đường hai chiều là một chiến lược giao dịch định lượng điển hình hơn theo xu hướng. Chiến lược này được đánh giá bằng cách tính toán đường trung bình di chuyển đơn giản trong các chu kỳ khác nhau và thiết lập tín hiệu giao dịch như đường trung bình di chuyển giá. Chiến lược này sử dụng đường 20 ngày và đường 60 ngày làm tín hiệu giao dịch.
Lập luận cốt lõi của chiến lược đột phá hai chiều là:Sử dụng trung bình di chuyển trong các chu kỳ khác nhau để nắm bắt xu hướng giá và phát tín hiệu giao dịch khi giá vượt qua trung bình di chuyển。
Cụ thể, chiến lược này sử dụng đường trung bình di chuyển đơn giản 20 ngày và đường trung bình di chuyển đơn giản 60 ngày. Hai đường trung bình di chuyển có thể được coi là công cụ để nắm bắt xu hướng ngắn hạn và xu hướng trung hạn.
Quyết định trong mãta.crossoverVàta.crossunderĐể xác định xem giá có vượt qua hoặc giảm xuống một đường trung bình di chuyển nào không. Khi xảy ra sự phá vỡ, chỉ thị được đưa ra để tăng hoặc giảm.
Chiến lược phá vỡ hai đường đều có một số lợi thế:
Tuy nhiên, chiến lược phá vỡ hai đường thẳng cũng có một số rủi ro:
Chiến lược đột phá hai đường đều có thể được tối ưu hóa từ các chiều sau:
Chiến lược phá vỡ đường hai chiều là một chiến lược theo dõi xu hướng đơn giản và thực tế. Nó có thể nắm bắt hiệu quả xu hướng trung hạn và dài hạn, tránh sự nhiễu loạn của tiếng ồn thị trường ngắn hạn.
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 4h
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/
// © Astorhsu
//@version=5
strategy("Astor SMA20/60", overlay=true)
backtest_year = input(2018, title='backtest_year') //回測開始年分
backtest_month = input.int(01, title='backtest_month', minval=1, maxval=12) //回測開始月份
backtest_day = input.int(01, title='backtest_day', minval=1, maxval=31) //回測開始日期
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00) //回測開始的時間函數
//Indicators
sma10 = ta.sma(close,10)
sma20 = ta.sma(close,20)
sma60 = ta.sma(close,60)
plot(sma20, color=color.green, title="sma(20)")
plot(sma60, color=color.red, title="sma(60)")
//進場條件
// trend1 = sma60 > sma20 //假設目前趨勢為60>20
longCondition = ta.crossover(close, ta.sma(close, 20))
if (longCondition)
strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多")
shortCondition = ta.crossunder(close, ta.sma(close, 20))
if (shortCondition)
strategy.close("open long20",comment="跌破m20平倉", qty=1)
longCondition1 = ta.crossover(close, ta.sma(close, 60))
if (longCondition1)
strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多")
shortCondition1 = ta.crossunder(close, ta.sma(close, 60))
if (shortCondition1)
strategy.close("open long60",comment="跌破m60平倉", qty=1)
// longCondition2 = ta.crossover(close, ta.sma(close, 10))
// if (longCondition2)
// strategy.entry("open long10", strategy.long, qty=1, comment="站上m10做多")
// shortCondition2 = ta.crossunder(close, ta.sma(close, 10))
// if (shortCondition2)
// strategy.close("open long10",comment="跌破m10平倉", qty=1)