Стратегия сетки с переменной позицией, следующая за трендом

EMA RSI MACD ATR ADX
Дата создания: 2024-03-29 15:23:23 Последнее изменение: 2024-03-29 15:23:23
Копировать: 0 Количество просмотров: 718
1
Подписаться
1166
Подписчики

Стратегия сетки с переменной позицией, следующая за трендом

Обзор

Стратегия является стратегией сетки с изменяемой позицией, основанной на тренде, использующей EMA, RSI и поглощающие формы для определения направления и времени входа в тренд. Стратегия корректирует положение остановок и остановок в зависимости от размера объекта поглощающей формы, а также позволяет пользователю выбирать только больше, только больше или больше. Кроме того, стратегия также предоставляет MACD в качестве условия фильтрации тренда.

Стратегический принцип

Эта стратегия использует 200-циклическую линию EMA для определения направления большого тренда, когда цена считается в восходящей тенденции, когда она находится выше EMA, а ниже EMA считается в нисходящей тенденции. 9-циклический RSI используется для определения динамики, RSI, превышающий 50 считает, что многоголовая динамика сильна, а меньше 50 считает, что воздушная динамика сильна.

Стоп-позиции и остановки стратегии определяются в зависимости от размера поглощающей формы объекта. Стоп-позиции определяются в два раза больше поглощающей формы объекта, при этом устанавливается минимальная стоп-падеж на 0,3% от цены входа, чтобы избежать того, что слишком маленькое стоп-дистанция приводит к частым остановкам. Стоп-позиции - это стоп-падеж, умноженный на предварительно установленную убыточность, чтобы обеспечить фиксированную убыточность.

Стратегические преимущества

  1. Следить за тенденциями: стратегия использует несколько показателей для совместного определения тенденций, что помогает вмешаться в формирование тенденций на ранних этапах и улавливать тенденции.

  2. Динамическая остановка убытков: в зависимости от размера поглощающей формы объекта регулируйте положение остановки убытков, увеличивая пространство остановки при сильной тенденции, уменьшая область убытков при слабой тенденции, гибко контролируя позицию.

  3. Пользователи могут настраивать свои торговые направления, предпочтения в отношении риска и другие параметры в соответствии с их потребностями.

  4. Предоставление MACD в качестве опции для фильтрации трендов, чтобы дополнительно подтвердить силу тренда и повысить коэффициент выигрыша.

Стратегический риск

  1. Ошибки в определении тенденций: Хотя в стратегии используется совместное определение нескольких показателей, в некоторых случаях могут возникнуть ошибки в определении тенденций, что приводит к убыткам.

  2. Сжатие величины: если поглощение форм мало, то остановка и остановка будут очень близки, что приведет к ухудшению прибыльно-неприбыльного соотношения, что является более распространенным в условиях землетрясения.

  3. Оптимизация параметров: при различных стандартах и различных циклах оптимальные параметры могут сильно различаться, что требует постоянной настройки и оптимизации пользователями.

Направление оптимизации стратегии

  1. Тенденционное определение: можно попробовать ввести больше инструментов подтверждения тренда, таких как Брин-банды, средний индекс направления (ADX) и т. д., чтобы повысить точность определения тренда.

  2. Оптимизация стоп-стоп: учитывать введение ATR и других показателей, связанных с волатильностью, динамически корректировать стоп-стоп-дистанцию, чтобы уменьшить риск, связанный с слишком маленькой величиной.

  3. Управление позициями: изменение размеров позиций в зависимости от сильных и слабых тенденций и прибыльности счетов, увеличение позиций при сильной и стабильной прибыли, снижение затрат на частое обращение.

  4. Многоциклическая, многовидовая совместимость: межциклическая, межвидовая верификация сигналов тренда, повышение успешности удержания тренда, в то же время рассредоточение риска в одном экземпляре или цикле.

Подвести итог

Эта стратегия хорошо работает в трендовых условиях, используя несколько показателей для совместного определения направления и силы тренда, динамического регулирования стоп-ложа и позиций, чтобы лучше уловить тенденцию и получить дополнительную прибыль. Однако в условиях неуверенности в тренде или частого колебания эта стратегия работает в целом. Поэтому при использовании этой стратегии необходимо уделять особое внимание отбору трендовых сортов и корректировать параметры в соответствии с изменениями. Кроме того, существует возможность для дальнейшей оптимизации трендовых суждений, стоп-ложа, управления позициями, многоциклической многовидовой совместимости и т. Д.

Исходный код стратегии
/*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")