
この戦略は,移動平均とランダムな指標を組み合わせて,自動化された株式取引システムを実現する.それは,2つの異なる長さの移動平均とランダムな指標を使用して,トレンドとオーバーバイのオーバーセールの信号を捕捉し,トレンドの方向とオーバーバイのオーバーセールの領域の指標信号に基づいて,買取りを行う.
快線 ((5日線) と慢線 ((20日線) の2つの移動平均を使用する. 快線上を慢線を横切るときは買入シグナル,下を横切るときは売出シグナルである. 移動平均の役割は価格の傾向と方向を判断することである.
ランダムな指標のパラメータ設定は:K線周期14,K線平滑周期3,D線平滑周期3。K線20以下は超売り地域,80以上は超売り地域。ランダムな指標の役割は,超買い超売り地域にあるかどうかを判断する。
購入条件:快線で慢線とK線を貫く<20 (超売り地域) 販売条件:速線下穿越線 and K線>80 (超買区)
購入条件を満たすとき,買い物を多めにし,販売条件を満たすとき,空売りする.
購入後に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")