Strategi perdagangan jangka pendek berdasarkan tren berikut

Penulis:ChaoZhang, Tanggal: 2023-09-27 16:56:34
Tag:

Gambaran umum

Strategi ini mengidentifikasi tren yang kuat dan waktu yang menguntungkan untuk perdagangan jangka pendek dengan pengendalian kerugian. Ini melacak price breakout dari moving average sederhana sebagai sinyal tren dan menetapkan stop loss / take profit berdasarkan divergensi RSI untuk menangkap pergerakan harga jangka pendek.

Logika Strategi

  1. Perhitungan rata-rata bergerak sederhana multi-periode

    • Menetapkan SMA 9 hari, 50 hari dan 100 hari

    • SMA pendek melintasi SMA panjang menunjukkan arah tren

  2. Penilaian tingkat overbought/oversold menggunakan RSI

    • Panjang RSI adalah 14 periode

    • RSI di atas 70 adalah overbought, di bawah 30 adalah oversold

  3. Memasuki perdagangan ketika harga melanggar SMA 9 hari

    • Pergi panjang ketika harga melanggar SMA 9 hari

    • Pergi short ketika harga melanggar di bawah SMA 9 hari

  4. Menetapkan stop loss/take profit berdasarkan divergensi RSI

    • Divergensi RSI untuk stop loss

    • Ambil keuntungan ketika RSI mencapai tingkat yang telah ditetapkan

Analisis Keuntungan

  • Menangkap tren jangka pendek, cocok untuk perdagangan frekuensi tinggi

  • Kombo SMA menyaring sinyal tren, menghindari perdagangan buruk

  • RSI membantu menentukan waktu, mengontrol risiko secara efektif

  • Fleksibel stop loss/take profit lock keuntungan jangka pendek

  • Menggabungkan indikator meningkatkan stabilitas

Analisis Risiko

  • Penilaian tren jangka pendek yang tidak akurat menyebabkan mengejar

  • Sinyal RSI palsu memperluas kerugian

  • Pengaturan stop loss/take profit yang tidak benar mengurangi keuntungan atau memperbesar kerugian

  • Frekuensi perdagangan yang tinggi meningkatkan biaya dan slipage

  • Parameter yang tidak efektif dan strategi dampak pasar yang tidak normal

  • Mengoptimalkan parameter, stop loss ketat, mengelola biaya

Arahan Optimasi

  • Uji kombinasi SMA yang berbeda untuk meningkatkan penilaian tren

  • Pertimbangkan indikator tambahan seperti STOCH untuk memverifikasi sinyal RSI

  • Menggunakan pembelajaran mesin untuk menentukan penyebaran yang valid

  • Sesuaikan parameter untuk produk dan sesi yang berbeda

  • Mengoptimalkan logika stop loss/take profit untuk trailing dinamis

  • Jelajahi mekanisme pengaturan parameter otomatis

Kesimpulan

Strategi ini menggabungkan SMA dan RSI untuk pendekatan perdagangan jangka pendek yang konservatif. Parameter penyetelan halus, memvalidasi sinyal, mengendalikan risiko membuatnya lebih kuat dan adaptif. Ada ruang untuk perbaikan dengan mengeksplorasi lebih banyak kombinasi SMA, menambahkan model pembelajaran mesin dll. Optimasi berkelanjutan akan mengarah pada kedewasaan lebih lanjut.


/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 3h
basePeriod: 15m
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/
// © Coinrule

//@version=4
strategy(shorttitle='Maximized Scalping On Trend',title='Maximized Scalping On Trend (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//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()  => true      // create function "within window of time"

//MA inputs and calculations
movingaverage_fast = sma(close, input(9))
movingaverage_mid= sma(close, input(50))
movingaverage_slow = sma(close, input (100))


//Trend situation
Bullish= cross(close, movingaverage_fast)

Momentum = movingaverage_mid > movingaverage_slow

// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)

//Entry
strategy.entry(id="long", long = true, when = Bullish and Momentum and RSI > 50)

//Exit

TP = input(70)
SL =input(30)
longTakeProfit  = RSI > TP
longStopPrice = RSI < SL

strategy.close("long", when = longStopPrice or longTakeProfit and window())

plot(movingaverage_fast, color=color.black, linewidth=2 )
plot(movingaverage_mid, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=2)


Lebih banyak