Chiến lược này giao dịch dựa trên hình dạng của đường K xuất hiện cùng một mức cao thấp. Khi hình dạng hai đáy hoặc hai đỉnh của đường K xuất hiện trong một tuần, nó được sử dụng như một điều kiện kích hoạt tín hiệu giao dịch.
Các giao dịch được thực hiện theo các logic sau:
Xác định giá cao nhất của dòng K hiện tại hoặc dòng K trước bằng giá cao nhất của hai dòng K trước
Xác định giá thấp nhất của dòng K hiện tại hoặc dòng K trước là bằng hai dòng K trước giá thấp nhất
Khi hình thức hai đáy xuất hiện, làm nhiều hơn khi giá phá vỡ điểm thấp
Khi hình dạng hai đỉnh xuất hiện, khi giá phá vỡ điểm cao thì trống rỗng
Điểm dừng là gần điểm phá vỡ, điểm dừng là ATR nhân với hệ số
Chiến lược này cố gắng nắm bắt cơ hội hoạt động của xu hướng sau khi giá phá vỡ mức thấp cao cùng cấp. Kiểm soát rủi ro bằng chiến lược dừng lỗ.
Dấu hiệu đột phá rõ ràng
ATR Stop Stop có thể theo dõi xu hướng
Quy tắc đơn giản, rõ ràng, rủi ro có thể kiểm soát được
Sự hình thành cao thấp đồng cấp ít phổ biến
Điểm dừng quá gần, có nguy cơ bị dừng
Cần chú ý đến thiết lập tham số ATR
Chiến lược này được sử dụng để giao dịch xu hướng bằng cách nắm bắt các cơ hội phá vỡ cùng cấp. Tuy nhiên, cần chú ý đến việc thiết lập chiến lược dừng lỗ và tần suất giao dịch.
/*backtest
start: 2023-09-06 00:00:00
end: 2023-09-13 00:00:00
period: 10m
basePeriod: 1m
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/
// © cherepanovvsb
//@version=5
strategy("SHL", overlay=true, margin_long=100, margin_short=100,initial_capital=100,default_qty_type = strategy.cash,default_qty_value =40,commission_type = strategy.commission.percent,commission_value =0.04,currency="EUR", process_orders_on_close=true)
atr = input.int(title="ATR length for abnormal candles", defval=5)
plotshape(low == low[1], style=shape.triangleup, location=location.belowbar, color=color.blue, title="1 Setup")
plotshape(high==high[1], style=shape.triangledown, location=location.abovebar, color=color.blue, title="1 Setup")
plotshape(low == low[1] and low[1]==low[2], style=shape.triangleup, location=location.belowbar, color=color.red, title="Triple Setup")
plotshape(low==high[1] or low==high[2] or low==high[3] or low==high[4] or low==high[5] or low==high[6], style=shape.triangleup, location=location.belowbar, color=color.green, title="Mirror Setup")
plotshape(high==low[1] or high==low[2] or high==low[3] or high==low[4] or high==low[5] or high==low[6], style=shape.triangledown, location=location.abovebar, color=color.green, title="Mirror Setup")
barcolor(high-low>2*ta.atr(atr)? color.yellow:na)
ATRlenght = input.int(title="ATR length for take profit", defval=14, group="Strategy Settings")
rewardMultiplier= input.int(title="ATR multiplier", defval=5, group="Strategy Settings")
// Get ATR
atr1 = ta.atr(ATRlenght)
validlow = low[1] == low[2] and not na(atr1)
validhigh = high[1]==high[2] and not na(atr1)
validlong = validlow and strategy.position_size == 0 and low[1]<low
validshort = validhigh and strategy.position_size == 0 and high[1]>high
// Calculate Entrance, SL/TP
longStopPrice = low[1]-syminfo.mintick
longStopDistance = close - longStopPrice
longTargetPrice = close + (longStopDistance * rewardMultiplier)
shortStopPrice = high[1]+syminfo.mintick
shortStopDistance = shortStopPrice - close
shortTargetPrice = close - (shortStopDistance * rewardMultiplier)
var tradeStopPrice = 0.0
var tradeTargetPrice = 0.0
if validlong
tradeStopPrice := longStopPrice
tradeTargetPrice := longTargetPrice
if validshort
tradeStopPrice := shortStopPrice
tradeTargetPrice := shortTargetPrice
strategy.entry ("Long", strategy.long,1, when=validlong)
strategy.entry ("Short", strategy.short,1, when=validshort)
strategy.exit(id="Long Exit", from_entry="Long", limit=tradeTargetPrice, stop=tradeStopPrice, when=strategy.position_size > 0)
strategy.exit(id="Short Exit", from_entry="Short", limit=tradeTargetPrice, stop=tradeStopPrice, when=strategy.position_size < 0)
plot(strategy.position_size != 0 or validlong or validshort ? tradeStopPrice : na, title="Trade Stop Price", color=color.red, style=plot.style_linebr, transp=0)
plot(strategy.position_size != 0 or validlong or validshort ? tradeTargetPrice : na, title="Trade Target Price", color=color.green, style=plot.style_linebr, transp=0)