متفرق میٹرکس ٹرینڈ فالونگ حکمت عملی ایک مقداری تجارتی حکمت عملی ہے جو رجحان ، متفرق ، اور حرکت پذیر اوسط تجزیہ کو جوڑتی ہے۔ یہ حکمت عملی مارکیٹ کے رجحان کی سمت کا فیصلہ کرنے کے لئے دوہری آر ایس آئی اشارے اور انٹری سگنل پیدا کرنے کے لئے میٹرکس حرکت پذیر اوسط استعمال کرتی ہے۔ میٹرکس حرکت پذیر اوسط قیمت کے فرق کی ڈگری کی بنیاد پر پوزیشن سائزنگ کو ایڈجسٹ کرتی ہے۔ مجموعی طور پر ، اس حکمت عملی کا فائدہ یہ ہے کہ متعدد اشارے کے ساتھ تجارتی سگنلز کی تصدیق کی جائے ، جو غلط بریک آؤٹ سے مؤثر طریقے سے بچ سکتی ہے۔ دریں اثنا ، میٹرکس میکانزم زیادہ منافع میں مقفل کرسکتا ہے۔
متغیر میٹرکس رجحان کے بعد کی حکمت عملی میں مندرجہ ذیل اہم حصے شامل ہیں:
رجحان کی تشخیص کے لئے دوہری RSI
مارکیٹ کے رجحان کی سمت کا تعین کرنے کے لئے تیز RSI اور سست RSI کا استعمال کریں۔ جب تیز RSI میں زیادہ خرید یا زیادہ فروخت کی سطح ظاہر ہوتی ہے تو ، رجحان کی سمت کے لئے سست RSI چیک کریں۔
ٹریڈنگ سگنل کے لئے میٹرکس چلتی اوسط
انٹری قیمت کی بنیاد پر میٹرکس کی حرکت پذیر اوسطوں کا ایک گروپ مرتب کریں۔ جب قیمت حرکت پذیر اوسط لائن کو چھوتی ہے تو ، اس کے مطابق پوزیشن کو ایڈجسٹ کریں۔ اس سے رجحانات میں زیادہ منافع حاصل کرنے کی اجازت ملتی ہے۔
دو طرفہ تجارت
ڈیفالٹ دو طرفہ تجارت ہے۔ صرف طویل عرصے تک جانے کا انتخاب کر سکتے ہیں۔
تجارتی منطق مندرجہ ذیل ہے:
تیز رفتار RSI کا استعمال مارکیٹ میں عارضی طور پر زیادہ خریدنے / زیادہ فروخت کی سطحوں کو دیکھنے کے لئے کریں۔
مارکیٹ کی درمیانی اور طویل مدتی رجحان کی سمت کا تعین کرنے کے لئے سست RSI کا استعمال کریں۔
جب تیز RSI انتہائی دکھاتا ہے اور سست RSI رجحان کی تبدیلی کا اشارہ کرتا ہے، سست RSI کی طرف سے طویل / مختصر رجحان کی بنیاد پر پوزیشنیں لے.
پوزیشنوں میں داخل ہونے کے بعد ، میٹرکس چلتی اوسط کا ایک گروپ ترتیب دیں۔ یہ میٹرکس لائنیں انٹری قیمت کے گرد مبنی ہیں ، جس میں وقفے کا سائز
جب قیمت کسی میٹرکس لائن کو چھوتی ہے تو ، اس کے مطابق پوزیشن کا سائز ایڈجسٹ کریں۔ مثال کے طور پر ، اوپر کی توڑ پر لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے لمبے
جب قیمت بڑی ایڈجسٹمنٹ دیکھتی ہے، پوزیشنوں کو ابتدائی سطح پر ری سیٹ کیا جائے گا.
مذکورہ بالا اس حکمت عملی کی بنیادی تجارتی منطق کی وضاحت کرتا ہے۔ میٹرکس میکانزم زیادہ رجحان منافع میں مقفل ہونے کی اجازت دیتا ہے۔
متغیر میٹرکس رجحانات کے بعد کی حکمت عملی کے مندرجہ ذیل فوائد ہیں:
دوہری آر ایس آئی سگنل زیادہ قابل اعتماد ہیں۔ تیز آر ایس آئی جھوٹے بریکآؤٹس سے بچتا ہے اور سست آر ایس آئی اس بات کو یقینی بناتا ہے کہ اہم رجحان درست ہے۔
میٹرکس حرکت پذیر اوسطوں کو رجحانات سے فائدہ ہوتا ہے۔ قیمتوں میں تغیر کی بنیاد پر پوزیشن کے سائز کو ایڈجسٹ کرنے سے پائیدار منافع حاصل کرنے کی اجازت ملتی ہے۔
دو طرفہ تجارت کی حمایت کرتا ہے۔ ڈیفالٹ دو طرفہ تجارت ہے ، لیکن صرف طویل عرصے تک بھی جاسکتی ہے۔ یہ زیادہ سے زیادہ مارکیٹ کے ماحول کو اپناتا ہے۔
پوزیشن ری سیٹ میکانزم خطرات کو کنٹرول کرتا ہے۔ جب قیمت میں بڑی ایڈجسٹمنٹ ہوتی ہے تو پوزیشنوں کو دوبارہ ترتیب دینا بروقت اسٹاپ نقصانات کی اجازت دیتا ہے۔
لچکدار پیرامیٹر کی ترتیبات۔ صارفین تاریخی اعداد و شمار ، تجارتی آلات وغیرہ کی بنیاد پر پیرامیٹر کے بہترین مجموعے کا انتخاب کرسکتے ہیں۔
صاف کوڈ کی ساخت۔ ذمہ داریوں کی واضح علیحدگی کوڈ کو سمجھنے ، بہتر بنانے اور بڑھانے میں آسان بناتی ہے۔
خلاصہ یہ کہ اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ کنٹرول شدہ خطرات کے تحت زیادہ منافع حاصل کرتے ہوئے متعدد میکانزم کے ذریعے سگنل کے معیار کو بہتر بنایا جائے۔ یہ ایک حکمت عملی ہے جو خطرہ اور انعام کو متوازن کرتی ہے۔
متغیر میٹرکس رجحانات کے بعد کی حکمت عملی میں بھی کچھ خطرات ہیں ، بنیادی طور پر مندرجہ ذیل شعبوں میں:
دوہری آر ایس آئی سگنلز کی ناکامی کا خطرہ۔ جب مارکیٹ رینج سے منسلک ہوتی ہے تو ، آر ایس آئی اکثر غلط سگنل دیتا ہے۔ پیرامیٹرز کو ایڈجسٹ کرنے یا تجارت کو معطل کرنے کے لئے دستی مداخلت کی ضرورت ہوتی ہے۔
غلط میٹرکس چلتی اوسط خطرہ۔ اگر میٹرکس پیرامیٹرز کو صحیح طریقے سے ترتیب نہیں دیا جاتا ہے تو ، پوزیشن ایڈجسٹمنٹ بہت جارحانہ ہوسکتی ہے ، اس طرح نقصانات کو بڑھاوا دے سکتی ہے۔ قدامت پسند پیرامیٹر ٹیسٹنگ ضروری ہے۔
زیادہ سے زیادہ لیورج پوزیشنوں کا خطرہ۔ پوزیشن کے سائز میں حد سے زیادہ ایڈجسٹمنٹ سے نقصانات میں بھی اضافہ ہوگا۔ زیادہ سے زیادہ پوزیشن سائز پیرامیٹر کو محتاط طریقے سے طے کرنے کی ضرورت ہے۔
رجحان کی تبدیلی کا خطرہ۔ اگر رجحان کی تبدیلی کے وقت فوری طور پر پوزیشنوں کو بند کرنے میں ناکامی ہوتی ہے تو ، بڑے نقصانات ہوسکتے ہیں۔ اس سے طویل مدتی رجحان کے اشارے کی نگرانی کی ضرورت ہوتی ہے۔
محدود اصلاح کی جگہ کا خطرہ۔ یہ حکمت عملی پہلے ہی کافی پختہ ہے۔ مستقل اصلاح کی صلاحیت محدود ہے۔ اگر مارکیٹ کے نظام میں تیزی سے تبدیلی آتی ہے تو بڑی اپ گریڈ کی ضرورت پڑسکتی ہے۔
ان خطرات کو کم کرنے کے لئے حکمت عملی کا اندازہ لگانا اور بہتر بنانا کلیدی حیثیت رکھتا ہے۔ پیرامیٹرز کو ایڈجسٹ کرنا ، طویل مدتی اشارے وغیرہ کی نگرانی کرنا ، کسی حد تک خطرات کو کم کرسکتا ہے۔
متغیر میٹرکس رجحان کو مزید بہتر بنانے کی گنجائش ہے:
دوہری RSI پیرامیٹرز کو بہتر بنائیں۔ زیادہ پیرامیٹر مجموعے کی جانچ کریں اور اعلی ترین درستگی کے ساتھ RSI ادوار کا انتخاب کریں۔
مرضی کے مطابق میٹرکس لائنز۔ صارفین کو مختلف آلات کی بنیاد پر میٹرکس کی ترتیبات کو پیرامیٹر کرنے کی اجازت دیں تاکہ ان کی خصوصیات کو بہتر طور پر پورا کیا جاسکے۔
اسٹاپ نقصان کے طریقہ کار کو شامل کریں۔ مثال کے طور پر ، اگر قیمت ان لائنوں کو توڑتی ہے تو پوزیشنوں کو روکنے کے لئے باہر نکلنے کی لائنیں مرتب کریں۔
مزید سائنسی پوزیشن سائزنگ کے قوانین شامل کریں۔ زیادہ سے زیادہ فائدہ اٹھانے سے بچنے کے لئے پوزیشن سائز ایڈجسٹمنٹ کو زیادہ بتدریج انداز میں منظم کریں.
دوسرے اشارے شامل کریں۔ سگنل کی درستگی کو بہتر بنانے کے لئے اضافی اشارے جیسے ایم اے سی ڈی ، کے ڈی وغیرہ متعارف کروائیں۔
کوڈ کی ساخت کو بہتر بنائیں۔ کوڈ کی توسیع ، بحالی اور کارکردگی کو مزید بہتر بنائیں۔
ڈائیورجنس میٹرکس ٹرینڈ فالونگ حکمت عملی ایک نفیس مقداری تجارتی حکمت عملی ہے جس میں متعدد میکانزم شامل ہیں۔ رجحان کی سمت اور رجحانات سے فائدہ اٹھانے کے لئے میٹرکس لائنوں کے لئے دوہری آر ایس آئی کا استعمال کرتے ہوئے۔ سنگل اشارے کی حکمت عملی کے مقابلے میں ، یہ زیادہ مستحکم اور موثر تجارتی سگنل مہیا کرتی ہے۔ پیرامیٹر ٹیوننگ اور اصلاح کی توسیع کے ساتھ ، یہ حکمت عملی زیادہ سے زیادہ مارکیٹ کے حالات اور نظام کو اپنانے کے قابل ہے ، جس کی وجہ سے یہ انتہائی ورسٹائل ہے۔ مجموعی طور پر ، یہ حکمت عملی خطرہ اور واپسی کے مابین ایک اچھا توازن حاصل کرتی ہے ، اور سرمایہ کاروں کے ذریعہ فعال درخواست اور مسلسل بہتری کی مستحق ہے۔
/*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')