
Стратегия по преодолению вчерашнего максимума - это стратегия отслеживания тенденций, которая открывает позиции с несколькими позициями при преодолении вчерашнего максимума, даже если в течение дня произошло несколько прорывов. Основной характеристикой стратегии является отслеживание тенденции, которая применяется в ситуациях, когда рынок демонстрирует явную тенденцию и высокую волатильность.
Эта стратегия включает в себя ряд индикаторов, позволяющих определить время входа и выхода из игры.
Фильтр кривой ROC - запускает стратегию, когда цена закрытия в тот же день по сравнению с ценой закрытия в предыдущий торговый день превышает установленный порог. Этот показатель используется для фильтрации волатильных рынков, не соответствующих стратегии.
Точка прорыва - записывает максимальную цену, минимальную цену и цену открытия дня. Это сигнал входа, когда цена превышает максимальную цену.
Условия входа и выхода - после входа устанавливается стоп-лосс и стоп-стоп-пропорции, а также можно включить слежение за стоп-лоссами для блокировки прибыли. Также можно установить условные стоп-лосса для конкретных EMA.
Оптимизированная конфигурация - может быть настроена пропорция промежутка до входа, чтобы настроить время входа, чтобы избежать ложного прорыва. Можно установить остановку, остановку, динамические параметры для отслеживания остановки.
В частности, стратегия определяет время входа, записывая наивысшую цену дня. Когда цена превышает наивысшую цену дня, вводятся несколько входов. После этого устанавливаются остановки и остановки, а также может быть включено отслеживание остановки.
Эта стратегия имеет следующие преимущества:
Следить за тенденциями и получать прибыль от них.
Взрывная тактика, входный сигнал ясен.
Подумайте о максимальной цене в день, чтобы избежать повторного заезда.
Настройка предохранителя от повреждений, помогающая контролировать риск.
Отслеживание стоп-лосс-настройки для блокировки прибыли.
Можно оптимизировать параметры, чтобы регулировать время входа в игру и контролировать риск.
Это просто, интуитивно и легко понятно.
Используется многопространственная двунаправленность.
Также существуют следующие риски:
Поскольку в этом случае вы не можете использовать стратегию прорыва, она может быть использована в качестве ловушки.
В то же время, по мнению экспертов, это не является эффективным методом оценки рисков, поскольку он не может быть использован для оценки рисков.
Необходимо разумно установить стоп-процент, слишком мягкий может увеличить убытки.
Необходимо разумно распределить входные промежутки, слишком радикальные могут увеличить убытки.
Фальшивые прорывы могут привести к ненужным потерям, требующим корректировки и оптимизации.
Необходимо обратить внимание на то, сможет ли прорыв поддерживать последующую тенденцию.
Необходимо обратить внимание на согласованность между параметрами различных временных циклов.
Эта стратегия может быть оптимизирована в следующих аспектах:
Добавление других технических показателей, таких как объем торговли, шоковый показатель и т. Д., Чтобы избежать попадания в шоковую ситуацию.
Повышение показателей кривой соответствия, чтобы оценить качество трендов и избежать ложных трендов.
Динамическая оптимизация входных интервалов, адаптация интервалов к рыночным колебаниям.
Динамическая оптимизация настройки стоп-стоп, в соответствии с параметрами рыночной корректировки
Различные параметры для различных видов различных циклов.
ТРАНИРОВАНИЕ, используя методы машинного обучения для тестирования влияния различных параметров на стратегию.
Добавление опций для оптимизации конфигурации.
Изучение применения этой стратегии в случае землетрясения.
Комбинированные стратегии для различных временных периодов и разновидностей.
Стратегия основана на идее отслеживания тенденции, которая превзошла вчерашние максимумы, и хорошо работает в трендовых ситуациях. Однако существуют также риски и проблемы оптимизации параметров.
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1h
basePeriod: 15m
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/
// Author: © tumiza 999
// © TheSocialCryptoClub
//@version=5
strategy("Yesterday's High v.17.07", overlay=true, pyramiding = 1,
initial_capital=10000,
default_qty_type=strategy.percent_of_equity, default_qty_value=10,
slippage=1, backtest_fill_limits_assumption=1, use_bar_magnifier=true,
commission_type=strategy.commission.percent, commission_value=0.075
)
// -----------------------------------------------------------------------------
// ROC Filter
// -----------------------------------------------------------------------------
// f_security function by LucF for PineCoders available here: https://www.tradingview.com/script/cyPWY96u-How-to-avoid-repainting-when-using-security-PineCoders-FAQ/
f_security(_sym, _res, _src, _rep) => request.security(_sym, _res, _src[not _rep and barstate.isrealtime ? 1 : 0])[_rep or barstate.isrealtime ? 0 : 1]
high_daily = f_security(syminfo.tickerid, "D", high, false)
roc_enable = input.bool(false, "", group="ROC Filter from CloseD", inline="roc")
roc_threshold = input.float(1, "Treshold", step=0.5, group="ROC Filter from CloseD", inline="roc")
closed = f_security(syminfo.tickerid,"1D",close, false)
roc_filter= roc_enable ? (close-closed)/closed*100 > roc_threshold : true
// -----------------------------------------------------------------------------
// Trigger Point
// -----------------------------------------------------------------------------
open_session = ta.change(time('D'))
price_session = ta.valuewhen(open_session, open, 0)
tf_session = timeframe.multiplier <= 60
bgcolor(open_session and tf_session ?color.new(color.blue,80):na, title = "Session")
first_bar = 0
if open_session
first_bar := bar_index
var max_today = 0.0
var min_today = 0.0
var high_daily1 = 0.0
var low_daily1 = 0.0
var today_open = 0.0
if first_bar
high_daily1 := max_today
low_daily1 := min_today
today_open := open
max_today := high
min_today := low
if high >= max_today
max_today := high
if low < min_today
min_today := low
same_day = today_open == today_open[1]
plot( timeframe.multiplier <= 240 and same_day ? high_daily1 : na, color= color.yellow , style=plot.style_linebr, linewidth=1, title='High line')
plot( timeframe.multiplier <= 240 and same_day ? low_daily1 : na, color= #E8000D , style=plot.style_linebr, linewidth=1, title='Low line')
// -----------------------------------------------------------------------------
// Strategy settings
// -----------------------------------------------------------------------------
Gap = input.float(1,"Gap%", step=0.5, tooltip="Gap di entrata su entry_price -n anticipa entrata, con +n posticipa entrata", group = "Entry")
Gap2 = (high_daily1 * Gap)/100
sl = input.float(3, "Stop-loss", step= 0.5, group = "Entry")
tp = input.float(9, "Take-profit", step= 0.5, group = "Entry")
stop_loss_price = strategy.position_avg_price * (1-sl/100)
take_price = strategy.position_avg_price * (1+tp/100)
sl_trl = input.float(2, "Trailing-stop", step = 0.5, tooltip = "Attiva trailing stop dopo che ha raggiunto...",group = "Trailing Stop Settings")//group = "Trailing Stop Settings")
Atrl= input.float(1, "Offset Trailing", step=0.5,tooltip = "Distanza dal prezzo", group = "Trailing Stop Settings")
stop_trl_price_cond = sl_trl * high/syminfo.mintick/100
stop_trl_price_offset_cond = Atrl * high/syminfo.mintick/100
stop_tick = sl * high/syminfo.mintick/100
profit_tick = tp * high/syminfo.mintick/100
mess_buy = "buy"
mess_sell = "sell"
// -----------------------------------------------------------------------------
// Entry - Exit - Close
// -----------------------------------------------------------------------------
if close < high_daily1 and roc_filter
strategy.entry("Entry", strategy.long, stop = high_daily1 + (Gap2), alert_message = mess_buy)
ts_n = input.bool(true, "Trailing-stop", tooltip = "Attiva o disattiva trailing-stop", group = "Trailing Stop Settings")
close_ema = input.bool(false, "Close EMA", tooltip = "Attiva o disattiva chiusura su EMA", group = "Trailing Stop Settings")
len1 = input.int(10, "EMA length", step=1, group = "Trailing Stop Settings")
ma1 = ta.ema(close, len1)
plot(ma1, title='EMA', color=color.new(color.yellow, 0))
if ts_n == true
strategy.exit("Trailing-Stop","Entry",loss= stop_tick, stop= stop_loss_price, limit= take_price, trail_points = stop_trl_price_cond, trail_offset = stop_trl_price_offset_cond, comment_loss="Stop-Loss!!",comment_profit ="CASH!!", comment_trailing = "TRL-Stop!!", alert_message = mess_sell)
else
strategy.exit("TP-SL", "Entry",loss= stop_tick, stop=stop_loss_price, limit= take_price, comment_loss= "Stop-loss!!!", comment_profit = "CASH!!", alert_message = mess_sell)
if close_ema == true and ta.crossunder(close,ma1)
strategy.close("Entry",comment = "Close" , alert_message = mess_sell)