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

Автор:Чао Чжан, Дата: 2023-12-26 17:08:03
Тэги:

img

Обзор

Стратегия называется Стратегия Золотого Креста Фибоначчи. Она сочетает в себе технический индикатор MACD, индекс относительной силы RSI и теорию ретракциона / расширения Фибоначчи на основе золотого соотношения, реализуя количественную торговлю биткойнами и другими криптовалютами.

Принцип стратегии

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

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

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

  1. Полностью автоматизированная торговля 24x7 без ручного вмешательства
  2. Точные торговые сигналы от MACD
  3. RSI фильтрует некоторые ложные сигналы
  4. Теория Фибоначчи добавляет больше ссылок
  5. Оценка состояния перепродажи/перекупки
  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)




Больше