
Taktik ini berlaku apabila selisih harga pada K-Line semasa lebih kecil daripada K-Line sebelumnya, menunjukkan bahawa pasaran sedang mengumpul atau ragu-ragu. Ini memberikan isyarat masuk yang mungkin apabila harga melangkaui ke atas atau ke bawah harga tertinggi atau terendah pada K-Line sebelumnya.
Strategi ini menggunakan indikator dan pembolehubah berikut:
Keputusan untuk masuk berdasarkan perbezaan harga Range dan penembusan harga teratas dan terendah K baris sebelumnya. Khususnya, apabila terdapat penembusan ke atas dan harga terendah K baris semasa lebih tinggi daripada kelembapan ke bawah, menghasilkan isyarat masuk multihead; apabila terdapat penembusan ke bawah dan harga teratas K baris semasa lebih rendah daripada kelembapan ke atas, menghasilkan isyarat masuk kosong.
Hentikan kerugian dengan menggunakan ATR kali ganda dengan perbezaan harga semasa. Hentikan kerugian dengan menggunakan ATR kali ganda dengan perbezaan harga semasa.
Strategi ini mempunyai kelebihan berikut:
Strategi ini juga mempunyai risiko:
Strategi ini boleh dioptimumkan dengan:
Menembusi strategi overlapping K-baris tinggi dan rendah, menggunakan persediaan keadaan pasaran dan prinsip penembusan, masuk apabila harga menembusi satu K-baris selisih harga sebelumnya. Menggabungkan tahap kecairan untuk mengelakkan risiko.
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
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/
// © ilikelyrics560
//@version=5
strategy("Inside Bar Range Breakout Strategy", overlay=true)
// Inputs
lookback = input.int(20, "Lookback Period", minval=1)
atrMult = input.float(1.5, "ATR Multiplier", step=0.1)
atrLen = input.int(14, "ATR Length", minval=1)
slMult = input.float(2, "Stop Loss Multiplier", step=0.1)
tpMult = input.float(3, "Take Profit Multiplier", step=0.1)
// Variables
atr = ta.atr(atrLen)
Range = high - low
insideBar = Range < Range[1]
breakoutUp = close > high[1]
breakoutDown = close < low[1]
liquidityUp = ta.highest(high, lookback)
liquidityDown = ta.lowest(low, lookback)
longEntry = breakoutUp and low > liquidityDown
shortEntry = breakoutDown and high < liquidityUp
longExit = close < low[1]
shortExit = close > high[1]
// Plotting
plot(liquidityUp, "Liquidity Up", color.new(color.green, 30), 1)
plot(liquidityDown, "Liquidity Down", color.new(color.red, 30), 1)
bgcolor(longEntry ? color.new(color.green, 30) : na, title="Long Entry")
bgcolor(shortEntry ? color.new(color.maroon, 30) : na, title="Short Entry")
// Trading
if (longEntry)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long", stop=low - slMult * atr, limit=high + tpMult * atr)
if (shortEntry)
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", "Short", stop=high + slMult * atr, limit=low - tpMult * atr)