انحراف میٹرکس رجحان کے بعد حکمت عملی


تخلیق کی تاریخ: 2023-12-12 17:05:27 آخر میں ترمیم کریں: 2023-12-12 17:05:27
کاپی: 0 کلکس کی تعداد: 643
1
پر توجہ دیں
1621
پیروکار

انحراف میٹرکس رجحان کے بعد حکمت عملی

جائزہ

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

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

الگ تھلگ میٹرکس رجحانات کی پیروی کی حکمت عملی بنیادی طور پر مندرجہ ذیل حصوں پر مشتمل ہے:

  1. ڈبل RSI کا فیصلہ رجحان

مارکیٹ کی سمت کا تعین کرنے کے لئے فاسٹ آر ایس آئی اور سست آر ایس آئی کا استعمال کریں۔ جب فاسٹ آر ایس آئی زیادہ خرید یا زیادہ فروخت ہوتا ہے تو ، سست آر ایس آئی کے ساتھ مل کر رجحان کی سمت کا تعین کریں۔

  1. میٹرکس مساوی طور پر ٹریڈنگ سگنل پیدا کرتا ہے

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

  1. دو طرفہ تجارت

پہلے سے طے شدہ دو طرفہ تجارت۔ آپ کو صرف زیادہ کام کرنے کا اختیار ہے۔

اس کے علاوہ ، یہ بھی کہا گیا ہے کہ:

  1. فوری آر ایس آئی کا استعمال کرتے ہوئے مارکیٹ میں عارضی طور پر اوورلوڈ اور اوور سیل کا اندازہ لگائیں۔

  2. سست آر ایس آئی کا استعمال کرتے ہوئے مارکیٹ کے درمیانی اور طویل مدتی رجحان کی سمت کا تعین کریں۔

  3. جب فاسٹ آر ایس آئی میں اوور خرید اور اوور فروخت ہوتی ہے ، اور سست آر ایس آئی رجحان کا رخ موڑتا ہے تو ، سست آر ایس آئی کے اوور لیز فیصلے کے مطابق اسی سمت میں پوزیشن لیں۔

  4. اس کے بعد ، ایک میٹرکس میڈین لائن کا ایک سیٹ طے کیا گیا۔ یہ میٹرکس میڈین لائن انوینٹری قیمت کی ترتیب کے گرد گھومتی ہے ، جس کا فاصلہ فاریکس میٹرکس کے درمیان فی صد فاریکس پیرامیٹرز کے ذریعہ طے کیا جاتا ہے۔

  5. جب قیمت میٹرکس کی اوسط لائن کو چھوتی ہے تو ، اس کے مطابق ہولڈنگ کو ایڈجسٹ کریں۔ اگر اوسط لائن کو اوپر کی طرف سے توڑ دیا جائے تو ، زیادہ آرڈر بڑھ جاتا ہے۔ اگر نیچے کی طرف سے ٹوٹ جاتا ہے تو ، خالی آرڈر کم ہوجاتا ہے۔

  6. جب قیمت میں کوئی بڑا ایڈجسٹمنٹ ہوتا ہے تو ، پوزیشن کو ابتدائی سطح پر واپس کردیا جاتا ہے۔

یہ حکمت عملی کا بنیادی ٹریڈنگ منطق ہے۔ میٹرکس کی اوسط کے ذریعہ ، زیادہ منافع کو رجحان میں لاک کیا جاسکتا ہے۔

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

الگ تھلگ میٹرکس رجحانات کی پیروی کی حکمت عملی کے کچھ فوائد ہیں:

  1. ڈبل آر ایس آئی کا فیصلہ کرنے والا سگنل زیادہ قابل اعتماد ہے۔ تیز آر ایس آئی غلط توڑ سے بچتا ہے ، اور سست آر ایس آئی اس بات کو یقینی بناتا ہے کہ بڑا رجحان درست ہے۔

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

  3. دو طرفہ تجارت کی حمایت کرتا ہے۔ پہلے سے طے شدہ دو طرفہ تجارت ، صرف زیادہ کام کرسکتا ہے۔ زیادہ مارکیٹ کے حالات کے مطابق ڈھال سکتا ہے۔

  4. پوزیشن ری سیٹ کرنے کا طریقہ خطرہ کنٹرول کرتا ہے۔ جب قیمت میں نمایاں ایڈجسٹمنٹ ہوتی ہے تو پوزیشن ری سیٹ کرنا ، نقصان کو بروقت روک سکتا ہے۔

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

  6. واضح کوڈ ڈھانچہ۔ ذمہ داریوں کی واضح تقسیم ، سمجھنے ، بہتر بنانے اور بڑھانے میں آسان۔

مجموعی طور پر ، اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ خطرے کو کنٹرول کرتے ہوئے سگنل کے معیار کو بہتر بنانے کے لئے متعدد میکانزموں کا استعمال کیا جاتا ہے۔ یہ ایک خطرہ اور منافع دونوں تجارت کی حکمت عملی ہے۔

اسٹریٹجک رسک

اس کے علاوہ، اس میں کچھ خطرات بھی ہیں، جن میں سے کچھ مندرجہ ذیل پر توجہ مرکوز ہیں:

  1. جب مارکیٹ زلزلے کی ایڈجسٹمنٹ میں ہوتا ہے تو ، آر ایس آئی اکثر غلط سگنل دیتا ہے۔ اس وقت جانچ کی رفتار ، مناسب پیرامیٹرز کی ایڈجسٹمنٹ یا تجارت کو روکنے کی ضرورت ہوتی ہے۔

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

  3. حد سے زیادہ پوزیشن لگانے سے خطرہ بڑھ جاتا ہے۔ حد سے زیادہ پوزیشن لگانے سے نقصان بھی بڑھ جاتا ہے۔ حد سے زیادہ پوزیشن لگانے کے پیرامیٹرز کو احتیاط سے ترتیب دینے کی ضرورت ہے۔

  4. رجحان کا الٹ خطرہ۔ جب رجحان الٹ ہوتا ہے تو ، اگر بروقت صفائی نہیں کی جاتی ہے تو ، بڑے نقصان کا سامنا کرنا پڑتا ہے۔ اس سے طویل مدتی رجحان کے اشارے پر توجہ دینے کی ضرورت ہے۔

  5. کوڈ کو بہتر بنانے کے لئے محدود جگہ کا خطرہ ہے۔ یہ حکمت عملی کافی پختہ ہے اور بہتر بنانے کے لئے محدود جگہ ہے۔ اگر مارکیٹ کے ماحول میں کوئی بڑی تبدیلی آتی ہے تو ، تجارت کے مجموعی منطق کا دوبارہ جائزہ لینے کی ضرورت ہے۔

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

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

اس حکمت عملی کے ساتھ ساتھ مزید اصلاحات کی گنجائش بھی ہے:

  1. ڈبل آر ایس آئی پیرامیٹرز کو بہتر بنائیں۔ مزید پیرامیٹرز کے مجموعے کی جانچ کی جاسکتی ہے ، جس میں آر ایس آئی کی سب سے درست تعداد کا تعین کرنے کا انتخاب کیا گیا ہے۔

  2. اپنی مرضی کے مطابق میٹرکس اوسط ترتیب صارفین کو مختلف اقسام کے مطابق میٹرکس اوسط پیرامیٹرز کو پیرامیٹرائز کرنے کی اجازت دیتا ہے ، تاکہ یہ اس قسم کی خصوصیات کے مطابق ہو۔

  3. اسٹاپ نقصان کو بڑھانا۔ مثال کے طور پر ، جب قیمت اس اوسط سے نیچے آجائے تو اسٹاپ نقصان۔

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

  5. دوسرے اشارے کے ساتھ مل کر۔ اس کے بعد دیگر اشارے جیسے MACD ، KD کو معاون فیصلے کے لئے متعارف کرایا جاسکتا ہے ، تاکہ سگنل کی درستگی کو بہتر بنایا جاسکے۔

  6. کوڈ کی ساخت کو بہتر بنائیں۔ کوڈ کی توسیع ، بحالی اور کارکردگی کو بہتر بنانا جاری رکھیں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("The Matrix 7.0 Strategy", overlay=false)

//Matrix Settings 
entry_size = input(title="Entry Size", defval = 1)
max_size = input(title="Max Size", defval = 10000)
matrix = input(title="Matrix Interval %", defval = 2)
matrix_price_overwrite = input(title="Matrix Overwrite $", defval = 0.0)
adjustment = input(title="Adjustment Size", defval = 1000)
trade_short = input(title="Trade Short", type=bool, defval = true)

//RSI Settings
periods = input(title="RSI Periods", defval = 14)
overbought_short = input(title="RSI Overbought", defval = 65)
oversold_short = input(title="RSI Oversold", defval = 30)

//RSI Trend Settings
resolution_long = input(title="Resolution Trend", defval = "D")
periods_long = input(title="RSI Trend Periods", defval = 14)
overbought_long = input(title="RSI Trend Overbought", defval = 64)
oversold_long = input(title="RSI Trend Oversold", defval = 30)

//Round Off to 2 decimals
round2(x) =>
    a = x * 10 * 10
    a := floor(a + 0.5)
    a := a / 10 / 10
    a

//RSI Function
RSI = rsi(close, periods)

//RSI Market Function
rsi_oversold = RSI < oversold_short
rsi_overbought = RSI > overbought_short

market_rsi = 0.0
market_rsi := if (rsi_oversold)
    RSI - oversold_short
else
    if (rsi_overbought)
        RSI - overbought_short
    else
        0

//RSI Trend Function
rsi_long = request.security(syminfo.tickerid,resolution_long,rsi(close,periods_long))
trend_rsi_long = rsi_long < oversold_long
trend_rsi_short = rsi_long > overbought_long
trend_rsi = 0
trend_rsi := if (trend_rsi_short)
    -1
else
    if (trend_rsi_long)
        1
    else
        trend_rsi[1] 

// // Shorter time resolution to make "close" crosses give faster positives.
// short_resolution = security(tickerid, "1", close)
// quick = round2(short_resolution) //ROUND OFF TO 2 DECIMAL PLACES.

//Declare Other Variables
entry_price = 0.0
entry_price := nz(entry_price[1])

position_size = 0.0
position_size := nz(position_size[1])

last_traded_price = 0.0
last_traded_price := nz(last_traded_price[1])


matrix_price = 0.0
if matrix_price_overwrite > 0.0
    matrix_price := matrix_price_overwrite
else
    matrix_price := round2((matrix/100) * entry_price)

level = 0
level := nz(level[1])

level_price = entry_price
if not na(level_price[1])
    level_price := level_price[1]

// Calculate Level
if close > level_price 
    level_change = floor((high - level_price)/matrix_price)
    level := level + level_change
else
    if close < level_price 
        level_change = ceil((low - level_price)/matrix_price)
        level := level + level_change
        
// Calculate Level Price   
level_price := (level * matrix_price) + entry_price

// Calculate Matrix Position
matrix_position = 0.0

if position_size > 0
    matrix_position :=  ((-1 * level) * adjustment) + entry_size
else
    if position_size < 0
        matrix_position :=  ((-1 * level) * adjustment) - entry_size
    
//Trend Entry or Reversal Conditions
trend_reversal_up = trend_rsi == 1 and (trend_rsi[1] == -1 or trend_rsi == 0) and position_size <= 0
trend_reversal_down = trend_rsi == -1 and (trend_rsi[1] == 1 or trend_rsi == 0) and position_size >= 0 and trade_short == true
flatten_position = trend_rsi == -1 and (trend_rsi[1] == 1 or trend_rsi == 0) and position_size >= 0 and trade_short == false

//Reset Conditions
reset_long = (position_size > 0) and (close - entry_price > matrix_price) and (market_rsi < 0) and (position_size != entry_size) 
reset_short = (position_size < 0) and (entry_price - close > matrix_price) and (market_rsi > 0) and (position_size != (-1 * entry_size)) 

//Adjustment Conditions
increase_long = (position_size > 0) and (matrix_position > position_size) and (market_rsi < 0) and (matrix_position <= max_size) 
decrease_long = (position_size > 0) and (matrix_position < position_size) and (market_rsi > 0) 
increase_short = (position_size < 0) and (matrix_position < position_size) and (market_rsi > 0) and (matrix_position >= (-1 * max_size)) 
decrease_short = (position_size < 0) and (matrix_position > position_size) and (market_rsi < 0)  

//Transactions
//Trend Reversals
if trend_reversal_up
    strategy.entry("OL", strategy.long, qty=entry_size)
    position_size := entry_size
    matrix_position := entry_size
    level := 0
else
    if trend_reversal_down 
        strategy.entry("OS", strategy.short, qty=entry_size)
        position_size := -1 * entry_size
        matrix_position := -1 * entry_size   
        level := 0
        
    //Reset Positions    
    else
        if reset_long
            order = entry_size - position_size[1]
            strategy.order("RL", strategy.long, qty=order)
            position_size := entry_size
            matrix_position := entry_size
            level := 0
        else
            if reset_short
                order = position_size[1] - (-1* entry_size)
                strategy.order("RS", strategy.short, qty=order)
                position_size := -1 * entry_size
                matrix_position := -1 * entry_size
                level := 0

    //Position Adjustments
            else    
                if increase_long
                    order = matrix_position - position_size[1]
                    strategy.order("IL", strategy.long, qty=order)
                    position_size := position_size[1] + order
                else
                    if decrease_long
                        order = position_size[1] - matrix_position
                        strategy.order("DL", strategy.short, qty=order)
                        position_size := position_size[1] - order
                    else
                        if increase_short
                            order = position_size[1] - matrix_position
                            strategy.order("IS", strategy.short, qty=order)
                            position_size := position_size[1] - order
                        else
                            if decrease_short
                                order = matrix_position - position_size[1]
                                strategy.order("DS", strategy.long, qty=order)
                                position_size := position_size[1] + order
                            else 
                                if flatten_position
                                    strategy.close_all()
                                    position_size := 0.0
                                    matrix_position := 0.0
                                    level := 0

//Grouped Actions
if trend_reversal_up or trend_reversal_down or reset_short or reset_long
    entry_price := round2(close)
    last_traded_price := round2(close)

if increase_long or decrease_long or increase_short or decrease_short
    last_traded_price := round2(close)

// //RSI Trend & Adjustment Moments. (strategy)
p1 = plot(market_rsi, color = trend_rsi > 0 ? green : red, linewidth = 4, title='Market', transp =0)
p2 = plot(trend_rsi, color = trend_rsi > 0 ? green : red, linewidth = 4, title='Trend', transp = 0)
fill(p1,p2, color=trend_rsi > 0 ? green : red, transp=0)
p3 = plot((rsi_long - 50) *2, color = white, title="Trend Index")
fill(p2,p3, color=white)
hline((overbought_long -50) * 2)
hline((oversold_long -50) * 2)

//Position Plots (strategy)
plot(matrix_position / 100, title='Matrix', color=white, linewidth = 4)
plot(position_size / 100, title='Position', color=blue, linewidth = 4)
plot(strategy.position_size / 100, title='Strategy', color=orange, linewidth = 4)

// //Price Plots (study)
// plot(level_price, title="Matrix Level Price", linewidth=4)
// plot(last_traded_price, title="Last Traded Price", linewidth=2, color=orange)
// plot(entry_price + (4 * matrix_price), title='Adjustment 4', color=white, linewidth = 1)
// plot(entry_price + (3 * matrix_price), title='Adjustment 3', color=white, linewidth = 1)
// plot(entry_price + (2 * matrix_price), title='Adjustment 2', color=white, linewidth = 1)
// plot(entry_price + matrix_price, title='Adjustment 1', color=white, linewidth = 1)
// plot(entry_price, title='Entry Price', color=white, linewidth = 3)
// plot(entry_price - matrix_price, title='Adjustment -1', color=white, linewidth = 1)
// plot(entry_price - (2 * matrix_price), title='Adjustment -2', color=white, linewidth = 1)
// plot(entry_price - (3 * matrix_price), title='Adjustment -3', color=white, linewidth = 1)
// plot(entry_price - (4 * matrix_price), title='Adjustment -4', color=white, linewidth = 1)


// //Alerts (study only)
// alertcondition(trend_reversal_up, title='Trend Reversal Up', message='Market Oversold, Lets Buy')
// alertcondition(trend_reversal_down, title='Trend Reversal Down', message='Market Overbought, Lets Sell')
// alertcondition(reset_long, title='Reset Long', message='Higher Bottom, Lets Buy')
// alertcondition(reset_short, title='Reset Short', message='Lower Top, Lets Sell')
// alertcondition(increase_long, title='Increase Long', message='Price Dropped, Lets Buy')
// alertcondition(decrease_long, title='Decrease Long', message='Price Spiked, Lets Sell')
// alertcondition(increase_short, title='Increase Short', message='Price Spiked, Lets Sell')
// alertcondition(decrease_short, title='Decrease Short', message='Price Dropped, Lets Buy')

// //Grouped Conditions
// condition_buy = trend_reversal_up or increase_long or decrease_short or reset_long
// condition_sell = trend_reversal_down or decrease_long or increase_short or reset_short
// adjustment_matrix = trend_reversal_up or increase_long or decrease_short or trend_reversal_down or decrease_long or increase_short or reset_long or reset_short

// //Grouped Alerts
// alertcondition(condition_buy, title='Condition Buy', message='You Need to Buy')
// alertcondition(condition_sell, title='Condition Sell', message='You Need to Sell!')
// alertcondition(adjustment_matrix, title='Adjustment Matrix', message='You Need to Adjust')