Strategi Beli dan Jual Berbilang Penunjuk

Penulis:ChaoZhang, Tarikh: 2023-10-18 11:36:38
Tag:

img

Ringkasan

Strategi ini menggabungkan indikator purata bergerak, overbought-oversold dan kadar turun naik untuk membeli pada penurunan apabila overbought dan menjual pada kenaikan apabila overbought, untuk mengesan trend.

Logika Strategi

Mengambil kedudukan apabila RSI dan Stoch berada di zon oversold / overbought dan osilator AO menunjukkan isyarat pembalikan. Khususnya, pergi panjang apabila RSI dan Stoch rendah (di bawah 30 dan 20) dan AO berubah dari negatif menjadi positif; pergi pendek apabila RSI dan Stoch tinggi (di atas 70 dan 80) dan AO berubah dari positif menjadi negatif. Tetapkan stop loss dan ambil keuntungan berdasarkan nilai ATR untuk menyesuaikan tahap kerugian / keuntungan mengikut turun naik pasaran.

Strategi ini terutamanya menggunakan empat penunjuk:

  • Osilator AO: mencerminkan momentum harga, boleh digunakan untuk mengenal pasti pembalikan trend.
  • RSI: mencerminkan tahap overbought / oversold. Di bawah 30 adalah zon oversold.
  • Stok: mencerminkan zon overbought / oversold. Di bawah 20 adalah zon oversold.
  • ATR: mencerminkan turun naik harga terkini.

Apabila AO menunjukkan isyarat pembalikan dan RSI & Stoch berada di zon oversold / overbought, harga mungkin berbalik. Ambil kedudukan pada masa ini. Gunakan ATR untuk menetapkan harga stop loss dan mengambil keuntungan untuk mengelakkan terperangkap dengan menyesuaikan julat kerugian / keuntungan berdasarkan turun naik.

Kelebihan

  • Gunakan pelbagai penunjuk untuk mengesahkan isyarat, mengelakkan perdagangan yang salah dari satu penunjuk.
  • Tetapkan stop loss / keuntungan berdasarkan turun naik untuk mengawal kerugian tunggal.
  • Logik yang mudah dan jelas, mudah difahami dan dilaksanakan.
  • Manfaatkan situasi overbought / oversold untuk menangkap pembalikan.

Risiko dan Penyelesaian

  • AO boleh menghasilkan isyarat palsu. Perlu digabungkan dengan RSI dan Stoch untuk mengelakkan perdagangan yang salah.
  • Parameter tetap mungkin tidak dapat disesuaikan dengan perubahan pasaran. Parameter perlu dioptimumkan.
  • Stop loss yang terlalu dekat boleh mencetuskan hentian yang kerap.
  • Keuntungan tetap boleh keluar terlalu awal atau lewat. Boleh menggunakan keuntungan adaptif atau keluar separa.

Untuk mengurangkan risiko, mengoptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter untuk menyesuaikan diri dengan tempoh dan instrumen yang berbeza.
  2. Meningkatkan kaedah stop loss seperti trailing stop, partial exits.
  3. Mengoptimumkan peraturan kemasukan untuk mengelakkan isyarat palsu.
  4. Mengoptimumkan mengambil keuntungan cara seperti adaptif mengambil keuntungan, segmen oleh trend.

Arahan pengoptimuman

Aspek berikut boleh dioptimumkan untuk strategi:

  1. Mengoptimumkan tetapan parameter dengan melintasi nilai yang berbeza.

  2. Tambahkan keadaan penapis semasa masuk untuk mengelakkan isyarat palsu.

  3. Mengoptimumkan kaedah stop loss seperti trailing stop loss.

  4. Mengoptimumkan mengambil keuntungan cara seperti adaptif mengambil keuntungan.

  5. Tambah keuntungan mengambil automatik berhampiran tahap utama untuk mengelakkan pulback.

  6. Mengoptimumkan pengurusan wang dengan menyesuaikan saiz kedudukan mengikut risiko.

  7. Uji dan optimumkan parameter dan paras berhenti / keuntungan berdasarkan instrumen dan jangka masa yang berbeza.

  8. Menguruskan peristiwa yang melampau seperti mengelakkan perdagangan semasa berita atau kehilangan yang cepat.

Ringkasan

Strategi ini menggabungkan sistem purata bergerak, overbought-oversold dan volatility untuk membeli rendah dan menjual tinggi, dengan keupayaan trend yang kuat. Tetapi terdapat beberapa masalah seperti parameter tetap dan kerugian berhenti yang tidak betul. Kita boleh mengoptimumkan dari pelbagai aspek seperti penyesuaian parameter, meningkatkan kerugian berhenti, menambah penapis untuk menjadikannya lebih mantap. Dalam perdagangan sebenar, perlu menguji dan mengoptimumkan berdasarkan instrumen dan tempoh tertentu untuk memaksimumkan keberkesanan dan keuntungan.


/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("Buy&Sell Strategy depends on AO+Stoch+RSI+ATR by SerdarYILMAZ", shorttitle="Buy&Sell Strategy")
// Created by Serdar YILMAZ
// This strategy is just for training, its purpose is just learning code in pine script.
// Don't make buy or sell decision with this strategy.
// Bu strateji sadece pine script'te kodlamanın nasıl yapildigini ogrenmek icindir.
// Bu stratejiye dayanarak, kesinlikle al-sat islemleri yapmayin.

//AO

fast=input(title="Fast Length",type=input.integer,defval=5)
slow=input(title="Slow length",type=input.integer,defval=34)

awesome=(sma(hl2,fast)-sma(hl2,slow))*1000

plot(awesome, style=plot.style_histogram, color=(awesome>awesome[1]?color.green:color.red))

//Stoch

K=input(title="K",type=input.integer,defval=14)
D=input(title="D",type=input.integer,defval=3)
smooth=input(title="smooth",type=input.integer,defval=3)

k=sma(stoch(close,high,low,K),D)
d=sma(k,smooth)

hline(80)
hline(20)

plot(k,color=color.blue)

//RSI

rsisource=input(title="rsi source",type=input.source,defval=close)
rsilength=input(title="rsi length",type=input.integer,defval=10)

rsi=rsi(rsisource,rsilength)

hline(70,color=color.orange)
hline(30,color=color.orange)

plot(rsi,color=color.orange)

//ATR

atrlen=input(title="ATR Length", type=input.integer,defval=14)

atrvalue=rma(tr,atrlen)

plot(atrvalue*1000,color=color.green)

LongCondition=k<20 and rsi<30 and awesome>awesome[1]
ShortCondition=k>80 and rsi>70 and awesome<awesome[1]
if (LongCondition)
    stoploss=low-atrvalue
    takeprofit=close+atrvalue
    strategy.entry("Long Position", strategy.long)
    strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)
    
if (ShortCondition)
    stoploss=high+atrvalue
    takeprofit=close-atrvalue
    strategy.entry("Short Position",strategy.short)
    strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)
    
    

    
    




Lebih lanjut