
ڈبل MACD مقدار کی تجارت کی حکمت عملی ایک مقدار کی تجارت کی حکمت عملی ہے جس میں دو ٹائم فریم MACD اشارے کا استعمال کیا جاتا ہے۔ اس حکمت عملی میں گھڑی MACD اشارے کی تشکیل کے دوران زیادہ پوزیشن کھولی جاتی ہے ، اور دن کی MACD اشارے کی تشکیل کے دوران فلیٹ پوزیشن۔ جب پوزیشن خالی ہوتی ہے ، تو دن کی MACD اشارے کی تشکیل کے بعد ، زیادہ پوزیشن دوبارہ کھولی جاسکتی ہے۔
دوہری MACD مقدار کی تجارت کی حکمت عملی داخلہ اور باہر نکلنے کے سگنل کا فیصلہ کرنے کے لئے ہفتہ وار MACD اشارے اور روزانہ MACD اشارے کے مجموعے کا استعمال کرتی ہے۔
سب سے پہلے ، جب ہفتہ وار MACD اشارے کی MACD لائن پر سگنل لائن کو عبور کرتے وقت خریدنے کا اشارہ ہوتا ہے ، اس وقت زیادہ پوزیشن کھولی جاتی ہے۔ پھر اسی دن MACD اشارے کی MACD لائن کے نیچے سگنل لائن کو عبور کرتے وقت فروخت کا اشارہ ہوتا ہے ، اس وقت پوزیشن خالی ہوتی ہے۔
جب پوزیشن خالی ہوتی ہے تو ، اگر یومیہ MACD اشارے کی MACD لائن ایک بار پھر سگنل لائن کو عبور کرتی ہے تو ، پوزیشن دوبارہ کھول دی جاتی ہے۔ یعنی ، یومیہ MACD اشارے کا سنہری کانٹا دوبارہ پوزیشن کھولنے کی شرط بن جاتا ہے۔
نوٹ کریں کہ یومیہ MACD اشارے کی ڈیڈ فورک پوزیشنوں کو صاف کرنے کے لئے ہے ، لیکن پوزیشنوں کو دوبارہ کھولنے کی اجازت دینے کے لئے ہفتہ وار MACD اشارے کی MACD لائن کو سگنل لائن سے اوپر کی پوزیشن ٹریڈنگ ونڈو کے اندر اندر ہونا ضروری ہے۔
ڈبل MACD مقداری تجارت کی حکمت عملی ڈبل ٹائم فریم تجزیہ کے ساتھ مل کر ، جعلی سگنل کو مؤثر طریقے سے فلٹر کرنے اور سگنل کے معیار کو بہتر بنانے کے لئے استعمال کی جاتی ہے۔ خاص طور پر ، بنیادی طور پر مندرجہ ذیل فوائد ہیں:
ہفتہ وار ٹائم فریم اہم رجحانات کی سمتوں کا تعین کرنے میں مدد کرتا ہے تاکہ مخالف تجارت سے بچا جاسکے۔
دن کے وقت کے فریم میں داخلے اور باہر نکلنے کے وقت کا تعین کرنے کے لئے ، قلیل مدتی تجارتی مواقع کو بروقت پکڑنے کے لئے۔
فاریکس ٹریڈنگ ونڈو کو روکنے کے طریقہ کار سے قلیل مدتی ایڈجسٹمنٹ کی وجہ سے زیادہ کثرت سے پوزیشن کھولنے سے بچنے سے بچا جاسکتا ہے۔
MACD اشارے کے پیرامیٹرز سایڈست ہیں اور مختلف اقسام اور مارکیٹ کے حالات کے مطابق بہتر بنایا جاسکتا ہے۔
اسٹاپ، سٹاپ نقصان اور موبائل سٹاپ کے فنکشن کو مربوط کرکے خطرے کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے۔
دوہری MACD مقدار کی تجارت کی حکمت عملی میں کچھ خطرات بھی شامل ہیں ، جن میں شامل ہیں:
MACD اشارے جھوٹے سگنل اور بار بار کراس کرنے کے لئے تیار ہیں ، جس کی تصدیق کے لئے دوسرے اشارے کے مجموعے کی ضرورت ہے۔
ہفتہ وار ماہانہ ٹائم فریم کے فیصلے میں اہم رجحانات میں تبدیلی کا امکان ہے اور اس کو بروقت روکنے کی ضرورت ہے۔
پیرامیٹرز کو مختلف اقسام اور حالات کے مطابق مسلسل بہتر اور ایڈجسٹ کرنے کی ضرورت ہے۔
ریٹرننگ کے نتائج پر زیادہ انحصار نہیں کیا جاسکتا ، کیونکہ ریٹرننگ سے اختلافات ہوسکتے ہیں۔
اس کا حل کیا ہے؟
دوسرے اشارے کے مجموعے کے ساتھ استعمال کیا جاتا ہے، منطقی اصلاح کی حکمت عملی کے نظام کی تعمیر کے لئے.
معقول اسٹاپ نقصان کی حد مقرر کریں تاکہ زیادہ سے زیادہ نقصان سے بچا جاسکے۔
پیرامیٹرز کو مستقل طور پر بہتر بنائیں ، بہترین پیرامیٹرز کا مجموعہ تلاش کریں۔
کم سے کم فنڈز کے ساتھ شروع کریں اور حکمت عملی کی استحکام کو یقینی بنائیں۔
ڈبل MACD مقدار کی تجارت کی حکمت عملی میں مزید اصلاحات کی گنجائش ہے:
بلین لائن، کے ڈی جے اور دیگر اشارے متعارف کروائے جا سکتے ہیں، ملٹی میٹرکس مجموعہ کی حکمت عملی کی تعمیر، سگنل کی معیار کو بہتر بنانے کے لئے.
اس کے علاوہ ، یہ بھی ممکن ہے کہ آپ کو ایک ٹرانزیکشن حجم اشارے کے ساتھ مل کر قیمتوں میں اضافے سے بچنے کے ل fake ایک جعلی بریک لگائیں ، لیکن اس کے ساتھ ہی آپ کو ٹرانزیکشن حجم کی کمی کا سامنا کرنا پڑتا ہے۔
پیرامیٹرز کو خودکار طور پر بہتر بنانے کے لئے مشین لرننگ کے طریقوں کا استعمال کریں ، پیرامیٹرز کو متحرک طور پر ایڈجسٹ کریں۔
حکمت عملی کے لئے مزید خطرے کی ایڈجسٹمنٹ، جیسے اعلی درجے کی روک تھام کے طریقوں کو شامل کرنا جیسے جیت اور نقصان کا تناسب.
پالیسی فٹنس ٹیسٹ اور اصلاحی ایڈجسٹمنٹ ، فٹنس سے بچنے کے لئے۔
ڈبل MACD مقداری تجارت کی حکمت عملی دو ٹائم فریم کے تجزیے کو مربوط کرتی ہے جس میں اہم اور ضمنی رجحانات کا فیصلہ کیا جاتا ہے تاکہ انڈیکیٹرز کو فائدہ اٹھایا جاسکے۔ حکمت عملی کو بہتر بنانے کی گنجائش بہت زیادہ ہے ، جس میں حکمت عملی کی تاثیر کو مزید بڑھانے کے لئے دیگر اشارے متعارف کرانے اور مشین لرننگ کا استعمال کرتے ہوئے پیرامیٹرز کی اصلاح جیسے طریقوں کا استعمال کیا جاسکتا ہے۔ عملی طور پر توثیق ایک لازمی قدم ہے اور حکمت عملی کو مزید بہتر بنانے کے لئے ایک اہم بنیاد ہے۔
/*backtest
start: 2023-01-29 00:00:00
end: 2024-01-11 05:20: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/
// © maxits
// Long Position: Weekly Macd line crosses above Signal line
// [Trading Window Macd Line > Signal Line] (Weekly)
// Close Position: Daily Macd Line crosses above Daily Signal line.
// Re Entry Condition: Macd line crosses above Signal line only if [Trading Window MacdLine > Sgnal Line] (Weekly)
//@version=4
strategy("Dual MACD Strategy",
shorttitle="Dual Macd Tester",
overlay=false,
initial_capital=1000,
default_qty_value=20,
default_qty_type=strategy.percent_of_equity,
commission_value=0.1,
pyramiding=0)
// Define user inputs
i_time = input(defval = timestamp("01 May 2018 13:30 +0000"), title = "Start Time", type = input.time) // Starting time for Backtesting
f_time = input(defval = timestamp("9 Sep 2021 13:30 +0000"), title = "Finish Time", type = input.time) // Finishing time for Backtesting
sep1 = input(false, title="------ Profit & Loss ------")
enable_TP = input(true, title="Enable Just a Profit Level?")
enable_SL = input(false, title="Enable Just a S.Loss Level?")
enable_TS = input(true, title=" Enable Only Trailing Stop")
long_TP_Input = input(30.0, title='Take Profit %', type=input.float, minval=0)/100
long_SL_Input = input(1.0, title='Stop Loss %', type=input.float, minval=0)/100
long_TS_Input = input(5.0, title='Trailing Stop %', type=input.float, minval=0)/100
cl_low_Input = input(low, title="Trailing Stop Source")
long_TP = strategy.position_avg_price * (1 + long_TP_Input)
long_SL = strategy.position_avg_price * (1 - long_SL_Input)
long_TS = cl_low_Input * (1 - long_TS_Input)
sep2 = input(false, title="------ Macd Properties ------")
d_res = input(title="Short Term TimeFrame", type=input.resolution, defval="D") // Daily Time Frame
w_res = input(title="Long Term TimeFrame", type=input.resolution, defval="W") // Weekly Time Frame
src = input(close, title="Source") // Indicator Price Source
fast_len = input(title="Fast Length", type=input.integer, defval=12) // Fast MA Length
slow_len = input(title="Slow Length", type=input.integer, defval=26) // Slow MA Length
sign_len = input(title="Sign Length", type=input.integer, defval=9) // Sign MA Length
d_w = input(title="Daily or Weekly?", type=input.bool, defval=true) // Plot Daily or Weekly MACD
// Color Plot for Macd
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
// BG Color
bg_color = color.rgb(127, 232, 34, 75)
// Daily Macd
[d_macdLine, d_singleLine, d_histLine] = security(syminfo.tickerid, d_res, macd(src, fast_len, slow_len, sign_len)) // Funcion Security para poder usar correcta resolución
plot(d_w ? d_macdLine : na, color=color.blue)
plot(d_w ? d_singleLine : na, color=color.orange)
plot(d_w ? d_histLine : na, style=plot.style_columns,
color=(d_histLine>=0 ? (d_histLine[1] < d_histLine ? col_grow_above : col_fall_above) :
(d_histLine[1] < d_histLine ? col_grow_below : col_fall_below)))
// Weekly Macd
[w_macdLine, w_singleLine, w_histLine] = security(syminfo.tickerid, w_res, macd(src, fast_len, slow_len, sign_len)) // Funcion Security para poder usar correcta resolución
plot(d_w ? na : w_macdLine, color=color.blue)
plot(d_w ? na : w_singleLine, color=color.orange)
plot(d_w ? na : w_histLine, style=plot.style_columns,
color=(w_histLine>=0 ? (w_histLine[1] < w_histLine ? col_grow_above : col_fall_above) :
(w_histLine[1] < w_histLine ? col_grow_below : col_fall_below)))
///////////////////////////////// Entry Conditions
inTrade = strategy.position_size != 0 // Posición abierta
notInTrade = strategy.position_size == 0 // Posición Cerrada
start_time = true
trading_window = w_macdLine > w_singleLine // Weekly Macd Signal enables a trading window
bgcolor(trading_window ? bg_color : na)
buy_cond = crossover (w_macdLine, w_singleLine)
sell_cond = crossunder(d_macdLine, d_singleLine)
re_entry_cond = crossover (d_macdLine, d_singleLine) and trading_window
// Entry Exit Conditions
trailing_stop = 0.0 // Code for calculating Long Positions Trailing Stop Loss
trailing_stop := if (strategy.position_size != 0)
stopValue = long_TS
max(trailing_stop[1], stopValue)
else
0
if (buy_cond and notInTrade and start_time)
strategy.entry(id="First Entry", long=strategy.long, comment="First Long")
if (sell_cond and inTrade)
strategy.close(id="First Entry", comment="Close First Long")
if (re_entry_cond and notInTrade and start_time)
strategy.entry(id="Further Entry", long=strategy.long, comment="Further Entry")
if (sell_cond and inTrade)
strategy.close(id="Further Entry", comment="Close First Long")
if enable_TP
if (enable_TS and not enable_SL)
strategy.exit("Long TP & TS FiEn", "First Entry", limit = long_TP, stop = trailing_stop)
strategy.exit("Long TP & TS FuEn", "Further Entry", limit = long_TP, stop = trailing_stop)
else
if (enable_SL and not enable_TS)
strategy.exit("Long TP & TS FiEn", "First Entry", limit = long_TP, stop = long_SL)
strategy.exit("Long TP & TS FuEn", "Further Entry", limit = long_TP, stop = long_SL)
else
strategy.exit("Long TP & TS FiEn", "First Entry", limit = long_TP)
strategy.exit("Long TP & TS FuEn", "Further Entry", limit = long_TP)
else
if not enable_TP
if (enable_TS and not enable_SL)
strategy.exit("Long TP & TS FiEn", "First Entry", stop = trailing_stop)
strategy.exit("Long TP & TS FuEn", "Further Entry", stop = trailing_stop)
else
if (enable_SL and not enable_TS)
strategy.exit("Long TP & TS FiEn", "First Entry", stop = long_SL)
strategy.exit("Long TP & TS FuEn", "Further Entry", stop = long_SL)
plot(enable_TP ? long_TP : na, title="TP Level", color=color.green, style=plot.style_linebr, linewidth=2)
plot(enable_SL ? long_SL : na, title="SL Level", color=color.red, style=plot.style_linebr, linewidth=2)
plot(enable_TS and trailing_stop ? trailing_stop : na, title="TS Level", color=color.red, style=plot.style_linebr, linewidth=2)