Strategi Perdagangan Crossover Stochastics

Penulis:ChaoZhang, Tanggal: 2023-09-20 17:05:17
Tag:

Gambaran umum

Strategi ini menggunakan persilangan stokastik antara garis K dan D untuk menghasilkan sinyal perdagangan, strategi perdagangan stokastik khas.

Logika Strategi

  1. Menghitung garis stokastik K dan D selama periode tertentu.

  2. Perpindahan garis K di atas garis D menghasilkan sinyal beli.

  3. Perpindahan garis K di bawah garis D menghasilkan sinyal jual.

  4. Dapat mengatur rentang tanggal backtest untuk menguji efektivitas strategi.

  5. Peraturan sederhana dan jelas trading stochastics crossover.

Keuntungan

  1. Stochastics sensitif terhadap tingkat overbought dan oversold.

  2. Garis K dan D membentuk sinyal perdagangan yang mudah.

  3. Backtest memverifikasi kinerja strategi.

  4. Stochastics mudah dihitung dan diterapkan.

  5. Kode ringkas mudah untuk pengembangan lebih lanjut.

Risiko

  1. Crossover mungkin menghasilkan sinyal palsu.

  2. Tidak ada stop loss atau mengambil keuntungan di tempat.

  3. Gagal membedakan tren dan rentang.

  4. Backtest membawa bias melihat ke depan.

  5. Kinerja perdagangan yang sebenarnya mungkin berbeda dari backtest.

Peningkatan

  1. Uji parameter untuk menemukan nilai optimal.

  2. Tambahkan filter tren untuk validasi tambahan.

  3. Membangun stop loss dan mengambil keuntungan mekanisme.

  4. Masukkan faktor lain untuk konfirmasi sinyal.

  5. Menangani data backtest untuk menghilangkan bias.

  6. Perdagangan kertas untuk mengoptimalkan parameter untuk perdagangan langsung.

Kesimpulan

Strategi ini memperdagangkan crossover stochastic sederhana, mudah diimplementasikan tetapi membutuhkan penyempurnaan untuk stabilitas.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 2h
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/
// © utanico

//@version=4
strategy(title="Stochastic", overlay=true, shorttitle="Stoch")
periodK = input(35, title="K", minval=1)
periodD = input(21, title="D", minval=1)
smoothK = input(21, title="Smooth", minval=1)
startYear = input(type=input.integer, title = "開始年", defval = 2020)
startMonth = input(type=input.integer, title = "開始月", defval = 1)
startDay = input(type=input.integer, title = "開始日", defval = 1)
endYear = input(type=input.integer, title = "終了年", defval = 2030)
endMonth = input(type=input.integer, title = "終了月", defval = 12)
endDay = input(type=input.integer, title = "終了日", defval = 31)

//開始日時
test_start = timestamp(startYear, startMonth, startDay, 00, 00)
//終了日時
test_end   = timestamp(endYear, endMonth, endDay, 00, 00)
//テスト期間の指定
is_test = true

k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)

if (is_test)
    if (k > d)
        strategy.entry("Stoch_LE", strategy.long, comment="Stoch_LE")
    //if (strategy.opentrades > 0 and k < d)
        //strategy.close("Stoch_LE",comment="CloseLONG")
    if (k < d)
        strategy.entry("Stoch_SE", strategy.short, comment="Stoch_SE")
    //if (strategy.opentrades < 0 and k > d)
        //strategy.close("Stoch_SE",comment="CloseShort")

Lebih banyak