लेखक:चाओझांग, दिनांकः 2024-01-25 12:29:29
टैगः

img

अवलोकन

पीयरिंग पिन बार रिवर्सल रणनीति एक ट्रेंड ट्रेडिंग रणनीति है जो अल्पकालिक मूल्य पैटर्न पर आधारित है। यह ट्रेंड की दिशा निर्धारित करने के लिए चलती औसत के साथ संयुक्त संकेतों के रूप में पिन बार का उपयोग करता है, उच्च परिशुद्धता प्रविष्टि प्राप्त करने के लिए। यह बेहद उच्च लाभप्रदता प्राप्त करने के लिए एक अद्वितीय ट्रेलिंग स्टॉप तंत्र का भी उपयोग करता है।

सिद्धांत

प्रवेश संकेत

इस रणनीति के लिए प्रवेश सिग्नल पिन बार छेद है। विशेष रूप से एक संकेत तब ट्रिगर किया जाता है जबः

  1. एक विशेष अल्पकालिक पैटर्न बनता हैः तेजी की पिन बार से तेजी के संकेत, मंदी की पिन बार से मंदी के संकेत
  2. पिन बार चलती औसत के माध्यम से छेद करता हैः नीचे की ओर ट्रेंड करने वाले एमए को छेदने वाले तेजी वाले बार, या ऊपर की ओर ट्रेंड करने वाले एमए को छेदने वाले मंदी वाले बार

इस प्रकार का संयोजन अधिकांश शोर को फ़िल्टर करना सुनिश्चित करता है और प्रवेश सटीकता को बढ़ाता है।

प्रवृत्ति परिभाषा

रणनीति में रुझानों को परिभाषित करने के लिए विभिन्न अवधियों के तीन एमए का उपयोग किया जाता है। विशेष रूप से, जब तेज, मध्यम और धीमी एमए एक दिशा में संरेखित होते हैं, तो इसे एक प्रवृत्ति के रूप में परिभाषित किया जाता है। अन्यथा इसे समेकन माना जाता है।

लंबी प्रविष्टियों के लिए तेज एमए > मध्यम एमए > धीमी एमए आवश्यक है। छोटी प्रविष्टियों के लिए तेज एमए < मध्यम एमए < धीमी एमए आवश्यक है।

हानि रोकने का तंत्र

यह रणनीति एक अद्वितीय ट्रैलिंग स्टॉप लॉस तंत्र का उपयोग करती है। प्रवेश के बाद, ट्रैलिंग पॉइंट्स और ऑफसेट के लिए उपयोगकर्ता द्वारा परिभाषित मूल्यों के आधार पर इष्टतम स्टॉप लॉस बिंदुओं को ट्रैक किया जाता है। यह जोखिम को नियंत्रित करते हुए कब्जा किए गए लाभ को अधिकतम करने की अनुमति देता है।

लाभ विश्लेषण

उच्च दक्षता प्रवेश

छिद्रण संकेत केवल उच्च संभावना अवसर बिंदुओं पर प्रवेश की अनुमति देते हैं, अत्यधिक शोर ट्रेडों से बचते हैं। प्रवृत्ति फिल्टर के साथ संयोजन अधिकतर काउंटरट्रेंड संचालन से बचता है। यह रणनीति के लिए उच्च सटीकता सुनिश्चित करता है।

अत्यधिक लाभ उठाना

अद्वितीय ट्रेलिंग स्टॉप इस रणनीति का सबसे बड़ा आकर्षण है. यह अधिकतम कब्जा लाभ सुनिश्चित करते हुए, प्रति व्यापार के आधार पर एक छोटी सीमा के भीतर स्टॉप लॉस को सटीक रूप से नियंत्रित करता है.

इस तंत्र को लागू करने के बाद सिम परिणाम पागल लाभप्रदता दिखाते हैं, जिसमें कई जोड़े के लिए कुल रिटर्न 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)









अधिक