振動バランス戦略は,重度の移動平均値と基本的な見直し期間を使用して,次のティックの価格動きを予測する単純な戦略である.高値と低値に基づいてオープンに比べて現在の閉店ポジションを計算し,その後,異なる期間の指数関数移動平均値を計算し,最終的に歴史的なデータに基づいて一般的な価格傾向を判断する.
戦略では,まず,開いたポジションに対する閉じたポジションを計算します.BoP = (close - open) / (high - low)
その後,3期,6期9期12期と18期の EMAを計算します.
EMAを異なる色で描くことは,短い周期線が最初に方向を変え,長い周期線がサポートとレジスタンスを提供することを示します. EMAの間の領域を埋めることで,ライン間の価格振動をより直感的に見ることができます.
この EMA の算術平均値で,包括的な線を得ることができます. この線が過去2つの期間に変化した様子を観察すると,次の期間の傾向が予測されます. 総合的な線が上昇した場合,長くなります. 下落した場合,短くなります.
この方法により,過去データに基づいて,一般的な将来の傾向を推定できます.非常にシンプルですが,視覚的なEMAと詰め物は価格の振動を明確に示しています.
この戦略の利点は以下の通りです.
この原則はシンプルで 分かりやすく 実行できます
複雑な価格履歴を シンプルな包括的な線にまとめて 方向性によるエントリーと出口点を判断します
多期EMAの組み合わせにより,より包括的な参照が提供されます.短い期間の線は特定のエントリを決定し,長い期間の線は一般的な傾向を決定します.
EMA の間を埋めることで 明確な価格振動を見るための直感的な視覚効果が形成されます
ストップ・ロスを設定したり 利益を取ったりする必要はありません 余計な取引は避けられます
この戦略のリスクは以下のとおりです.
予測は過去のデータのみをベースに 将来の発生を保証するものではありません 傾向やキーレベルで確認する必要があります
出来事による急激な価格変動は,予測が不正確になる可能性があります.適切なリスク管理が必要です.
複数のEMAは 混乱信号を生む 体重を最適化する必要があります
取引頻度が高くなり,不要な取引を減らすために間隔制御が必要になります.
戦略信号は遅れており 遅れて入場し 早期ストップ損失を引き起こす可能性があります
戦略は以下の側面で最適化できます.
より明確な信号のために EMA の重みを最適化します.例えば,中期と長期の EMA の重みを増加します.
逆トレンド取引を避けるためにトレンドインジケーターの確認を追加します.例えば,トレンド強さを判断するためにADXを使用します.
偽信号を減らすために キーサポートとレジスタンスレベルにフィルターを追加します
不必要なオープンポジションを避けるためにエントリールールを最適化します.トレンドフィルターまたはボリューム確認を追加できます.
カーブストップ・ロースやATRストップ・ロースのようなストップ・ロース方法を最適化します
感情指標を追加して,上下を追いかけるのを避ける.例えば,長/短比率と資金流.
取引頻度を下げるための 制御間隔 または過剰取引を避けるための取引数を最適化します
振動バランス戦略は,価格振動を計算し,複数の期間のEMAを視覚化することによって,単純で直感的にエントリー&エグジットポイントを判断する.予測遅延や誤った信号などのリスクが存在するが,フィルター,ストップ損失方法などを追加することで最適化することができる.トレンド取引時に有用な参照を提供する.この戦略は頻繁な短期トレーダーと視覚パターン分析者に適している.
/*backtest start: 2022-10-13 00:00:00 end: 2023-10-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Balance of Power", format=format.price, precision=2) BoP = (close - open) / (high - low) p1 = plot(ema(BoP,18),color=color.purple) p2 = plot(ema(BoP,12),color=color.blue) p3 = plot(ema(BoP,9),color=color.green) p4 = plot(ema(BoP,6),color=color.yellow) p5 = plot(ema(BoP,3),color=color.orange) p6 = plot(BoP, color=color.red) sumEMA = (avg(BoP,ema(BoP,3),ema(BoP,6),ema(BoP,9),ema(BoP,12),ema(BoP,18))) plot(sumEMA,color=color.gray) fill(p1,p2,color.purple) fill(p2,p3,color.blue) fill(p3,p4,color.green) fill(p4,p5,color.yellow) fill(p5,p6,color.orange) projected = sumEMA + (sumEMA - sumEMA[2]) p7 = plot(projected, linewidth=2, color=color.white) fill(p6,p7,color.red) //strategy.exit("exitx","Exit",when=cross(projected,0)) strategy.entry("Long",true,1,when=crossover(projected,0)) strategy.entry("Short",false,0,when=crossunder(projected,0))