Инвестируйте в стратегию следования золотому тренду


Дата создания: 2023-10-31 15:09:22 Последнее изменение: 2023-10-31 15:09:22
Копировать: 0 Количество просмотров: 658
1
Подписаться
1617
Подписчики

Инвестируйте в стратегию следования золотому тренду

Обзор

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

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

Эта стратегия основана на следующих технических принципах:

  1. Используйте среднюю линию EMA, чтобы определить направление рыночной тенденции. Когда быстрая линия EMA пересекает медленную линию EMA, используйте ее как позитивную тенденцию, чтобы подготовиться к входу в многосторонний курс.

  2. В сочетании с MACD-индикатором определяется момент входа в рынок. Когда MACD-индикатор становится отрицательным, это указывает на то, что рынок начинает ослабевать.

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

  4. Можно установить дату начала и дату окончания, ограничить период отсчета. Когда отсчет заканчивается, стратегия устраняет все позиции.

В частности, эта стратегия сначала рассчитывает быструю и медленную линии EMA, а также обнаруживает связь между ними, чтобы определить рыночную тенденцию. В то же время рассчитывает индикатор MACD, чтобы определить конкретную точку входа.

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

Это более простая и непосредственная стратегия отслеживания трендов, которая имеет следующие преимущества:

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

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

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

  4. Разрешается настраивать количество входящих средств в месяц, а также гибкость в регулировании позиций в соответствии с собственной стратегией.

  5. Для оценки эффективности стратегии можно провести обратную проверку с помощью даты начала и окончания.

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

Риски и противодействие

В этой стратегии также есть некоторые потенциальные риски, в частности:

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

  2. Если вы делаете попытку отслеживания только один раз в месяц, вы можете пропустить лучшие моменты входа. Вы можете рассмотреть возможность расширить частоту входа или снова попасть в него, когда вы достигнете нового максимума.

  3. Существует определенный риск обратной совместимости. Следует увеличить пространство для корректировки параметров и провести тестирование устойчивости на рынке и в течение периода времени.

  4. Существуют риски задержки падения и перекупа. Следует должным образом контролировать ежемесячный входный капитал, избегая чрезмерной позиции.

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

Эта стратегия может быть расширена и оптимизирована в следующих аспектах:

  1. Добавление логики EXIT, которая позволяет активно останавливать убытки при появлении явных медведей на рынке.

  2. При создании индекса MACD Smile был добавлен еще один пункт, чтобы получить более полное воздействие на тренд.

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

  4. Добавление логики контроля позиций. Размер ежемесячного входа может быть скорректирован в зависимости от пропорции, а не от фиксированного значения.

  5. Оценить влияние различных комбинаций равнолинейных и MACD параметров на эффективность стратегии. Найти оптимальные комбинации параметров.

  6. Добавление трейлинговой остановки, которая отслеживает убытки. После того, как цена достигнет нового максимума, она начинает отслеживать с определенной интенсивностью, чтобы прибыль продолжала работать.

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

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

Исходный код стратегии
/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © runescapeyttanic

//@version=4
// strategy("Buy and Hold entry finder Strategy",pyramiding=10000, overlay=true,initial_capital=0,default_qty_type=strategy.cash,default_qty_value=1000,currency = currency.EUR,commission_type=strategy.commission.cash_per_order,commission_value=0)

//INPUTS##################################################################################################################

maxEmaDistance = input(title="Maximum EMA Distance", type=input.float, step=0.01, defval=50000)
emalength = input(title="EMA Length", type=input.integer,defval=200)

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2020, minval=1800, maxval=2100)

endDate = input(title="End Date", type=input.integer,
     defval=12, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=02, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=2021, minval=1800, maxval=2100)

endDate1=endDate-1
//starttag
//startmonat
//MACD########################################################################################################################

fast_length=12
slow_length=26
src=close
col_macd=#0094ff
fast_ma = ema(src, fast_length)
slow_ma = ema(src, slow_length)
macd = fast_ma - slow_ma

//EMA Distance CALC########################################################################################################

ma1 =ema(close,emalength)
distFromMean = close - ma1

inDateRange = true

longCondition = (distFromMean<=maxEmaDistance and distFromMean>=distFromMean[1] and macd<=0 and inDateRange)
longnow=false

if(longCondition and strategy.position_size == 0)
    strategy.entry("My Long Entry Id", strategy.long)
    longnow:=true

if(longCondition and strategy.position_size > 0)
    longnow:=true
    

if(longCondition and strategy.position_size > 0 and month>valuewhen(longnow, month ,1) or longCondition and strategy.position_size > 0 and year>valuewhen(longnow, year ,1) and inDateRange)
    strategy.entry("My Long Entry Id", strategy.long)

plotchar(minute, "Minuten", "", location = location.top)

plotchar(hour, "Stunden", "", location = location.top)    

plotchar(dayofmonth, "Tage", "", location = location.top)

plotchar(month, "Monat", "", location = location.top)

plotchar(year, "Jahr", "", location = location.top)

plotchar(strategy.position_size, "Positionen", "", location = location.top)

plotchar(longCondition, "Long Condition", "", location = location.top)

if true
    strategy.close_all()

//#########################################################################################################################

plotArrow = if (distFromMean<=maxEmaDistance and distFromMean>=distFromMean[1] and macd<=0)
    1
else
    0
    
plotarrow(series=plotArrow)