
Strategi perdagangan selang adalah strategi pengesanan trend berdasarkan purata bergerak. Strategi ini menggunakan purata bergerak indeks selama 30 hari untuk mengenal pasti trend harga, masuk ke dalam pasaran apabila harga menembusi purata, dan keluar dari pasaran apabila harga kembali ke bawah purata. Strategi ini sesuai untuk perdagangan dalam bingkai waktu 30 minit hingga hari.
Strategi ini digunakan untuk menilai isyarat masuk dan keluar berdasarkan hubungan harga dengan purata bergerak indeks 30 hari. Secara khusus:
Dengan cara ini, peluang perdagangan trend dapat dikunci melalui penembusan pada trend harga CAPTURE.
Strategi ini mempunyai beberapa kelebihan:
Strategi ini mempunyai beberapa risiko:
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi perdagangan selang adalah strategi kuantitatif yang mudah dan praktikal untuk mengesan trend dengan menangkap harga yang menembusi EMA. Strategi ini boleh disesuaikan dan dioptimumkan secara fleksibel, sesuai untuk memegang posisi panjang dan menengah, dan juga boleh diperdagangkan dengan garis pendek. Secara keseluruhan, risiko strategi ini dapat dikawal dan dapat memperoleh keuntungan yang stabil jika parameter ditetapkan dengan betul.
/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Spaced Out Trading Strategy", overlay=true)
// Define strategy parameters
emaPeriod = input(30, title="EMA Period") // Longer EMA period for more spaced-out trades
stopLossPct = input(2.0, title="Stop Loss Percentage") // Stop loss percentage
takeProfitPct = input(3.0, title="Take Profit Percentage") // Take profit percentage
// Calculate EMA
emaValue = ta.ema(close, emaPeriod)
// Define entry and exit conditions
enterLong = ta.crossover(close, emaValue)
exitLong = ta.crossunder(close, emaValue)
// Place orders
contractsQty = 5 // Number of contracts to buy
var float lastTradePrice = na // Track the last trade price
if enterLong and strategy.position_size == 0
strategy.entry("Buy Call", strategy.long, qty = contractsQty)
lastTradePrice := close
else if exitLong and strategy.position_size > 0
strategy.close("Buy Call")
lastTradePrice := na
// Calculate stop loss and take profit
stopLossPrice = lastTradePrice * (1 - stopLossPct / 100)
takeProfitPrice = lastTradePrice * (1 + takeProfitPct / 100)
strategy.exit("Sell Call", "Buy Call", stop = stopLossPrice, limit = takeProfitPrice)