移動平均移動封筒戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-02 17時02分18秒
タグ:

img

この戦略は,移動平均変位封筒指標に基づいて取引信号を生成する.封筒帯は移動平均の百分比因数で計算される.前回の高値が上部帯を超えると,販売信号が生成される.前回の低値が下部帯を下回ると,購入信号が生成される.

戦略の論理

この戦略は,移動指数移動平均 (EMA) をコア指標として使用し,一定の期間後に百分比因数で上下帯を形成する.これは完全な移動平均移動封筒システムを構築する.具体的には,封筒システムは以下のとおりである.

  • EMA (価格,期間) - 基本移動平均線
  • 上部 = sEMA[disp] * ((100 + perAb)/100) - 上部帯
  • bot = sEMA[disp] * ((100 - perBl)/100) - 下帯域

ここでは,上方%と下方%は,コア移動平均線との関係で帯の百分比範囲を制御する. 移動パラメータは,帯とコア移動平均線間の周期移動を制御する.

この方法で,上記のパラメータを調整することで適切な取引範囲を形成することができます. 価格がバンドを突破すると取引信号が生成されます. 具体的には:

  • 低帯ボットより低ければ,購入信号が生成されます.
  • 閉じる値が上部帯の上部値より高くなった場合,売り信号が生成されます.

この戦略は逆パラメータも提供していることに注意してください. true に設定された場合,信号の方向は上記の方向とは反対です.

利点分析

この戦略の主な利点は以下の通りです.

  1. 指数関数移動平均をベース指標として使用すると,曲線遅れを軽減し,価格変化に対する感受性を向上させることができます.
  2. より調整可能なパラメータにより,パラメータ調整により取引パフォーマンスの最適化が可能です.
  3. リバースモードは,異なる市場タイプに適応します
  4. シンプルで明快なルール 分かりやすく実行できます

危険 と 予防策

この戦略にはいくつかのリスクもあります:

  1. 範囲限定市場では誤った信号が頻繁に見られる
  2. パラメータの設定が正しくない場合,過剰な取引や信号の欠落を引き起こす可能性があります.
  3. 市場 の 騒音 は 効率 的 に フィルタリング さ れ て い ない の で,価値 の ない 信号 が 発生 する

これらのリスクを防ぐために,いくつかの最適化を行うことができます:

  1. ボリューム,波動性などの他の指標でシグナルをフィルターします
  2. 最適パラメータセットを見つけるためにパラメータ最適化プロセスを追加する
  3. 損失を制限するためにストップロスを適切に調整する.

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

この戦略を最適化するには まだ大きな余地があります

  1. 自動パラメータ最適化と調整を実現するために機械学習モデルを追加
  2. リスクをコントロールするためにストップ・ロスト,トライリング・ストップなどの機能を組み込む
  3. 感情指標でシグナルをフィルタリングして質を向上させる
  4. 傾向を特定し,全体的な精度を向上させるため,他の技術指標とのモデル組み合わせを増やす
  5. この戦略テンプレートを継承し,他のタイプの移動平均系を開発し,適用性を拡大する

これらの最適化により,戦略の安定性,適応性,パフォーマンスがさらに向上できます.

概要

移動平均の移動封筒戦略は,単純な指数的な移動平均システムとパラメータ化されたバンドを使用して,解釈し,実装しやすい明確な取引ルールを形成する.これは典型的なトレンドフォローシステムです.パラメータチューニングと最適化によって,良い結果を達成することができます.しかし,市場の環境の影響も完全に考慮され,潜在的なリスクも予防する必要があります.この戦略は基本的なテンプレートとして機能し,拡張と最適化のための多くの余地があります.


/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/08/2020
// Moving Average Displaced Envelope. These envelopes are calculated 
// by multiplying percentage factors with their displaced expotential 
// moving average (EMA) core.
// How To Trade Using:
// Adjust the envelopes percentage factors to control the quantity and 
// quality of the signals. If a previous high goes above the envelope 
// a sell signal is generated. Conversely, if the previous low goes below 
// the envelope a buy signal is given.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Moving Average Displaced Envelope Backtest", shorttitle="MA DE", overlay = true)
Price = input(title="Source", type=input.source, defval=close)
Period =input(defval=9, minval=1)
perAb = input(title = "Percent above", defval=.5, minval=0.01, step = 0.1)
perBl = input(title = "Percent below", defval=.5, minval=0.01, step = 0.1)
disp = input(title = "Displacement", defval=13, minval=1) 
reverse = input(false, title="Trade reverse")
pos = 0
sEMA = ema(Price, Period)
top = sEMA[disp] * ((100 + perAb)/100)
bott = sEMA[disp]* ((100 - perBl)/100)
pos := iff(close < bott , 1,
	     iff(close > top, -1, pos[1])) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

もっと