یہ حکمت عملی ہائکن آشی موم بتیوں کی بنیاد پر تجارتی سگنل تیار کرتی ہے۔ خاص طور پر ، خرید و فروخت کے سگنل کو ہائکن آشی کی بندش کی قیمت اور 75 ویں فیصد قیمت کی سطح کے کراس اوور کی بنیاد پر سمجھا جاتا ہے ، نیز ہائکن آشی کی بندش کی قیمت کچھ حرکت پذیر اوسط سے زیادہ ہوتی ہے۔
اس حکمت عملی میں تجزیہ کے لئے باقاعدہ موم بتیوں کے بجائے ہیکن آسی موم بتیوں کا استعمال کیا جاتا ہے۔ ہیکن آسی موم بتیوں کی ہموار نوعیت سے رجحانات اور الٹ کو زیادہ واضح طور پر پہچاننے میں مدد ملتی ہے۔ خاص طور پر ، حکمت عملی میں تجارتی سگنل پیدا کرنے کے لئے فیصد چینلز اور حرکت پذیر اوسط کو جوڑتا ہے:
اسٹاپ نقصان اور ٹریلنگ اسٹاپ بھی ہر تجارت کے نیچے والے خطرے کو کنٹرول کرنے کے لئے استعمال کیا جاتا ہے۔
خطرے کو کم کرنے کے لیے، پیرامیٹرز جیسے چلتی اوسط مدت اور سٹاپ نقصان کی فیصد کو ایڈجسٹ کرنے کی ضرورت پڑسکتی ہے۔
اس حکمت عملی میں ہیکن آشی موم بتیاں ، فیصد چینلز اور چلتی اوسط کو مل کر ایک منظم نقطہ نظر تشکیل دیا گیا ہے ، جو رجحانات کی نشاندہی کرنے اور اسٹاپ نقصان کے ذریعہ خطرے کو کنٹرول کرنے کے قابل ہے۔ پیرامیٹرز کو بہتر بنانے اور اضافی اشارے شامل کرنے سے کارکردگی میں مزید بہتری کی توقع کی جاسکتی ہے۔
/*backtest start: 2023-12-17 00:00:00 end: 2023-12-24 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("HK Percentile Interpolation One",shorttitle = "HKPIO", overlay=false, default_qty_type = strategy.cash, default_qty_value = 5000, calc_on_order_fills = true, calc_on_every_tick = true) // Input parameters stopLossPercentage = input(3, title="Stop Loss (%)") // User can set Stop Loss as a percentage trailStopPercentage = input(1.5, title="Trailing Stop (%)") // User can set Trailing Stop as a percentage lookback = input.int(14, title="Lookback Period", minval=1) // User can set the lookback period for percentile calculation yellowLine_length = input.int(5, "Yellow", minval=1) // User can set the length for Yellow EMA purplLine_length = input.int(10, "Purple", minval=1) // User can set the length for Purple EMA holdPeriod = input.int(200, title="Minimum Holding Period", minval=10) // User can set the minimum holding period startDate = timestamp("2021 01 01") // User can set the start date for the strategy // Calculate Heikin Ashi values haClose = ohlc4 var float haOpen = na haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2 haHigh = math.max(nz(haOpen, high), nz(haClose, high), high) haLow = math.min(nz(haOpen, low), nz(haClose, low), low) // Calculate Moving Averages yellowLine = ta.ema(haClose, yellowLine_length) purplLine = ta.ema(haClose, purplLine_length) // Calculate 25th and 75th percentiles p25 = ta.percentile_linear_interpolation(haClose, lookback, 28) p75 = ta.percentile_linear_interpolation(haClose, lookback, 78) // Generate buy/sell signals longSignal = ta.crossover(haClose, p75) and haClose > yellowLine sellSignal = ta.crossunder(haClose, yellowLine) longSignal1 = ta.crossover(haClose, p75) and haClose > purplLine sellSignal1 = ta.crossunder(haClose, purplLine) // Set start time and trade conditions if(time >= startDate) // When longSignal is true, enter a long trade and set stop loss and trailing stop conditions if (longSignal) strategy.entry("Long", strategy.long, 1) strategy.exit("Sell", "Long", stop=close*(1-stopLossPercentage/100), trail_points=close*trailStopPercentage/100, trail_offset=close*trailStopPercentage/100) // When sellSignal is true, close the long trade if (sellSignal) strategy.close("Long") // When sellSignal1 is true, enter a short trade if (sellSignal1) strategy.entry("Short", strategy.short, 1) // When longSignal1 is true, close the short trade if (longSignal1) strategy.close("Short") // Plot Heikin Ashi candles plotcandle(haOpen, haHigh, haLow, haClose, title="Heikin Ashi", color=(haClose >= haOpen ? color.rgb(1, 168, 6) : color.rgb(176, 0, 0))) // Plot 25th and 75th percentile levels plot(p25, title="25th Percentile", color=color.green, linewidth=1, style=plot.style_circles) plot(p75, title="75th Percentile", color=color.red, linewidth=1, style=plot.style_circles) // Plot Moving Averages plot(yellowLine, color = color.rgb(254, 242, 73, 2), linewidth = 2, style = plot.style_stepline) plot(purplLine, color = color.rgb(255, 77, 234, 2), linewidth = 2, style = plot.style_stepline)