移動平均値に基づく振動突破戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-23 15:13:31
タグ:

img

概要

この戦略は"移動平均に基づく振動突破戦略"と呼ばれています.これは,価格が長期および短期取引の主要な移動平均を突破するかどうかを決定するために,異なる価格サイクルの移動平均線を計算します.短期移動平均が長期移動平均を突破すると,ロングに行く.短期移動平均が長期移動平均を突破すると,ショートに行く.

戦略原則

この戦略は主に移動平均の理論に基づいている.移動平均は,技術分析で一般的に使用される分析ツールである.短期間の価格変動をフィルタリングすることで価格データを平滑化し,価格の主なトレンド方向を反映する.急速移動平均は短期間の価格傾向を反映し,ゆっくり移動平均は長期間の価格傾向を反映する.高速移動平均がスロー移動平均を上回ったり下回ったりすると,短期的なトレンドが長期的トレンドを逆転することを意味します.これはしばしば価格逆転をシグナルします.

この戦略は,異なるパラメータを持つ2つのEMA平均値を設定することで,この原則を利用する.短期的なEMAは高速線と長期的なEMAはスローラインとして設定する. 戦略は変換線とベースラインを計算するために9と26の長さのEMAを設定する. 短期的なEMAが長期的なEMAを超えると,短期的なEMAが長期的なEMAよりも高いことを示唆するロングゴイシグナル. 短期的なEMAが長期的なEMAを下回ると,短期的なEMAが長期的なEMAよりも低いことを示唆するショートゴイシグナル.

この戦略では,価格の短期的なトレンド機会を把握するために,迅速なEMAと遅いEMAの突破を介して価格の転機点を判断します.

利点を分析する

  • 移動平均理論に基づく信頼できる指標を使用して価格逆転点を決定する
  • 基本的な指標に基づいて理解し実行しやすい
  • 異なる製品に対する調整と最適化のための柔軟なパラメータ
  • 特定の取引時間内にのみポジションを開くオプションで,オバーナイトリスクを回避する
  • 勝利率を上げるための 明確な突破点を探す

リスク分析と解決策

  • 往復取引による多重の小小損失に易しい
    適切なストップ損失範囲を緩め,ポジションに入る前に明確な逆転信号を待つことができます

  • 低流動性のある株式では,価格格差や不一致な価格が発生する可能性があります. パラメータを最適化,移動平均周期パラメータを調整,最適化されたパラメータで取引することができます

  • 横向きに揺れ動く市場では 誤った信号を得ることは簡単です ポジションに入る前に確認のために他の指標と組み合わせることができます.

  • 単純な移動平均指標だけで複雑な市場状況を処理する能力が限られている 重要な点での意思決定を改善するための他の技術指標を導入できる

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

この戦略は,次の側面においてさらに最適化することができる.

  1. ポジションリスクを制御するためのポジションサイズメカニズムを追加/削減

  2. ストップ・ロスのメカニズムを追加して,取引毎の損失を効果的に制御する

  3. 誤った価格ブレイクを避けるため,取引量,取引量指標を組み込む

  4. モデル予測を追加し,価格逆転の可能性を予測し,意思決定を改善するために機械学習などを使用します

  5. ディープラーニングを使用して,プロのトレーダーの意思決定論理をシミュレートし,高い逆転確率のポイントでシグナルを選択します

概要

これは移動平均指標に基づく短期間の平均逆転戦略である.カスタマイズ可能なパラメータは良い柔軟性を提供します.シンプルな指標を使用しているにもかかわらず,パラメータチューニングを通じて市場環境にうまく適応することができます.この戦略は短期的な価格逆転からの仲介機会を把握することを目指しています.ポジションサイズ,ストップ損失などのメカニズムを導入することで,リスクを効果的に管理して安定性を向上させることができます.より高度な技術指標と機械学習方法もパフォーマンス改善を探求するために使用できます.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Juiced Ichimoku Strat", overlay=true)

USE_TRADESESSION = input(title='Use Trading Session?', type=bool, defval=true)
trade_session = input(title='Trade Session:', defval='0800-1600', confirm=false)
istradingsession = not USE_TRADESESSION ? false : not na(time('1', trade_session))
bgcolor(istradingsession?gray:na)

varLo = input(title="Fast (Conversion) Line",  defval=9, minval=1, maxval=99999)
varHi = input(title="Slow (Base) Line",  defval=26, minval=1, maxval=99999)
emafreq = input(title="Ema on price frequency",  defval=2, minval=1, maxval=99999)

a = lowest(varLo)
b = highest(varLo)
c = (a + b ) / 2

d = lowest(varHi)
e = highest(varHi)
f = (d + e) / 2

//g = ((c + f) / 2)[varHi]
//h = ((highest(varHi * 2) + lowest(varHi * 2)) / 2)[varHi]

z = ema(close, emafreq)

bgcolor(z > c and z > f ? green : z < c and z < f ? red : yellow, transp=70)
plot(z, title="ema on Price", color=black)
plot(c, title="Fast (Conversion) Line", color=green)
plot(f, title="Slow (Base) Line", color=red)

long = z > c and z > f and (USE_TRADESESSION ? istradingsession : true)
short = z < c and z < f and (USE_TRADESESSION ? istradingsession : true)
//exit = z < c and z > f or z > c and z < f

closelong = z < c and z > f or z > c and z < f and (USE_TRADESESSION ? istradingsession : true)
if (closelong)
    strategy.close("Long")
closeshort = z < c and z > f or z > c and z < f and (USE_TRADESESSION ? istradingsession : true)
if (closeshort)
    strategy.close("Short")
strategy.entry("long", strategy.long, when=long)
strategy.entry("short", strategy.short, when=short)




もっと