移動平均とストキャスティクス取引戦略


作成日: 2024-02-02 10:48:37 最終変更日: 2024-02-02 10:48:37
コピー: 0 クリック数: 826
1
フォロー
1617
フォロワー

移動平均とストキャスティクス取引戦略

概要

この戦略は,移動平均とランダムな指標を組み合わせて,自動化された株式取引システムを実現する.それは,2つの異なる長さの移動平均とランダムな指標を使用して,トレンドとオーバーバイのオーバーセールの信号を捕捉し,トレンドの方向とオーバーバイのオーバーセールの領域の指標信号に基づいて,買取りを行う.

戦略原則

1. 移動平均

快線 ((5日線) と慢線 ((20日線) の2つの移動平均を使用する. 快線上を慢線を横切るときは買入シグナル,下を横切るときは売出シグナルである. 移動平均の役割は価格の傾向と方向を判断することである.

2. ランダムな指標

ランダムな指標のパラメータ設定は:K線周期14,K線平滑周期3,D線平滑周期3。K線20以下は超売り地域,80以上は超売り地域。ランダムな指標の役割は,超買い超売り地域にあるかどうかを判断する。

3. 売買のルール

購入条件:快線で慢線とK線を貫く<20 (超売り地域) 販売条件:速線下穿越線 and K線>80 (超買区)

購入条件を満たすとき,買い物を多めにし,販売条件を満たすとき,空売りする.

4. ストップダメージ設定

購入後に1%のストップを設定し,売却後に1%のストップを設定します.

優位分析

この戦略は,トレンドと指標を組み合わせて,価格の中長線トレンドを効果的に捕捉し,同時に,ランダムな指標を使用して,買い買いのタイミングを制御し,明確な方向性がないときに任意の買い買い操作を避ける.戦略のパラメータは,空間を調整して,異なる市場環境に合わせて調整することができます.全体的に,この戦略は,大中盤全体的に上昇した株式に適用して効果が良い.

リスクと解決策

  • もし,特大ニュース面による激動的な状況に遭遇すると,大きな損失がもたらされる可能性があります. リスク管理のためにストップラインを設定できます.

  • 横断整理が継続された場合,連続した小規模な損失がもたらされる可能性があります.移動平均の周期パラメータを適切に調整して損失を減らすことができます.

  • 株価が急激に反転し,誤った取引が起こりやすいので,株価の急激な時期は避けるように注意する必要があります.

最適化の方向

  • 異なるパラメータの組み合わせをテストし,最適なパラメータの組み合わせを探します.例えば,異なる長さの移動平均の組み合わせの効果をテストします.

  • 取引量,変動率などの他の分析ツールと組み合わせて,フィルタリング条件を設定して,戦略の率を向上させることができます.

  • 株の選択メカニズム,優遇株や加重指数などの選択を研究して,個々の株のリスクを低減することができる.

要約する

この戦略は,全体的に順調に動作し,ストップ・ストップ条件を設定した後に,全体的に利益と損失の結果が良好である.パラメータ調整と株式池の選択の最適化によって,効果をさらに高めることができる.全体的に,これは動作が安定し,実行が容易な量化取引戦略である.

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

//@version=4
strategy("Moving Average and Stochastic Strategy 80% ", overlay=true)

// Moving Average Settings
maShortLength = input(5, title="Short MA Length")
maLongLength = input(20, title="Long MA Length")

// Stochastic Settings
stochLength = input(14, title="Stochastic Length")
smoothK = input(3, title="Stochastic %K")
smoothD = input(3, title="Stochastic %D")
stochOverbought = 80
stochOversold = 20

// Profit Target Settings
profitTarget = input(1, title="Profit Target (%)") // 1% profit target

// Calculate Moving Averages
maShort = sma(close, maShortLength)
maLong = sma(close, maLongLength)

// Calculate Stochastic
k = sma(stoch(close, high, low, stochLength), smoothK)
d = sma(k, smoothD)

// Entry Conditions
longConditionMA = crossover(maShort, maLong) and k < stochOversold
shortConditionMA = crossunder(maShort, maLong) and k > stochOverbought

// Opposite Conditions
oppositeLongConditionMA = crossunder(maShort, maLong) and k < stochOversold
oppositeShortConditionMA = crossover(maShort, maLong) and k > stochOverbought

// Strategy Logic
if (longConditionMA)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", "Buy", profit=close * (50 + profitTarget / 100))

if (shortConditionMA)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", "Sell", profit=close * (20 - profitTarget / 100))

// Opposite Strategy Logic
if (oppositeLongConditionMA)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", "Sell", profit=close * (50 - profitTarget / 100))

if (oppositeShortConditionMA)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", "Buy", profit=close * (20 + profitTarget / 100))

// Plot Moving Averages
plot(maShort, color=color.blue, title="Short MA")
plot(maLong, color=color.red, title="Long MA")

// Plot Stochastic
hline(stochOverbought, "Overbought", color=color.red)
hline(stochOversold, "Oversold", color=color.green)
plot(k, color=color.black, title="Stochastic %K")