フィボナッチ 金線 指数 と 相対 的 強度 RSI 戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-03 16:54:32
タグ:

img

概要

フィボナッチ金利比率と相対強度指数 (RSI) 戦略は,日中取引戦略である.フィボナッチ金利比率原理とRSI指標を組み合わせ,価格が金利比率キーポイントに近づき,RSIが過買いまたは過売り状態を示したときに購入または売却信号を発行する.

戦略の論理

  1. 値の中間線を計算する.

  2. 中間線と標準偏差に基づいて0.618レベルと1レベルを含む金比キーポイントを計算します.

  3. 価格が黄金比率キーポイントに近づくと,RSIが過買いまたは過売りゾーンに入るかどうかを確認します.

  4. 黄金比率規則とRSI条件の両方が満たされている場合,購入または売却信号を発行します.

  5. ストップ・ロスを設定し リスクをコントロールするために 利益を取ります

利点分析

  1. 複数の指標を組み合わせることで 信号の質が向上し 誤った信号が減少します

  2. 質の入力を確保するために,黄金の比率規則のサポート/レジスタンス機能を使用します.

  3. RSIは極端な逆転を避けるために 市場の心理を測定します

  4. 高頻度な日中取引に適しており,複数の小規模な取引から利益を得ることができます.

リスク分析

  1. 黄金比率は100%の価格逆転を保証できません

  2. RSIは誤解を招く信号を与え,価格アクションを組み合わせる必要があります.

  3. 価格変動によって ストップロスは止まるかもしれません

  4. 高周波取引には,より高い取引コストとより厳しいリスク管理が必要です.

解決策:

  1. ストップロスのルールを厳格に遵守して 単一の取引損失を制限します

  2. 誤った信号を避けるために RSI パラメータを適切に緩める.

  3. ストップ・ロスのポイントを最適化して,有効なストップ・ロスを確保しながら,ストップ・アウトの確率を減らす.

オプティマイゼーションの方向性

  1. 異なるサイクル周期パラメータからの試験結果

  2. MACD,ボリンジャー帯など他の指標を組み合わせて信号の質を改善してみてください.

  3. 最適な設定を見つけるために ストップ・ロスの戦略を研究します

  4. 最適な保有期間を評価し,利益とコストを均衡させる.

結論

フィボナッチ金比率とRSI戦略は,ダブル確認を通じてノイズ取引をフィルターする.単一指標戦略と比較して,より高い品質の取引信号を生成する.パラメータ最適化と厳格なルールに従うことで,この戦略は効果的な日中取引ツールになることができます.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 1m
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/
// © MohamedYAbdelaziz

// Intraday Trading
// Best used for Short Timeframes [1-30 Minutes]
// If you have any modifications please tell me to update it

//@version=4
strategy(title="Fibonacci + RSI - Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD)

// Inputs
timeFilter = year >= 2000
    // Stop Loss %
loss_percent = input(title="Stop Loss (%)", minval=0.0, step=0.1, defval=2) * 0.001
    // RSI Inputs
len = input(title="[RSI] Length", minval=0, step=1, defval=14)
overSold = input(title="[RSI] Over Sold %", defval=30)
overBought = input(title="[RSI] Over Bought %", defval=70)
    // Fibonacci Levels
length = input(title="[Fibonacci] Length", defval=200, minval=1)
src = input(hlc3, title="[Fibonacci] Source")
mult = input(title="[Fibonacci] Multiplier", defval=3.0, minval=0.001, maxval=50)
level = input(title="[Fibonacci] Level", defval=764)


// Calculate Fibonacci
basis = vwma(src, length)
dev = mult * stdev(src, length)
fu764= basis + (0.001*level*dev)
fu1= basis + (1*dev)
fd764= basis - (0.001*level*dev)
fd1= basis - (1*dev)

// Calculate RSI
vrsi = rsi(close, len)

// Calculate the Targets
targetUp = fd764
targetDown = fu764
    // Actual Targets
bought = strategy.position_size[0] > strategy.position_size[1]
exit_long = valuewhen(bought, targetUp, 0)
sold = strategy.position_size[0] < strategy.position_size[1]
exit_short = valuewhen(sold, targetDown, 0)

// Calculate Stop Losses
stop_long = strategy.position_avg_price * (1 - loss_percent)
stop_short = strategy.position_avg_price * (1 + loss_percent)

// Conditions to Open Trades
openLong = low < fd1 and crossover(vrsi[1], overSold)
openShort = high > fu1 and crossunder(vrsi[1], overBought)

// Conditions to Close Trades
closeLong = high > exit_long
closeShort = low < exit_short 


// Plots
plot(basis, color=color.blue, linewidth=2, title="[Fibonacci Level] Basis")
plot(fu764, color=color.white, linewidth=1, title="[Fibonacci Level] Short Target")
plot(fu1, color=color.red, linewidth=2, title="1", title="[Fibonacci Level] Top")
plot(fd764, color=color.white, linewidth=1, title="[Fibonacci Level] Long Target")
plot(fd1, color=color.green, linewidth=2, title="1", title="[Fibonacci Level] Bottom")


// Strategy Orders
if timeFilter
    // Entry Orders
    strategy.entry(id="Long", long=true, when=openLong and high < targetUp, limit=close)
    strategy.entry(id="Short", long=false, when=openShort and low > targetDown, limit=close)

    // Exit Orders
    strategy.exit(id="Long", when=closeLong and strategy.position_size > 0, limit=exit_long, stop=stop_long)
    strategy.exit(id="Short", when=closeShort and strategy.position_size < 0, limit=exit_short, stop=stop_short)

もっと