Эта стратегия представляет собой автоматизированную торговую систему, основанную на 5-минутных временных рамках, сочетающую в себе движущуюся среднюю тенденцию и методы анализа объема.
Основная логика включает следующие ключевые компоненты: 1. Определение тренда: использует 50-периодную SMA для определения направления рынка, учитывая восходящий тренд, когда закрытие находится выше MA, и нисходящий тренд, когда ниже. Также подтверждает тенденции с использованием движения цен за последние 30 минут (6 свечей). Анализ объема: рассчитывает объемы покупки и продажи на основе движения цен, распределяя объем в каждой свечке в соответствии с ценой закрытия. 3. генерация сигнала: генерирует длинные сигналы, когда объем покупки превышает объем продажи в восходящих тенденциях; генерирует короткие сигналы, когда объем продажи превышает объем покупки в нисходящих тенденциях. 4. Управление рисками: реализует 3% стоп-лосс и 29% прибыли для управления соотношением риска и вознаграждения для каждой сделки.
Эта стратегия сочетает в себе следующее за трендом и анализ объема, чтобы создать комплексную высокочастотную торговую систему. Ее основные силы заключаются в многомерном подтверждении сигнала и надежном контроле рисков. Хотя существуют присущие риски, предложенные направления оптимизации могут еще больше повысить стабильность и адаптивность стратегии. Стратегия особенно подходит для трендовых рыночных условий и может достичь стабильных торговых результатов за счет правильной оптимизации параметров и управления рисками.
/*backtest start: 2024-01-10 00:00:00 end: 2025-01-08 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Jerryorange //@version=6 //@version=6 strategy("Autonomous 5-Minute Robot", overlay=true, fill_orders_on_standard_ohlc=true) // --- Inputs --- maLength = input.int(50, title="Trend MA Length") // Moving average length for trend detection volumeLength = input.int(10, title="Volume Length") // Length for volume analysis stopLossPercent = input.float(3, title="Stop Loss (%)") // 3% stop loss takeProfitPercent = input.float(29, title="Take Profit (%)") // 29% take profit // --- Market Trend Detection --- ma = ta.sma(close, maLength) // Simple moving average for trend direction isBullish = close > ma // Market is bullish if the close is above the moving average isBearish = close < ma // Market is bearish if the close is below the moving average // --- Volume Analysis --- buyVolume = (high != low) ? volume * (close - low) / (high - low) : 0 sellVolume = (high != low) ? volume * (high - close) / (high - low) : 0 totalVolume = volume // --- Define Market Direction over Last 30 Minutes (6 candles in 5-minute chart) --- lookback = 6 // 30 minutes / 5 minutes = 6 bars prevClose = close[lookback] // Previous close 30 minutes ago currentClose = close // Current close uptrend = currentClose > prevClose and isBullish // Uptrend condition downtrend = currentClose < prevClose and isBearish // Downtrend condition // --- Strategy Logic --- longCondition = uptrend and buyVolume > sellVolume // Buy signal when trend is up and buy volume exceeds sell volume shortCondition = downtrend and sellVolume > buyVolume // Sell signal when trend is down and sell volume exceeds buy volume // --- Entry and Exit Strategy --- if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // --- Exit Strategy based on Stop Loss and Take Profit --- strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent / 100), limit=close * (1 + takeProfitPercent / 100)) strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent / 100), limit=close * (1 - takeProfitPercent / 100)) // --- Plotting for Visualization --- plot(ma, color=color.blue, title="50-period MA") // Trend line plotshape(longCondition, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY") plotshape(shortCondition, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL")