Sistem Pelacakan Pasar Banteng

Penulis:ChaoZhang, Tanggal: 2024-01-31 11:01:45
Tag:

img

Gambaran umum

Bull Market Tracking System adalah sistem perdagangan mekanis yang didasarkan pada pelacakan tren. Sistem ini menggunakan indikator tren pada grafik 4 jam untuk menyaring sinyal perdagangan, sementara keputusan masuk dibuat berdasarkan indikator dari grafik 15 menit. Indikator utama termasuk RSI, Stochastics, dan MACD. Keuntungan dari sistem ini adalah bahwa kombinasi beberapa kerangka waktu dapat secara efektif menyaring sinyal palsu, sementara indikator kerangka waktu yang lebih pendek dapat menentukan waktu masuk yang lebih tepat.

Prinsip-prinsip

Logika inti dari sistem ini adalah menggabungkan indikator dari jangka waktu yang berbeda untuk mengidentifikasi arah tren dan waktu masuk. Secara khusus, RSI, Stochastics, dan EMA pada grafik 4 jam perlu sejajar untuk menentukan arah tren keseluruhan. Ini dapat secara efektif menyaring sebagian besar kebisingan. Pada saat yang sama, RSI, Stochastics, MACD dan EMA pada grafik 15 menit juga perlu menyetujui bias bullish atau bearish untuk menentukan waktu masuk yang tepat. Ini memungkinkan kita untuk menemukan titik masuk dan keluar yang baik. Hanya ketika penilaian pada kedua jangka waktu 4 jam dan 15 menit memenuhi kriteria, sistem akan menghasilkan sinyal perdagangan.

Keuntungan

  1. Kombinasi beberapa kerangka waktu dapat secara efektif menyaring sinyal palsu dan mengidentifikasi tren utama
  2. Indikator rinci 15 menit dapat menangkap waktu masuk yang relatif tepat
  3. Kombinasi indikator termasuk RSI, Stochastics, MACD dan indikator teknis utama lainnya mudah dipahami dan dioptimalkan
  4. Metode manajemen risiko yang ketat diadopsi seperti mengambil keuntungan, stop loss, trailing stop loss dll untuk mengontrol risiko perdagangan individu secara efektif

Risiko

  1. Risiko overtrading. sistem cukup sensitif terhadap jangka waktu pendek, yang dapat menghasilkan banyak sinyal perdagangan, yang menyebabkan overtrading
  2. Risiko pecah palsu. penilaian indikator jangka pendek mungkin salah, menghasilkan sinyal pecah palsu
  3. Risiko kegagalan indikator Indikator teknis sendiri memiliki keterbatasan tertentu dan dapat gagal dalam kondisi pasar yang ekstrim

Dengan demikian, sistem dapat dioptimalkan dari aspek berikut:

  1. Sesuaikan parameter indikator agar lebih cocok untuk lingkungan pasar yang berbeda
  2. Meningkatkan kondisi filter untuk mengurangi frekuensi perdagangan dan mencegah overtrading
  3. Mengoptimalkan strategi stop profit dan stop loss untuk lebih sesuai dengan rentang fluktuasi pasar
  4. Uji kombinasi indikator yang berbeda untuk menemukan solusi optimal

Ringkasan

Secara keseluruhan, sistem pelacakan pasar banteng adalah tren yang sangat praktis mengikuti sistem perdagangan mekanis. Ini menggunakan kombinasi indikator multi-frame waktu untuk mengidentifikasi tren pasar dan waktu masuk utama. Dengan pengaturan parameter yang wajar dan pengujian optimasi berkelanjutan, sistem dapat beradaptasi dengan sebagian besar lingkungan pasar dan mencapai keuntungan yang stabil. Namun, kita juga perlu menyadari beberapa risiko potensial, dan mengambil langkah proaktif untuk mencegah dan mengurangi risiko ini.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Cowabunga System from babypips.com", overlay=true)
// 4 Hour Stochastics
length4 = input(162, minval=1, title="4h StochLength"), smoothK4 = input(48, minval=1, title="4h StochK"), smoothD4 = input(48, minval=1, title="4h StochD")
k4 = sma(stoch(close, high, low, length4), smoothK4)
d4 = sma(k4, smoothD4)

//15 min Stoch
length = input(10, minval=1, title="15min StochLength"), smoothK = input(3, minval=1, title="15min StochK"), smoothD = input(3, minval=1, title="15min StochD")
k = sma(stoch(close, high, low, length), smoothK)
d= sma(k, smoothD)

//4 hour RSI
src1 = close, len1 = input(240, minval=1, title="4H RSI Length")
up1 = rma(max(change(src1), 0), len1)
down1 = rma(-min(change(src1), 0), len1)
rsi4 = down1 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up1 / down1))

//15 min RSI
src = close, len = input(9, minval=1, title="15M RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi15 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

//MACD Settings
source = close
fastLength = input(12, minval=1, title="MACD Fast"), slowLength=input(26,minval=1, title="MACD Slow")
signalLength=input(9,minval=1, title="MACD Signal")
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)

// Stops and Profit inputs
inpTakeProfit   = input(defval = 1000, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 400, title = "Trailing Stop", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Offset", minval = 0)

// Stops and Profit Targets
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

//Specific Time to Trade
myspecifictradingtimes = input('0500-1600', title="My Defined Hours")

longCondition1 = time(timeframe.period, myspecifictradingtimes) != 0
longCondition2 = rsi4 <= 80
longCondition3 = k4 >= d4 and k4 <= 80
longCondition4 = ema(close, 80) >= ema(close, 162)
allLongerLongs = longCondition1 and longCondition2 and longCondition3 and longCondition4

longCondition5 = rsi15 <= 80
longCondition6 = k >= d and k <= 80 and fastMA >= slowMA
longCondition7 = ema(close, 5) >= ema(close, 10)
allLongLongs = longCondition5 and longCondition6 and longCondition7

if crossover(close, ema(close, 5)) and allLongerLongs and allLongLongs
    strategy.entry("Long", strategy.long, comment="LongEntry")

shortCondition1 = time(timeframe.period, myspecifictradingtimes) != 0
shortCondition2 = rsi4 >= 20
shortCondition3 = k4 <= d4 and k4 >= 20
shortCondition4 = ema(close, 80) <= ema(close, 162)
allShorterShorts = shortCondition1 and shortCondition2 and shortCondition3 and shortCondition4

shortCondition5 = rsi15 >= 20
shortCondition6 = k <= d and k >= 20 and fastMA <= slowMA
shortCondition7 = ema(close, 5) <= ema(close, 10)
allShortShorts = shortCondition5 and shortCondition6 and shortCondition7

if crossunder(close, ema(close,5)) and allShorterShorts and allShortShorts
    strategy.entry("Short", strategy.short, comment="ShortEntry")

strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)

Lebih banyak