Количественная стратегия торговли биткоинами, объединяющая MACD, RSI и FIB


Дата создания: 2023-12-26 17:08:03 Последнее изменение: 2023-12-26 17:08:03
Копировать: 0 Количество просмотров: 932
1
Подписаться
1623
Подписчики

Количественная стратегия торговли биткоинами, объединяющая MACD, RSI и FIB

Обзор

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

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

  1. Показатель MACD определяет точку купли-продажи
  • Периоды EMA 15 и 30 при установке MACD-быстрых и медленных линий
  • Посмотрите, как вы можете купить на короткой линии, а продать на короткой линии.
  1. RSI отфильтровывает ложные сигналы
  • Настройка RSI на 50 циклов
  • RSI может быть использован для фильтрации ложных сигналов MACD
  1. Теория Фибоначчи определяет SUPPORT/RESISTANCE
  • Объединение недавних максимумов и минимумов (например, 38 K-линий)
  • Вычисление отступления и расширения в 0,5 фибоначе на золотой середине
  • Используется для определения позиций поддержки и сопротивления
  1. Средняя линия и RSI показывают перекуп и перепродажу
  • Циклическая средняя 50 определяет, находятся ли мы в состоянии перекупа или перепродажи.
  • Индекс RSI также помогает определить перекуп и перепродажу
  1. Механизм борьбы с открытием позиций
  • Предоставление пользователям возможности сделать одно или другое
  • Гибкость многозадачной логики в зависимости от выбора пользователя

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

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

  1. 7 баллов*24-часовая автоматическая количественная транзакция без вмешательства человека
  2. Индекс MACD точно определяет время покупки и продажи
  3. RSI может отфильтровывать ложные сигналы
  4. Теория Фибоначчи помогает принятию решений в торговле
  5. 50 средняя линия и RSI оценивают перекуп и перепродажу
  6. Приспосабливаться к изменениям рынка с помощью обратного механизма

Анализ рисков

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

  1. “Стоп-дема” слишком близко, чтобы быть защитой.
  2. Системные риски, связанные с длительным периодом хранения

В соответствии с решением:

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2023-12-18 00:00:00
end: 2023-12-25 00:00:00
period: 10m
basePeriod: 1m
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/
// © onurenginogutcu

//@version=4
strategy("STRATEGY R18-F-BTC", overlay=true, margin_long=100, margin_short=100)

///////////default girişler 1 saatlik btc grafiği için geçerli olmak üzere - stop loss'lar %2.5 - long'da %7.6 , short'ta %8.1

sym = input(title="Symbol", type=input.symbol, defval="BINANCE:BTCUSDT") /////////btc'yi indikatör olarak alıyoruz

lsl = input(title="Long Stop Loss (%)",
     minval=0.0, step=0.1, defval=2.5) * 0.01
     
ssl = input(title="Short Stop Loss (%)",
     minval=0.0, step=0.1, defval=2.5) * 0.01
     
longtp = input(title="Long Take Profit (%)",
     minval=0.0, step=0.1, defval=7.6) * 0.01
     
shorttp = input(title="Short Take Profit (%)",
     minval=0.0, step=0.1, defval=7.5) * 0.01
     
capperc = input(title="Capital Percentage to Invest (%)",
     minval=0.0, maxval=100, step=0.1, defval=90) * 0.01
     
choice = input(title="Reverse ?", type=input.bool, defval=false)

symClose = security(sym, "", close)
symHigh = security(sym, "", high)
symLow = security(sym, "", low)

i = ema (symClose , 15) - ema (symClose , 30) ///////// ema close 15 ve 30 inanılmaz iyi sonuç verdi (macd standartı 12 26)
r = ema (i , 9)

sapust = highest (i , 100) * 0.729 //////////0.729 altın oran oldu 09.01.2022
sapalt = lowest (i , 100) * 0.729  //////////0.729 altın oran oldu 09.01.2022

///////////highx = highest (close , 365) * 0.72 fibo belki dahiledilebilir
///////////lowx = lowest (close , 365) * 1.272 fibo belki dahil edilebilir
simRSI = rsi (symClose , 50 ) /////// RSI DAHİL EDİLDİ "50 MUMLUK RSI EN İYİ SONUCU VERİYOR"


//////////////fibonacci seviyesi eklenmesi amacı ile koyuldu fakat en iyi sonuç %50 seviyesinin altı ve üstü (low ve high 38 barlık) en iyi sonuç verdi
fibvar = 38
fibtop = lowest (symLow , fibvar) + ((highest (symHigh , fibvar) - lowest (symLow , fibvar)) * 0.50)
fibbottom = lowest (symLow , fibvar) + ((highest (symHigh , fibvar) - lowest (symLow , fibvar)) * 0.50)

///////////////////////////////////////////////////////////// INDICATOR CONDITIONS

longCondition = crossover(i, r) and i < sapalt and symClose < sma (symClose , 50) and simRSI < sma (simRSI , 50) and symClose < fibbottom
shortCondition = crossunder(i, r) and i > sapust and symClose > sma (symClose , 50) and simRSI > sma (simRSI , 50)  and symClose > fibtop

////////////////////////////////////////////////////////////////

///////////////////////////////////////////STRATEGY ENTRIES AND STOP LOSSES /////stratejilerde kalan capital için strategy.equity kullan (bunun üzerinden işlem yap)


if (choice == false and longCondition)
    strategy.entry("Long", strategy.long , qty = capperc * strategy.equity / close ,   when = strategy.position_size == 0)
   

if (choice == false and shortCondition)
    strategy.entry("Short" , strategy.short , qty = capperc * strategy.equity / close ,  when = strategy.position_size == 0)

if (choice == true and longCondition)
    strategy.entry("Short" , strategy.short , qty = capperc * strategy.equity / close ,  when = strategy.position_size == 0)

if (choice == true and shortCondition)
    strategy.entry("Long", strategy.long , qty = capperc * strategy.equity / close ,   when = strategy.position_size == 0)
    

if (strategy.position_size > 0)
    strategy.exit("Exit Long", "Long", stop=strategy.position_avg_price*(1 - lsl) , limit=strategy.position_avg_price*(1 + longtp))

if (strategy.position_size < 0)
    strategy.exit("Exit Short", "Short", stop=strategy.position_avg_price*(1 + ssl) , limit=strategy.position_avg_price*(1 - shorttp))


////////////////////////vertical colouring signals
bgcolor(color=longCondition ? color.new (color.green , 70) : na)
bgcolor(color=shortCondition ? color.new (color.red , 70) : na)