
Стратегия хранения количественного переворота с пересечением равновесия является основанной на правилах системой отслеживания тенденций, основанной на 21-циклической скользящей средней ((21 EMA)). Стратегия отслеживает отношение цены к 21 EMA, делая выигрыш, когда цена пересекает линию равновесия вверх, делает выигрыш, когда она пересекает линию равновесия вниз, и делает выигрыш, когда цена снова пересекает линию равновесия и открывает позицию в обратном направлении. Стратегия также включает в себя настройки превышения торговых периодов, ограничение максимального количества сделок в день, а также механизмы контроля риска, такие как автоматическое блокирование сделок после первой прибыли, чтобы обеспечить дисциплинированную и логически чёткую торговую систему.
Ключевым принципом стратегии является захват динамических изменений цен вокруг 21 EMA, для достижения трендового сопровождения и обратной торговли.
Также в стратегию включены средние цены с перевесом по объему сделки (VWAP) в качестве вспомогательного эталонного показателя, предоставляющего дополнительную информацию о рынке.
Эти направления оптимизации направлены на повышение устойчивости и адаптивности стратегий, уменьшение ложных сигналов и повышение рентабельности.
Стратегия количественного трейдинга с переворотом движения по пересеченной средней линии является системой отслеживания тенденций, основанной на пересечении 21 EMA, с логической ясностью и строгими правилами. Благодаря мониторингу отношений цены и средней линии в сочетании с строгим механизмом управления рисками, эта стратегия позволяет эффективно улавливать переменные точки в тенденции рынка и одновременно контролировать риск.
Основные преимущества стратегии заключаются в ее простой и интуитивно понятной логике торговли и совершенном механизме дисциплинарного исполнения, особенно в том, что дизайн, блокирующий сделки после первой прибыли, эффективно предотвращает чрезмерную торговлю и возврат прибыли. Однако, стратегия также имеет потенциальные риски, такие как равномерная задержка, чрезмерная зависимость от одного показателя.
Будущие направления оптимизации должны быть сосредоточены на динамике параметров, подтверждении многофакторных сигналов, усилении управления рисками и классификации состояния рынка, чтобы повысить адаптивность стратегии в различных рыночных условиях. Благодаря этим оптимизациям стратегия может стать более стабильной и надежной системой количественных торгов.
В рамках метода DSPLN эта стратегия отражает философию торговли “Do So Patiently Listening Now”, подчеркивая дисциплину и систематичность, предоставляя трейдерам торговую структуру, которая преодолевает эмоциональные помехи и фокусируется на выполнении правил.
/*backtest
start: 2025-06-15 00:00:00
end: 2025-06-21 08:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EnvisionTrades
//@version=5
strategy("DSPLN EMA Flip Strategy v6", overlay=true)
// 🔹 Inputs
startHour = input.int(8, "Start Hour")
startMinute = input.int(30, "Start Minute")
endHour = input.int(10, "End Hour")
endMinute = input.int(30, "End Minute")
useTPSL = input.bool(true, "Use TP/SL?")
tpPoints = input.int(40, "Take Profit (points)")
slPoints = input.int(20, "Stop Loss (points)")
// 🔹 Time Filter
isWithinTradingHours = (hour > startHour or (hour == startHour and minute >= startMinute)) and
(hour < endHour or (hour == endHour and minute < endMinute))
// 🔹 Indicators
ema21 = ta.ema(close, 21)
vwap = ta.vwap
plot(ema21, title="21 EMA", color=color.orange)
plot(vwap, title="VWAP", color=color.blue)
// 🔹 State Variables
var int tradesToday = 0
var bool lastTradeWon = false
var float entryPrice = na
var label winLabel = na
var int prevTradeCount = 0
// 🔹 Entry Conditions
longEntry = isWithinTradingHours and close > ema21 and close[1] <= ema21[1]
shortEntry = isWithinTradingHours and close < ema21 and close[1] >= ema21[1]
// 🔹 Exit Conditions
longExit = strategy.position_size > 0 and close < ema21
shortExit = strategy.position_size < 0 and close > ema21
// 🔹 Trade Control
canTrade = tradesToday < 5 and not lastTradeWon
// 🔹 Entry Logic
if canTrade and strategy.position_size == 0 and longEntry
strategy.entry("Long", strategy.long)
entryPrice := close
if useTPSL
strategy.exit("TP Long", from_entry="Long", stop=close - slPoints * syminfo.mintick, limit=close + tpPoints * syminfo.mintick)
if canTrade and strategy.position_size == 0 and shortEntry
strategy.entry("Short", strategy.short)
entryPrice := close
if useTPSL
strategy.exit("TP Short", from_entry="Short", stop=close + slPoints * syminfo.mintick, limit=close - tpPoints * syminfo.mintick)
// 🔹 EMA Manual Exit Logic
if longExit
strategy.close("Long")
tradesToday += 1
lastTradeWon := close > entryPrice
if lastTradeWon
winLabel := label.new(bar_index, high, "✅ WIN - No More Trades", style=label.style_label_down, color=color.green)
if shortExit
strategy.close("Short")
tradesToday += 1
lastTradeWon := close < entryPrice
if lastTradeWon
winLabel := label.new(bar_index, low, "✅ WIN - No More Trades", style=label.style_label_up, color=color.green)
// 🔹 Detect Closed Trades (TP/SL exits)
tradeCount = strategy.closedtrades
if tradeCount > prevTradeCount
closedProfit = strategy.netprofit - strategy.netprofit[1]
tradesToday += 1
lastTradeWon := closedProfit > 0
if lastTradeWon
winLabel := label.new(bar_index, high, "✅ TP WIN - No More Trades", style=label.style_label_down, color=color.green)
prevTradeCount := tradeCount
// 🔹 Reset Daily
if (hour == endHour and minute == endMinute)
tradesToday := 0
lastTradeWon := false
entryPrice := na
prevTradeCount := 0
if not na(winLabel)
label.delete(winLabel)