
振動均衡策略は,重量移動平均と基本回顧期を使用して,次の瞬間の価格動きを予測する簡単な策略である.それは,現在の閉店価格と開店価格の位置比率を計算し,それから異なる周期の指数移動平均を計算し,最後に,歴史的データと組み合わせて価格の見込みの動きを判断する.
この戦略は最初に,閉店価格と開店価格の位置の比率を計算します.BoP = (close - open) / (high - low)そして3,6,9,12,18周期の指数移動平均を計算します.
異なる色の移動平均を描画することで,短周期線が優先して方向転換が起き,長周期線がサポートとレジスタンスを提供することを見ることができます.異なる移動平均の間の領域を埋めて,異なる均等線の間の価格の振動をより直感的に見ることができます.
これらの平均線の算術平均を計算して,総合平均線が得られます。 そして,この総合平均線が過去2サイクルで変化した様子をみ,次の周期でその動きを予測します。総合平均線が上昇した場合は,多めにすることができます. 低下した場合は,空白にすることができます。
このように,歴史データを使って,将来の動きの予測を計算できます. シンプルですが,視覚的な平均線と埋め合わせを組み合わせて,価格の変動を直感的に見ることができます.
この戦略の利点は以下の通りです.
原則はシンプルで,理解し,実行しやすい.
複雑な価格の歴史を簡潔な総合平均線に集約し,平均線の方向によって買い売り点を判断する.
多種周期の平均線の組み合わせにより,より包括的な参照を提供する。短い周期線は特定の買い物タイミングを決定し,長い周期線は大きなトレンドを決定する。
平均線の間の領域を埋めることで,直感的な視覚効果が生まれ,価格の振動がはっきりと見ることができます.
ストップとストップを設定する必要なく,無駄な取引を避けます.
この戦略には以下のリスクもあります.
予測は過去のデータのみに基づいており,将来が必然的に起こることを確認することはできません. 傾向と鍵値の組み合わせで検証する必要があります.
予想結果が正確でない場合,突然の出来事により価格が急激に変化する場合,リスク管理を行う必要があります.
複数の均線が混雑信号を生じさせ,重量を最適化する必要がある.
取引の頻度は高すぎると考えられ,不必要な取引を減らすために,制御の間隔が必要である.
戦略信号の遅延は,遅い入場と早すぎる停止につながる可能性があります.
この戦略は以下の点で最適化できます.
平均線の重さを最適化して信号をより明確にする.例えば,中長線周期平均線の重さを拡大する.
トレンド指標の確認を追加し,逆転取引を避ける.例えば,ADXを使用してトレンドの強さを判断する.
キーサポートレジスタンス領域にフィルタリング条件を追加し,誤信号を減らす.
取引条件を最適化して,無意味な取引を回避する.トレンドフィルターを設定したり,ボリューム確認を追加したりできます.
カーブストップまたはATRストップなどの最適化方法
感情の指標を追加し,高低を追うのを避ける.例えば,多空の指標,資金の流れなどを見る.
取引の頻度を下げるため,制御間隔を設定します.
振動バランスの戦略は,価格の振動指標を計算し,多周期平均線の視覚効果と組み合わせて,シンプルで直感的な買賣点判断方法を形成する.予測遅延と誤判のリスクがあるが,フィルター条件,止損方法などの追加によって最適化され,トレンド取引時に補助的なREFERENCEを提供することができる.この戦略は,短線で頻繁に取引し,視覚的な形状分析者に適している.
/*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))