
この戦略は,二均線交差信号に基づく定量取引システムであり,短期および長期の移動平均の交差によって市場の傾向の変化を認識し,ダイナミックなストップ・ロズ・マネジメントと組み合わせてリスクを制御する.この戦略は,市場価格の単板を使用して取引し,信号が発覚したときに既存のポジションを自動的に平定し,新しいポジションを開設し,ストップ・ロズ・ポイントを設定することで資金を保護する.
戦略は2つの異なる周期の単純な移動平均 ((SMA) を取引シグナルの主な基礎として使用する.短期平均線上での長期平均線を横断すると,システムは多信号を生成し;短期平均線下での長期平均線を横断すると,システムは空き信号を生成する.システムは,信号が生成される時に,現在のポジション状態をチェックし,逆転ポジションがある場合は,最初にポジションを平らげ,そして信号の方向に従って新しいポジションを開きます.
これは,構造が整った,論理が明確な量化取引戦略である. ダイナミックなストップ・ストップ・損失管理リスクに合わせて,双均線交差によってトレンドの変化を捕捉する. 戦略の優点は,体系化度が高く,リスクは制御可能であるが,現場で様々な種類の市場リスクに対処することに注意する必要がある. 継続的な最適化と改善により,戦略は,異なる市場環境下で安定したパフォーマンスを維持する見込みである.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BTCUSD Daily Strategy - Market Orders Only", overlay=true, initial_capital=10000, currency=currency.USD)
// Configurable Inputs
stop_loss_percent = input.float(title="Stop Loss (%)", defval=1.0, minval=0.0, step=0.1)
take_profit_percent = input.float(title="Take Profit (%)", defval=2.0, minval=0.0, step=0.1)
short_ma_length = input.int(title="Short MA Length", defval=9, minval=1)
long_ma_length = input.int(title="Long MA Length", defval=21, minval=1)
// Moving Averages
short_ma = ta.sma(close, short_ma_length)
long_ma = ta.sma(close, long_ma_length)
// Plotting Moving Averages
plot(short_ma, color=color.blue, title="Short MA")
plot(long_ma, color=color.red, title="Long MA")
// Buy and Sell Signals
buy_signal = ta.crossover(short_ma, long_ma)
sell_signal = ta.crossunder(short_ma, long_ma)
// Market Buy Logic
if (buy_signal and strategy.position_size <= 0)
// Close any existing short position
if (strategy.position_size < 0)
strategy.close(id="Market Sell")
// Calculate Stop Loss and Take Profit Prices
entry_price = close
long_stop = entry_price * (1 - stop_loss_percent / 100)
long_take_profit = entry_price * (1 + take_profit_percent / 100)
// Enter Long Position
strategy.entry(id="Market Buy", direction=strategy.long)
strategy.exit(id="Exit Long", from_entry="Market Buy", stop=long_stop, limit=long_take_profit)
// Alert for Market Buy
alert("Market Buy Signal at price " + str.tostring(close) + ". Stop Loss: " + str.tostring(long_stop) + ", Take Profit: " + str.tostring(long_take_profit), alert.freq_once_per_bar_close)
// Market Sell Logic
if (sell_signal and strategy.position_size >= 0)
// Close any existing long position
if (strategy.position_size > 0)
strategy.close(id="Market Buy")
// Calculate Stop Loss and Take Profit Prices
entry_price = close
short_stop = entry_price * (1 + stop_loss_percent / 100)
short_take_profit = entry_price * (1 - take_profit_percent / 100)
// Enter Short Position
strategy.entry(id="Market Sell", direction=strategy.short)
strategy.exit(id="Exit Short", from_entry="Market Sell", stop=short_stop, limit=short_take_profit)
// Alert for Market Sell
alert("Market Sell Signal at price " + str.tostring(close) + ". Stop Loss: " + str.tostring(short_stop) + ", Take Profit: " + str.tostring(short_take_profit), alert.freq_once_per_bar_close)