
この戦略は,動力の双均線交差の方法を採用し,低リスク取引を実現する.これは,平均線,快線,および慢線を2つの異なる周期で使用し,それらの交差に基づいて,買入販売のタイミングを判断する.この戦略は,トレンドの変化を捕捉し,大きなトレンドで長線の利益を得ることを目的としている.
この戦略は,WMA快線とWMA慢線の交差で買賣信号を判断する.快線周期は慢線周期の半分である.快線が下から慢線を横切るときに買買信号が生じる.快線が上から慢線を横切るときに売出信号が生じる.偽信号をフィルターするために,移動平均の変動差値指数も導入している.快線と慢線が交差すると同時に,この指数が形状の要求を満たす場合にのみ,取引信号が生じる.
この戦略の鍵となる論理は,
価格とパラメータを定義する:OHLC価格データを抽出する.パラメータを定義するHullMA周期z、価格データp。
二重平均線を計算する: 2周期平均線 n2ma,z周期平均線 nma を計算する.
平均線差値の計算: 2つの平均線差値のdiff。を計算する
運動量指数計算:平均線差値のsqn周期移動平均n1,n2,n3を計算する.
判断交差:n1の上にn2を着るときは緑でマークされ,そうでない場合は赤でマークされます.
図形を描く:n1,n2の図を描く。
判断信号:三つの運動平均線n1,n2,n3が同方向交差すると信号が生成される.
入場出場:快線でゆっくりと動量指標が要求に応じたときに多めにする.快線下でゆっくりと動量指標が要求に応じたときに空きをする.
この戦略は,双均線交差と運動指標を組み合わせて,偽信号を効果的にフィルターし,トレンド変化の開始時にのみ取引信号を生成し,より良い戦略効果を得る.
スローライン・クロスでは,トレンドの変化のタイミングを判断し,トレンドから利益を得ることができます.
動態指標の追加により,偽の信号をフィルターし,市場の短期的な下落に惑わされないようにする.
大規模なトレンドの変化に合わせて取引することで,不必要な取引の頻度を減らすことができます.
パラメタルの最適化後の均線周期を使用することで,指標を異なる品種の特性にもっと適合させることができる.
収益周期を延ばすため,ある程度のピレミングを許容する.
この戦略にはいくつかのリスクがあります.
双均線交差は,トレンドの変化の判断に遅れがあり,価格の変化の最適なタイミングを逃す可能性があります.
動量指数パラメータの設定が正しくない場合,取引を誤導する可能性があります.
特定の空白期間の不均衡の問題がある.
市場動揺をうまく対処する戦略はない.
過剰最適化のリスクがあるため,パラメータを段階的に最適化する必要があります.
リスクに対応する解決策は
価格の変化を判断する他の先導的な指標を考慮し,事前に準備してください.
動量指数パラメータを適切に最適化して,最適なパラメータの組み合わせを見つける.
ポジション時間を制御するために,波動率指数を追加することを考えることができます.
ポジションの量を適切に制限し,単一の損失を減らす.
パラメータの安定性検査を行うことにより,過度の最適化問題を回避する.
この戦略は,以下の点で最適化できます.
異なる種類の平均線指標を試して,品種に最適なパラメータを見つけます.
テストはMACD,ブリン帯などの判断傾向の変化などの他の補助指標を追加します.
価格の逆転の起点を正確に判断する.
試合のタイミングを最適化し,ストップ・ロスを追跡するなどで利益を固定する.
異なる品種の特性によりパラメータを最適化する.
機械学習の手法を使って最適のパラメータの組み合わせを見つけます.
リスク管理のためのダイナミックなポジション管理機構の構築
シャープ比率,損益比率など,定量化戦略評価指標を追加する.
検索エンジン評価策略を履歴データに活用する.
概要として,この動力双均線戦略は均線交差と動力指数で大きなトレンドを判断する転換点を採用し,低リスクの取引を効果的にフィルタリングできます.それは収益の安定性,簡素性の利点がありますが,パラメータの最適化とリスク管理に関するいくつかの問題もあります.市場特性に適した戦略を最適化するために,入場出場のタイミング,ダイナミックなポジション管理などの面で改善することができます.充分なテストと厳格な評価は戦略の効果を保証する鍵です.
/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//OCTOPUS Indicator Strategy
strategy("FAVEL corp. Indicator Strategy", shorttitle="FAVEL corp. Monarch", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=420, default_qty_value=20, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
z=input(defval=60,title="HullMA cross")
p=input(ohlc4,title="Price data")
n2ma=2*wma(p,round(z/2))
nma=wma(p,z)
diff=n2ma-nma
sqn=round(sqrt(z))
n2ma1=2*wma(p[1],round(z/2))
nma1=wma(p[1],z)
diff1=n2ma1-nma1
sqn1=round(sqrt(z))
n2ma2=2*wma(p[2],round(z/2))
nma2=wma(p[2],z)
diff2=n2ma2-nma2
sqn2=round(sqrt(z))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
n3=wma(diff2,sqn)
c=n1>n2?green:red
n1e=plot(n1, color=c, linewidth=1, offset=2)
n2e=plot(n2, color=c, linewidth=1, offset=2)
fill(n1e, n2e, color=c, transp=75)
plot(cross(n1, n2) ? n1 : na, style = circles,color=c, linewidth = 4)
closelong = p<p[1] and n1<n3
if (closelong)
strategy.close("BUY")
closeshort = p>p[1] and n1>n3
if (closeshort)
strategy.close("SELL")
longCondition = strategy.opentrades<1 and n1>n2 and p>p[1] and n1>n3
if (longCondition)
strategy.entry("BUY",strategy.long)
shortCondition = strategy.opentrades<1 and n1<n2 and p<p[1] and n1<n3
if (shortCondition)
strategy.entry("SELL",strategy.short)