この戦略では,最近のNバーの最高価格と最低価格を計算し,低買いと高売りの取引戦略を実行するために移動平均線と組み合わせたダブルブレイクアウト条件を設定します.
この戦略は主に以下の原則に基づいています.
最近のNバーの極限を計算することで,市場は極端に過売れているか過買いされているか判断します.トレンド方向を決定するために移動平均線と組み合わせると,低価格購入と高価格販売のブレイクアウト取引戦略を達成するための2つの条件を設定します.
この戦略には以下の利点があります.
双重確認により,戦略の信号品質は比較的高く,パラメータ最適化スペースは大きく,異なる市場環境に適しています.
この戦略にはいくつかのリスクもあります:
これらのリスクは,計算サイクルを調整し,パラメータ組み合わせを最適化し,その他の方法によって軽減できます.さらに,最適化のために他の指標と組み合わせることを検討します.
戦略は主に以下の方向で最適化することができる:
パラメータ最適化,指標最適化,リスク管理最適化などを通じて 戦略の利益因子を大幅に向上させることができる.
一般的には,これは非常に実用的なブレイクアウト戦略である.過剰販売および過剰購入状態を決定するためにK線の極限を計算し,トレンド方向を決定するために移動平均線を使用し,偽信号をフィルタリングするためにダブルフィルタリング条件を設定し,高品質の低購入および高販売戦略を実装する. 計算サイクルを最適化し,他の指標やその他の手段を追加することで,戦略効果はさらに強化することができます. 戦略は初心者にとっても,プロトレーダーにとっても学習し,最適化し,使用するのに適しています.
/*backtest start: 2023-02-22 00:00:00 end: 2024-02-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Larry Connors por RON", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) value1 = input(7, title="Quantity of day low") value2 = input(7, title="Quantity of day high") entry = lowest(close[1], value1) exit = highest(close[1], value2) lengthMMA = input(200, title="Length of SMA", minval=1) mma = sma(close, lengthMMA) // Calcular el mínimo de los precios bajos de las últimas 'value1' velas minLow = lowest(low, value1) // Calcular el máximo de los precios altos de las últimas 'value2' velas maxHigh = highest(high, value2) // Test Period testStartYear = input(2009, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) testStopYear = input(2020, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod() => true if testPeriod() // Condiciones de entrada conditionMet = (close > mma) and (close < entry) and (low == minLow) strategy.entry("Buy", strategy.long, when=conditionMet) if conditionMet label.new(bar_index, entry, text="↑", style=label.style_arrowup, color=color.green, size=size.small, yloc=yloc.belowbar) // Condiciones de salida conditionExit = close > exit or close > maxHigh strategy.close("Buy", when=conditionExit)