Strategi ini menggabungkan rata-rata bergerak dan osilator Stochastic untuk menerapkan sistem perdagangan saham otomatis. Ini menggunakan dua rata-rata bergerak dengan panjang yang berbeda dan indikator Stochastic untuk menangkap sinyal tren dan overbought / oversold, dan membuat keputusan beli dan jual berdasarkan arah tren dan sinyal indikator di wilayah overbought / oversold.
Rata-rata bergerak garis cepat (5 hari) dan garis lambat (20 hari) digunakan. garis cepat melintasi di atas garis lambat adalah sinyal beli, sementara melintasi di bawah adalah sinyal jual. rata-rata bergerak menentukan tren dan arah harga.
Parameter Stochastic diatur menjadi: Periode garis K 14, Periode garis K halus 3, Periode garis D halus 3. Di bawah 20 pada garis K adalah wilayah oversold, sedangkan di atas 80 adalah wilayah overbought.
Kondisi pembelian: Perpindahan MA cepat di atas garis MA dan K lambat <20 (wilayah oversold) Kondisi jual: Perpindahan MA cepat di bawah garis MA dan K lambat > 80 (wilayah yang terlalu banyak dibeli)
Pergi panjang ketika kondisi beli terpenuhi; pergi pendek ketika kondisi jual terpenuhi.
Tetapkan target keuntungan 1% setelah membeli; tetapkan stop loss 1% setelah menjual.
Strategi ini menggabungkan tren dan indikator untuk secara efektif menangkap tren harga jangka menengah ke panjang, sambil menggunakan osilator Stochastic untuk mengontrol waktu perdagangan dan menghindari entri acak tanpa bias arah yang jelas. Parameter strategi dapat disesuaikan dengan lingkungan pasar yang berbeda. Secara keseluruhan strategi ini bekerja sangat baik pada saham besar / mid-cap dalam tren naik.
Peningkatan harga akibat peristiwa berita yang signifikan dapat menimbulkan kerugian besar. Stop loss dapat mengendalikan risiko.
Pasar yang terikat jangkauan dapat menyebabkan kerugian kecil berturut-turut.
Hindari periode pasar penting ketika harga cenderung berbalik.
Uji kombinasi parameter yang berbeda untuk menemukan parameter optimal, seperti panjang MA yang berbeda.
Masukkan alat analisis lain seperti volume, volatilitas untuk kondisi filter untuk meningkatkan tingkat keuntungan.
Penelitian mekanisme pemilihan saham, seperti memilih saham yang kuat atau indeks tertimbang cap, untuk mengurangi risiko saham tunggal.
Strategi keseluruhan beroperasi dengan lancar. Dengan target stop loss dan laba, profil laba/rugi secara keseluruhan solid. Peningkatan lebih lanjut dapat diharapkan dari penyesuaian parameter dan penyaringan stok pool. Secara umum ini adalah strategi perdagangan kuantitatif yang mudah diterapkan dan kuat.
/*backtest start: 2024-01-25 00:00:00 end: 2024-02-01 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Moving Average and Stochastic Strategy 80% ", overlay=true) // Moving Average Settings maShortLength = input(5, title="Short MA Length") maLongLength = input(20, title="Long MA Length") // Stochastic Settings stochLength = input(14, title="Stochastic Length") smoothK = input(3, title="Stochastic %K") smoothD = input(3, title="Stochastic %D") stochOverbought = 80 stochOversold = 20 // Profit Target Settings profitTarget = input(1, title="Profit Target (%)") // 1% profit target // Calculate Moving Averages maShort = sma(close, maShortLength) maLong = sma(close, maLongLength) // Calculate Stochastic k = sma(stoch(close, high, low, stochLength), smoothK) d = sma(k, smoothD) // Entry Conditions longConditionMA = crossover(maShort, maLong) and k < stochOversold shortConditionMA = crossunder(maShort, maLong) and k > stochOverbought // Opposite Conditions oppositeLongConditionMA = crossunder(maShort, maLong) and k < stochOversold oppositeShortConditionMA = crossover(maShort, maLong) and k > stochOverbought // Strategy Logic if (longConditionMA) strategy.entry("Buy", strategy.long) strategy.exit("Exit Buy", "Buy", profit=close * (50 + profitTarget / 100)) if (shortConditionMA) strategy.entry("Sell", strategy.short) strategy.exit("Exit Sell", "Sell", profit=close * (20 - profitTarget / 100)) // Opposite Strategy Logic if (oppositeLongConditionMA) strategy.entry("Sell", strategy.short) strategy.exit("Exit Sell", "Sell", profit=close * (50 - profitTarget / 100)) if (oppositeShortConditionMA) strategy.entry("Buy", strategy.long) strategy.exit("Exit Buy", "Buy", profit=close * (20 + profitTarget / 100)) // Plot Moving Averages plot(maShort, color=color.blue, title="Short MA") plot(maLong, color=color.red, title="Long MA") // Plot Stochastic hline(stochOverbought, "Overbought", color=color.red) hline(stochOversold, "Oversold", color=color.green) plot(k, color=color.black, title="Stochastic %K")