Strategi ini dinamakan
Strategi ini menggunakan 3 purata bergerak dengan tempoh yang berbeza: 50-period, 100-period dan 200-period. Logik beli adalah: apabila MA 50-period melintasi MA 100-period dan MA 100-period melintasi MA 200-period, pergi panjang.
Ini menandakan penembusan dari julat turun naik yang rendah dan permulaan trend. kenaikan MA
Selepas masuk, strategi menggunakan mengambil keuntungan dan menghentikan kerugian untuk mengunci keuntungan. mengambil keuntungan ditetapkan pada 8% daripada harga masuk. menghentikan kerugian ditetapkan pada 4% daripada harga masuk. dengan mengambil keuntungan yang lebih tinggi daripada kehilangan berhenti, ia memastikan strategi kekal menguntungkan secara keseluruhan.
Kelebihan strategi ini:
Terdapat juga beberapa risiko:
Penyelesaian:
Pengoptimuman boleh dibuat dalam bidang berikut:
Ringkasnya, strategi ini mempunyai logik yang jelas secara keseluruhan, memperoleh keuntungan risiko rendah dengan mengkonfigurasi tempoh purata bergerak dan peratusan mengambil keuntungan / berhenti kerugian. Ia boleh digunakan dengan fleksibel dalam perdagangan kuantitatif. Pengoptimuman lanjut boleh dibuat di bidang seperti isyarat kemasukan dan kaedah hentian kerugian, digabungkan dengan penyesuaian parameter untuk mencapai hasil yang terbaik.
/*backtest start: 2023-12-10 00:00:00 end: 2023-12-17 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle='Low volatility Buy w/ TP & SL (by Coinrule)',title='Low volatility Buy w/ TP & SL', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 10, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2019, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" //MA inputs and calculations movingaverage_fast = sma(close, input(50)) movingaverage_slow = sma(close, input(200)) movingaverage_normal= sma(close, input(100)) //Entry strategy.entry(id="long", long = true, when = movingaverage_slow > movingaverage_normal and movingaverage_fast > movingaverage_normal) //Exit longStopPrice = strategy.position_avg_price * (1 - 0.04) longTakeProfit = strategy.position_avg_price * (1 + 0.08) strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window()) //PLOT plot(movingaverage_fast, color=color.orange, linewidth=2) plot(movingaverage_slow, color=color.purple, linewidth=3) plot(movingaverage_normal, color=color.blue, linewidth=2)