ملٹی لیول زگ زیگ فیصد ریٹیسمنٹ اسٹاکسٹک انڈیکیٹر ٹریڈنگ حکمت عملی کے ساتھ مل کر

ZZ ATR RSI STOCH SMA
تخلیق کی تاریخ: 2025-02-21 11:18:39 آخر میں ترمیم کریں: 2025-02-21 11:18:39
کاپی: 0 کلکس کی تعداد: 477
2
پر توجہ دیں
319
پیروکار

ملٹی لیول زگ زیگ فیصد ریٹیسمنٹ اسٹاکسٹک انڈیکیٹر ٹریڈنگ حکمت عملی کے ساتھ مل کر ملٹی لیول زگ زیگ فیصد ریٹیسمنٹ اسٹاکسٹک انڈیکیٹر ٹریڈنگ حکمت عملی کے ساتھ مل کر

جائزہ

یہ حکمت عملی ایک تجارتی نظام ہے جس میں زیگ زیگ فی صد کی واپسی اور ایک بے ترتیب اشارے (سٹوکاسٹک) کا امتزاج ہے۔ حکمت عملی مارکیٹ کے رجحانات کے اہم موڑ کی نشاندہی کرنے کے لئے متحرک طور پر ایڈجسٹ زیگ زیگ اشارے کا استعمال کرتی ہے ، اور بے ترتیب اشارے کے ساتھ مل کر اوورلوڈ اور اوور سیل سگنل کو بروقت داخل کرنے کے لئے استعمال کرتی ہے۔ اس نظام میں خطرے کے انتظام کے لئے اسٹاپ نقصان اور اسٹاپ آؤٹ میکانزم بھی شامل ہیں۔

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

حکمت عملی کی بنیادی منطق درج ذیل کلیدی اجزاء پر مبنی ہے:

  1. متحرک زیگ زیگ اشارے - اے ٹی آر متحرک ایڈجسٹمنٹ ریٹرو فیصد جو دستی ترتیب یا مختلف دورانیے پر مبنی ہے ((5-250)
  2. بے ترتیب اشارے فلٹرنگ - 9 سیکنڈ کے K اقدار اور 3 سیکنڈ ہموار کے ساتھ بے ترتیب اشارے
  3. ٹریڈنگ سگنل پیدا:
    • خریدنے کی شرائط: قیمت نے الٹ پلٹ لائن کو توڑ دیا اور بے ترتیب اشارے K کی قیمت 20 سے کم ہے
    • فروخت کی شرائط: قیمت الٹ پلٹ لائن سے نیچے گر گئی اور بے ترتیب اشارے K کی قیمت 80 سے زیادہ ہے
  4. رسک مینجمنٹ - فکسڈ پوائنٹس کے ساتھ اسٹاپ نقصان ((100 پوائنٹس) اور اسٹاپ اسٹاپ ((300 پوائنٹس)

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

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

اسٹریٹجک رسک

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2025-02-18 14:00:00
end: 2025-02-20 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

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

//  ||---}---------------------------------------------------------------------||

//  |--------------------------------------------------------------------------||
//  |   ZigZag:                                                                ||
//  |--------------------------------------------------------------------------||
//  |{
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 after last pivot
    var bool _is_direction_up = na
    //  track highest price since last lower pivot
    var float _htrack = na
    //  track lowest price since last higher pivot
    var float _ltrack = na
    //  zigzag variable for plotting
    var float _pivot = na
    //  range needed for reaching reversal threshold
    float _reverse_range = 0.0
    //  real pivot time
    var int _real_pivot_time = na
    var int _htime = na
    var int _ltime = na
    //  reverse line
    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

            // Reversal line calculation based on the current candle's closing price
            _reverse_line := _htrack - _reverse_range
            
            // If close <= reversal line, mark pivot and reverse direction
            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
                
            // Reversal line calculation based on the current candle's closing price
            _reverse_line := _ltrack + _reverse_range
            
            // If close >= reversal line, mark pivot and reverse direction
            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)

// Çizim
// Sabit Reversal Line (fiyat seviyesinde sabit)
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:                                                            ||
//  ||-------------------------------------------------------------------------||
//  |{
K_length = 9
K_smoothing = 3

// Stochastic %K hesaplama
stochK = ta.sma(ta.stoch(close, high, low, K_length), K_smoothing)

//  ||-------------------------------------------------------------------------||
//  ||  Custom Buy/Sell Signals:
//  ||-------------------------------------------------------------------------||
//  |{
// Buy sinyali: Fiyat reversal line'ının üstünde ve stochastic K değeri 20'nin altında ise
buy_signal = close > static_reverse_line and stochK < 20

// Sell sinyali: Fiyat reversal line'ının altındaysa ve stochastic K değeri 80'in üstünde ise
sell_signal = close < static_reverse_line and stochK > 80

// Alım ve satım sinyali için strateji girişlerini ekle
long_condition = buy_signal
short_condition = sell_signal

// **Burada Stop Loss ve Take Profit değerleri ayarlandı**
stop_loss_pips = 100  // Stop Loss 10 pip
take_profit_pips = 300  // Take Profit 30 pip

// Stop Loss ve Take Profit seviyeleri hesaplanıyor
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

// Long stratejisi: Alım sinyali ve stop loss/take profit seviyeleri ile
if long_condition
    strategy.entry("Buy", strategy.long, stop=long_stop_loss, limit=long_take_profit)
    strategy.exit("Take Profit / Stop Loss", from_entry="Buy", stop=long_stop_loss, limit=long_take_profit)
    // Webhook ile alım bildirimi gönder
    alert("Buy Signal Triggered!", alert.freq_once_per_bar)

// Short stratejisi: Satım sinyali ve stop loss/take profit seviyeleri ile
if short_condition
    strategy.entry("Sell", strategy.short, stop=short_stop_loss, limit=short_take_profit)
    strategy.exit("Take Profit / Stop Loss", from_entry="Sell", stop=short_stop_loss, limit=short_take_profit)
    // Webhook ile satım bildirimi gönder
    alert("Sell Signal Triggered!", alert.freq_once_per_bar)

// Alım sinyali gösterimi
plotshape(series=buy_signal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY", textcolor=color.white)
// Satım sinyali gösterimi
plotshape(series=sell_signal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL", textcolor=color.white)