Strategi Pembalikan Bar Pin adalah strategi perdagangan trend berdasarkan corak harga jangka pendek. Ia menggunakan bar pin sebagai isyarat, digabungkan dengan purata bergerak untuk menentukan arah trend, untuk mencapai kemasukan yang sangat tepat. Ia juga menggunakan mekanisme berhenti yang unik untuk mencapai keuntungan yang sangat tinggi.
Isyarat masuk untuk strategi ini adalah menembusi bar pin. Secara khusus isyarat dicetuskan apabila:
Gabungan sedemikian memastikan penapisan keluar kebanyakan bunyi bising dan meningkatkan ketepatan kemasukan.
Strategi ini menggunakan tiga MA dari tempoh yang berbeza untuk menentukan trend. Khususnya, apabila MA cepat, sederhana dan perlahan sejajar ke satu arah, ia ditakrifkan sebagai trend. Jika tidak, ia dianggap sebagai penyatuan.
Untuk entri panjang, MA pantas > MA sederhana > MA perlahan diperlukan. Untuk entri pendek, MA pantas < MA sederhana < MA perlahan diperlukan.
Strategi ini menggunakan mekanisme stop loss yang unik. Selepas masuk, titik stop loss optimum dikesan berdasarkan nilai yang ditakrifkan pengguna untuk titik trailing dan offset. Ini membolehkan memaksimumkan keuntungan yang ditangkap sambil mengawal risiko.
Isyarat menembusi hanya membenarkan kemasukan pada titik peluang kebarangkalian yang tinggi, mengelakkan perdagangan yang terlalu bising.
Stop trailing unik adalah kemuncak terbesar strategi ini. Ia dengan tepat mengawal stop loss dalam julat kecil berdasarkan setiap perdagangan, sambil memastikan keuntungan maksimum yang ditangkap.
Hasil simulasi menunjukkan keuntungan gila selepas menggunakan mekanisme ini, dengan pulangan keseluruhan melebihi 1000% untuk beberapa pasangan, dan maksimum keuntungan setiap perdagangan lebih daripada 100 kali risiko awal.
Memandangkan hasil yang hampir
Juga, tempoh ujian dua tahun yang pendek mungkin tidak menangkap perubahan struktur rejim pasaran yang boleh memberi kesan kepada hasil sebenar.
Nilai hentian yang terlalu sensitif boleh menyebabkan hentian yang berlebihan yang tidak diingini. Kejadian pasaran tiba-tiba juga boleh membatalkan pesanan hentian kerugian. Ini adalah risiko intrinsik yang berkaitan dengan menggunakan hentian hentian.
Untuk menjadikannya cepat dan boleh dipercayai, cuba santai titik belakang untuk mengelakkan terlalu sensitif.
Meningkatkan jangka masa ujian juga membantu memeriksa ketahanan parameter.
Sebagai contoh, meningkatkan perbezaan antara tempoh MA cepat dan sederhana, atau mengubah cara MA berinteraksi.
Strategi Pembalikan Bar Pin Penembusan mencapai hasil backtest yang menakjubkan melalui kemasukan kecekapan tinggi dan mengambil keuntungan yang melampau.
Dengan penyesuaian atau pengoptimuman parameter yang betul, strategi ini mungkin dapat memberikan keuntungan yang besar dalam perdagangan langsung, menjadi sistem trend berikut yang kuat.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Time Frame: H1 strategy("Pin Bar Magic v1", overlay=true) // User Input usr_risk = input(title="Equity Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=3,confirm=false) atr_mult = input(title="Stop Loss (x*ATR, Float)",type=input.float,minval=0.1,maxval=100,step=0.1,defval=0.5,confirm=false) slPoints = input(title="Stop Loss Trail Points (Pips)",type=input.integer,minval=1,maxval=1000,step=1,defval=1,confirm=false) slOffset = input(title="Stop Loss Trail Offset (Pips)",type=input.integer,minval=1,maxval=1000,step=1,defval=1,confirm=false) sma_slow = input(title="Slow SMA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=50,confirm=false) ema_medm = input(title="Medm EMA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=18,confirm=false) ema_fast = input(title="Fast EMA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=6,confirm=false) atr_valu = input(title="ATR (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=14,confirm=false) ent_canc = input(title="Cancel Entry After X Bars (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=3,confirm=false) // Create Indicators slowSMA = sma(close, sma_slow) medmEMA = ema(close, ema_medm) fastEMA = ema(close, ema_fast) bullishPinBar = ((close > open) and ((open - low) > 0.66 * (high - low))) or ((close < open) and ((close - low) > 0.66 * (high - low))) bearishPinBar = ((close > open) and ((high - close) > 0.66 * (high - low))) or ((close < open) and ((high - open) > 0.66 * (high - low))) atr = atr(atr_valu) // Specify Trend Conditions fanUpTrend = (fastEMA > medmEMA) and (medmEMA > slowSMA) fanDnTrend = (fastEMA < medmEMA) and (medmEMA < slowSMA) // Specify Piercing Conditions bullPierce = ((low < fastEMA) and (open > fastEMA) and (close > fastEMA)) or ((low < medmEMA) and (open > medmEMA) and (close > medmEMA)) or ((low < slowSMA) and (open > slowSMA) and (close > slowSMA)) bearPierce = ((high > fastEMA) and (open < fastEMA) and (close < fastEMA)) or ((high > medmEMA) and (open < medmEMA) and (close < medmEMA)) or ((high > slowSMA) and (open < slowSMA) and (close < slowSMA)) // Specify Entry Conditions longEntry = fanUpTrend and bullishPinBar and bullPierce shortEntry = fanDnTrend and bearishPinBar and bearPierce // Long Entry Function enterlong() => risk = usr_risk * 0.01 * strategy.equity stopLoss = low[1] - atr[1] * atr_mult entryPrice = high[1] units = risk / (entryPrice - stopLoss) strategy.entry("long", strategy.long, units, stop=entryPrice) strategy.exit("exit long", from_entry="long", trail_points=slPoints, trail_offset=slOffset) // Short Entry Function entershort() => risk = usr_risk * 0.01 * strategy.equity stopLoss = high[1] + atr[1] * atr_mult entryPrice = low[1] units = risk / (stopLoss - entryPrice) strategy.entry("short", strategy.short, units, stop=entryPrice) strategy.exit("exit short", from_entry="short", trail_points=slPoints, trail_offset=slOffset) // Execute Long Entry if (longEntry) enterlong() // Execute Short Entry if (shortEntry) entershort() // Cancel the Entry if Bar Time is Exceeded strategy.cancel("long", barssince(longEntry) > ent_canc) strategy.cancel("short", barssince(shortEntry) > ent_canc) // Force Close During Certain Conditions strategy.close_all(when = hour==16 and dayofweek==dayofweek.friday, comment = "exit all, market-closed") strategy.close_all(when = crossunder(fastEMA, medmEMA), comment = "exit long, re-cross") strategy.close_all(when = crossover(fastEMA, medmEMA), comment = "exit short, re-cross") // Plot Moving Averages to Chart plot(fastEMA, color=color.red) plot(medmEMA, color=color.blue) plot(slowSMA, color=color.green) // Plot Pin Bars to Chart plotshape(bullishPinBar, text='Bull PB', style=shape.labeldown, location=location.abovebar, color=color.green, textcolor=color.white, transp=0) plotshape(bearishPinBar, text='Bear PB', style=shape.labelup, location=location.belowbar, color=color.red, textcolor=color.white, transp=0) // Plot Days of Week plotshape(hour==0 and dayofweek==dayofweek.monday, text='Monday', style=shape.labeldown, location=location.abovebar, color=color.black, textcolor=color.white, transp=0) plotshape(hour==0 and dayofweek==dayofweek.tuesday, text='Tuesday', style=shape.labeldown, location=location.abovebar, color=color.black, textcolor=color.white, transp=0) plotshape(hour==0 and dayofweek==dayofweek.wednesday, text='Wednesday', style=shape.labeldown, location=location.abovebar, color=color.black, textcolor=color.white, transp=0) plotshape(hour==0 and dayofweek==dayofweek.thursday, text='Thursday', style=shape.labeldown, location=location.abovebar, color=color.black, textcolor=color.white, transp=0) plotshape(hour==0 and dayofweek==dayofweek.friday, text='Friday', style=shape.labeldown, location=location.abovebar, color=color.black, textcolor=color.white, transp=0) plotshape(hour==16 and dayofweek==dayofweek.friday, text='Market Closed', style=shape.labeldown, location=location.abovebar, color=color.black, textcolor=color.white, transp=0)