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.
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:
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.
Untuk mengurangkan risiko, mengoptimumkan dalam aspek berikut:
Aspek berikut boleh dioptimumkan untuk strategi:
Mengoptimumkan tetapan parameter dengan melintasi nilai yang berbeza.
Tambahkan keadaan penapis semasa masuk untuk mengelakkan isyarat palsu.
Mengoptimumkan kaedah stop loss seperti trailing stop loss.
Mengoptimumkan mengambil keuntungan cara seperti adaptif mengambil keuntungan.
Tambah keuntungan mengambil automatik berhampiran tahap utama untuk mengelakkan pulback.
Mengoptimumkan pengurusan wang dengan menyesuaikan saiz kedudukan mengikut risiko.
Uji dan optimumkan parameter dan paras berhenti / keuntungan berdasarkan instrumen dan jangka masa yang berbeza.
Menguruskan peristiwa yang melampau seperti mengelakkan perdagangan semasa berita atau kehilangan yang cepat.
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)