段階的な蓄積突破取引戦略は,ワイコフ分析の原則を用いて,潜在的買取・販売機会を探すために,春と上向きのパターンの検出によって補完された市場における潜在的な蓄積および配送段階を特定することを目的としています.
累積と配分相を識別するために,異なる長さの移動平均クロスオーバーを使用する. 閉じる価格が長さAccumulationLengthのMAを超えると,累積相を示します. 閉じる価格が長さDistributionLengthのMAを下回ると,配分相を示します.
スプリングとアップスルーストパターンを識別するために,異なる長さの移動平均クロスオーバーを使用する.低価格が長さのスプリング長さのMAを超えると,スプリングを示します.高価格が長さのアップスルースト長さのMAを下回ると,アップスルーストを示します.
蓄積期間にスプリングが観測された場合,ロング,配送期間にアップスプッシュが観測された場合,ショート.
ストップ・ロスのレベルを設定します.ロング・ストップ・ロスは Close に設定されます * (1 - Stop %).ショート・ストップ・ロスは Close に設定されます * (1 + Stop %).
グラフ上の形状は,視覚的に認識しやすくするために,特定された蓄積,分布,スプリング,上向きのパターンを示します.
ワイコフ分析を用いて蓄積と配分段階を特定することで,取引信号の信頼性が向上します.
スプリングと上向きのパターンでシグナルを確認すると,さらなる検証ができます.
ストップロスは単一の取引損失を制御するのに役立ちます.
グラフの注釈は 価格の巻き込みの過程をはっきりと示しています
調整可能なパラメータにより この戦略は 市場や時間枠に合わせて最適化できます
Whipsaws は,変動する価格の動き中に 偽信号を生成する可能性があります.
スプリングとアッププルーフは 時々失敗する可能性があります.
ストップ・ロスは損失を増やす可能性があります
異なる市場のパラメータが互換性がない場合,誤った信号が発信される可能性があります.
メカニカルシステムには柔軟な裁量制御がない.
市場や時間枠に合わせて最適なパラメータの組み合わせをテストする.
信号の確認のために音量を組み込むことを検討します.
市場変動に基づいて 動的ストップを設定する
大事なイベントのシグナルを避けるために 基本的な要素を組み込む
機械学習を適用して パーマータを動的に最適化します
徐々に蓄積されたブレイクアウト取引戦略は,ワイコフ分析,移動平均,パターン認識,および他の技術を統合して,コイリング価格アクションを効果的に特定し,取引信号を生成する.信頼性の高い信号,制御リスク,明確なビジュアル,その他の利点があります.機械システムとして,その裁量性と適応性は改善が必要です.将来の最適化にはパラメータ最適化,ボリューム確認,ストップ損失強化,基本フィルターなどが含まれます.全体として,この戦略は日中取引に効果的な意思決定サポートを提供します.
/*backtest start: 2023-09-24 00:00:00 end: 2023-10-24 00:00:00 period: 2h basePeriod: 15m 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/ // © deperp //@version=5 strategy("Wyckoff Range Strategy", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent) // Input Variables AccumulationLength = input(32, "Accumulation") DistributionLength = input(35, "Distribution") SpringLength = input(10, "Spring") UpthrustLength = input(20, "Upthrust") stopPercentage = input(10, "Stop Percentage") // Accumulation Phase isAccumulation = ta.crossover(close, ta.sma(close, AccumulationLength)) // Distribution Phase isDistribution = ta.crossunder(close, ta.sma(close, DistributionLength)) // Spring and Upthrust isSpring = ta.crossover(low, ta.sma(low, SpringLength)) isUpthrust = ta.crossunder(high, ta.sma(high, UpthrustLength)) // Strategy Conditions enterLong = isAccumulation and isSpring exitLong = isDistribution and isUpthrust enterShort = isDistribution and isUpthrust exitShort = isAccumulation and isSpring // Entry and Exit Conditions if (enterLong) strategy.entry("Long", strategy.long) if (exitLong) strategy.close("Long") if (enterShort) strategy.entry("Short", strategy.short) if (exitShort) strategy.close("Short") // Stop Loss stopLossLevelLong = close * (1 - stopPercentage / 100) stopLossLevelShort = close * (1 + stopPercentage / 100) strategy.exit("Stop Loss Long", "Long", stop=stopLossLevelLong) strategy.exit("Stop Loss Short", "Short", stop=stopLossLevelShort) // Plotting Wyckoff Schematics plotshape(isAccumulation, title="Accumulation Phase", location=location.belowbar, color=color.green, style=shape.labelup, text="Accumulation") plotshape(isDistribution, title="Distribution Phase", location=location.abovebar, color=color.red, style=shape.labeldown, text="Distribution") plotshape(isSpring, title="Spring", location=location.belowbar, color=color.blue, style=shape.triangleup) plotshape(isUpthrust, title="Upthrust", location=location.abovebar, color=color.orange, style=shape.triangledown)