
Открытие позиции с высоким котировкой и низким всасыванием - это стратегия торговли, основанная на тенденции. Эта стратегия определяет отношение между ценой открытия и ценой закрытия линии K, идентифицирует направление краткосрочного тренда цены, создает позиции для увеличения котировок при начале тренда, чтобы быстро выйти на рынок и следить за тенденцией.
Эта стратегия основана на определении величины отношений между ценой открытия и ценой закрытия линии K. При открытии ценой равняется минимальной цене, она создает многозначный сигнал. При открытии ценой равняется максимальной цене, она создает пустой сигнал. Таким образом, можно улавливать краткосрочные прорывы цены и отслеживать тенденцию.
После входа в сигнал, будет немедленно использовать фиксированное количество, чтобы открыть позицию и создать позицию. Stop-loss будет ссылаться на настройку ATR-индикатора, отслеживая рыночные колебания.
Стратегия также позволяет ликвидировать все позиции в установленные пользователем моменты времени, например, за полчаса до закрытия рынка США, чтобы предотвратить риск значительных колебаний в течение ночи.
Эта стратегия имеет следующие преимущества:
Используя отношения между ценой открытия и ценой закрытия для определения направления тенденции, можно быстро идентифицировать краткосрочные прорывы в цене.
Входные знаки простые, четкие и легко реализуемые.
Своевременные остановки и остановки могут блокировать прибыль и предотвращать увеличение убытков.
Обязательное закрытие позиций в определенный период времени позволяет избежать риска ночных колебаний.
Нет необходимости выбирать конкретный вид сделки, применяемый для рынков, таких как валютный рынок, фондовый рынок, криптовалюты.
Однако эта стратегия также несет в себе некоторые риски:
При использовании ATR-останавливается часто при шокирующих событиях.
Существует вероятность сверхприспособления, не учитывая особенности вида и периода торговли.
Фиксированные цели по сдерживанию могут не совпадать с рыночными условиями и не обеспечивать устойчивую прибыль.
Принудительное затягивание позиции может привести к упущённому тренду или дополнительным убыткам.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизация методов остановки убытков, использование остановочных убытков в условиях тренда, использование привязанных убытков в условиях шока и т. д.
Добавление фильтрационных условий, в сочетании с индикаторами тренда и т. д. определяет момент входа, чтобы избежать ложного прорыва.
Динамически корректируйте положение остановки, чтобы определить разумную дистанцию остановки в зависимости от степени волатильности рынка.
Оптимизация сроков погашения, выбор подходящих сроков погашения для различных типов торгов и регионов.
Открытие позиции, закрытие позиции, низкая еда, одна торговая стратегия для быстрого создания позиций путем простого определения краткосрочных тенденций цены. Она обладает ясными преимуществами простого входа, остановки и остановки убытков. Но также существуют некоторые аспекты, которые можно оптимизировать, такие как метод остановки убытков, сигналы фильтрации и т. Д. Благодаря постоянному тестированию и оптимизации параметры стратегии могут быть адаптированы к более широким рыночным условиям, имеют более сильную адаптивность и прибыльность.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// Open-High-Low strategy
strategy('Strategy: OLH', shorttitle="OLH", overlay=true)
// Inputs
slAtrLen = input.int(defval=14, title="ATR Period for placing SL", group="StopLoss settings")
showSLLines = input.bool(defval=false, title="Show SL lines in chart", tooltip="Show SL lines also as dotted lines in chart. Note: chart may look untidy.", group="Stolploss settings")
// Trade related
rrRatio = input.float(title='Risk:Reward', step=0.1, defval=2.0, group="Trade settings")
endOfDay = input.int(defval=1500, title="Close all trades, default is 3:00 PM, 1500 hours (integer)", group="Trade settings")
mktAlwaysOn = input.bool(defval=true, title="Markets that never closed (Crypto, Forex, Commodity)", tooltip="Some markers never closes. For those cases, make this checked.", group="Trade settings")
lotSize = input.int(title='Lot Size', step=1, defval=1, group="Trade settings")
// Utils
green(open, close) => close > open ? true : false
red(open, close) => close < open ? true : false
body(open, close) => math.abs(open - close)
lowerwick = green(open, close) ? open - low : close - low
upperwick = green(open, close) ? high - close : high - open
crange = high - low
crangep = high[1] - low[1] // previous candle's candle-range
bullish = close > open ? true : false
bearish = close < open ? true : false
// Trade signals
longCond = barstate.isconfirmed and (open == low)
shortCond = barstate.isconfirmed and (open == high)
// For SL calculation
atr = ta.atr(slAtrLen)
highestHigh = ta.highest(high, 7)
lowestLow = ta.lowest(low, 7)
longStop = showSLLines ? lowestLow - (atr * 1) : na
shortStop = showSLLines ? highestHigh + (atr * 1) : na
plot(longStop, title="Buy SL", color=color.green, style=plot.style_cross)
plot(shortStop, title="Sell SL", color=color.red, style=plot.style_cross)
// Trade execute
h = hour(time('1'), syminfo.timezone)
m = minute(time('1'), syminfo.timezone)
hourVal = h * 100 + m
totalTrades = strategy.opentrades + strategy.closedtrades
if (mktAlwaysOn or (hourVal < endOfDay))
// Entry
var float sl = na
var float target = na
if (longCond)
strategy.entry("enter long", strategy.long, lotSize, limit=na, stop=na, comment="Enter Long")
sl := longStop
target := close + ((close - longStop) * rrRatio)
alert('Buy:' + syminfo.ticker + ' ,SL:' + str.tostring(math.floor(sl)) + ', Target:' + str.tostring(target), alert.freq_once_per_bar)
if (shortCond)
strategy.entry("enter short", strategy.short, lotSize, limit=na, stop=na, comment="Enter Short")
sl := shortStop
target := close - ((shortStop - close) * rrRatio)
alert('Sell:' + syminfo.ticker + ' ,SL:' + str.tostring(math.floor(sl)) + ', Target:' + str.tostring(target), alert.freq_once_per_bar)
// Exit: target or SL
if ((close >= target) or (close <= sl))
strategy.close("enter long", comment=close < sl ? "Long SL hit" : "Long target hit")
if ((close <= target) or (close >= sl))
strategy.close("enter short", comment=close > sl ? "Short SL hit" : "Short target hit")
else if (not mktAlwaysOn)
// Close all open position at the end if Day
strategy.close_all(comment = "Close all entries at end of day.")