
Strategi ini menggunakan moving average sebagai sinyal perdagangan, dikombinasikan dengan rasio stop loss dan stop loss yang disesuaikan oleh pengguna, untuk mencapai strategi stop loss dan stop loss berbasis indikator yang lengkap. Strategi ini dapat melakukan entry, stop loss, dan stop loss secara otomatis, tanpa intervensi manusia, dan cocok untuk perdagangan otomatis.
Logika inti dari strategi ini adalah:
Menggunakan SMA 3 siklus sebagai sinyal perdagangan, melakukan plus ketika SMA di atas melewati 0, dan kosong ketika SMA di bawah melewati 0;
Setelah login, pengguna dapat menyesuaikan stop loss ratio dan stop loss ratio;
Berdasarkan harga masuk dan pengaturan pengguna, stop loss akan diatur secara otomatis.
Secara otomatis mengatur stop line sesuai dengan harga masuk dan pengaturan stop line pengguna;
Ketika harga menyentuh garis stop loss, stop loss otomatis; ketika harga menyentuh garis stop loss, stop loss otomatis;
Stop loss order dibatalkan secara otomatis setelah posisi teratasi.
Secara khusus, strategi ini menggunakan fungsi sma untuk menghitung rata-rata bergerak selama 3 periode dan memberikan nilai ke variabel ma.
Kemudian, perhitungkan panjang baris masuk yang bermuatan ma ditambah lo yang merupakan persentase dari ma. Lo adalah parameter yang dapat disesuaikan oleh pengguna, yang mewakili pergeseran baris masuk yang dilakukan secara berkala.
Ketika ma di atas 0, berarti mulai melakukan lebih banyak, masukkan lebih banyak melalui fungsi strategy.entry, harga masuknya adalah long。
Pada saat yang sama, Anda dapat mengatur harga stop loss dan harga stop. Stop loss adalah harga masuk dikurangi sl% dari harga masuk. Sl adalah parameter yang dapat disesuaikan oleh pengguna, yang mewakili stop loss. Stop loss adalah harga masuk ditambah tp% dari harga masuk.
Dengan fungsi strategy.entry, Anda dapat mengatur stop loss dan stop loss secara terpisah. Ketika harga menyentuh garis stop loss, Anda akan berhenti secara otomatis; Ketika harga menyentuh garis stop loss, Anda akan berhenti secara otomatis.
Stop loss order akan dibatalkan secara otomatis melalui fungsi strategy.cancel setelah posisi terpadat.
Strategi ini memiliki keuntungan sebagai berikut:
Tingkat otomatisasi yang tinggi, tidak memerlukan intervensi manusia, cocok untuk perdagangan otomatis;
Rasio stop loss yang dapat disesuaikan untuk mengendalikan risiko;
Untuk menghindari penipuan, sinyal perdagangan berasal dari indikator.
Ini adalah salah satu dari beberapa hal yang dapat Anda lakukan untuk mencegah terjadinya kerusakan.
Strategi logis yang jelas dan sederhana, mudah dipahami dan diterapkan.
Strategi ini juga memiliki beberapa risiko:
Risiko indikator menghasilkan sinyal palsu. Solusinya adalah mengoptimalkan parameter untuk memastikan indikator stabil dan dapat diandalkan.
Rasio stop loss yang ditetapkan tidak masuk akal, mungkin terlalu longgar atau terlalu radikal. Solusinya adalah menyesuaikan parameter stop loss untuk pasar yang berbeda.
Penembusan masuk yang mudah untuk ditiru. Solusi adalah kombinasi dari tren, indikator harga dan lain-lain untuk memfilter masuk sinyal.
Penarikan mungkin lebih besar. Solusi adalah menurunkan standar posisi, atau melacak stop loss.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Optimalkan parameter moving average untuk membuatnya lebih dapat diandalkan;
Untuk mengoptimalkan kondisi masuk, menghindari penembusan palsu, dan tambahan konfirmasi harga;
Optimalkan strategi stop loss dengan menggunakan stop loss dinamis, tracking stop loss, dan lain sebagainya.
Mengoptimalkan pengelolaan dana, menyesuaikan standar posisi, dan mengurangi risiko tunggal;
Mengoptimalkan waktu masuk filter, menggabungkan indikator seperti tren, dukungan resistance level.
Bergabunglah dengan Pyramiding untuk strategi investasi untuk meningkatkan profitabilitas.
Optimalisasi parameter untuk varietas tertentu.
Strategi ini merupakan strategi stop loss yang didorong oleh indikator, dengan keuntungan otomatisasi perdagangan, kontrol risiko, dan cocok untuk perdagangan kuantitatif. Namun, ada beberapa arah yang perlu dioptimalkan, seperti parameter indikator yang dioptimalkan, penyaringan masuk, strategi stop loss, manajemen dana, dll. Secara keseluruhan, strategi ini memberikan kerangka teknis perdagangan yang sederhana dan andal, yang dapat diperluas dan dioptimalkan menjadi strategi yang lebih kuat.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-11-09 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("example for panel signals", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//https://www.tradingview.com/script/m2a04xmb-noro-s-shiftma-tp-sl-strategy/
//Settings
lo = input(-5.0, title = "Long-line, %")
tp = input(5.0, title = "Take-profit")
sl = input(2.0, title = "Stop-loss")
//SMA
ma = sma(ohlc4, 3)
long = ma + ((ma / 100) * lo)
//Orders
avg = strategy.position_avg_price
if ma > 0
strategy.entry("Long", strategy.long, limit = long)
strategy.entry("Take", strategy.short, 0, limit = avg + ((avg / 100) * tp))
strategy.entry("Stop", strategy.short, 0, stop = avg - ((avg / 100) * sl))
//Cancel order
if strategy.position_size == 0
strategy.cancel("Take")
strategy.cancel("Stop")
//Lines
plot(long, offset = 1, color = color.black, transp = 0)
take = avg != 0 ? avg + ((avg / 100) * tp) : long + ((long / 100) * tp)
stop = avg != 0 ? avg - ((avg / 100) * sl) : long - ((long / 100) * sl)
takelinecolor = avg == avg[1] and avg != 0 ? color.lime : na
stoplinecolor = avg == avg[1] and avg != 0 ? color.red : na
plot(take, offset = 1, color = takelinecolor, linewidth = 3, transp = 0)
plot(stop, offset = 1, color = stoplinecolor, linewidth = 3, transp = 0)
//
disp_panels = input(true, title="Display info panels?")
h=high
info_label_off = input(20, title="Info panel offset")
info_label_size = input(size.large, options=[size.tiny, size.small, size.normal, size.large, size.huge], title="Info panel label size")
info_panel_x = timenow + round(change(time)*info_label_off)
info_panel_y = h
info_title= "-=-=-=-=- Info Panel -=-=-=-=-"
info_div = "\n\n------------------------------"
a = "\n\ Long : " + tostring(long)
b = "\n\ Stop loss : " + tostring(stop)
c = "\n\ TP : " + tostring(take)
// info_text = a+c+b
// info_panel = disp_panels ? label.new(x=info_panel_x, y=info_panel_y, text=info_text, xloc=xloc.bar_time, yloc=yloc.price, color=color.yellow, style=label.style_labelup, textcolor=color.black, size=info_label_size) : na
// label.delete(info_panel[1])