ゴールド・クロス戦略は,長期投資家が入場タイミングを決定するのに役立つ簡単な市場指標である.この戦略は,短期および長期の移動平均の交差に基づいて取引信号を生成する.短期移動平均の上部に長期移動平均を穿越すると,ゴールド・クロスが形成され,市場が牛市に入ると表示され,より多くのことができる.短期移動平均の下部に長期移動平均を穿越すると,死亡クロスが形成され,市場が熊市に入ると表示され,ポジションを平らにする.
この戦略は,sma関数を使用して,短期および長期の単純な移動平均を計算する.短期移動平均の長さは50日,長期移動平均の長さは200日と設定されている.戦略は,クロスオーバーとクロスアンダー関数を使用して,短期線が長期線を上または下を通過するかどうかを判断し,取引シグナルを生成する.
短期線が長期線を突破すると,市場の傾向が下から上へと変化し,黄金のクロスが生じる.これは多額のシグナルである。戦略はstrategy.entry関数によってポジションを開く.短期線が長期線を突破すると,市場の傾向が上から下へと変化し,死十字を形成する.これは平仓のシグナルである。戦略はstrategy.close_all関数によってすべてのポジションを平らにする。
市場トレンドの転換点の黄金/死交差点を捉えることで,入場時とポジションのタイミングを決定し,市場ノイズを効果的にフィルターすることができる.これはシンプルで実用的なトレンド追跡戦略である.
リスクを管理するためにストップを設定し,偽信号を減らすために移動平均のパラメータを最適化し,他の指標と組み合わせて信号の信頼性を確認し,重大ニュースに対応する緊急事件処理機構を開発することができます.
この戦略は以下の点で最適化できます.
移動平均のパラメータを最適化し,短期および長期の平均線の長さを調整し,異なる市場の特性をよりよくマッチさせる.
取引量の増加を条件として判断し,取引量が増加した場合にのみ信号を生成する.
偽信号を避けるために,MACD,RSIなどの他の指標と組み合わせて,金/死交差信号を確認します.
単一損失を抑えるために,追跡ストップ,比率ストップなどのストップ・ストラトジーを追加する.
ポジション管理策の強化,例えば固定ポジション,指数増ポジションなどで,全体的なリスクを制御する.
入場時間を最適化し,交差が起こった後にしばらく観察し,偽交差をフィルターします.
上記の最適化により,戦略のパラメータを市場の統計特性に合わせて,偽信号をフィルターし,リスクを制御し,戦略の安定性と収益性をさらに向上させることができます.
ゴールド・クロス戦略は,シンプルで実用的なトレンド追跡戦略である.移動平均のクロスによって市場トレンドを直感的に捉え,長期投資家の入場と退出のタイミングを効果的に識別することができる.この戦略は,実行しやすい,初心者のための学習であり,多方面の拡張と最適化が可能で,柔軟で信頼性の高い量化取引戦略である.全体として,ゴールド・クロス戦略は簡潔さと実用性を組み合わせて,量化取引システムの貴重なメンバーである.
/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Dumb strategy 2 - Golden Cross", shorttitle="Golden Cross", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
lShort = input(50, title="short length")
lLong = input(200, title="long length")
src = input(close, title="Source")
smaShort = sma(src, lShort)
smaLong = sma(src, lLong)
plot(smaShort, title="SMA Short", style=line, linewidth=3, color=lime)
plot(smaLong, title="SMA Long", style=line, linewidth=3, color=red)
//
//Backtest Time Inputs
//
testStartYear = input(2009, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(01, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? blue : na
bgcolor(testPeriodBackgroundColor, transp=80)
testPeriod() => true
if testPeriod()
longCondition = crossover(smaShort, smaLong)
if (longCondition)
strategy.entry("Long Entry", strategy.long)
shortCondition = crossunder(smaShort, smaLong)
if (shortCondition)
strategy.close_all(true)