
Chiến lược này được gọi là “Chiến lược đảo ngược thứ ba ((chuyện lọc cuối tuần)) ” và ý tưởng chính là dựa trên đường trung bình và các điều kiện lọc khác, mua vào thứ hai khi đáp ứng điều kiện và bán vào thứ tư để nắm bắt sự đảo ngược của thứ ba. Chiến lược này lọc các chỉ số như RSI, ATR, loại trừ thời gian cụ thể như tháng 5 để tăng tỷ lệ chiến thắng chiến lược và tỷ lệ rủi ro lợi nhuận.
Chiến lược đảo chiều thứ ba ((chuyển đổi cuối tuần)) được đánh giá bằng sự kết hợp của các chỉ số như đường trung bình, RSI và ATR, mua và bán tại một thời điểm cụ thể, để nắm bắt xu hướng đảo chiều thứ ba. Chiến lược này có tần suất giao dịch thấp, chi phí xử lý nhỏ, và thông qua lọc thời gian và lọc chỉ số, chiến lược tăng tỷ lệ lợi nhuận và rủi ro. Tuy nhiên, chiến lược cũng có một số hạn chế và rủi ro, chẳng hạn như hoạt động không tốt trong điều kiện xu hướng, và mua bán và giữ vị trí định kỳ.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © muikol
//@version=5
strategy("Turnaround Tuesday", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.035)
// Inputs for MA period, filter_1, filter_2, month filter, and testing period
ma_period = input(30, title="Moving Average Period")
use_filter_1 = input(true, title="Use RSI Filter")
use_filter_2 = input(true, title="Use ATR Filter")
use_month_filter = input(true, title="Exclude May")
start_date = input(defval=timestamp("2009-01-01 00:00:00"), title="Start Backtest")
end_date = input(defval=timestamp("2025-01-01 00:00:00"), title="End Backtest")
// Data calculations
MA_tt = ta.sma(close, ma_period)
atr10 = ta.atr(10)
rsi3 = ta.rsi(close, 3)
c_1 = close[1]
// Entry conditions
isMonday = dayofweek == dayofweek.monday
bear = close[1] < MA_tt[1]
filter_1 = use_filter_1 ? rsi3[1] < 51 : true
filter_2 = use_filter_2 ? c_1/atr10[1] < 95 : true
notMay = use_month_filter ? month != 5 : true
entryCondition = isMonday and bear and notMay and filter_1 and filter_2
// Date check
inTestPeriod = true
// Exit conditions
isWednesdayOpen = dayofweek == dayofweek.wednesday
// Entry and exit triggers
if entryCondition and inTestPeriod
strategy.entry("Buy", strategy.long)
if isWednesdayOpen and strategy.position_size > 0 and inTestPeriod
strategy.close("Buy")
// Plot the moving average
plot(MA_tt, title="Moving Average", color=color.blue)