Strategi ini mengidentifikasi pola lilin palu bullish dan menggunakan indikator MACD untuk menentukan arah tren untuk tren mengikuti perdagangan. Selama pasar bull, pergi panjang ketika palu bullish muncul sementara MACD bullish. Tutup posisi ketika MACD berubah menjadi bearish.
Mengidentifikasi bullish hammer dengan menghitung rasio body-to-range. Gunakan MACD untuk menentukan arah tren. Ketika MACD bullish, pergi panjang ketika sinyal bullish hammer muncul. Atur stop loss dan ukuran posisi. Keluar ketika MACD berubah menjadi bearish.
Risiko dapat dikurangi dengan melonggarkan kriteria pola, memperpendek parameter MACD, menambahkan indikator sekunder dll.
Strategi ini mengintegrasikan analisis pola dan indikator untuk penentuan tren, memungkinkan keuntungan yang stabil. penyempurnaan lebih lanjut seperti optimasi parameter dapat menjadikannya strategi perdagangan kuantitatif yang praktis.
/*backtest start: 2023-08-18 00:00:00 end: 2023-09-17 00:00:00 period: 3h 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/ // © FenixCapital //@version=4 strategy("Starbux", overlay=true) //VARIABLES //Candlestick Variables body=close-open range=high-low middle=(open+close)/2 abody=abs(body) arange=abs(range) ratio=abody/range longcandle= (ratio>0.6) bodytop=max(open, close) bodybottom=min(open, close) shadowtop=high-bodytop shadowbottom=bodybottom-low //Closing Variables macd=macd(close,12,26,9) [macdLine, signalLine, histLine] = macd(close, 12, 26, 9) //plot(macdLine, color=color.blue) //plot(signalLine, color=color.orange) //plot(histLine, color=color.red, style=plot.style_histogram) rsi=rsi(close,14) sma50= sma(close,50) sma200= sma(close,200) exitrsi=rsi > 76 exitmacd=macdLine >0 and signalLine>0 //exitmacd=crossunder(macdLine,signalLine) stopprice= crossunder(sma50,sma200) //Candlestick Plotting blh = (arange*0.33>=abody and close>open and shadowbottom>=abody*2 and shadowtop<=arange*0.1) plotshape(blh, title= "Bullish Hammer", location=location.belowbar, color=color.lime, style=shape.arrowup, text="Bull\nHammer") //beh = (arange*0.25>=abody and close<open and shadowtop>=abody*2 and shadowbottom<=arange*0.05) //plotshape(beh, title= "Bearish Hammer", color=color.orange, style=shape.arrowdown, text="Bear\nHammer") //bpu = (open>close and close>low and shadowbottom>2*abody) //plotshape(bpu, title= "Black Paper Umbrella", color=color.red, style=shape.arrowdown, text="Black\nPaper\nUmbrella") //Trend Signal bull5= sma50 > sma200 bullmacd=macdLine>=0 and signalLine>=0 bearmacd=macdLine<= 0 and signalLine<=0 //Trading Algorithm longCondition = blh and bearmacd and volume>volume[1] if (longCondition) strategy.order("Buy", true, 1, when=longCondition) strategy.risk.max_position_size(10) //strategy.risk.max_drawdown(25,strategy.percent_of_equity) exitlong = exitmacd if (exitlong) strategy.close_all()