Chiến lược này tạo ra tín hiệu giao dịch dựa trên sự chéo chéo giữa trung bình di chuyển nhanh và chậm. Nó tạo ra tín hiệu mua khi trung bình di chuyển nhanh vượt qua trên trung bình di chuyển chậm từ dưới. Nó tạo ra tín hiệu bán khi trung bình di chuyển nhanh vượt qua dưới trung bình di chuyển chậm từ trên.
Chiến lược này sử dụng hàm sma để tính toán các đường trung bình di chuyển nhanh và chậm. Fast_SMA là đường trung bình di chuyển nhanh với đầu vào dài thời gian fast_SMA. Slow_SMA là đường trung bình di chuyển chậm với đầu vào dài thời gian slow_SMA.
Chiến lược này sử dụng các hàm chéo và chéo để xác định sự chéo giữa các đường trung bình di chuyển nhanh và chậm. Khi đường trung bình di chuyển nhanh vượt qua đường trung bình di chuyển chậm, biến LONG là đúng và tín hiệu mua được tạo ra. Khi đường trung bình di chuyển nhanh vượt qua đường trung bình di chuyển chậm, biến SHORT là đúng và tín hiệu bán được tạo ra.
Chiến lược này có những lợi thế sau:
Chiến lược này cũng có những rủi ro sau:
Quản lý rủi ro:
Chiến lược này có thể được tối ưu hóa từ các khía cạnh sau:
Chiến lược này hiệu quả tạo ra tín hiệu giao dịch bằng cách tận dụng những lợi thế của đường trung bình động. Mặc dù có một số rủi ro, chúng có thể được cải thiện bằng cách tối ưu hóa tham số, thêm bộ lọc vv. Chiến lược chéo đường trung bình động đáng nghiên cứu và áp dụng thêm.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-13 00:00:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@author Jacques Grobler // // SIMPLE CROSS OVER BOT // ===================== // // This is a simple example of how to set up a strategy to go long or short // If you make any modifications or have any suggestions, let me know // When using this script, every section marked back testing should be // uncommented in order to use for back testing, same goes for using the script portion /////////////////////////////////////////////////////////////////////////////////////// //// INTRO //// ----- // BACKTESTING //@version=4 strategy(title="SimpleCrossOver_Bot_V1_Backtester", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, commission_type=strategy.commission.percent, commission_value=0.1) // SIGNALS //study(title="SimpleCrossOver_Bot_V1_Signals", overlay = true) /////////////////////////////////////////////////////////////////////////////////////// //// INPUTS //// ------ // BACKTESTING dateSart_Year = input(2018, title="Start Year", minval=2000) dateSart_Month = input(1, title="Start Month", minval=1, maxval=12) dateSart_Day = input(1, title="Start Day", minval=1, maxval=31) dateEnd_Year = input(2019, title="End Year", minval=2000) dateEnd_Month = input(1, title="End Month", minval=1, maxval=12) dateEnd_Day = input(1, title="End Day", minval=1, maxval=31) // BACKTESTING AND SIGNALS fast_SMA_input = input(7, title="SMA Fast") slow_SMA_input = input(25, title="SMA Slow") /////////////////////////////////////////////////////////////////////////////////////// //// INDICATORS //// ---------- fast_SMA = sma(close, fast_SMA_input) slow_SMA = sma(close, slow_SMA_input) /////////////////////////////////////////////////////////////////////////////////////// //// STRATEGY //// -------- LONG = cross(fast_SMA, slow_SMA) and fast_SMA > slow_SMA stratLONG() => crossover(fast_SMA, slow_SMA) SHORT = cross(fast_SMA, slow_SMA) and fast_SMA < slow_SMA stratSHORT() => crossunder(fast_SMA, slow_SMA) /////////////////////////////////////////////////////////////////////////////////////// //// TRIGGERS //// -------- // BACKTESTING testPeriodStart = timestamp(dateSart_Year, dateSart_Month, dateSart_Day, 0, 0) testPeriodStop = timestamp(dateEnd_Year, dateEnd_Month, dateEnd_Day, 0, 0) timecondition = true strategy.entry(id="LONG", long = true, when=timecondition and stratLONG()) strategy.entry(id="SHORT", long = false, when=timecondition and stratSHORT()) // SIGNALS //alertcondition(LONG, title="LONG") //alertcondition(SHORT, title="SHORT") /////////////////////////////////////////////////////////////////////////////////////// //// PLOTS //// ----- // BACKTESTING AND SIGNALS plot(fast_SMA, color=green, linewidth=1) plot(slow_SMA, color=yellow, linewidth=1) plotshape(LONG, title="LONG", style=shape.triangleup, text="LONG", location=location.belowbar, size=size.small, color=green) plotshape(SHORT, title="SHORT", style=shape.triangledown, text="SHORT", location=location.abovebar, size=size.small, color=red)