この戦略は,ATRチャネルとブレイクアウト理論を利用し,チャネルが壊れたときにトレンドをフォローする.これはトレンドフォローする戦略に属している.この戦略は,移動平均チャネルとATRインジケーターを使用してトレンド方向を決定し,重要なポイントで取引シグナルを発行することで,シンプルで理解しやすい.
この戦略は,ATRチャネルを形成するために,高値,低値,閉値,ATRインジケーターの上下帯を構成する.チャネルの幅はATRパラメータのサイズによって決定される.価格がチャネルを突破すると,それはトレンドの始まりとして判断され,そのポイントでロングまたはショートポジションが入力される.この戦略には2つのトレードシグナル層がある.価格が1つのATR幅を突破すると,それは最初のレベルの購入/販売ポイントを誘発する新興トレンドとみなされる.価格が2つのATR幅を突破すると,それは加速傾向とみなされ,第二レベルの購入/販売ポイントを誘発する.
この戦略の主な利点は以下の通りです.
この戦略の主なリスクは,
この戦略の最適化方向には,以下が含まれます.
この戦略の全体的な枠組みは明確で,概念証明として利用可能である.しかし,実質的な最適化を可能にするライブ取引からのギャップがあります.リスク制御と取引頻度がさらに改善されれば,アプリケーションの見通しは良好です.
/*backtest start: 2023-12-03 00:00:00 end: 2024-01-02 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Myhaj_Lito //@version=5 strategy("Renko Trend Strategy",shorttitle = "RENKO-Trend str.",overlay = true) TF = input.timeframe(title='TimeFrame', defval="60") ATRlength = input.int(title="ATR length", defval=60, minval=2, maxval=1000) HIGH = request.security(syminfo.tickerid, TF, high) LOW = request.security(syminfo.tickerid, TF, low) CLOSE = request.security(syminfo.tickerid, TF, close) ATR = request.security(syminfo.tickerid, TF, ta.atr(ATRlength)) RENKOUP = float(na) RENKODN = float(na) H = float(na) COLOR = color(na) BUY = int(na) SELL = int(na) UP = bool(na) DN = bool(na) CHANGE = bool(na) RENKOUP := na(RENKOUP[1]) ? (HIGH + LOW) / 2 + ATR / 2 : RENKOUP[1] RENKODN := na(RENKOUP[1]) ? (HIGH + LOW) / 2 - ATR / 2 : RENKODN[1] H := na(RENKOUP[1]) or na(RENKODN[1]) ? RENKOUP - RENKODN : RENKOUP[1] - RENKODN[1] COLOR := na(COLOR[1]) ? color.white : COLOR[1] BUY := na(BUY[1]) ? 0 : BUY[1] SELL := na(SELL[1]) ? 0 : SELL[1] UP := false DN := false CHANGE := false // calculating if not CHANGE and close >= RENKOUP[1] + H * 2 CHANGE := true UP := true RENKOUP := RENKOUP[1] + ATR * 2 RENKODN := RENKOUP[1] + ATR COLOR := color.rgb(0, 255, 170,60) SELL := 0 BUY += 2 BUY if not CHANGE and close >= RENKOUP[1] + H CHANGE := true UP := true RENKOUP := RENKOUP[1] + ATR RENKODN := RENKOUP[1] COLOR := color.rgb(0, 230, 38,60) SELL := 0 BUY += 1 BUY if not CHANGE and close <= RENKODN[1] - H * 2 CHANGE := true DN := true RENKODN := RENKODN[1] - ATR * 2 RENKOUP := RENKODN[1] - ATR COLOR := color.rgb(255, 92, 43,60) BUY := 0 SELL += 2 SELL if not CHANGE and close <= RENKODN[1] - H CHANGE := true DN := true RENKODN := RENKODN[1] - ATR RENKOUP := RENKODN[1] COLOR := color.rgb(245, 69, 69,60) BUY := 0 SELL += 1 SELL //// STRATEGY if(UP) strategy.entry("Long",strategy.long) if(DN) strategy.entry("Short",strategy.short) // ploting bgcolor(COLOR)