Strategi ini disebut
Strategi ini terutama didasarkan pada dua indikator teknis:
Indikator Tren: Indikator STC untuk menentukan arah tren. STC mencakup garis indikator MACD, Stochastic, dan STC. Penembusan ke atas dari zona 0-25 menandakan tren bullish, sementara penembusan ke bawah dari zona 75-100 menandakan tren bearish.
Moving average crossover: Rata-rata bergerak sederhana cepat (periode default 35) melintasi di atas / di bawah SMA lambat (periode default 200). Sinyal bullish dipicu ketika SMA cepat melintasi di atas SMA lambat. Sinyal bearish dipicu pada crossover sebaliknya.
Logika sinyal perdagangan didefinisikan sebagai berikut:
Sinyal panjang: STC pecah di atas garis 25, SMA cepat berada di atas SMA lambat, dan harga penutupan berada di atas SMA cepat.
Sinyal pendek: STC pecah di bawah garis 75, SMA cepat berada di bawah SMA lambat, dan harga penutupan berada di bawah SMA cepat.
Keuntungan dari strategi ini meliputi:
STC menentukan tren keseluruhan, sementara MAs ganda menghasilkan sinyal masuk tertentu.
Periode rata-rata bergerak yang dapat disesuaikan Periode MA dapat dioptimalkan untuk kondisi pasar yang berbeda.
STC mengidentifikasi tingkat overbought / oversold untuk menghindari membeli atas dan menjual bawah. target berhenti menetapkan 400 poin profit / loss range.
Ada beberapa risiko yang harus dipertimbangkan:
Potensi untuk STC palsu breakouts.
Lebih banyak sinyal palsu dari penyeberangan MA.
Hanya berdagang satu arah pada suatu waktu membatasi ruang untuk posisi terbuka pertimbangkan untuk mengizinkan perdagangan dua arah
Tidak ada penanganan risiko spread dalam margin FX trading.
Jalur optimasi yang mungkin termasuk:
Sesuaikan parameter STC overbought/oversold.
Mengoptimalkan periode MA untuk meningkatkan keandalan sinyal crossover.
Tambahkan filter tambahan seperti Bollinger Bands untuk mengurangi perdagangan breakout palsu.
Menerapkan logika perdagangan dua arah untuk meningkatkan kapasitas.
Tambahkan logika stop loss untuk mengendalikan kerugian per perdagangan.
Secara singkat, strategi ini menggabungkan indikator trend dan moving average crossover untuk menentukan arah tren dan waktu entri. Dengan kontrol risiko yang tepat, dapat mencapai pengembalian yang baik. Logika yang mudah membuatnya mudah dipahami dan dioptimalkan di berbagai kondisi pasar, sangat cocok untuk pemula.
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-11 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Shaff Trend Cycle coded by Alex Orekhov (everget) // Strategy and its additional conditions provided by greenmask // Schaff Trend Cycle script may be freely distributed under the MIT license. strategy("STC", shorttitle="STC") fastLength = input(title="MACD Fast Length", type=input.integer, defval=23) slowLength = input(title="MACD Slow Length", type=input.integer, defval=50) cycleLength = input(title="Cycle Length", type=input.integer, defval=10) d1Length = input(title="1st %D Length", type=input.integer, defval=3) d2Length = input(title="2nd %D Length", type=input.integer, defval=3) src = close highlightBreakouts = input(title="Highlight Breakouts ?", type=input.bool, defval=true) macd = ema(src, fastLength) - ema(src, slowLength) k = nz(fixnan(stoch(macd, macd, macd, cycleLength))) d = ema(k, d1Length) kd = nz(fixnan(stoch(d, d, d, cycleLength))) stc = ema(kd, d2Length) stc := stc > 100 ? 100 : stc < 0 ? 0 : stc stcColor = not highlightBreakouts ? (stc > stc[1] ? color.green : color.red) : #ff3013 stcPlot = plot(stc, title="STC", color=stcColor, transp=0) upper = 75 lower = 25 transparent = color.new(color.white, 100) upperLevel = plot(upper, title="Upper", color=color.gray) hline(50, title="Middle", linestyle=hline.style_dotted) lowerLevel = plot(lower, title="Lower", color=color.gray) fill(upperLevel, lowerLevel, color=#f9cb9c, transp=90) upperFillColor = stc > upper and highlightBreakouts ? color.green : transparent lowerFillColor = stc < lower and highlightBreakouts ? color.red : transparent fill(upperLevel, stcPlot, color=upperFillColor, transp=80) fill(lowerLevel, stcPlot, color=lowerFillColor, transp=80) strategy.initial_capital = 50000 ordersize=floor(strategy.initial_capital/close) targetvalue = input(title="Target/stop", type=input.integer, defval=400) ma1length = input(title="SMA1", type=input.integer, defval=35) ma2length = input(title="SMA2", type=input.integer, defval=200) ma1 = ema(close,ma1length) ma2 = ema(close,ma2length) bullbuy = crossover(stc, lower) and ma1>ma2 and close>ma1 bearsell = crossunder(stc, upper) and ma1<ma2 and close<ma1 if (bullbuy) strategy.entry("Riposte", strategy.long, ordersize) strategy.exit( "Riposte close", from_entry="Riposte", qty_percent=100, profit=targetvalue,loss=targetvalue) if (bearsell) strategy.entry("Riposte", strategy.short, ordersize) strategy.exit( "Riposte close", from_entry="Riposte", qty_percent=100, profit=targetvalue,loss=targetvalue) //plotshape(bullbuy, title= "Purple", location=location.belowbar, color=#006600, transp=0, style=shape.circle, size=size.tiny, text="Riposte") //plotshape(bearsell, title= "Purple", location=location.abovebar, color=#006600, transp=0, style=shape.circle, size=size.tiny, text="Riposte")