Strategi ini adalah sistem perdagangan kuantitatif berdasarkan isyarat silang purata bergerak berganda, yang mengenal pasti perubahan trend pasaran melalui persimpangan purata bergerak jangka pendek dan jangka panjang, digabungkan dengan pengurusan stop-loss dan mengambil keuntungan yang dinamik untuk kawalan risiko. Strategi ini menggunakan pesanan pasaran untuk perdagangan, secara automatik menutup kedudukan sedia ada dan membuka kedudukan baru apabila isyarat dicetuskan, dan melindungi keselamatan modal dengan menetapkan tahap stop-loss dan mengambil keuntungan.
Strategi ini menggunakan dua Purata Bergerak Sederhana (SMA) dari tempoh yang berbeza sebagai asas utama untuk isyarat perdagangan. Isyarat panjang dihasilkan apabila MA jangka pendek melintasi di atas MA jangka panjang, dan isyarat pendek dihasilkan apabila MA jangka pendek melintasi di bawah MA jangka panjang. Sistem memeriksa status kedudukan semasa apabila isyarat berlaku, menutup mana-mana kedudukan lawan terlebih dahulu, kemudian membuka kedudukan baru mengikut arah isyarat. Setiap perdagangan secara automatik menetapkan paras stop-loss dan mengambil keuntungan berdasarkan peratusan yang telah ditetapkan, mencapai pengurusan dinamik nisbah risiko-balasan.
Ini adalah strategi perdagangan kuantitatif yang komprehensif dengan logik yang jelas. Ia menangkap perubahan trend melalui persilangan MA berganda dan menguruskan risiko dengan tahap stop-loss dan mengambil keuntungan yang dinamik. Kekuatan strategi terletak pada pendekatan sistematik dan kawalan risiko, tetapi perhatian mesti diberikan kepada pelbagai risiko pasaran dalam perdagangan langsung. Melalui pengoptimuman dan peningkatan yang berterusan, strategi dapat mengekalkan prestasi yang stabil dalam persekitaran pasaran yang berbeza.
/*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)