双重動平均クロスオーバー取引戦略

作者: リン・ハーンチャオチャン開催日:2023年10月11日 14:49:54
タグ:

この戦略は主に異なる時間枠の2つのハル移動平均値のクロスオーバーを使用して,市場の動向を決定し,ロングとショート取引を行います.

戦略の論理

この戦略は,2つのハル移動平均値を使用します.一つは60期,もう一つは175期です.

  1. hullmaは,wma関数で計算される60期Hull移動平均値です.

  2. ahullmaは,wma関数で計算された175期間のHull移動平均値です.

  3. ハルマがハルマを横切ると 黄金の十字架が現れ 長い信号が伝わります

  4. ハルマがハルマを下へと横切ると 短い信号を出す 死の十字架が起こります

  5. longConditionとshortConditionはそれぞれ,ロングとショートエントリー条件を決定します.

  6. strategy.entry関数は,ロングとショートトレードを実行するために使用されます.

この戦略は,クロスオーバー原理を用いて,短期・長期移動平均のクロスオーバーを用いてトレンド変化を把握し,利益を得ています.

利点分析

  1. Hull Moving Averageは価格変動に早く反応する.

  2. クロスオーバーの原則はシンプルで 実行も簡単です

  3. 60期と175期間の組み合わせは中期傾向を示しています

  4. 異なる市場向けに設定可能な期間パラメータ

  5. 日中取引とポジション取引に適用される.

リスク分析

  1. クロスオーバーの信号が遅れている

  2. 短期間M.A.からの 誤った信号だ

  3. 頻度のクロスオーバーは,レンジ・バインド市場での損失を引き起こす可能性があります.

  4. 間違った期間の設定は,トレンドの変化を捉えることはできません.

  5. パラメータの最適化が必要です

フィルターを追加して パラメータを最適化し より広い停止を可能にすることで リスクを軽減できます

オプティマイゼーションの方向性

  1. 最適な周期を見つけるために,異なるMA組み合わせをテストします.

  2. 信号フィルタリングのための傾向指標を追加します.

  3. ストップ・ロスの戦略を最適化して 頻繁にストップを減らす

  4. 異なるシンボルの間隔を調整します

  5. マシン学習を追加して パラメータを動的に最適化します

概要

この戦略は,ダブルハル移動平均のクロスオーバーを使用してトレンドを決定するために金十字と死十字の原則を使用しています. これは典型的な短期間の二重移動平均システムです. 利点はシンプルな論理と簡単な実装であり,短期間のトレンドを迅速に捉えることができます. 欠点は高い偽信号と遅れの問題です. パラメータ最適化,シグナルフィルタリングなどを通じて改善ができます. これは勉強する価値のある短期間の取引戦略です. 戦略は,異なる市場で日中およびポジション取引に柔軟に使用できます. 全体的に,短期取引に適しており,適切に使用した場合良いリターンを生むことができます.


/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "Hull MA", shorttitle="Junior2", overlay = true)

//HULL MA 1

length = input(60, minval=1,title="HULL MA 1 LENGTH")
src = input(close, title="Source")
hullma = wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))

plot(hullma, color=color.green)

//HULLMA 2

alength = input(175, minval=1,title="HULL MA 2 LENGTH")
asrc = input(close, title="Source")
ahullma = wma(2*wma(asrc, alength/2)-wma(asrc, alength), round(sqrt(alength)))

plot(ahullma, color=color.green)

c1up= crossover(hullma,ahullma)
c1down= crossunder(hullma,ahullma)

longCondition = c1up
if longCondition

    strategy.entry("L", strategy.long)


shortCondition = c1down 
if shortCondition

    strategy.entry("S", strategy.short)

plot(close)

もっと