
突破重複K線高低戦略は,重複K線形状に基づいて取引決定を行う価格行動戦略である.この戦略は,現在のK線が前K線より小さい値差の範囲にある場合に発生し,市場が蓄積的に整理されているか,または不決心を示している.価格が上方または下に突破して前K線の最高価格または最低価格を破るとき,これは可能な入場シグナルを提供します.
この戦略は以下の指標と変数を用いる.
入場決定は,価格差のRangeと前K線最高最低価格の突破に基づいています.具体的には,上方突破が発生し,現在のK線最低価格が下方流動性よりも高い場合,多頭入場信号が生成されます.下方突破が発生し,現在のK線最高価格が上方流動性よりも低い場合,空頭入場信号が生成されます.
止損はATRの倍数で現在の差値で止損する.止損はATRの倍数で現在の差値で止まる.
この戦略の利点は以下の通りです.
この戦略には以下のリスクもあります.
この戦略は以下の点で最適化できます.
突破重叠K線高低位戦略,市場勢力の準備と突破原理を利用し,価格がK線価格差の1本目の範囲を突破したときに参入する.流動性の位を組み合わせて,被套リスクを回避する.止損ストップを合理的に設定し,突破した後に順調に稼働して利益目標を達成する.この戦略は,中間期間に優れた取引パフォーマンスを得る見通しがある.パラメータ最適化とフィルター条件の最適化により,戦略の優位性をさらに拡大し,システムの安定性を高める.
/*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)