Эта стратегия - это стратегия сетки переменных позиций, следующая за трендом, которая в основном использует модели EMA, RSI и engulfing для определения направления тренда и времени входа. Стратегия корректирует позиции стоп-лосса и take-прибыли на основе размера тела шаблона engulfing, позволяя пользователям выбирать только длинный, короткий или оба. Кроме того, стратегия предоставляет возможность использовать MACD в качестве фильтра тренда.
Стратегия использует 200-периодный EMA для определения общего направления тренда. Когда цена выше EMA, она считается восходящим трендом, а когда ниже EMA, она считается нисходящим трендом. 9-периодный RSI используется для измерения импульса, причем RSI выше 50 указывает на более сильный бычий импульс и ниже 50 указывает на более сильный медвежий импульс. Стратегия также использует бычий и медвежий паттерны поглощения в качестве сигналов входа. Когда EMA, RSI и сигналы паттерна поглощения согласуются, стратегия открывает позицию.
Стоп-лосс и позиции для получения прибыли определяются на основе размера тела охватывающего паттерна. Стоп-лосс устанавливается в два раза больше, чем размер тела охватывающего паттерна, с минимальным процентом стоп-лосса 0,3% от цены входа, чтобы избежать частых стоп-аут из-за небольших расстояний стоп-лосса. Позиция для получения прибыли устанавливается путем умножения расстояния стоп-лосса на заранее определенное соотношение риск-вознаграждение, чтобы обеспечить фиксированное соотношение риск-вознаграждение. Кроме того, стратегия предоставляет возможность использовать MACD в качестве фильтра тренда, учитывая более сильный бычий тренд, когда линия MACD находится выше линии сигнала, и более сильный медвежий тренд, когда линия MACD находится ниже линии сигнала.
Следование тенденции: стратегия использует несколько индикаторов для определения тенденции, помогая войти на ранних стадиях формирования тренда и улавливать движения тренда.
Динамические позиции стоп-лосса и теч-профита: путем корректировки позиций стоп-лосса и теч-профита в зависимости от размера тела охватывающего паттерна стратегия расширяет диапазон теч-профита при сильном тренде и сужает диапазон стоп-лосса при слабом тренде, что позволяет гибко управлять позициями.
Пользователи могут настраивать направление торговли, предпочтения риска и другие параметры в соответствии с различными потребностями пользователей.
Возможность использования MACD в качестве фильтра тренда еще больше подтверждает силу тренда и улучшает точность входа.
Неправильное определение тенденции: Хотя стратегия использует несколько индикаторов для определения тенденции, все еще могут быть случаи, когда тенденция неправильно определена, что приводит к потерям.
Уменьшение диапазона: если тело паттерна поглощения небольшое, расстояния между остановкой потери и получением прибыли будут очень близки, что приведет к ухудшению соотношения риск-прибыль.
Оптимизация параметров: оптимальные параметры могут значительно варьироваться в зависимости от различных инструментов и временных рамок, что требует от пользователей непрерывного тестирования и оптимизации.
Определение тренда: для повышения точности определения тренда следует рассмотреть возможность внедрения дополнительных инструментов подтверждения тренда, таких как полосы Боллинджера, средний направленный индекс (ADX) и т.д.
Оптимизация стоп-лосса и тока прибыли: следует рассмотреть возможность включения показателей, связанных с волатильностью, таких как ATR, для динамической корректировки стоп-лосса и тока прибыли, снижая риск, связанный с небольшими диапазонами.
Размер позиции: динамически корректировать размер позиции на основе силы тренда, прибыльности счета и т. д., увеличивая размер позиции, когда тенденция сильна и постоянно прибыльна, и снижая стоимость частой торговли.
Координация между несколькими временными рамками и несколькими инструментами: проверка сигналов тренда в различных временных рамках и инструментах для повышения точности определения тренда при диверсификации риска одного инструмента или временного периода.
Эта стратегия, следующая за трендом, хорошо работает на трендовых рынках, используя несколько индикаторов для определения направления и силы тренда, динамически регулируя стоп-лосс, взятку прибыли и размещение позиций для улавливания тенденций и достижения избыточной доходности. Однако эффективность стратегии средняя на неясных или часто колеблющихся рынках. Поэтому при использовании этой стратегии важно сосредоточиться на выборе инструментов тренда и корректировке параметров по мере изменения рыночных условий. Кроме того, есть возможность для дальнейшей оптимизации в определении тренда, размещении стоп-лосса и взятки прибыли, размещении позиций и координации многовременных и многоинструментов.
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © niosupetranmartinez //@version=5 strategy("Trend Follower Scalping Strategy", overlay=true, process_orders_on_close = true) // Inputs emaLen = input(200, 'EMA Length') rsiLen = input(9, 'RSI Length') trendDirection = input.string("Both", 'Trend Direction', options=["Long Only", "Short Only", "Both"]) risk_reward_ratio = input(2, 'Risk Reward Ratio') useMacdFilter = input.bool(true, "Use MACD Filter") macdTimeframe = input("5", "MACD Timeframe") // EMA and RSI ema200 = ta.ema(close, emaLen) customRsi = ta.rsi(close, rsiLen) // MACD Filter [macdLine, signalLine, _] = request.security(syminfo.tickerid, macdTimeframe, ta.macd(close, 12, 26, 9)) // Majority Body Candle Identification Function isMajorityBodyCandle(candleOpen, candleClose, high, low) => bodySize = math.abs(candleClose - candleOpen) fullSize = high - low bodySize / fullSize > 0.6 // Engulfing Patterns isBullishEngulfing = close > open and close[1] < open[1] and (close - open) > (open[1] - close[1]) and isMajorityBodyCandle(open, close, high, low) isBearishEngulfing = close < open and close[1] > open[1] and (open - close) > (close[1] - open[1]) and isMajorityBodyCandle(open, close, high, low) // Entry Conditions with MACD Filter longCondition = close > ema200 and customRsi > 50 and isBullishEngulfing and (not useMacdFilter or macdLine > signalLine) shortCondition = close < ema200 and customRsi < 50 and isBearishEngulfing and (not useMacdFilter or macdLine < signalLine) // Trade Execution var float stopLossPrice = na var float entryPrice = na // Long Entry if (longCondition and (trendDirection == "Long Only" or trendDirection == "Both")) entryPrice := close engulfingBodySize = math.abs(close - open) minimumStopLoss = entryPrice * 0.997 calculatedStopLoss = entryPrice - (engulfingBodySize * 2) stopLossPrice := calculatedStopLoss < minimumStopLoss ? calculatedStopLoss : minimumStopLoss risk = entryPrice - stopLossPrice takeProfitPrice = entryPrice + (risk_reward_ratio * risk) strategy.entry("Long", strategy.long) strategy.exit("Exit Long", "Long", stop = stopLossPrice, limit = takeProfitPrice) // Short Entry if (shortCondition and (trendDirection == "Short Only" or trendDirection == "Both")) entryPrice := close engulfingBodySize = math.abs(open - close) minimumStopLoss = entryPrice * 1.003 calculatedStopLoss = entryPrice + (engulfingBodySize * 2) stopLossPrice := calculatedStopLoss > minimumStopLoss ? calculatedStopLoss : minimumStopLoss risk = stopLossPrice - entryPrice takeProfitPrice = entryPrice - (risk_reward_ratio * risk) strategy.entry("Short", strategy.short) strategy.exit("Exit Short", "Short", stop = stopLossPrice, limit = takeProfitPrice) // Plotting plot(ema200, color=color.blue, linewidth=2, title="EMA 200")