パラボラオシレーターの高値と安値を見つける戦略


作成日: 2024-02-20 16:01:12 最終変更日: 2024-02-20 16:01:12
コピー: 0 クリック数: 568
1
フォロー
1617
フォロワー

パラボラオシレーターの高値と安値を見つける戦略

概要

この戦略は,異なる周期の平均と差を計算して,価格の傾向と変動を判断し,高点と低点の識別を実現する.

戦略原則

この戦略の核心的な論理は,近年の異なる周期の平均と差を計算することである.具体的には,最近5日,4日,3日の平均 ((ma,mb,mc) と差をそれぞれ計算することである.そして,より大きく,最大差の周期が現在のトレンドを表すものを選択することである.最後に,トレンドを表す周期の平均をその差の平方に掛けることで,最終的な出力曲線wg。

このように,価格が上方突破または下方突破したとき,トレンドを表す周期と差が大きく変化する.その結果,最終的な出力wgも大きく変化し,高点と低点の識別を実現する.

優位分析

異なる周期によるトレンド判断の考え方が有効で,価格の転換点を明確に識別できます.単一周期判断と比較して,複数の周期を組み合わせたこの方法は,判断の正確性とタイミングを向上させることができます.

平均線と平方差の計算も非常に簡単で有効で,コードはあまり多くなく,急激な価格変化に非常に敏感で,突破口を素早く発見することができる.

リスク分析

この戦略で使用される周期は短く,中長線については判断が十分正確で包括的ではない可能性がある.短期間の価格の変動は誤判を引き起こす可能性がある.

また,均線と方差の重量設定も判断効果に影響し,重量設定が不適切であれば,信号は偏差する可能性がある.

最適化の方向

より多くの異なる周期の計算を加え,周期組を構成して判断をより全面的にすることができる.例えば,10日,20日などの中長期周期判断を加える.

また,異なる重量設定方案を試行して,重量設定の柔軟性を高めることができる.パラメータの最適化が加えられ,重量は市場環境に応じて自動的に調整され,誤判の可能性が軽減される.

また,取引量の異常など,他の指標と組み合わせることで,値取引の誤った判断を避けることができます.

要約する

この戦略の全体的な考え方は明確で分かりやすく,均線と差差分を使用して価格の傾向と変動性を判断し,その後,組合せ出力は高点と低点の曲線を明確に識別することができる.この多周期組合せ判断に基づく方法は,市場の長期短期特性を効果的に得ることができ,転換点の判断の正確性を向上させることができる.最適化余地も広く,周期,重量,指標などの複数の側面から調整することができ,戦略をより安定的かつ包括的にすることができる.

ストラテジーソースコード
/*backtest
start: 2024-02-12 00:00:00
end: 2024-02-19 00:00:00
period: 12h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("x²", overlay=false)


a1=(close[2]-close[3])/1
a2=(close[1]-close[3])/4
a3=(close[0]-close[3])/9

b1=(close[3]-close[4])/1
b2=(close[2]-close[4])/4
b3=(close[1]-close[4])/9
b4=(close[0]-close[4])/16

c1=(close[4]-close[5])/1
c2=(close[3]-close[5])/4
c3=(close[2]-close[5])/9
c4=(close[1]-close[5])/16
c5=(close[0]-close[5])/25

ma=(a1+a2+a3)/3
da=(a1-ma)*(a1-ma)
da:=da+(a2-ma)*(a2-ma)
da:=da+(a3-ma)*(a3-ma)
da:=sqrt(da)
da:=min(2, da)
da:=1-da/2
da:=max(0.001, da)


mb=(b1+b2+b3+b4)/4
db=(b1-mb)*(b1-mb)
db:=db+(b2-mb)*(b2-mb)
db:=db+(b3-mb)*(b3-mb)
db:=db+(b4-mb)*(b4-mb)
db:=sqrt(db)
db:=min(2, db)
db:=1-db/2
db:=max(0.001, db)

mc=(c1+c2+c3+c4+c5)/5
dc=(c1-mc)*(c1-mc)
dc:=dc+(c2-mc)*(c2-mc)
dc:=dc+(c3-mc)*(c3-mc)
dc:=dc+(c4-mc)*(c4-mc)
dc:=dc+(c5-mc)*(c5-mc)
dc:=sqrt(dc)
dc:=min(2, dc)
dc:=1-dc/2
dc:=max(0.001, dc)



g=close
if(da>db and da>dc)
    g:=da*da*ma
else
    if(db > da and db > dc)
        g:=db*db*mb
    else
        g:=dc*dc*mc

wg=wma(g, 2)
plot(wg)
plot(0, color=black)


longCondition = true //crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = true //crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)