資源の読み込みに... 荷物...

量子ビットコイン取引戦略 MACD,RSI,FIBを組み合わせる

作者: リン・ハーンチャオチャン開催日:2023年12月26日17時08分03秒
タグ:

img

概要

この戦略は,技術指標MACD,相対強度指数RSI,および金比率に基づくフィボナッチリトレースメント/拡張理論を組み合わせ,ビットコインやその他の暗号通貨の定量取引を実現する.

戦略原則

  1. トレーディング・シグナルのためのMACD指標
  • MACD の快線とスローラインの EMA 期間を 15 と 30 に設定する
  • 購入信号として上を横断し,販売信号として下を横断する
  1. RSI は 偽信号 を フィルター する
  • RSI パラメータを50期に設定
  • RSIはMACDが与えるいくつかの誤った信号をフィルタリングするのに役立ちます.
  1. サポート/レジスタンスのフィボナッチ理論
  • 最近の最高値/最低値を38個のキャンドルで組み合わせる
  • 0.5 フィボナッチ回転/拡張レベルを計算する
  • サポートと抵抗として使用できます
  1. MA と RSI 判断 過剰販売/過剰購入
  • 50 期間の MA 審査員 過剰販売/過剰購入状態
  • RSIは判断にも役立ちます
  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)




もっと