رشتہ دار طاقت MACD حکمت عملی


تخلیق کی تاریخ: 2023-12-21 12:01:01 آخر میں ترمیم کریں: 2023-12-21 12:01:01
کاپی: 0 کلکس کی تعداد: 357
1
پر توجہ دیں
1166
پیروکار

رشتہ دار طاقت MACD حکمت عملی

جائزہ

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

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

RS ایک غیر معمولی اشارے ہے جو مارکیٹ کی کارکردگی کے مفروضوں کے درمیان حرکیات کی پیمائش کرتا ہے۔ یہ پیشہ ور افراد کے ذریعہ استعمال کیا جاتا ہے اور یہ سب سے زیادہ مستحکم اشارے میں سے ایک ہے۔ اس کا خیال ہے کہ اثاثوں کو ان کی ماضی کی کارکردگی کی بنیاد پر اوسط سے بہتر کارکردگی کا مظاہرہ کرنا ہے۔ ہم مندرجہ ذیل فارمولے کا استعمال کرتے ہوئے RS کا حساب لگاتے ہیں:

RS = موجودہ قیمت / RS لمبائی میں سب سے زیادہ قیمت

اس طرح، ہم موجودہ قیمت کا موازنہ اس صارف کی طرف سے مقرر کردہ وقت کے اندر اندر سب سے زیادہ قیمت کے ساتھ کر سکتے ہیں.

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

نوٹ کریں کہ پہلے دو حرکت پذیری اوسط کو RS قدر کے ذریعہ بنایا گیا ہے۔ لہذا ، ہم نے ابھی ایک اشارے سے دوسرے اشارے کی تعمیر کی ہے۔ یہ طریقہ کار بہت طاقتور ہے کیونکہ اس کا استعمال بہت کم ہوتا ہے اور حکمت عملی میں قدر لاتا ہے۔

طاقت کا تجزیہ

اس حکمت عملی میں MACD اور RS دونوں اشارے شامل ہیں جو انفرادی طور پر بہت مضبوط ہیں۔ MACD مختصر مدت کے رجحانات اور حرکیات کی تبدیلیوں کو پکڑ سکتا ہے ، جبکہ RS درمیانی اور طویل مدتی رجحانات کی مضبوطی کی عکاسی کرتا ہے۔ ان کو مل کر استعمال کرنے سے قلیل مدتی اور طویل مدتی دونوں عوامل پر غور کیا جاتا ہے ، جس سے خریدنے کے اشارے زیادہ قابل اعتماد ہوجاتے ہیں۔

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

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

خطرے کا تجزیہ

اس حکمت عملی کا سب سے بڑا خطرہ RS اور MACD اشارے کے غلط سگنل دینے کا امکان ہے۔ اگرچہ یہ دونوں مضبوط ہیں ، لیکن کوئی بھی تکنیکی اشارے 100٪ مستقبل کی پیش گوئی نہیں کرسکتا ہے ، اور سگنل کبھی کبھار ناکام ہوسکتے ہیں۔ اس کے علاوہ ، RS اشارے خود ہی درمیانی اور طویل مدتی رجحانات کے فیصلے پر زیادہ انحصار کرتے ہیں ، اور قلیل مدت میں گمراہ کن سگنل ہوسکتے ہیں۔

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

اصلاح کی سمت

پہلا ، مختلف مارکیٹوں (جیسے اسٹاک ، غیر ملکی کرنسی ، کریپٹو کرنسی وغیرہ) کی جانچ کی جاسکتی ہے کہ حکمت عملی کس قسم کی بہترین کارکردگی کا مظاہرہ کرتی ہے ، اور پھر بہترین پر توجہ دیں۔

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

تیسرا ، تجارت کے اشارے بنانے ، ملٹی فیکٹر ماڈل بنانے ، اور سگنل کی درستگی کو بہتر بنانے کے لئے دوسرے اشارے شامل کرنے پر غور کیا جاسکتا ہے۔ مثال کے طور پر ، حجم اشارے شامل کرنا۔

خلاصہ کریں۔

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gsanson66


//This strategy calculates the Relative Strength and plot the MACD of this Relative Strenght
//We take only buy signals send by MACD
//@version=5
strategy("MACD OF RELATIVE STRENGHT STRATEGY", shorttitle="MACD RS STRATEGY", precision=4, overlay=false, initial_capital=1000, default_qty_type=strategy.cash, default_qty_value=950, commission_type=strategy.commission.percent, commission_value=0.18, slippage=3)


//------------------------------TOOL TIPS--------------------------------//

t1 = "Relative Strength length i.e. number of candles back to find the highest high and compare the current price with this high."
t2 = "Relative Strength fast EMA length used to plot the MACD."
t3 = "Relative Strength slow EMA length used to plot the MACD."
t4 = "Macdline SMA length used to plot the MACD."
t5 = "The maximum loss a trade can incur (in percentage of the trade value)"
t6 = "Each gain or losse (relative to the previous reference) in an amount equal to this fixed ratio will change quantity of orders."
t7 = "The amount of money to be added to or subtracted from orders once the fixed ratio has been reached."


//----------------------------------------FUNCTIONS---------------------------------------//

//@function Displays text passed to `txt` when called.
debugLabel(txt, color, loc) =>
    label.new(bar_index, loc, text=txt, color=color, style=label.style_label_lower_right, textcolor=color.black, size=size.small)

//@function which looks if the close date of the current bar falls inside the date range
inBacktestPeriod(start, end) => (time >= start) and (time <= end)


//---------------------------------------USER INPUTS--------------------------------------//

//Technical parameters
rs_lenght = input.int(defval=300, minval=1, title="RS Length", group="Technical parameters", tooltip=t1)
fast_length = input(title="MACD Fast Length", defval=14, group="Technical parameters", tooltip=t2)
slow_length = input(title="MACD Slow Length", defval=26, group="Technical parameters", tooltip=t3)
signal_length = input.int(title="MACD Signal Smoothing",  minval=1, maxval=50, defval=10, group="Technical parameters", tooltip=t4)
//Risk Management
slMax = input.float(8, "Max risk per trade (in %)", minval=0, group="Risk Management", tooltip=t5)
//Money Management
fixedRatio = input.int(defval=400, minval=1, title="Fixed Ratio Value ($)", group="Money Management", tooltip=t6)
increasingOrderAmount = input.int(defval=200, minval=1, title="Increasing Order Amount ($)", group="Money Management", tooltip=t7)
//Backtesting period
startDate = input(title="Start Date", defval=timestamp("1 Jan 2020 00:00:00"), group="Backtesting Period")
endDate = input(title="End Date", defval=timestamp("1 July 2024 00:00:00"), group="Backtesting Period")


//----------------------------------VARIABLES INITIALISATION-----------------------------//
strategy.initial_capital = 50000
//Relative Strenght Calculation
rs = close/ta.highest(high, rs_lenght)
//MACD of RS Calculation
[macdLine, signalLine, histLine] = ta.macd(rs, fast_length, slow_length, signal_length)
//Money management
equity = math.abs(strategy.equity - strategy.openprofit)
var float capital_ref = strategy.initial_capital
var float cashOrder = strategy.initial_capital * 0.95
//Backtesting period
bool inRange = na


//------------------------------CHECKING SOME CONDITIONS ON EACH SCRIPT EXECUTION-------------------------------//

//Checking if the date belong to the range
inRange := true

//Checking performances of the strategy
if equity > capital_ref + fixedRatio
    spread = (equity - capital_ref)/fixedRatio
    nb_level = int(spread)
    increasingOrder = nb_level * increasingOrderAmount
    cashOrder := cashOrder + increasingOrder
    capital_ref := capital_ref + nb_level*fixedRatio
if equity < capital_ref - fixedRatio
    spread = (capital_ref - equity)/fixedRatio
    nb_level = int(spread)
    decreasingOrder = nb_level * increasingOrderAmount
    cashOrder := cashOrder - decreasingOrder
    capital_ref := capital_ref - nb_level*fixedRatio

//Checking if we close all trades in case where we exit the backtesting period
if strategy.position_size!=0 and not inRange
    strategy.close_all()
    debugLabel("END OF BACKTESTING PERIOD : we close the trade", color=color.rgb(116, 116, 116), loc=macdLine)


//-----------------------------------EXIT SIGNAL------------------------------//

if strategy.position_size>0 and histLine<0
    strategy.close("Long")


//-------------------------------BUY CONDITION-------------------------------------//

if histLine>0 and not (strategy.position_size>0) and inRange
    qty = cashOrder/close
    stopLoss = close*(1-slMax/100)
    strategy.entry("Long", strategy.long, qty)
    strategy.exit("Exit Long", "Long", stop=stopLoss)


//---------------------------------PLOTTING ELEMENT----------------------------------//

hline(0, "Zero Line", color=color.new(#787B86, 50))
plot(macdLine, title="MACD", color=color.blue)
plot(signalLine, title="Signal", color=color.orange)
plot(histLine, title="Histogram", style=plot.style_columns, color=(histLine>=0 ? (histLine[1] < histLine ? #26A69A : #B2DFDB) : (histLine[1] < histLine ? #FFCDD2 : #FF5252)))
plotchar(rs, "Relative Strenght", "", location.top, color=color.yellow)