ゲムフォレスト 1分脱出戦略

作者: リン・ハーンチャオチャン, 開催日:2024年2月19日 10:56:07
タグ:

img

概要

Gem Forest 1 Minute Breakout Strategyは,迅速な利益を実現するために1分間の時間枠内でブレイクアウト信号を捕捉することを目的とした定量的な取引戦略である.この戦略は,移動平均値,ATR,RSIなどの複数の指標を組み込み,取引信号を生成し,短期間の保持期間中により高いリスク・リターン比率を達成する.

戦略の論理

この戦略は主に以下の要素を使用して取引信号を形成します.

  1. ATR インディケーター - 価格チャネルを設定するための平均の真の範囲を計算する.
  2. 移動平均指標 - 黄金クロス/デッドクロス信号を生成するために,高速EMAと遅いEMAを計算する.
  3. RSI インディケーター - 超買/超売エリアを決定するために,高速および遅いRSIを計算します.
  4. 価格・チャネル関係 - 価格がチャネルを突破したときの取引信号を生成する.

具体的には,この戦略は,ATR,高速EMA,遅いEMA,高速RSIおよび遅いRSIのN期間の平均を計算します.価格破盤ATRチャネル,EMAの黄金十字,RSIが極端なレベルに達する条件を組み合わせると,この戦略は購入または販売信号を送信します.

利点分析

この戦略の主な利点は以下の通りです.

  1. 短期的な価格動向を把握する
  2. 迅速に対応し,高周波取引に適しています
  3. 複数のフィルタインダクターにより信頼性が高い
  4. ユーザが最適化するためのパラメータです

リスク分析

リスクもあります:

  1. 短期取引における高リスク,厳格なストップロスの必要性
  2. パラメータの最適化が不適切である場合,オーバーフィッティングが発生します.
  3. 高い取引頻度はコストを増加させる.

リスクを制御するために,ストップ・ロスは実施され,パラメータは過剰なフィットメントを避けるために適切なバックテストが必要です.さらに,コストを制御するために取引頻度を調整する必要があります.

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

戦略を最適化するには

  1. 試験パラメータの設定を短時間 (5分,15分) で行う.

  2. 音量などのフィルタリング指標を追加して信号品質を向上させる

  3. 最適なパラメータ組み合わせを見つけるために ATRチャンネルと移動平均パラメータを最適化します.

結論

Gem Forest 1 Minute Breakout ストラテジーは,複数の指標でフィルタリングすることで短期的なトレンドを把握することに焦点を当て,迅速な応答と高いリスク・リターン特性があります.より良い結果を得るため,パラメータ最適化を通じてユーザーのリスク偏好に適応できます.しかし,ユーザーは厳格なストップ損失,合理的な取引頻度などを通じて取引リスクを制御する必要があります. 全体的に,この戦略は,一定の量取引知識と短期取引のリスク耐性を持つ投資家に適しています.


/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Gem Forest 1 Dakika Scalp", overlay=true)

source = close
atrlen = input.int(14, "ATR Period")
mult = input.float(1, "ATR Multi", step=0.1)
smoothing = input.string(title="ATR Smoothing", defval="WMA", options=["RMA", "SMA", "EMA", "WMA"])

ma_function(source, atrlen) => 
    if smoothing == "RMA"
        ta.rma(source, atrlen)
    else
        if smoothing == "SMA"
            ta.sma(source, atrlen)
        else
            if smoothing == "EMA"
                ta.ema(source, atrlen)
            else
                ta.wma(source, atrlen)

atr_slen = ma_function(ta.tr(true), atrlen)
upper_band = atr_slen * mult + close
lower_band = close - atr_slen * mult

ShortEMAlen = input.int(21, "Fast EMA")
LongEMAlen = input.int(65, "Slow EMA")
shortSMA = ta.ema(close, ShortEMAlen)
longSMA = ta.ema(close, LongEMAlen)
RSILen1 = input.int(25, "Fast RSI Length")
RSILen2 = input.int(100, "Slow RSI Length")
rsi1 = ta.rsi(close, RSILen1)
rsi2 = ta.rsi(close, RSILen2)
atr = ta.atr(atrlen)

RSILong = rsi1 > rsi2
RSIShort = rsi1 < rsi2

longCondition = open < lower_band
shortCondition = open > upper_band
GoldenLong = ta.crossover(shortSMA,longSMA)
Goldenshort = ta.crossover(longSMA,shortSMA)

plotshape(shortCondition, title="Sell Label", text="Sell", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.white)
plotshape(longCondition, title="Buy Label", text="Buy", location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.white)
plotshape(Goldenshort, title="Golden Sell Label", text="Golden Crossover Short", location=location.abovebar, style=shape.labeldown, size=size.tiny, color=color.new(color.blue, 0), textcolor=color.white)
plotshape(GoldenLong, title="Golden Buy Label", text="Golden Crossover Long", location=location.belowbar, style=shape.labelup, size=size.tiny, color=color.new(color.yellow, 0), textcolor=color.white)

if (longCondition)
    stopLoss = low - atr * 2
    takeProfit = high + atr * 5
    strategy.entry("long", strategy.long)

if (shortCondition)
    stopLoss = high + atr * 2
    takeProfit = low - atr * 5
    strategy.entry("short", strategy.short)

plot(upper_band)
plot(lower_band)
plot(shortSMA, color = color.red)
plot(longSMA, color = color.yellow)


もっと