Strategi Perdagangan Selangkang Stochastics

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

Ringkasan

Strategi ini menggunakan persilangan stokastik antara garis K dan D untuk menjana isyarat perdagangan, strategi perdagangan stokastik biasa.

Logika Strategi

  1. Mengira garis K dan D stokastik dalam tempoh tertentu.

  2. Perpindahan garisan K di atas garisan D menghasilkan isyarat beli.

  3. Perpindahan garisan K di bawah garisan D menghasilkan isyarat jual.

  4. Boleh menetapkan julat tarikh backtest untuk menguji keberkesanan strategi.

  5. Peraturan yang mudah dan jelas perdagangan stokastik crossover.

Kelebihan

  1. Stochastics sensitif kepada tahap overbought dan oversold.

  2. Garis K dan D membentuk isyarat perdagangan mudah.

  3. Backtest mengesahkan prestasi strategi.

  4. Stochastics mudah dikira dan dilaksanakan.

  5. Kod ringkas mudah untuk pembangunan lanjut.

Risiko

  1. Crossover boleh menghasilkan isyarat palsu.

  2. Tiada stop loss atau mengambil keuntungan di tempat.

  3. Tidak dapat membezakan trend dan julat.

  4. Ujian belakang membawa bias melihat ke hadapan.

  5. Prestasi dagangan sebenar mungkin berbeza dari backtest.

Peningkatan

  1. Uji parameter untuk mencari nilai optimum.

  2. Tambah penapis trend untuk pengesahan tambahan.

  3. Membina mekanisme stop loss dan mengambil keuntungan.

  4. Sertakan faktor lain untuk pengesahan isyarat.

  5. Mengurus data backtest untuk menghapuskan bias.

  6. Perdagangan kertas untuk mengoptimumkan parameter untuk perdagangan langsung.

Kesimpulan

Strategi ini memperdagangkan persilangan stokastik yang mudah, mudah dilaksanakan tetapi memerlukan penyempurnaan untuk kestabilan.


/*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 lanjut