
Strategi ini menggabungkan indikator EMA multi-frame dengan penilaian bentuk K-line, untuk menangkap sinyal garis panjang yang lebih sensitif dan menghentikan kehilangan.
Strategi ini didasarkan pada beberapa indikator:
EMA rata-rata: menggunakan 13 siklus, 21 siklus 2 kelompok EMA, menilai harga terobosan membentuk sinyal perdagangan.
K-line formasi: menentukan arah entitas K-line, digunakan bersama dengan indikator EMA, memfilter penembusan palsu.
Resistensi Dukungan: Menggunakan konstruksi 10 siklus terbaru highest tinggi, menilai terobosan melalui daerah ini meningkatkan keandalan sinyal.
Saat naik poin: 120 siklus close close harga di atas open open harga dinilai sebagai naik poin, sebagai penilaian tambahan.
Aturan untuk menghasilkan sinyal perdagangan adalah:
Sinyal multihead: EMA cepat ke atas menembus EMA lambat, dan untuk garis K yang berlawanan, tutup posisi kosong terbuka.
Sinyal kosong: EMA cepat turun dari EMA lambat, dan untuk garis K negatif, meratakan posisi.
Stop loss exit: Stop loss exit dari posisi saat ini pada saat ada sinyal backhand.
Risiko di atas dapat diatasi dengan menghindari optimasi berlebihan, memilih parameter dengan hati-hati, dan mengendalikan ukuran posisi secara ketat.
Strategi ini mengintegrasikan indikator EMA kerangka multi waktu dengan penilaian entitas K-line, untuk mencapai penilaian tren yang lebih andal. Pada saat yang sama, kombinasi dukungan resistensi dan situasi waktu untuk membantu memastikan kualitas sinyal. Dengan mekanisme sinyal anti-tangan, stop loss dapat dikontrol secara efektif. Strategi dapat dioptimalkan di masa depan dengan memperkenalkan model pembelajaran mesin, stop loss adaptif, analisis emosi dan modul manajemen posisi, dan lain-lain.
/*backtest
start: 2023-02-14 00:00:00
end: 2024-02-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title='ck - CryptoSniper Longs Only (Strategy)', shorttitle='ck - CryptoSniper Longs (S) v1', overlay=true, precision=2, commission_value=0.25, default_qty_type=strategy.percent_of_equity, pyramiding=0, default_qty_value=100, initial_capital=100)
open_long = 0
close_position = 0
last_long=close
last_short=close
//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=false
//-----------------Support and Resistance
RST = input(title='Support / Resistance length:', defval=10)
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
//--------------------Trend colour ema------------------------------------------------//
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
//=============Hull MA//
show_hma = false
hma_src = input(close, title="HullMA Source:")
hma_base_length = input(8, minval=1, title="HullMA Base Length:")
hma_length_scalar = input(5, minval=0, title="HullMA Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
//============ signal Generator ==================================//
Period=input(title='Period', defval='120')
ch1 = request.security(syminfo.tickerid, Period, open)
ch2 = request.security(syminfo.tickerid, Period, close)
// Signals//
long = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
short = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short) ? 1 : -1
short_signal = crossover(last_short, last_long) ? -1 : 1
if (long_signal == 1)
strategy.entry("Long Open", strategy.long)
if (short_signal == -1)
strategy.close("Long Open")
if (long_signal[1] == 1 and short_signal[1] == 1)
open_long := 1
close_position := 0
if (short_signal[1] == -1 and long_signal[1] == -1)
open_long := 0
close_position := 1
plotshape(open_long == 1, title="Open Long", location=location.belowbar, style=shape.triangleup, size=size.small, color=green, transp=10)
plotshape(close_position == 1, title="Close Long", location=location.abovebar, style=shape.triangledown, size=size.small, color=red, transp=10)
//plot(0, title="Trigger", color=white)
///////////////////////////////////////////////////////////////////////////////////////////