
Эта стратегия является стратегией короткого позиционирования на 3-минутные интервалы в индексе доллара США (ES). Она создает торговый сигнал путем вычисления серии индикаторов с подвижными средними, в сочетании с определенными формальными условиями.
Ключевым показателем этой стратегии является средний T3. Средний T3 сначала вычисляет группу показателей с перемещающимися средними x1 ~ x6, параметры T3, установленные пользователем на временных интервалах. Затем, с помощью определенного набора весовых коэффициентов, вычисляется среднее значение перемещающихся средних этих показателей, которое служит конечной средней T3.
Сигналы о покупке появляются, когда цена закрытия находится ниже средней линии T3; сигналы о продаже появляются, когда цена закрытия находится выше средней линии T3; кроме того, стратегия также рассматривает конкретные K-линейные формы в качестве вспомогательных условий для входных сигналов; указания на торговлю появляются только в том случае, если они соответствуют формным условиям и появляются одновременно с сигналом средней линии T3;
Самым большим преимуществом этой стратегии является многократная фильтрация и оптимизация параметров. С одной стороны, многократная фильтрация в сочетании с ценовыми и графическими показателями может уменьшить много шумных сделок. С другой стороны, ключевые параметры T3 и правила формового суждения могут быть оптимизированы, что позволяет скорректировать точность входа в рынок для разных рынков.
Кроме того, по сравнению с другими показателями, такими как простые движущиеся средние, сверхурочное сглаживание показателя T3 позволяет эффективно фильтровать рыночный шум и идентифицировать точки перехода в тренд. В то время как трехминутный цикл подходит для внутридневной торговли и позволяет быстро улавливать краткосрочные возможности.
Основные риски этой стратегии заключаются в неправильной оптимизации параметров и длительном времени удержания позиции. Если параметры T3 установлены слишком большими, то изменения показателей стратегии задерживаются; если они установлены слишком маленькими, то увеличивается вероятность шумной торговли. Кроме того, трехминутный цикл операций имеет большой риск потерь, если не будет своевременной остановки.
Для управления рисками, во-первых, необходимо провести многократные испытания для различных сортов и определить оптимальный диапазон параметров. Во-вторых, строго выполнять стратегию остановки убытков, своевременно останавливать убытки и контролировать единичные убытки в определенной пропорции.
Стратегия включает в себя следующие направления оптимизации:
Оптимизация параметров T3 для поиска оптимального диапазона параметров для различных торговых видов
Оптимизация логики суждения графических показателей, повышение точности распознавания формы
Методы оптимизации убытков, такие как увеличение просроченной потери и отслеживание потери
Добавление модуля управления средствами на основе доходности или максимального вывода
Входный модуль для добавления машинного обучения моделям для оценки
Поэтапное повышение устойчивости и прибыльности стратегии может быть достигнуто путем оптимизации в этих направлениях.
Эта стратегия является краткосрочной стратегией торговли в течение дня, имеет преимущества, такие как большое пространство для оптимизации показателей, многократная фильтрация и быстрая выручка. С помощью ряда методов оптимизации, таких как параметрическая оптимизация, стоп-лосс оптимизация и управление капиталом, ее можно адаптировать к эффективной стратегии, адаптированной к высокочастотным сделкам.
/*backtest
start: 2023-11-16 00:00:00
end: 2023-11-23 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("ES 3m Short Only (Triple RED)", overlay=true)
// Alert Message '{{strategy.order.alert_message}}'
//3min
T3 = input(150)//to 600
xPrice3 = close
xe1 = ta.ema(xPrice3, T3)
xe2 = ta.ema(xe1, T3)
xe3 = ta.ema(xe2, T3)
xe4 = ta.ema(xe3, T3)
xe5 = ta.ema(xe4, T3)
xe6 = ta.ema(xe5, T3)
b3 = 0.7
c1 = -b3*b3*b3
c2 = 3*b3*b3+3*b3*b3*b3
c3 = -6*b3*b3-3*b3-3*b3*b3*b3
c4 = 1+3*b3+b3*b3*b3+3*b3*b3
nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3
// Buy Signal - Price is below T3 Average
buySignal3 = xPrice3 < nT3Average
sellSignal3 = xPrice3 > nT3Average
//NinjaTrader Settings.
acct = "Sim101"
ticker = "ES 12-23"
qty = 1
takeProfitTicks = 4
stopLossTicks = 16
tickSize = 0.25
takeProfitShort = close - takeProfitTicks * tickSize
stopLossShort = close + stopLossTicks * tickSize
OCOMarketShort = '{ "alert": "OCO Market Short", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '", "qty": "' + str.tostring(qty) + '", "take_profit_price": "' + str.tostring(takeProfitShort) + '", "stop_price": "' + str.tostring(stopLossShort) + '", "tif": "DAY" }'
CloseAll = '{ "alert": "Close All", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '" }'
IsUp = close > open
IsDown = close < open
PatternPlot = IsDown[2] and IsDown[1] and IsDown and close[1] <= high[0] and close[1] > close[0] and low[1] > low[0] and high[2] > high[1] and low[2] <= low[1]
if (PatternPlot and sellSignal3)
strategy.entry('Short', strategy.short, alert_message=OCOMarketShort)
strategy.exit('Close Short', 'Short', profit=takeProfitTicks, loss=stopLossTicks, alert_message=CloseAll)
//plotshape(PatternPlot, title="Custom Pattern", style=shape.circle, location=location.abovebar, color=color.red, size=size.small)