पीयरिंग पिन बार रिवर्सल रणनीति एक ट्रेंड ट्रेडिंग रणनीति है जो अल्पकालिक मूल्य पैटर्न पर आधारित है। यह ट्रेंड की दिशा निर्धारित करने के लिए चलती औसत के साथ संयुक्त संकेतों के रूप में पिन बार का उपयोग करता है, उच्च परिशुद्धता प्रविष्टि प्राप्त करने के लिए। यह बेहद उच्च लाभप्रदता प्राप्त करने के लिए एक अद्वितीय ट्रेलिंग स्टॉप तंत्र का भी उपयोग करता है।
इस रणनीति के लिए प्रवेश सिग्नल पिन बार छेद है। विशेष रूप से एक संकेत तब ट्रिगर किया जाता है जबः
इस प्रकार का संयोजन अधिकांश शोर को फ़िल्टर करना सुनिश्चित करता है और प्रवेश सटीकता को बढ़ाता है।
रणनीति में रुझानों को परिभाषित करने के लिए विभिन्न अवधियों के तीन एमए का उपयोग किया जाता है। विशेष रूप से, जब तेज, मध्यम और धीमी एमए एक दिशा में संरेखित होते हैं, तो इसे एक प्रवृत्ति के रूप में परिभाषित किया जाता है। अन्यथा इसे समेकन माना जाता है।
लंबी प्रविष्टियों के लिए तेज एमए > मध्यम एमए > धीमी एमए आवश्यक है। छोटी प्रविष्टियों के लिए तेज एमए < मध्यम एमए < धीमी एमए आवश्यक है।
यह रणनीति एक अद्वितीय ट्रैलिंग स्टॉप लॉस तंत्र का उपयोग करती है। प्रवेश के बाद, ट्रैलिंग पॉइंट्स और ऑफसेट के लिए उपयोगकर्ता द्वारा परिभाषित मूल्यों के आधार पर इष्टतम स्टॉप लॉस बिंदुओं को ट्रैक किया जाता है। यह जोखिम को नियंत्रित करते हुए कब्जा किए गए लाभ को अधिकतम करने की अनुमति देता है।
छिद्रण संकेत केवल उच्च संभावना अवसर बिंदुओं पर प्रवेश की अनुमति देते हैं, अत्यधिक शोर ट्रेडों से बचते हैं। प्रवृत्ति फिल्टर के साथ संयोजन अधिकतर काउंटरट्रेंड संचालन से बचता है। यह रणनीति के लिए उच्च सटीकता सुनिश्चित करता है।
अद्वितीय ट्रेलिंग स्टॉप इस रणनीति का सबसे बड़ा आकर्षण है. यह अधिकतम कब्जा लाभ सुनिश्चित करते हुए, प्रति व्यापार के आधार पर एक छोटी सीमा के भीतर स्टॉप लॉस को सटीक रूप से नियंत्रित करता है.
इस तंत्र को लागू करने के बाद सिम परिणाम पागल लाभप्रदता दिखाते हैं, जिसमें कई जोड़े के लिए कुल रिटर्न 1000% से अधिक है, और प्रति व्यापार अधिकतम लाभ प्रारंभिक जोखिम के 100 गुना से अधिक है। लाभप्रदता को अभूतपूर्व नई ऊंचाइयों पर चलाया जाता है।
लगभग "पवित्र ग्रैल" जैसे परिणामों को देखते हुए, यह अत्यधिक संभावना है कि यह बाजारों का एक ओवरफिट सिमुलेशन है। लाइव ट्रेडिंग में, स्टॉप परीक्षण के रूप में सटीक रूप से ट्रिगर नहीं हो सकते हैं, और ड्रॉडाउन हो सकते हैं।
इसके अलावा, दो साल की छोटी परीक्षण अवधि में बाजार के संरचनात्मक शासन में बदलाव नहीं हो सकते हैं जो वास्तविक परिणामों को प्रभावित कर सकते हैं।
अत्यधिक संवेदनशील ट्रेलिंग स्टॉप मान अत्यधिक अवांछित स्टॉप आउट का कारण बन सकते हैं। अचानक बाजार की घटनाएं भी ट्रेलिंग स्टॉप लॉस ऑर्डर को अमान्य कर सकती हैं। ये ट्रेलिंग स्टॉप का उपयोग करने से जुड़े आंतरिक जोखिम हैं।
अनुगामी स्टॉप पागल लाभप्रदता की कुंजी है. इसे दोनों चुस्त और विश्वसनीय बनाने के लिए, अतिसंवेदनशीलता से बचने के लिए अनुगामी बिंदुओं को आराम करने का प्रयास करें.
परीक्षण समय सीमा को बढ़ाना पैरामीटर की मजबूती की जांच करने में भी मदद करता है।
वर्तमान एमए अवधि संभवतः इष्टतम पैरामीटर सेट नहीं है। आगे का अनुकूलन और भी बेहतर प्रदर्शन के लिए बेहतर मानों की खोज कर सकता है।
उदाहरण के लिए, तेज और मध्यम एमए अवधि के बीच अंतर को बढ़ाना, या एमए के बातचीत के तरीके को संशोधित करना।
पियरिंग पिन बार रिवर्सल रणनीति ने उच्च दक्षता प्रवेश और अत्यधिक लाभ लेने के माध्यम से आश्चर्यजनक बैकटेस्ट परिणाम प्राप्त किए।
उचित पैरामीटर ट्यूनिंग या अनुकूलन के साथ, यह रणनीति लाइव ट्रेडिंग में काफी लाभ प्रदान करने में सक्षम हो सकती है, एक शक्तिशाली प्रवृत्ति निम्नलिखित प्रणाली बन जाती है। इसकी अनूठी ट्रेलिंग स्टॉप अवधारणा भी मूल्यवान प्रेरणा प्रदान करती है, जो अधिक अभिनव रणनीतियों को जन्म दे सकती है।
/*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)