
Strategi ini adalah strategi simpang silang rata-rata SMA sederhana. Ia menggunakan purata bergerak sederhana dengan dua tempoh yang berbeza ((SMA), dan membuka lebih banyak apabila garis cepat melintasi garis perlahan dari bawah ke atas, dan menutup apabila garis cepat melintasi garis perlahan dari atas ke bawah. Strategi ini dapat menyesuaikan panjang kedua-dua garis rata, serta tarikh permulaan dan akhir pengukuran semula.
Idea utama strategi ini adalah untuk menggunakan ciri-ciri trend garis rata dan ciri-ciri isyarat yang bersilang dengan garis rata untuk berdagang. Apabila garis cepat berada di atas garis perlahan, menunjukkan bahawa ia sedang dalam trend menaik, anda harus memegang kedudukan multihead; Apabila garis cepat berada di bawah garis perlahan, menunjukkan bahawa ia sedang dalam trend menurun, anda harus melihat posisi kosong.
Strategi persimpangan rata SMA adalah strategi pengesanan trend yang mudah difahami dan klasik yang sesuai untuk dipelajari dan digunakan oleh pemula. Ia menggunakan ciri-ciri trend rata-rata dan ciri-ciri isyarat persimpangan rata-rata, yang dapat menangkap perubahan trend pasaran dengan cepat. Tetapi strategi ini juga mempunyai beberapa batasan dan risiko, seperti keterlambatan, perdagangan yang kerap, kekurangan berhenti, dan sebagainya.
/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
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/
// © j0secyn
//@version=5
strategy("MA Cross", overlay=true, margin_long=100, margin_short=100, default_qty_value=100, default_qty_type=strategy.percent_of_equity, initial_capital=10000)
// === INPUT BACKTEST RANGE ===
fromDay = input.int(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input.int(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input.int(defval = 2018,title = "From Year", minval = 1970)
thruDay = input.int(defval = 30, title = "Thru Day", minval = 1, maxval = 31)
thruMonth = input.int(defval = 9, title = "Thru Month", minval = 1, maxval = 12)
thruYear = input.int(defval = 2024, title = "Thru Year", minval = 1970)
slow_ma_length = input.int(defval = 100, title = "Slow MA lenght")
fast_ma_length = input.int(defval = 30, title = "Fast MA lenght")
// === FUNCTION EXAMPLE ===
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true
// === LOGIC ===
crossOv = ta.crossover(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))
crossUn = ta.crossunder(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))
// === EXECUTION ===
// strategy.entry("L", strategy.long, when = window() and crossOv) // enter long when "within window of time" AND crossover
// strategy.close("L", when = window() and crossUn) // exits long when "within window of time" AND crossunder
strategy.entry("L", strategy.long, when = window() and crossOv) // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and crossUn) // exits long when "within window of time" AND crossunder