Sumber dimuat naik... memuat...

Strategi Petunjuk Teknikal, Strategi Pengurusan Risiko, Trend Penyesuaian Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2024-07-29 17:25:26
Tag:EMASDI

img

Ringkasan

Strategi ini adalah sistem dagangan mengikut trend adaptif berdasarkan Exponential Moving Averages (EMA) dan Smoothed Directional Indicators (SDI). Ia menggabungkan pelbagai penunjuk teknikal dan alat pengurusan risiko untuk menangkap trend pasaran dan mengawal risiko. Strategi ini menggunakan persilangan EMA cepat dan perlahan bersama dengan arah SDI untuk menentukan trend pasaran dan menghasilkan isyarat beli dan jual.

Kekuatan teras strategi ini terletak pada kebolehsesuaian dan pendekatan pengurusan risiko yang komprehensif. Melalui penggunaan parameter yang boleh disesuaikan seperti tempoh EMA, kelancaran SDI, dan ambang pengurusan risiko, peniaga dapat mengoptimumkan strategi untuk keadaan pasaran yang berbeza dan keutamaan risiko peribadi. Tetapan leverage dan saiz kedudukan yang fleksibel lebih meningkatkan kebolehsesuaian strategi, menjadikannya sesuai untuk pelbagai gaya perdagangan dan saiz modal.

Prinsip Strategi

  1. Pengiraan Indikator:

    • Mengira EMA pantas dan perlahan, bersama-sama dengan versi mereka yang halus.
    • Mengira SDI, termasuk penunjuk arah positif dan negatif.
  2. Generasi Isyarat Perdagangan:

    • Keadaan panjang: DI positif lebih besar daripada DI negatif, dan EMA pantas di atas EMA perlahan.
    • Keadaan pendek: DI negatif lebih besar daripada DI positif, dan EMA pantas di bawah EMA perlahan.
  3. Pengurusan Kedudukan:

    • Gunakan leverage dan peratusan ekuiti yang boleh diselaraskan untuk menentukan saiz perdagangan.
    • Tutup kedudukan bertentangan dan buka yang baru apabila syarat masuk dipenuhi.
  4. Pengurusan Risiko:

    • Melaksanakan pilihan mengambil keuntungan, berhenti rugi, dan ciri berhenti yang tertinggal.
    • Sesuaikan secara dinamik paras berhenti untuk mengunci keuntungan.
  5. Penapisan Masa:

    • Tetapkan tarikh permulaan dan akhir untuk perdagangan, secara automatik menutup kedudukan di luar julat masa yang ditetapkan.

Kelebihan Strategi

  1. Keupayaan Mengesan Trend: Mengenali dan mengikuti trend pasaran dengan berkesan dengan menggabungkan EMA dan SDI.

  2. Kebolehsesuaian yang tinggi: Sesuai dengan keadaan pasaran yang berbeza melalui parameter yang boleh disesuaikan.

  3. Pengurusan Risiko Komprehensif: Mengintegrasikan mengambil keuntungan, hentikan kerugian, dan hentikan pengangkutan untuk kawalan risiko menyeluruh.

  4. Kawalan Posisi Fleksibel: Rasio leverage dan penggunaan modal yang boleh diselaraskan untuk memenuhi selera risiko yang berbeza.

  5. Backtesting Friendly: Menyokong backtesting data sejarah untuk pengoptimuman strategi.

  6. Neutral emosi: Berdasarkan penunjuk objektif, mengurangkan kesan emosi subjektif.

  7. Kepelbagaian: Boleh digunakan untuk jangka masa dan instrumen perdagangan yang berbeza.

Risiko Strategi

  1. Overtrading: Boleh menghasilkan perdagangan yang kerap di pasaran yang bergelombang, meningkatkan kos.

  2. Sifat ketinggalan: EMA dan SDI adalah penunjuk ketinggalan, berpotensi lambat bertindak balas terhadap pembalikan trend.

  3. Risiko pecah palsu: Mungkin salah menafsirkan turun naik jangka pendek sebagai trend, yang membawa kepada perdagangan yang salah.

  4. Sensitiviti Parameter: Prestasi sangat bergantung kepada tetapan parameter, yang memerlukan pengoptimuman berterusan.

  5. Kebergantungan persekitaran pasaran: Mungkin kurang dalam keadaan pasaran tertentu.

  6. Risiko Leverage: Leverage yang tinggi boleh meningkatkan kerugian, yang memerlukan penggunaan yang berhati-hati.

  7. Kebergantungan Teknologi: Bergantung pada persekitaran teknikal yang stabil, kegagalan sistem boleh menyebabkan kerugian.

Arahan Pengoptimuman Strategi

  1. Penyesuaian Parameter Dinamik: Melaksanakan penyesuaian adaptif parameter EMA dan SDI untuk menyesuaikan diri dengan fasa pasaran yang berbeza.

  2. Analisis Jangka Masa Berbilang: Mengintegrasikan isyarat dari beberapa tempoh masa untuk meningkatkan ketepatan penilaian trend.

  3. Penapisan Volatiliti: Menggabungkan penunjuk volatiliti seperti ATR untuk menyesuaikan peraturan perdagangan semasa tempoh volatiliti yang tinggi.

  4. Pengiktirafan keadaan pasaran: Memperkenalkan klasifikasi keadaan pasaran (trend/range) untuk mengoptimumkan logik dagangan.

  5. Pengoptimuman Pengurusan Modal: Melaksanakan penyesuaian kedudukan dinamik berdasarkan status keuntungan dan kerugian akaun.

  6. Gabungan penunjuk: Pertimbangkan untuk menambah penunjuk pelengkap seperti RSI atau MACD untuk meningkatkan kebolehpercayaan isyarat.

  7. Integrasi Pembelajaran Mesin: Memperkenalkan algoritma pembelajaran mesin untuk mengoptimumkan pemilihan parameter dan penjanaan isyarat.

Kesimpulan

Strategi mengikuti trend adaptif ini menggabungkan EMA dan SDI menunjukkan kemampuan penyesuaian pasaran dan pengurusan risiko yang kuat. Melalui tetapan parameter yang fleksibel dan langkah kawalan risiko yang komprehensif, ia menyediakan peniaga dengan rangka kerja perdagangan kuantitatif yang boleh dipercayai. Kelebihan utama strategi terletak pada penangkapan trend yang sensitif dan kawalan risiko yang ketat, yang membolehkannya mengekalkan prestasi yang stabil di pelbagai persekitaran pasaran.

Walau bagaimanapun, peniaga masih perlu menyedari potensi risiko yang melekat pada strategi, seperti kelewatan dan kepekaan parameter. Melalui pengoptimuman dan penambahbaikan berterusan, terutamanya dalam bidang seperti pelarasan parameter dinamik, analisis pelbagai jangka masa, dan pengiktirafan keadaan pasaran, strategi mempunyai potensi untuk meningkatkan prestasi dan kestabiannya.

Secara keseluruhan, strategi ini menyediakan asas yang kukuh untuk perdagangan kuantitatif, sesuai untuk pelabur yang mencari kaedah perdagangan yang sistematik dan berdisiplin. Dengan memahami prinsip strategi dengan mendalam dan menggabungkannya dengan gaya perdagangan peribadi, pedagang dapat menggunakan alat ini dengan berkesan untuk meningkatkan kelebihan kompetitif mereka di pasaran kewangan.


/*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()

Berkaitan

Lebih lanjut