موم بتی پیٹرن کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-27 18:26:52
ٹیگز:

imgموم بتی پیٹرن کی حکمت عملی

جائزہ

موم بتی پیٹرن کی حکمت عملی ایک ایسی حکمت عملی ہے جو موم بتی کے نمونوں کی بنیاد پر تجارتی فیصلے کرتی ہے۔ یہ حکمت عملی مختلف عام موم بتی کے نمونوں کا پتہ لگاسکتی ہے ، بشمول نگلنگ پیٹرن ، حرامی پیٹرن ، صبح کے ستارے ، تین سیاہ کرو وغیرہ ، اور جب ان نمونوں کا پتہ چلتا ہے تو تجارتی سگنل تیار کرتی ہے۔ یہ حکمت عملی خطرات کو مؤثر طریقے سے کنٹرول کرنے کے لئے اپنی مرضی کے مطابق اسٹاپ نقصان ، منافع حاصل کرنے اور ٹریلنگ اسٹاپ پیرامیٹرز کی بھی حمایت کرتی ہے۔

حکمت عملی کا اصول

اس حکمت عملی کا بنیادی منطق پائن اسکرپٹ کوڈ میں مشروط فیصلوں کے ذریعے مختلف قسم کے موم بتی کے نمونوں کی نشاندہی کرنا ہے۔ مثال کے طور پر ، نگلنگ پیٹرن کا فیصلہ کرنے کے لئے کوڈ منطق یہ ہے:

bullish_engulfing = high[0]>high[1] and low[0]<low[1] and open[0]<open[1] and close[0]>close[1] and close[0]>open[0] and close[1]<close[2] and close[0]>open[1]  

مذکورہ بالا منطق موجودہ K لائن اور پچھلی دو K لائنوں کی اعلی ، کم ، کھلی ، بند قیمتوں کے مابین تعلقات کا فیصلہ کرتی ہے۔ اگر یہ نگلنگ پیٹرن کی تعریف کو پورا کرتی ہے تو ، یہ درست لوٹتی ہے۔ دیگر موم بتی کے نمونوں کے فیصلے اسی طرح کے ہیں۔

جب کسی کوالیفائیڈ موم بتی کے نمونہ کی نشاندہی کی جاتی ہے تو ، اس کے مطابق طویل یا مختصر تجارتی سگنل متغیر کو سچ پر سیٹ کیا جائے گا۔ پھر تجارتی سیشن کے دوران ، حکمت عملی چیک کرے گی کہ آیا تجارتی سگنل ٹرگر ہوا ہے۔ اگر ٹرگر ہوا تو ، یہ آرڈر دے گا اور نقصان کو روکنے ، منافع لینے اور خطرات کو کنٹرول کرنے کے لئے ٹریلنگ اسٹاپ مقرر کرے گا۔

فوائد کا تجزیہ

  • بہت سے عام شمعدان پیٹرن کی حمایت، وسیع کوریج
  • اپنی مرضی کے مطابق خطرہ کنٹرول پیرامیٹرز، اعلی لچک
  • نمونے کی واضح شناخت کے لئے متعدد پلاٹنگ کے اوزار پر مشتمل ہے
  • پھنسنے سے بچنے کے لئے K لائنز کے حقیقی رجحان کے ساتھ یکجا

خطرات اور حل

  • موم بتیوں کے پیٹرن ہمیشہ قابل اعتماد سگنل نہیں ہوتے ہیں

    حل: رجحان اشارے کے ساتھ مل کر، رینج محدود مارکیٹوں کے دوران استعمال کرنے سے بچیں

  • ایک واحد پیٹرن غلط سگنل ہو سکتا ہے

    حل: بہت مختصر مدت کے نمونوں سے سگنل کو مناسب طریقے سے فلٹر کریں

  • غلط پیرامیٹر کی ترتیبات نقصانات کو بڑھا سکتے ہیں

    حل: خطرہ رواداری کی بنیاد پر سٹاپ نقصان اور منافع لینے کے پیرامیٹرز کو سختی سے مقرر کریں

اصلاح کی ہدایات

  • رجحان کے خلاف پیٹرن سے بچنے کے لئے رجحان کا فیصلہ شامل کریں
  • فلٹر سگنل دیگر اشارے کے ساتھ
  • غلط سگنل کو کم کرنے کے لئے پیٹرن پیرامیٹرز کو بہتر بنائیں
  • زیادہ قابل اعتماد پیٹرن کی شناخت کی تعمیر کے لئے مشین سیکھنے کے الگورتھم کو یکجا کریں

خلاصہ

موم بتی کے نمونہ کی حکمت عملی تکنیکی تجزیہ گرافکس کا استعمال کرتے ہوئے قلیل مدتی موڑ کے مقامات کی نشاندہی کرتی ہے ، جو ایک عام قلیل مدتی حکمت عملی ہے۔ یہ حکمت عملی متعدد نمونوں اور حسب ضرورت رسک کنٹرول کی حمایت کرتی ہے ، استعمال میں بہت لچکدار ہے۔ لیکن پیٹرن سگنلز کی وشوسنییتا زیادہ نہیں ہے۔ اسے تنہا استعمال نہیں کیا جاسکتا ہے اور اس کی قدر کو زیادہ سے زیادہ کرنے کے لئے رجحان اور دیگر عوامل کے ساتھ کام کرنے کی ضرورت ہے۔


/*backtest
start: 2023-11-19 00:00:00
end: 2023-11-24 02:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

//DanyChe
//The script allows you to test popular candlestick patterns on various instruments and timeframes. In addition, you can configure risk management (if the value is zero, it means the function is disabled), and you can also specify the time of the trading session (for example, so that the positions are not transferred to the next day). 
//The author is grateful to JayRogers and Phi35, their code examples helped a lot in writing the strategy.
strategy("Candle Patterns Strategy", shorttitle="CPS", overlay=true)

//--- Patterns Input ---

OnEngulfing = input(defval=true, title="Engulfing")
OnHarami = input(defval=true, title="Harami")
OnPiercingLine = input(defval=true, title="Piercing Line / Dark Cloud Cover")
OnMorningStar = input(defval=true, title="Morning Star / Evening Star ")
OnBeltHold = input(defval=true, title="Belt Hold")
OnThreeWhiteSoldiers = input(defval=true, title="Three White Soldiers / Three Black Crows")
OnThreeStarsInTheSouth = input(defval=true, title="Three Stars in the South")
OnStickSandwich = input(defval=true, title="Stick Sandwich")
OnMeetingLine = input(defval=true, title="Meeting Line")
OnKicking = input(defval=true, title="Kicking")
OnLadderBottom = input(defval=true, title="Ladder Bottom")

//--- Risk Management Input ---

inpsl = input(defval = 100, title="Stop Loss", minval = 0)
inptp = input(defval = 1000, title="Take Profit", minval = 0)
inptrail = input(defval = 40, title="Trailing Stop", minval = 0)
// If the zero value is set for stop loss, take profit or trailing stop, then the function is disabled
sl = inpsl >= 1 ? inpsl : na
tp = inptp >= 1 ? inptp : na
trail = inptrail >= 1 ? inptrail : na

//--- Session Input ---

sess = input(defval = "0000-0000", title="Trading session")
t = time('60', sess)
session_open = na(t) ? false : true

// --- Candlestick Patterns ---

//Engulfing 
bullish_engulfing = high[0]>high[1] and low[0]<low[1] and open[0]<open[1] and close[0]>close[1] and close[0]>open[0] and close[1]<close[2] and close[0]>open[1] ? OnEngulfing : na
bearish_engulfing = high[0]>high[1] and low[0]<low[1] and open[0]>open[1] and close[0]<close[1] and close[0]<open[0] and close[1]>close[2] and close[0]<open[1] ? OnEngulfing : na

//Harami
bullish_harami =  open[1]>close[1] and close[1]<close[2] and open[0]>close[1] and open[0]<open[1] and close[0]>close[1] and close[0]<open[1] and high[0]<high[1] and low[0]>low[1] and close[0]>=open[0] ? OnHarami : na
bearish_harami =   open[1]<close[1] and close[1]>close[2] and open[0]<close[1] and open[0]>open[1] and close[0]<close[1] and close[0]>open[1] and high[0]<high[1] and low[0]>low[1] and close[0]<=open[0] ? OnHarami : na

//Piercing Line/Dark Cloud Cover 
piercing_line = close[2]>close[1] and open[0]<low[1] and close[0]>avg(open[1],close[1]) and close[0]<open[1] ? OnPiercingLine : na
dark_cloud_cover = close[2]<close[1] and open[0]>high[1] and close[0]<avg(open[1],close[1]) and close[0]>open[1] ? OnPiercingLine : na

//Morning Star/Evening Star
morning_star = close[3]>close[2] and close[2]<open[2] and open[1]<close[2] and close[1]<close[2] and open[0]>open[1] and open[0]>close[1] and close[0]>close[2] and open[2]-close[2]>close[0]-open[0] ? OnMorningStar : na
evening_star = close[3]<close[2] and close[2]>open[2] and open[1]>close[2] and close[1]>close[2] and open[0]<open[1] and open[0]<close[1] and close[0]<close[2] and close[2]-open[2]>open[0]-close[0] ? OnMorningStar : na

//Belt Hold
bullish_belt_hold = close[1]<open[1] and low[1]>open[0] and close[1]>open[0] and open[0]==low[0] and close[0]>avg(close[0],open[0]) ? OnBeltHold :na
bearish_belt_hold =  close[1]>open[1] and high[1]<open[0] and close[1]<open[0] and open[0]==high[0] and close[0]<avg(close[0],open[0]) ? OnBeltHold :na

//Three White Soldiers/Three Black Crows 
three_white_soldiers = close[3]<open[3] and open[2]<close[3] and close[2]>avg(close[2],open[2]) and open[1]>open[2] and open[1]<close[2] and close[1]>avg(close[1],open[1]) and open[0]>open[1] and open[0]<close[1] and close[0]>avg(close[0],open[0]) and high[1]>high[2] and high[0]>high[1] ? OnThreeWhiteSoldiers : na
three_black_crows =  close[3]>open[3] and open[2]>close[3] and close[2]<avg(close[2],open[2]) and open[1]<open[2] and open[1]>close[2] and close[1]<avg(close[1],open[1]) and open[0]<open[1] and open[0]>close[1] and close[0]<avg(close[0],open[0]) and low[1]<low[2] and low[0]<low[1] ? OnThreeWhiteSoldiers : na

//Three Stars in the South
three_stars_in_the_south = open[3]>close[3] and open[2]>close[2] and open[2]==high[2] and open[1]>close[1] and open[1]<open[2] and open[1]>close[2] and low[1]>low[2] and open[1]==high[1] and open[0]>close[0] and open[0]<open[1] and open[0]>close[1] and open[0]==high[0] and close[0]==low[0] and close[0]>=low[1] ? OnThreeStarsInTheSouth : na

//Stick Sandwich
stick_sandwich = open[2]>close[2] and open[1]>close[2] and open[1]<close[1] and open[0]>close[1] and open[0]>close[0] and close[0]==close[2] ? OnStickSandwich : na

//Meeting Line 
bullish_ml = open[2]>close[2] and open[1]>close[1] and close[1]==close[0] and open[0]<close[0] and open[1]>=high[0] ? OnMeetingLine : na
bearish_ml = open[2]<close[2] and open[1]<close[1] and close[1]==close[0] and open[0]>close[0] and open[1]<=low[0] ? OnMeetingLine : na

//Kicking 
bullish_kicking =  open[1]>close[1] and open[1]==high[1] and close[1]==low[1] and open[0]>open[1] and open[0]==low[0] and close[0]==high[0] and close[0]-open[0]>open[1]-close[1] ? OnKicking : na
bearish_kicking = open[1]<close[1] and open[1]==low[1] and close[1]==high[1] and open[0]<open[1] and open[0]==high[0] and close[0]==low[0] and open[0]-close[0]>close[1]-open[1] ? OnKicking : na

//Ladder Bottom
ladder_bottom = open[4]>close[4] and open[3]>close[3] and open[3]<open[4] and open[2]>close[2] and open[2]<open[3] and open[1]>close[1] and open[1]<open[2] and open[0]<close[0] and open[0]>open[1] and low[4]>low[3] and low[3]>low[2] and low[2]>low[1] ? OnLadderBottom : na

// ---Plotting ---

plotshape(bullish_engulfing, text='Engulfing', style=shape.triangleup, color=#1FADA2, editable=true, title="Bullish Engulfing Text")
plotshape(bearish_engulfing,text='Engulfing', style=shape.triangledown, color=#F35A54, editable=true, title="Bearish Engulfing Text")
plotshape(bullish_harami,text='Harami', style=shape.triangleup, color=#1FADA2, editable=true, title="Bullish Harami Text")
plotshape(bearish_harami,text='Harami', style=shape.triangledown, color=#F35A54, editable=true, title="BEarish Harami Text")
plotshape(piercing_line,text='Piercing Line', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(dark_cloud_cover,text='Dark Cloud Cover', style=shape.triangledown, color=#F35A54, editable=false)
plotshape(morning_star,text='Morning Star', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(evening_star,text='Evening Star', style=shape.triangledown, color=#F35A54, editable=false)
plotshape(bullish_belt_hold,text='Belt Hold', style=shape.triangleup, color=#1FADA2, editable=false)    
plotshape(bearish_belt_hold,text='Belt Hold', style=shape.triangledown, color=#F35A54, editable=false)
plotshape(three_white_soldiers,text='Three White Soldiers', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(three_black_crows,text='Three Black Crows', style=shape.triangledown, color=#F35A54, editable=false)
plotshape(three_stars_in_the_south,text='3 Stars South', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(stick_sandwich,text='Stick Sandwich', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(bullish_ml,text='Meeting Line', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(bearish_ml,text='Meeting Line', style=shape.triangledown, color=#F35A54, editable=false)
plotshape(bullish_kicking,text='Kicking', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(bearish_kicking,text='Kicking', style=shape.triangledown, color=#F35A54, editable=false)
plotshape(ladder_bottom,text='Ladder Bottom', style=shape.triangleup, color=#1FADA2, editable=false)

// --- STRATEGY ---

SignalUp = bullish_engulfing or bullish_harami or piercing_line or morning_star or bullish_belt_hold or three_white_soldiers or three_stars_in_the_south or stick_sandwich or bullish_ml or bullish_kicking or ladder_bottom
SignalDown = bearish_engulfing or bearish_harami or dark_cloud_cover or evening_star or bearish_belt_hold or three_black_crows or bearish_ml or bearish_kicking

strategy.entry("long", true, when = SignalUp and session_open)
strategy.entry("short", false, when = SignalDown and session_open)
strategy.close("long", when = not session_open)
strategy.close("short", when = not session_open)
strategy.exit("Risk Exit long", from_entry = "long", profit = tp, trail_points = trail, loss = sl)
strategy.exit("Risk Exit short", from_entry = "short", profit = tp, trail_points = trail, loss = sl )

مزید