Strategi indikator teknis, strategi manajemen risiko, strategi mengikuti tren adaptif

EMA SDI
Tanggal Pembuatan: 2024-07-29 17:25:26 Akhirnya memodifikasi: 2024-07-29 17:25:26
menyalin: 0 Jumlah klik: 470
1
fokus pada
1617
Pengikut

Strategi indikator teknis, strategi manajemen risiko, strategi mengikuti tren adaptif

Ringkasan

Strategi ini adalah sistem perdagangan pelacakan tren adaptif berdasarkan indeks moving average (EMA) dan indikator arah geser (SDI). Strategi ini menggabungkan beberapa indikator teknis dan alat manajemen risiko untuk menangkap tren pasar dan mengendalikan risiko. Strategi ini menggunakan persilangan EMA cepat dan lambat dan arah SDI untuk menentukan tren pasar dan dengan demikian menghasilkan sinyal beli dan jual.

Inti dari strategi ini adalah kemampuan beradaptasi dan pendekatan manajemen risiko yang komprehensif. Dengan menggunakan parameter yang dapat disesuaikan seperti siklus EMA, kelancaran SDI, dan ambang pengelolaan risiko, pedagang dapat mengoptimalkan strategi sesuai dengan kondisi pasar yang berbeda dan preferensi risiko pribadi. Pengaturan yang fleksibel dari ukuran leverage dan posisi lebih lanjut meningkatkan kemampuan beradaptasi strategi, sehingga dapat disesuaikan dengan gaya perdagangan yang berbeda dan ukuran modal.

Prinsip Strategi

  1. Penghitungan indikator:

    • Perhitungan EMA cepat dan lambat, dan versi halus dari keduanya.
    • Perhitungan SDI, termasuk indikator arah positif dan negatif.
  2. Sinyal perdagangan dihasilkan:

    • Kondisi multihead: Positif DI lebih besar dari negatif DI, dan EMA cepat lebih besar dari EMA lambat.
    • Kondisi kosong: DI negatif lebih besar dari DI positif, dan EMA cepat lebih kecil dari EMA lambat.
  3. Manajemen Posisi:

    • Ukuran transaksi ditentukan dengan menggunakan leverage yang dapat disesuaikan dan persentase ekuitas.
    • Setelah memenuhi persyaratan masuk, kosongkan posisi terbalik dan buka posisi baru.
  4. Manajemen Risiko:

    • Fungsi Stop Loss, Stop Loss, dan Trace Stop Loss yang dapat dipilih.
    • Pengaturan dinamis untuk melacak level stop loss untuk mengunci profit.
  5. Filter waktu:

    • Anda dapat mengatur tanggal awal dan akhir perdagangan, dan secara otomatis menutup posisi di luar jangka waktu yang ditentukan.

Keunggulan Strategis

  1. Kemampuan menangkap tren: Kombinasi EMA dan SDI, untuk mengidentifikasi dan melacak tren pasar secara efektif.

  2. Adaptif: Beradaptasi dengan kondisi pasar yang berbeda melalui parameter yang dapat disesuaikan.

  3. Manajemen risiko yang komprehensif: terintegrasi stop-loss dan tracking stop-loss, kontrol risiko yang menyeluruh.

  4. Kontrol posisi yang fleksibel: Leverage dan proporsi penggunaan dana dapat disesuaikan dengan preferensi risiko yang berbeda.

  5. Retrospektif ramah: mendukung retrospeksi data historis untuk optimasi strategi.

  6. Netralitas emosi: mengurangi dampak emosi subjektif berdasarkan indikator objektif.

  7. Fungsionalitas: dapat digunakan untuk berbagai periode waktu dan varietas perdagangan.

Risiko Strategis

  1. Overtrading: Di pasar yang bergejolak, transaksi yang sering terjadi dapat meningkatkan biaya.

  2. Lagging: EMA dan SDI sebagai indikator lagging, mungkin bereaksi lambat ketika tren berbalik.

  3. Risiko False Breakthrough: Mungkin salah menilai tren dalam fluktuasi jangka pendek, yang menyebabkan perdagangan yang salah.

  4. Sensitivitas parameter: kinerja sangat bergantung pada pengaturan parameter, yang perlu terus dioptimalkan.

  5. Ketergantungan pada kondisi pasar: mungkin kurang baik dalam kondisi pasar tertentu.

  6. Risiko Leverage: Leverage yang tinggi dapat memperbesar kerugian dan harus digunakan dengan hati-hati.

  7. Ketergantungan teknologi: bergantung pada lingkungan teknologi yang stabil, kegagalan sistem dapat menyebabkan kerugian.

Arah optimasi strategi

  1. Penyesuaian parameter dinamis: Membuat penyesuaian adaptif parameter EMA dan SDI untuk menyesuaikan dengan fase pasar yang berbeda.

  2. Analisis multi-frame waktu: mengintegrasikan sinyal dari beberapa periode waktu, meningkatkan akurasi penilaian tren.

  3. Filter Volatilitas: Menambahkan indikator volatilitas seperti ATR untuk menyesuaikan aturan perdagangan pada periode volatilitas tinggi.

  4. Identifikasi kondisi pasar: memperkenalkan klasifikasi kondisi pasar ((trend / getaran), optimasi perdagangan yang ditargetkan logis.

  5. Pengelolaan dana yang optimal: melakukan penyesuaian posisi secara dinamis, secara otomatis menyesuaikan risiko sesuai dengan kerugian akun.

  6. Kombinasi indikator: Pertimbangkan untuk menambahkan indikator tambahan seperti RSI atau MACD untuk meningkatkan keandalan sinyal.

  7. Integrasi pembelajaran mesin: memperkenalkan algoritma pembelajaran mesin, mengoptimalkan pilihan parameter dan generasi sinyal.

Meringkaskan

Strategi pelacakan tren yang beradaptasi sendiri yang dikombinasikan dengan EMA dan SDI menunjukkan kemampuan adaptasi pasar dan manajemen risiko yang kuat. Dengan pengaturan parameter yang fleksibel dan langkah-langkah pengendalian risiko yang komprehensif, ia menyediakan pedagang dengan kerangka perdagangan kuantitatif yang andal.

Namun, pedagang masih perlu memperhatikan risiko potensial seperti keterbelakangan dan sensitivitas parameter yang melekat pada strategi. Strategi ini diharapkan dapat meningkatkan kinerja dan stabilitasnya melalui optimasi dan perbaikan berkelanjutan, terutama dalam hal penyesuaian parameter dinamis, analisis multi-frame waktu, dan identifikasi status pasar.

Secara keseluruhan, strategi ini memberikan dasar yang kuat untuk perdagangan kuantitatif, cocok untuk investor yang mencari metode perdagangan yang sistematis dan disiplin. Dengan pemahaman yang mendalam tentang prinsip-prinsip strategi dan menggabungkan gaya perdagangan individu, pedagang dapat menggunakan alat ini secara efektif untuk meningkatkan keunggulan kompetitif mereka di pasar keuangan.

Kode Sumber Strategi
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © erdas0

//@version=5
strategy("Strategy SEMA SDI Webhook", overlay=true, slippage = 1, commission_value = 0.035, default_qty_type=strategy.percent_of_equity, default_qty_value=50, initial_capital = 1000, calc_on_order_fills = true, process_orders_on_close = true)
// Start and end dates
dts=input(false,"",inline="dts")
dte=input(false,"",inline="dte")
start_date = input(timestamp("2023-01-01 00:00:00"), "Start Date",inline="dts") 
end_date = input(timestamp("2124-01-01"), "End Date",inline="dte") 
times = true
// Initial capital
leverage= input.int(10, "Leverage", minval=1,inline="qty") //Leverage Test
usdprcnt= input.int(50, "%", minval=1,inline="qty")
qty= input(false,"Inital USDT ◨",inline="qty")
initial_capital = qty ? (strategy.initial_capital+strategy.netprofit)/close*leverage*usdprcnt/100 : na
//Level Inputs
tpon=input(false,"TP ◨",group ="Take Profit/Stop Loss", inline="1")
sloc=input(true,"SL ◨",group ="Take Profit/Stop Loss", inline="1")
tron=input(true,"Trailing ◨",group ="Take Profit/Stop Loss", inline="1")

tp = tpon ? input.float(25, "Take Profit %", minval=0.1,step=0.1,group ="Take Profit/Stop Loss", inline="2") : na
sl = sloc ? input.float(4.8, "Stop Loss %", minval=0.1,step=0.1,group ="Take Profit/Stop Loss", inline="2") : na
tr = tron ? input.float(1.9, "Trailing Stop ", minval=0.1,step=0.1,group ="Take Profit/Stop Loss", inline="4") : na

// Take profit and stop loss levels
dir=strategy.position_size/math.abs(strategy.position_size) //Directions
newtrade=strategy.closedtrades>strategy.closedtrades[1]
pftpcnt=dir<0 ? (strategy.position_avg_price-low)/strategy.position_avg_price*100 : dir>0 ? (high-strategy.position_avg_price)/strategy.position_avg_price*100 : na //max profit

pftpr= (1 + pftpcnt*dir/100) * strategy.position_avg_price //Trailing Price
take_profit = (1 + tp*dir/100) * strategy.position_avg_price
stop_loss = (1 - sl*dir/100) * strategy.position_avg_price

var float maxpft=na //max profit percent
maxpft := newtrade ? 0 : strategy.openprofit > 0 ?  math.max(pftpcnt,maxpft) : maxpft
var float Tr=na //Trailing
Tr := newtrade ? na : pftpcnt >= tr and maxpft-pftpcnt >= tr ?  close : Tr

//Inputs
ocema=input(true, title='EMA ◨',group="Inputs",inline="2")
ocsd=input(true, title='SDI ◨',group="Inputs",inline="2")
ocsm=input(true, title='Smooth ◨',group="Inputs",inline="2")
lenf = input.int(58, "Fast Ema", minval=1,group ="Inputs", inline="3")
lens = input.int(70, "Slow Ema", minval=1,group ="Inputs", inline="3")
slen = input.int(3, "Smooth", minval=1,group ="Inputs", inline="4")
dilen = input.int(1, title="DI Length", minval=1,group ="SDI", inline="5")
sdi = input.int(6, title="DI Smooth", minval=1,group ="SDI", inline="5")

//EMA
emaf=ta.ema(close,lenf)
emas=ta.ema(close,lens)
semaf=ta.ema(emaf,slen)
semas=ta.ema(emas,slen)
//SDI
dirmov(len,smt) =>
	up = ta.change(high)
	down = -ta.change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = ta.rma(ta.tr, len)
	plus = ta.ema(fixnan(100 * ta.rma(plusDM, len) / truerange),smt)
	minus = ta.ema(fixnan(100 * ta.rma(minusDM, len) / truerange),smt)
	[plus, minus]
[plus,minus]=dirmov(dilen,sdi)
pm=ta.ema(plus-minus,10) 
sdcl= plus>minus ? color.new(color.green,80) :plus<minus ? color.new(color.red,80) : na
cpm= pm>pm[1] ? color.lime : pm<pm[1] ? color.red : color.yellow
barcolor(cpm,title="PM Color")

//Plot
plot(ocsm ? semaf:emaf,"Fast Ema",color=color.green)
plot(ocsm ? semas:semas,"Slow Ema",color=color.red)
// Conditions
Long = (ocsd ? plus>minus:true) and (ocema ? (ocsm ? semaf:emaf)>(ocsm ? semas:emas):true)
Short = (ocsd ? plus<minus:true) and (ocema ? (ocsm ? semaf:emaf)<(ocsm ? semas:emas):true)

// Strategy conditions
if Long and times
    strategy.close("Short","Close S")
    strategy.entry("Long", strategy.long, comment="L",qty = initial_capital)
if strategy.position_size>0
    strategy.exit("Long LTP", "Long", limit=take_profit, stop=stop_loss, comment="LSL",comment_profit = "LTP")
if Tr and strategy.position_size>0
    strategy.exit("Long LTP", "Long", limit=take_profit, stop=pftpr, comment="Tr",comment_profit = "LTP")

if Short and times
    strategy.close("Long","Close L")
    strategy.entry("Short", strategy.short, comment="S",qty = initial_capital)
if strategy.position_size<0
    strategy.exit("Short STP", "Short", limit=take_profit, stop=stop_loss, comment="SSL",comment_profit ="STP" )
if Tr and strategy.position_size<0
    strategy.exit("Short STP", "Short", limit=take_profit, stop=pftpr, comment="Tr",comment_profit = "STP")

if not times
    strategy.close_all()