この戦略は,まず価格逆転シグナルを使用して取引を行い,その後トレンドフィルタリング指標をスクリーニングに組み合わせ,二要素駆動システムを実装する.価格逆転部分は123逆転取引システムを採用し,トレンドフィルタリング部分はトレンド (ETT) を抽出するシステムを使用する.組み合わせは二要素駆動逆転取引戦略を形成する.
価格逆転部分では123逆転システムを使用しています.このシステムは,ウルフ・ジェンセン著の"How I Tripled My Money In The Futures Market" (先物市場での私のお金の倍増方法) の183ページから引用されています.取引信号生成には以下の条件があります.
上記条件が満たされた場合,買い信号が生成されます.
売り信号が生成されます.
この逆転システムの目的は,価格が一時的に逆転するときに短期的な逆転を捉えることです.
トレンドフィルタリングの部分は,トレンドを抽出する (ETT) システムを使用する.ETTシステムはフィルターと移動平均の組み合わせを通じてトレンド方向を判断する.この戦略では,その主な機能は,明確なトレンドがない場合の逆転操作を避ける,価格逆転信号を検証することである.
この戦略は,両サブ戦略からの取引信号を組み合わせ,最終的に二要素駆動の逆転取引システムを実現します.
双要素逆転取引戦略は,各サブ戦略の利点を組み合わせることで統合します.
この戦略は,不正な逆転信号を効果的にフィルターすることができます.正しいトレンド判断で,逆転操作を行い,それによって取引システムの全体的なパフォーマンスを向上させます.
二重要素逆転取引戦略には,次の主なリスクがあります.
上記のリスクを軽減するために,コンパイラパラメータを調整し,より良い判断のためにリバース&ETT戦略を最適化し,リバース取引のためのストップ損失範囲を適切に拡大することを考慮する必要があります.実際は,ポジションサイジング制御のために,二重要因による固有のリスクを完全に考慮する必要があります.
この戦略は,次の側面で最適化できます.
戦略の論理と主要取引信号が変わらず,パラメータと組み合わせの最適化によってより良いバックテスト結果が期待できます.
双要素逆転取引戦略は,多要素判断システムのために価格逆転信号とトレンドフィルタリングを有機的に組み合わせます.単一の逆転信号戦略と比較して,この戦略は,明確なトレンドがないときに偽信号を避けながら短期的な価格逆転をよりうまく捉えることができ,それによって信号品質を改善することができます.パラメータ最適化および他の要因を追加することによってより良いパフォーマンスを期待できます.
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 03/08/2020 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // Extracting The Trend // The related article is copyrighted material from Stocks & Commodities Mar 2010 // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos ETT(Length,Delta,Trigger) => pos = 0 xBandpassFilter = 0.0 xPrice = hl2 beta = cos(3.1415 * (360 / Length) / 180) gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) xBandpassFilter := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2]) xMean = sma(xBandpassFilter, 2 * Length) pos :=iff(xMean > Trigger, 1, iff(xMean < Trigger, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Extracting The Trend", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthETT = input(20, minval=1) Delta = input(0.5) Trigger = input(0) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posETT = ETT(LengthETT,Delta,Trigger) pos = iff(posReversal123 == 1 and posETT == 1 , 1, iff(posReversal123 == -1 and posETT == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )