
Высокочастотная торговая стратегия, основанная на EMA (индексная движущаяся средняя) скрещивания и подтверждения объема сделки. Эта стратегия в основном создает начальный сигнал покупки и продажи скрещиванием быстрого и медленного EMA и, подтверждая объем сделки, вносит обратный вход в уже существующий тренд. Эта стратегия разработана для легкого и эффективного использования в быстрых торговых условиях и особенно подходит для использования коротколинейными трейдерами на различных рынках.
Основная логика стратегии основана на комбинации показателей EMA и обесценения объема торгов в двух различных периодах:
Механизм определения тенденций:
Система входных сигналов:
Фреймворк управления рисками:
Подтверждение объема сделки:
После более глубокого анализа кода эта стратегия имеет следующие значительные преимущества:
Быстрое реагирование: использование EMA вместо SMA, более чувствительный к ценовым изменениям и более подходящий для быстрой торговли.
Снижение риска ложных сигналовВместе с механизмом подтверждения объема сделок, повышение качества сигналов повторного входа, эффективная фильтрация рынка шума.
Гибкое управление деньгамиПрименение метода управления позициями с использованием процентов доли прав в счете, автоматическая корректировка размера сделки, снижение рисков управления капиталом.
Многомерный контроль рискаПри использовании фиксированных стоп-стопов и стоп-стопов с отслеживанием убытков одновременно с целью получения прибыли и защитой уже прибыльной прибыли.
Механизм возобновления в рамках тренда: позволяет трейдеру, пропустив начальный сигнал, найти высоковероятную точку входа в течение тренда.
Визуализация торговых сигналовПовышение читабельности стратегий путем четкого отображения различных торговых сигналов с помощью различных форм и цветов знаков.
Автоматическая поддержкаВстроенные условия оповещения и форматы сообщений, удобный доступ к Webhook для автоматизации транзакций.
Несмотря на то, что стратегия была продуманной, она содержит следующие потенциальные риски:
Риск быстрого разворота: в высоко волатильных рынках, пересечение EMA может привести к задержке, что приводит к задержке входа или задержке срыва при обратном движении рынка.
Риски чрезмерной торговлиНапример, в случае, если рынок находится в состоянии колебаний, EMA может часто пересекаться, создавая избыточные торговые сигналы.
Риск потери фиксированных параметров: фиксированные циклы EMA и стоп-стоп могут не применяться во всех рыночных условиях.
Влияние необычных объемов торговВ зависимости от объема сделок подтверждение может быть недействительным в некоторых низколиквидных рынках или в период необычного объема сделок.
Одиночная зависимость от технических показателейСлишком большая зависимость от пересечения EMA может игнорировать другие важные рыночные сигналы.
На основе анализа кода эта стратегия может быть оптимизирована в следующих направлениях:
Механизм адаптации параметров:
Анализ многовременных рамок:
Высокоуровневые механизмы убытков:
Оптимизация входа:
Классификация состояния рынка:
Анализ объемов сделок:
Стратегия количественного торговли с высокой частотой подтверждения двойного индекса средней линейной величины - это хорошо разработанная система перекрестных ЭМА, которая улучшает качество сигнала посредством подтверждения объема торгов. Стратегия отлично работает в области отслеживания тенденций и сигналов повторного входа, а также обеспечивает более совершенное управление рисками с помощью фиксированных стопов и отслеживания стоп-убытков.
Наиболее заметной особенностью этой стратегии является двойственный механизм, объединяющий вход в начальную тенденцию и повторный вход в тренд, что позволяет трейдерам захватывать возможности получения прибыли от одной и той же тенденции в нескольких ценовых точках. В то же время, его легкая конструкция и встроенная система оповещения делают его идеальным для быстрой торговли и интеграции автоматизированных систем.
Однако, для достижения устойчивого эффекта в фактических сделках, эта стратегия также требует оптимизации параметров для различных рыночных условий, а также рассмотрения возможности включения адаптивных механизмов и подтверждения нескольких показателей. Особенно в высоко волатильных и поперечных рынках дополнительные фильтрующие условия помогут снизить риск ложных сигналов и переторгов.
В целом, это полнофункциональная, логически ясная стратегия торговли на коротких линиях, которая подходит для дальнейшей оптимизации и применения в практике опытными трейдерами.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-05-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDC"}]
*/
//@version=5
strategy("Crypto Scalping Strategy [Dubic]", overlay=true, default_qty_value=1)
// === Inputs ===
emaFastLength = input.int(14, "Fast EMA Length")
emaSlowLength = input.int(28, "Slow EMA Length")
volThreshold = input.float(1.0, "Volume Threshold (Multiplier of SMA Volume)")
trailStopPerc = input.float(0.01, "Trailing Stop Loss (%)", step=0.001) // 1%
fixedTPPerc = input.float(0.10, "Fixed Take Profit (%)", step=0.01) // 10%
// === Indicator Calculations ===
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
smaVol = ta.sma(volume, emaSlowLength)
// === Trend and Volume Conditions ===
bullishTrend = emaFast > emaSlow
bearishTrend = emaFast < emaSlow
volumeOK = volume > (smaVol * volThreshold)
// === Signal Conditions ===
initialBuy = ta.crossover(emaFast, emaSlow)
initialSell = ta.crossunder(emaFast, emaSlow)
reEntryBuy = bullishTrend and close > emaFast and volumeOK and not initialBuy
reEntrySell = bearishTrend and close < emaFast and volumeOK and not initialSell
// === Trade Entries ===
if (initialBuy)
strategy.entry("Buy", strategy.long)
if (initialSell)
strategy.entry("Sell", strategy.short)
if (reEntryBuy and strategy.opentrades == 0)
strategy.entry("ReBuy", strategy.long)
if (reEntrySell and strategy.opentrades == 0)
strategy.entry("ReSell", strategy.short)
// === Take Profit & Trailing Stop Loss ===
longTP = strategy.position_avg_price * (1 + fixedTPPerc)
shortTP = strategy.position_avg_price * (1 - fixedTPPerc)
if (strategy.position_size > 0)
strategy.exit("Exit Long", from_entry="", limit=longTP, trail_points=close * trailStopPerc / syminfo.mintick)
if (strategy.position_size < 0)
strategy.exit("Exit Short", from_entry="", limit=shortTP, trail_points=close * trailStopPerc / syminfo.mintick)
// === Plots ===
plot(emaFast, title="Fast EMA", color=color.yellow)
plot(emaSlow, title="Slow EMA", color=color.blue)
plotshape(initialBuy, title="Initial Buy", location=location.belowbar, style=shape.triangleup, color=color.green, size=size.small, text="Buy")
plotshape(initialSell, title="Initial Sell", location=location.abovebar, style=shape.triangledown, color=color.red, size=size.small, text="Sell")
plotshape(reEntryBuy, title="Re-Entry Buy", location=location.belowbar, style=shape.circle, color=color.lime, size=size.tiny, text="ReBuy")
plotshape(reEntrySell, title="Re-Entry Sell", location=location.abovebar, style=shape.circle, color=color.orange, size=size.tiny, text="ReSell")
// === Alerts – Webhook Compatible ===
alertcondition(initialBuy, title="Initial Buy Alert", message="BUY_SIGNAL | TYPE: Initial | TIME: {{time}} | PRICE: {{close}}")
alertcondition(initialSell, title="Initial Sell Alert", message="SELL_SIGNAL | TYPE: Initial | TIME: {{time}} | PRICE: {{close}}")
alertcondition(reEntryBuy, title="Re-Entry Buy Alert", message="BUY_SIGNAL | TYPE: ReEntry | TIME: {{time}} | PRICE: {{close}}")
alertcondition(reEntrySell, title="Re-Entry Sell Alert", message="SELL_SIGNAL | TYPE: ReEntry | TIME: {{time}} | PRICE: {{close}}")