移動平均指標戦略


作成日: 2024-02-26 11:10:23 最終変更日: 2024-02-26 11:10:23
コピー: 0 クリック数: 516
1
フォロー
1617
フォロワー

移動平均指標戦略

概要

移動平均指数戦略は,移動平均に基づいて市場の傾向を判断し,長ポジションまたは短ポジションの操作を行う定量取引戦略である.この戦略は,価格逆転の機会をキャプチャするために,市場がオーバーバイまたはオーバーセール状態にあるかどうかを判断するために,特定の周期のクローズアップ価格の平均値を計算する.

戦略原則

この戦略の核心指標は,ランダム指数移動平均 (Stochastic Oscillator) であり,計算方法は以下の通りである.

低点 = 最近N天的最低价中的最低值 
高点 = 最近N天的最高价中的最高值
K值 = (当前close - 低点)/(高点 - 低点)* 100

N値は長さLengthである.この指標は,現在のクローズアップ価格が,最近のN日間の価格範囲の位置を概ね反映している.

K値が超買線 (BuyBand) よりも大きく,株価が超買線 (SellBand) よりも小さいとき,反発が発生する.

この判定規則に従って,この戦略は,超買区で開設ポジションを売却し,超売り区で開設ポジションを購入する.平仓の条件は,指標線が中間の領域に戻ることである (SellBand, BuyBand).

優位分析

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

  1. 移動平均指標を用いて市場動向を判断し,反測効果が優れ,取引シグナルが容易に形成される
  2. パラメータを調整することで,異なる周期と品種に柔軟に対応できます.
  3. 戦略はシンプルでわかりやすく,理解しやすく,最適化できます.

リスク分析

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

  1. 移動平均は誤触しやすいため,超買超売のシグナルが無視される可能性があります.
  2. パラメータの不適切な設定は,取引の頻度や信号の不透明性につながる可能性があります.
  3. 単一の指標で最適化できる空間は限られている

これらのリスクは,指標パラメータを適切に最適化するか,フィルタリング条件を追加することによって軽減することができます.

最適化の方向

この戦略は,以下のような点で最適化できます.

  1. 取引信号の信頼性を高めるために,ボリュームやATRなどの指標のフィルターを追加します.
  2. 複数の周期のストック指標を足し,組み合わせ操作で信号を生成する
  3. MACD,KDJなどの追加判断指標を追加し,多指標集約を実現
  4. 取引の種類,周期,パラメータを巡回して最適化し,最適な配置を探します.

要約する

移動平均線指標戦略は,全体的な構想はシンプルで,広く使用され,反測効果は比較的安定し,量化取引の入門戦略の1つとして適しています.しかし,この戦略は,考慮要因は単一で,最適化できるスペースは限られており,短期間の操作にしか適していません.将来,複数の指標の集積,機械学習などの手段によってアップグレードできます.

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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/09/2017
// Simple Overbought/Oversold indicator
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Overbought/Oversold", shorttitle="OB/OS")
Length = input(10, minval=1)
BuyBand = input(0.92, step = 0.01)
SellBand = input(0.5, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(BuyBand, color=green, linestyle=line)
hline(SellBand, color=red, linestyle=line)
xOBOS = stoch(close, high, low, Length)
nRes = iff(close > close[Length], xOBOS / 100, (100 - xOBOS) / 100)
pos = iff(nRes < SellBand, -1,
	   iff(nRes > BuyBand, 1, nz(pos[1], 0))) 
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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=blue, title="OB/OS")