
Strategi persilangan rata-rata menghasilkan isyarat dagangan dengan mengira persilangan rata-rata SMA dengan dua parameter yang berbeza. Apabila rata-rata SMA yang lebih cepat melalui rata-rata SMA yang lebih perlahan, ia menghasilkan isyarat beli; apabila rata-rata SMA yang lebih perlahan melalui rata-rata SMA yang lebih cepat, ia menghasilkan isyarat jual. Strategi ini menggunakan dua set parameter rata-rata SMA pada masa yang sama, satu untuk menentukan titik beli dan satu lagi untuk menentukan titik jual.
Strategi ini menggunakan dua set parameter rata-rata SMA, iaitusmaB1、smaB2dansmaS1、smaS2。smaB1dansmaB2Untuk menentukan isyarat beli, mereka mewakili garis purata yang lebih perlahan dan lebih cepat.smaB1PakaismaB2Ini adalah satu-satunya cara untuk mendapatkan wang tunai.smaS1dansmaS2Digunakan untuk menentukan isyarat menjual, yang juga mewakili garis purata yang lebih perlahan dan lebih cepat.smaS2KeluarsmaS1Ia membolehkan anda menyesuaikan syarat membeli dan menjual dengan fleksibel untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
Khususnya, strategi ini menentukan masa pembelian dan penjualan dengan mengira nilai SMA harga tutup dan memantau secara langsung persilangan dua set garis rata-rata SMA. Apabila melintasi garis perlahan pada SMA cepat, menganggap harga bergerak ke atas, jadi lebih banyak pada masa ini; dan apabila melintasi garis perlahan di SMA, menilai pergerakan harga beralih ke bawah, jadi lebih banyak.
Strategi ini mempunyai kelebihan utama:
Strategi ini mempunyai beberapa risiko:
Untuk mengawal risiko yang disebutkan di atas, kaedah seperti mengunci keuntungan dengan mengoptimumkan kombinasi parameter SMA, digabungkan dengan stop loss dinamik boleh diperbaiki.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi persilangan rata-rata menghasilkan isyarat perdagangan yang mudah dan berkesan dengan mengira persilangan dua set garis rata-rata SMA. Strategi ini membolehkan parameter yang fleksibel untuk disesuaikan dengan varieti yang berbeza, dan merupakan strategi trend yang biasa digunakan. Strategi ini dapat ditingkatkan lagi dengan cara pengoptimuman parameter, penapisan isyarat, dan sebagainya untuk menghasilkan isyarat yang lebih dipercayai.
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © melihtuna
//@version=4
strategy("SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent)
smaB1 = input(title="smaB1",defval=377)
smaB2 = input(title="smaB2",defval=200)
smaS1 = input(title="smaS1",defval=377)
smaS2 = input(title="smaS2",defval=200)
smawidth = 2
plot(sma(close, smaB1), color = #EFB819, linewidth=smawidth, title='smaB1')
plot(sma(close, smaB2), color = #FF23FD, linewidth=smawidth, title='smaB2')
plot(sma(close, smaS1), color = #000000, linewidth=smawidth, title='smaS1')
plot(sma(close, smaS2), color = #c48dba, linewidth=smawidth, title='smaS2')
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2020, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => time >= start and time <= finish ? true : false
longCondition = crossover(sma(close, smaB1),sma(close, smaB2))
if (window() and longCondition)
strategy.entry("BUY", strategy.long)
shortCondition = crossover(sma(close, smaS2),sma(close, smaS1))
if (window() and shortCondition)
strategy.entry("SELL", strategy.short)