Стратегия прогнозирования маршрута будущего Майка Д.


Дата создания: 2023-12-13 17:21:44 Последнее изменение: 2023-12-13 17:21:44
Копировать: 0 Количество просмотров: 714
1
Подписаться
1621
Подписчики

Стратегия прогнозирования маршрута будущего Майка Д.

Обзор

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

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

  1. Вычислить разницу в показателях МакД ((исторические значения) и на основании этого судить о росте и падении МакД и сигнальной линии.
  2. Для прогнозирования ценового тренда используйте опцион на позицию, чтобы оценить будущее значение МакДин показателя в течение 4-часового промежутка времени.
  3. Сделайте больше, когда разрыв индикатора МакД больше 0 (представляет собой многоголовый рынок) и ожидается продолжение роста; сделайте пустой, когда разрыв индикатора МакД меньше 0 (представляет собой пустой рынок) и ожидается продолжение падения.
  4. Эта стратегия сочетает в себе два способа торговли: отслеживание тенденции и ее обратный ход, чтобы одновременно улавливать тенденцию и отслеживать ее обратный ход.

Анализ преимуществ стратегии

  1. Используя индикатор Мак-Ди, можно эффективно отфильтровывать колебания и улавливать долгосрочные тенденции.
  2. Прогноз будущего движения индикатора McD позволяет заранее определить переломные моменты цены и повысить прогрессивность стратегии.
  3. В то же время объединение трендового отслеживания и трендового отклонения способ торговли, можно в процессе отслеживания тренда вовремя перевернуть позиции, получить большую прибыль.
  4. Параметры стратегии настраиваются, пользователи могут оптимизировать их в зависимости от различных временных циклов и рыночных условий, что повышает стабильность стратегии.

Анализ стратегических рисков

  1. Опираясь на прогноз будущего развития индекса МакД, неточность прогноза может привести к провалу сделки.
  2. Неправильная установка стоп-магнитности также влияет на эффективность стратегии.
  3. Мак-Ди может пропустить возможность быстрого изменения цены из-за задержки. Это требует внимания в стратегической деятельности в условиях высокой волатильности.
  4. Необходимо обратить внимание на влияние стоимости транзакций.

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

  1. Прогнозирование в сочетании с другими показателями, снижение зависимости от одного показателя МакД, повышение точности прогноза. Например, изучение изменений в обороте.
  2. Включение алгоритма машинного обучения, который обучает модели прогнозировать будущее движение МакДи.
  3. Оптимизируйте параметры, чтобы найти оптимальную комбинацию параметров.
  4. Для различных рыночных условий используются различные параметры конфигурации, а также параметры для автоматической оптимизации системы.

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

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

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

// @version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © x11joe
strategy(title="MacD (Future Known or Unknown) Strategy", overlay=false, precision=2,commission_value=0.26, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

//OPTIONAL:: Allow only entries in the long or short position
allowOnlyLong = input(title="Allow position ONLY in LONG",type=input.bool, defval=false)
allowOnlyShort = input(title="Allow position ONLY in SHORT",type=input.bool, defval=false)


strategy.risk.allow_entry_in(allowOnlyLong ? strategy.direction.long : allowOnlyShort ? strategy.direction.short : strategy.direction.all) // There will be no short entries, only exits from long.

// Create MacD inputs
fastLen = input(title="MacD Fast Length", type=input.integer, defval=12)
slowLen = input(title="MacD Slow Length", type=input.integer, defval=26)
sigLen  = input(title="MacD Signal Length", type=input.integer, defval=9)

// Get MACD values
[macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen)
hist = macdLine - signalLine

useFuture = input(title="Use The Future?",type=input.bool,defval=true)

macDState(resolutionType) =>
    hist_from_resolution = security(syminfo.tickerid, resolutionType, hist,barmerge.gaps_off, barmerge.lookahead_on)
    Green_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution > 0
    Green_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution > 0
    Red_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution <= 0
    Red_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution <= 0
    result=0
    if(Green_IsUp)
        result := 1
    if(Green_IsDown)
        result := 2
    if(Red_IsDown)
        result := 3
    if(Red_IsUp)
        result := 4
    result

macDStateNonFuture(resolutionType) =>
    hist_from_resolution = security(syminfo.tickerid, resolutionType, hist,barmerge.gaps_off, barmerge.lookahead_off)
    Green_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution > 0
    Green_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution > 0
    Red_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution <= 0
    Red_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution <= 0
    result=0
    if(Green_IsUp)
        result := 1
    if(Green_IsDown)
        result := 2
    if(Red_IsDown)
        result := 3
    if(Red_IsUp)
        result := 4
    result

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"
// === INPUT BACKTEST RANGE END ===

//Get FUTURE or NON FUTURE data
macDState240=useFuture ? macDState("240") : macDStateNonFuture("240") //1 is green up, 2 if green down, 3 is red, 4 is red up

//Fill in the GAPS
if(macDState240==0)
    macDState240:=macDState240[1]

//Plot Positions
plot(close,color= macDState240==1 ? color.green : macDState240==2 ? color.purple : macDState240==3 ? color.red : color.yellow,linewidth=4,style=plot.style_histogram,transp=50)

if(useFuture)
    strategy.entry("buy_1",long=true,when=window() and (macDState240==4 or macDState240==1))
    strategy.close("buy_1",when=window() and macDState240==3 and macDState240[1]==4)
    strategy.entry("sell_1",long=false,when=window() and macDState240==2)
else
    strategy.entry("buy_1",long=true,when=window() and (macDState240==4 or macDState240==1))//If we are in a red macD trending downwards MacD or in a MacD getting out of Red going upward.
    strategy.close("buy_1",when=window() and macDState240==3 and macDState240[1]==4)//If the state is going upwards from red but we are predicting back to red...
    strategy.entry("sell_1",long=false,when=window() and macDState240==2)//If we are predicting the uptrend to end soon.