ڈائنامک ٹرینڈ ریورسل اور سٹاکسٹک انڈیکیٹرز کو ملانے والی موافقت پذیر تجارتی حکمت عملی

ZigZag ATR SMA STOCH TP/SL
تخلیق کی تاریخ: 2025-02-21 13:37:41 آخر میں ترمیم کریں: 2025-02-27 17:00:50
کاپی: 1 کلکس کی تعداد: 370
2
پر توجہ دیں
319
پیروکار

ڈائنامک ٹرینڈ ریورسل اور سٹاکسٹک انڈیکیٹرز کو ملانے والی موافقت پذیر تجارتی حکمت عملی ڈائنامک ٹرینڈ ریورسل اور سٹاکسٹک انڈیکیٹرز کو ملانے والی موافقت پذیر تجارتی حکمت عملی

جائزہ

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

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

اس حکمت عملی کا بنیادی حصہ یہ ہے کہ مارکیٹ کے رجحانات کو فیصد الٹ کے طریقہ کار کے ذریعے متحرک طور پر ٹریک کیا جائے۔ یہ صارفین کو دستی طور پر الٹ فی صد یا مختلف دورانیوں ((5-250 دن) پر مبنی اے ٹی آر کے متحرک حساب کتاب کا انتخاب کرنے کی اجازت دیتا ہے۔ جب قیمت الٹ لائن کو توڑتی ہے اور بے ترتیب اشارے کی K قیمت 30 سے کم ہوتی ہے تو ایک سے زیادہ سگنل پیدا ہوتا ہے۔ جب قیمت الٹ لائن کو توڑتی ہے اور اس کی K قیمت 70 سے زیادہ ہوتی ہے تو ایک خالی سگنل پیدا ہوتا ہے۔ منافع کی حفاظت اور خطرے کو کنٹرول کرنے کے لئے نظام خود بخود اسٹاپ نقصان کا تعین کرتا ہے۔

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

  1. متحرک طور پر خود کو اپنانے والے ریورس کیلکولیشن کا استعمال کرتے ہوئے ، مختلف مارکیٹ کے حالات میں بہتر طور پر اپنانا
  2. رجحان کی تبدیلی اور متحرک اشارے کے ساتھ مل کر ، زیادہ قابل اعتماد تجارتی سگنل فراہم کریں
  3. ٹریڈرز کو خود کار طریقے سے خطرے کا انتظام کرنے میں مدد کرنے کے لئے بلٹ ان اسٹاپ نقصان کا نظام
  4. لچکدار پیرامیٹرز کی ترتیب ٹریڈرز کو انفرادی ٹریڈنگ سٹائل کے مطابق بہتر بنانے کی اجازت دیتا ہے
  5. تجزیہ اور فیصلہ سازی کے لئے بصری تجارتی سگنل ڈسپلے

اسٹریٹجک رسک

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-06-04 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[RS]ZigZag Percent Reversal with Stochastic Strategy", overlay=true)

// ZigZag Settings
string percent_method = input.string(
         defval="MANUAL", 
         title="Method to use for the zigzag reversal range:", 
         options=[
             "MANUAL", 
             "ATR005 * X", "ATR010 * X", "ATR020 * X", "ATR050 * X", "ATR100 * X", "ATR250 * X"
             ]
         )

var float percent = input.float(
         defval=0.25, 
         title="Percent of last pivot price for zigzag reversal:", 
         minval=0.0, maxval=99.0
         ) / 100

float percent_multiplier = input.float(
         defval=1.0, 
         title="Multiplier to apply to ATR if applicable:"
         )
if percent_method == "ATR005 * X"
    percent := ta.atr(5) / open * percent_multiplier
if percent_method == "ATR010 * X"
    percent := ta.atr(10) / open * percent_multiplier
if percent_method == "ATR020 * X"
    percent := ta.atr(20) / open * percent_multiplier
if percent_method == "ATR050 * X"
    percent := ta.atr(50) / open * percent_multiplier
if percent_method == "ATR100 * X"
    percent := ta.atr(100) / open * percent_multiplier
if percent_method == "ATR250 * X"
    percent := ta.atr(250) / open * percent_multiplier

// Zigzag function
f_zz(_percent)=>
    // Direction
    var bool _is_direction_up = na
    var float _htrack = na
    var float _ltrack = na
    var float _pivot = na
    float _reverse_range = 0.0
    var int _real_pivot_time = na
    var int _htime = na
    var int _ltime = na
    var float _reverse_line = na
    
    if bar_index >= 1
        
        if na(_is_direction_up)
            _is_direction_up := true
        
        _reverse_range := nz(_pivot[1]) * _percent
        
        if _is_direction_up
            _ltrack := na
            _ltime := time
            
            if na(_htrack)
                if high > high[1]
                    _htrack := high
                    _htime := time
                else
                    _htrack := high[1]
                    _htime := time[1]
            else
                if high > _htrack
                    _htrack := high
                    _htime := time

            _reverse_line := _htrack - _reverse_range
            
            if close <= _reverse_line
                _pivot := _htrack
                _real_pivot_time := _htime
                _is_direction_up := false

        if not _is_direction_up
            _htrack := na
            _htime := na
            
            if na(_ltrack)
                if low < low[1]
                    _ltrack := low
                    _ltime := time
                else
                    _ltrack := low[1]
                    _ltime := time[1]
            else
                if low < _ltrack
                    _ltrack := low
                    _ltime := time
                
            _reverse_line := _ltrack + _reverse_range
            
            if close >= _reverse_line
                _pivot := _ltrack
                _real_pivot_time := _ltime
                _is_direction_up := true

    [_pivot, _is_direction_up, _reverse_line, _real_pivot_time]

[pivot, direction_up, reverse_line, pivot_time] = f_zz(percent)

// Reversal line
var float static_reverse_line = na
if (not na(reverse_line))
    static_reverse_line := reverse_line

plot(series=static_reverse_line, color=color.gray, style=plot.style_line, title="Reversal Line", trackprice=false)

// Stochastic Settings
K_length = input.int(9, title="Stochastic K Length", minval=1)  // User input
K_smoothing = input.int(3, title="Stochastic K Smoothing", minval=1)  // User input
stochK = ta.sma(ta.stoch(close, high, low, K_length), K_smoothing)

// User Input: Take Profit and Stop Loss Levels
stop_loss_pips = input.int(100, title="Stop Loss (pips)", minval=1)  // Stop Loss
take_profit_pips = input.int(300, title="Take Profit (pips)", minval=1)  // Take Profit

// Calculating levels
long_stop_loss = close - stop_loss_pips * syminfo.mintick
long_take_profit = close + take_profit_pips * syminfo.mintick
short_stop_loss = close + stop_loss_pips * syminfo.mintick
short_take_profit = close - take_profit_pips * syminfo.mintick

// Buy and Sell Conditions
buy_signal = close > static_reverse_line and stochK < 30  // K < 30 condition
sell_signal = close < static_reverse_line and stochK > 70  // K > 70 condition

if buy_signal
    strategy.entry("Buy", strategy.long)
    strategy.exit("TP/SL", "Buy", stop=long_stop_loss, limit=long_take_profit)

if sell_signal
    strategy.entry("Sell", strategy.short)
    strategy.exit("TP/SL", "Sell", stop=short_stop_loss, limit=short_take_profit)

// Signal Visualization
plotshape(series=buy_signal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY", textcolor=color.white)
plotshape(series=sell_signal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL", textcolor=color.white)