この戦略は,市場動向のターニングポイントを特定し,株の短期価格変動をキャピタライズするために,移動平均 (MA) の黄金十字と死亡十字を使用する.異なる時間期間の2つのMAを計算します.すなわち,短期間MAと長期間MAです.短期間MAが長期間MAを超えると,購入信号が生成されます.短期間MAが長期間MAを下回ると,販売信号が生成されます.
この戦略の核心論理は,短期間MAと長期間MAの間の交差関係にある.短期間MAは最近の価格変化をより迅速に反映し,長期間MAは長期的な価格動向を描写するためのノイズ削減能力がより優れている.短期間MAが長期間MAを超えると,価格は最近上昇傾向を開始し,短期的な逆転をシグナル化し,その結果,後続の上昇を捕捉するための購入信号を誘発する可能性がある.逆に,短期間MAが長期間MAを下回る時,最近の下落価格勢力と短期的な逆転の可能性をシグナル化し,売り信号を生成する.
具体的には,この戦略は,MA線を2つ計算するために,閉じる価格でta.sma関数を適用します. maShort (9期) とmaLong (21期). その後,短いMAがより長いMAを上回るか下回るか判断するために,ta.crossoverとta.crossunder関数を用いて,それに応じて購入・販売信号を生成します.利益をロックし,リスクを管理するために,ストップ・ロスト・アンド・テイク・プロフィート・ロジックは最後に実装されます.
単一のMAシステムと比較して,この戦略は,短期間および長期間のMAの両方の価値を合成し,誤った信号が少なく,収益性の可能性が高くなります.一方,MAクロスオーバー信号は,オペレーターが効率的に解釈し,行動するための明確で直接的です.
/*backtest start: 2023-12-19 00:00:00 end: 2024-01-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Intraday MA Crossover Strategy", overlay=true) // Define MA lengths maLengthShort = input.int(9, title="Short MA Length", minval=1) maLengthLong = input.int(21, title="Long MA Length", minval=1) // Calculate MAs maShort = ta.sma(close, maLengthShort) maLong = ta.sma(close, maLengthLong) // Plot MAs on the chart plot(maShort, color=color.blue, title="Short MA") plot(maLong, color=color.red, title="Long MA") // Generate Buy Signal (Golden Cross: Short MA crosses above Long MA) buySignal = ta.crossover(maShort, maLong) strategy.entry("Buy", strategy.long, when=buySignal) // Generate Sell Signal (Death Cross: Short MA crosses below Long MA) sellSignal = ta.crossunder(maShort, maLong) strategy.entry("Sell", strategy.short, when=sellSignal) // Set stop loss and take profit levels stopLossPercent = input.float(1, title="Stop Loss %", minval=0.1, maxval=5) takeProfitPercent = input.float(1, title="Take Profit %", minval=0.1, maxval=5) strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=close * stopLossPercent / 100, profit=close * takeProfitPercent / 100) strategy.exit("Take Profit/Stop Loss", from_entry="Sell", loss=close * stopLossPercent / 100, profit=close * takeProfitPercent / 100)