Heikin-Ashi Non Repainting Trend Confirmation Strategy

HA NRTS TCS EQTY MGMT
تخلیق کی تاریخ: 2025-03-28 17:35:26 آخر میں ترمیم کریں: 2025-03-28 17:35:26
کاپی: 2 کلکس کی تعداد: 416
2
پر توجہ دیں
319
پیروکار

Heikin-Ashi Non Repainting Trend Confirmation Strategy Heikin-Ashi Non Repainting Trend Confirmation Strategy

جائزہ

یہ ایک جدید ہیکناشی (Heikin-Ashi) غیر ریپنگ ٹرینڈ کی تصدیق کی حکمت عملی ہے جس کا مقصد روایتی تجارتی منظر (TradingView) میں ہیکناشی حکمت عملی کی موجودگی کو ریپنگ کرنا ہے۔ یہ حکمت عملی دستی طور پر ہیکناشی اور ایک سے زیادہ رجحان کی تصدیق کے طریقہ کار کا حساب کتاب کرکے ایک زیادہ قابل اعتماد اور شفاف تجارتی طریقہ فراہم کرتی ہے۔

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

اس حکمت عملی کے بنیادی اصولوں میں تین اہم اقدامات شامل ہیں:

  1. ہائی کاناسائٹ کا حساب کتاب دستی طور پر نہ کریں:

    • اختتامی قیمت، افتتاحی قیمت، زیادہ سے زیادہ قیمت اور کم از کم قیمت کا حساب لگانے کے لئے منفرد فارمولے کا استعمال کرتے ہوئے
    • اس بات کو یقینی بنانا کہ تاریخی قیمتوں کا ڈیٹا اگلے K لائن اپ ڈیٹس کے دوران مستحکم رہے
    • روایتی ہائکناسی حکمت عملی میں اکثر پیش آنے والے مسائل سے بچنے کے لئے
  2. متعدد رجحانات کی تصدیق:

    • ٹرینڈ کی سمت کی تصدیق کے لئے مسلسل ڈوگن کی ضرورت ہے
    • لانگ انٹری سگنل: مسلسل ایکس روٹ کی ضرورت ہے
    • خالی اندراج کا اشارہ: ایکس روٹ کی مسلسل قیمتوں میں کمی کی ضرورت
    • جعلی سگنل کو فلٹر کرنے کے لئے متعدد تصدیق کے ذریعے حکمت عملی کی وشوسنییتا میں اضافہ
  3. لچکدار ٹریڈنگ ماڈل:

    • روایتی رجحانات کی حمایت کریں
    • رجحان کو تبدیل کرنے کے اختیارات فراہم کرنا
    • اپنی مرضی کے مطابق تجارت کے طریقوں ((تمام، صرف زیادہ، صرف خالی)

اسٹریٹجک فوائد

  1. ری میپنگ کے مسئلے کو ختم کریں: تاریخی اعداد و شمار مستحکم ہیں اور ری میپنگ کے نتائج ریڈ ڈسک پر عملدرآمد کے ساتھ اعلی مطابقت رکھتے ہیں
  2. متعدد رجحانات کی تصدیق: غیر ضروری تجارت کو مسلسل فلٹرنگ کے ذریعے کم کریں
  3. اونچائی حسب ضرورت:
    • لچکدار انٹری اور آؤٹ پٹ کی حد مقرر کریں
    • ٹرینڈ فالو اور ریورس ٹریڈنگ کی حمایت کریں
    • معیاری K لائن کو چھپایا جا سکتا ہے، واضح نمائش فراہم کرتا ہے
  4. درمیانی اور طویل مدتی تجارت کے لئے موزوں: خاص طور پر اتار چڑھاؤ کی تجارت اور رجحان کی پیروی کے لئے موزوں

اسٹریٹجک رسک

  1. کارکردگی کی حدود:

    • ہائی فریکوئینسی اسکیلپنگ کے لئے مناسب نہیں ہے
    • غیر واضح رجحانات کے ساتھ ہلکے بازاروں میں خراب کارکردگی کا امکان ہے
    • مختلف ٹائم فریموں کے لئے پیرامیٹرز کو ایڈجسٹ کرنے کی ضرورت ہے
  2. ممکنہ خطرے پر قابو پانا:

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

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

  1. پیرامیٹرز کو متحرک طور پر ایڈجسٹ کریں:

    • ایڈجسٹ انٹری اور آؤٹ پٹ کی قیمتوں کا تعین کرنے کے لئے الگورتھم تیار کرنا
    • مارکیٹ کے اتار چڑھاؤ کے مطابق ریئل ٹائم ایڈجسٹمنٹ
    • پیرامیٹر کے انتخاب کو بہتر بنانے کے لیے مشین لرننگ الگورتھم کا تعارف
  2. خطرے کے انتظام میں بہتری:

    • انٹیگریٹڈ متحرک پوزیشن مینجمنٹ
    • متعلقہ فلٹر شامل کریں
    • زیادہ ذہین اسٹاپ لاسر میکینزم تیار کرنا
  3. پیکیج:

    • دوسرے تکنیکی اشارے (جیسے RSI، MACD) کے ساتھ مل کر
    • ملٹی میڈیسن سرٹیفیکیشن سسٹم تیار کریں
    • سگنل کی درستگی اور وشوسنییتا میں اضافہ

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2025-03-15 00:00:00
end: 2025-03-27 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
//© PineIndicators

strategy("Heikin-Ashi Non-Repainting Strategy [PineIndicators]", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, max_boxes_count=500, max_labels_count=500, max_lines_count=500, commission_value=0.01, process_orders_on_close=true, slippage= 2, behind_chart=false)

//====================================
// INPUTS
//====================================
// Number of consecutive candles required for entry and exit
openThreshold = input.int(title="Number of Candles for Entry", defval=2, minval=1)
exitThreshold = input.int(title="Number of Candles for Exit", defval=2, minval=1)
// Trade mode selection: "Long & Short", "Only Long", or "Only Short"
tradeMode = input.string(title="Trade Mode", defval="Only Long", options=["Long & Short", "Only Long", "Only Short"])
// Option to invert the trading logic (bullish signals become short signals, and vice versa)
invertTrades = input.bool(title="Invert Trading Logic (Long ↔ Short)", defval=false)
// Option to hide the standard candles (bodies only)
hideStandard = input.bool(title="Hide Standard Candles", defval=true)
// Heikin-Ashi transparency is fixed (0 = fully opaque)
heikinTransparency = 0

//====================================
// HIDE STANDARD CANDLES
//====================================
// Hide the body of the standard candles by setting them to 100% transparent.
// Note: The wicks of the standard candles cannot be hidden via code.
barcolor(hideStandard ? color.new(color.black, 100) : na)

//====================================
// HEIKIN-ASHI CALCULATION
//====================================
// Calculate Heikin-Ashi values manually
haClose = (open + high + low + close) / 4
var float haOpen = na
haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2
haHigh = math.max(high, math.max(haOpen, haClose))
haLow  = math.min(low, math.min(haOpen, haClose))

// Define colors for Heikin-Ashi candles (using fixed transparency)
bullColor = color.new(#0097a7, heikinTransparency)
bearColor = color.new(#ff195f, heikinTransparency)

//====================================
// PLOT HEIKIN-ASHI CANDLES
//====================================
// Plot the manually calculated Heikin-Ashi candles over the chart.
// The candle body, wicks, and borders will be colored based on whether the candle is bullish or bearish.
plotcandle(haOpen, haHigh, haLow, haClose, title="Heikin-Ashi", 
     color       = haClose >= haOpen ? bullColor : bearColor,
     wickcolor   = haClose >= haOpen ? bullColor : bearColor,
     bordercolor = haClose >= haOpen ? bullColor : bearColor,
     force_overlay = true)

//====================================
// COUNT CONSECUTIVE TREND CANDLES
//====================================
// Count the number of consecutive bullish or bearish Heikin-Ashi candles.
var int bullishCount = 0
var int bearishCount = 0

if haClose > haOpen
    bullishCount := bullishCount + 1
    bearishCount := 0
else if haClose < haOpen
    bearishCount := bearishCount + 1
    bullishCount := 0
else
    bullishCount := 0
    bearishCount := 0

//====================================
// DEFINE ENTRY & EXIT SIGNALS
//====================================
// The signals are based on the number of consecutive trend candles.
// In normal logic: bullish candles trigger a long entry and bearish candles trigger a short entry.
// If invertTrades is enabled, the signals are swapped.
var bool longEntrySignal  = false
var bool shortEntrySignal = false
var bool exitLongSignal   = false
var bool exitShortSignal  = false

if not invertTrades
    longEntrySignal  := bullishCount >= openThreshold
    shortEntrySignal := bearishCount >= openThreshold
    exitLongSignal   := bearishCount >= exitThreshold
    exitShortSignal  := bullishCount >= exitThreshold
else
    // Inverted logic: bullish candles trigger short entries and bearish candles trigger long entries.
    longEntrySignal  := bearishCount >= openThreshold
    shortEntrySignal := bullishCount >= openThreshold
    exitLongSignal   := bullishCount >= exitThreshold
    exitShortSignal  := bearishCount >= exitThreshold

//====================================
// APPLY TRADE MODE RESTRICTIONS
//====================================
// If the user selects "Only Long", disable short signals (and vice versa).
if tradeMode == "Only Long"
    shortEntrySignal := false
    exitShortSignal  := false
else if tradeMode == "Only Short"
    longEntrySignal  := false
    exitLongSignal   := false

//====================================
// TRADING STRATEGY LOGIC
//====================================
// Execute trades based on the calculated signals.

// If a long position is open:
if strategy.position_size > 0
    if shortEntrySignal
        strategy.close("Long", comment="Reverse Long")
        strategy.entry("Short", strategy.short, comment="Enter Short")
    else if exitLongSignal
        strategy.close("Long", comment="Exit Long")

// If a short position is open:
if strategy.position_size < 0
    if longEntrySignal
        strategy.close("Short", comment="Reverse Short")
        strategy.entry("Long", strategy.long, comment="Enter Long")
    else if exitShortSignal
        strategy.close("Short", comment="Exit Short")

// If no position is open:
if strategy.position_size == 0
    if longEntrySignal
        strategy.entry("Long", strategy.long, comment="Enter Long")
    else if shortEntrySignal
        strategy.entry("Short", strategy.short, comment="Enter Short")