MACD-V اور Fibonacci ملٹی ٹائم فریم ڈائنامک ٹیک منافع کی حکمت عملی

MACD MACD-V ATR EMA MA
تخلیق کی تاریخ: 2024-04-26 12:00:21 آخر میں ترمیم کریں: 2024-06-25 11:28:55
کاپی: 0 کلکس کی تعداد: 908
1
پر توجہ دیں
1617
پیروکار

MACD-V اور Fibonacci ملٹی ٹائم فریم ڈائنامک ٹیک منافع کی حکمت عملی

جائزہ

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

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

  1. مختلف ٹائم فریموں (جیسے 5 منٹ اور 30 منٹ) کے لئے MACD-V اشارے کا حساب لگائیں۔ MACD-V مختلف مارکیٹ کی حالتوں کو ایڈجسٹ کرنے کے لئے اے ٹی آر میں اتار چڑھاؤ کی شرح میں ایڈجسٹمنٹ متعارف کرانے کے لئے MACD کی بنیاد پر ہے۔
  2. اعلی درجے کے ٹائم فریم (جیسے 30 منٹ) پر ماضی میں ایک خاص دورانیے (جیسے 9 دورانیے) کی زیادہ سے زیادہ قیمت اور کم سے کم قیمت کا حساب لگائیں ، اور پھر اس وقفے کی بنیاد پر فیبونیکی ریٹرننگ لیول کا حساب لگائیں۔
  3. پوزیشن کھولنے کی شرط کو موجودہ بندش کی قیمت اور فبونیکی سطح کے مابین اس کے تعلقات ، اور MACD-V کی قدر اور تبدیلی کی سمت کے مطابق طے کیا جائے۔ مثال کے طور پر ، جب قیمت 38.2٪ فبونیکی سطح کے قریب واپس آتی ہے اور MACD-V نیچے کی طرف 50 سے 150 کے درمیان چلتا ہے تو ، پوزیشن خالی کردی جاتی ہے۔
  4. ایک بار پوزیشن کھولنے کے بعد ، منافع کو بچانے اور خطرے کو کنٹرول کرنے کے لئے ٹریلنگ اسٹاپ کا استعمال کریں۔ قیمت کی نقل و حرکت اور حکمت عملی کے پیرامیٹرز کے مطابق متحرک طور پر ایڈجسٹ کرنے کے لئے ٹریلنگ اسٹاپ کی پوزیشن۔
  5. اگر قیمت متحرک رکاوٹ یا فکسڈ رکاوٹ کی سطح کو چھوتی ہے تو ، اس کی پوزیشن کو ختم کردیا گیا ہے۔

طاقت کا تجزیہ

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

خطرے کا تجزیہ

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

اصلاح کی سمت

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

خلاصہ کریں۔

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

شکریہ

اس حکمت عملی میں استعمال ہونے والے MACD-v اشارے کو تخلیق کار الیکس سپیروگلو کا سہرا دیا گیا ہے۔ مزید تفصیلات کے لیے آپ ان کے کام کا حوالہ دے سکتے ہیں:MACD-v.

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-03-26 00:00:00
end: 2024-04-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © catikur

//@version=5
strategy("Advanced MACD-V and Fibonacci Strategy with EMA Trailing TP", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=1000, margin_long=1./10*50, margin_short=1./10*50, slippage=0, commission_type=strategy.commission.percent, commission_value=0.05)

// Parametreler
fast_len = input.int(12, title="Fast Length", minval=1, group="MACD-V Settings")
slow_len = input.int(26, title="Slow Length", minval=1, group="MACD-V Settings")
signal_len = input.int(9, title="Signal Smoothing", minval=1, group="MACD-V Settings")
atr_len = input.int(26, title="ATR Length", minval=1, group="MACD-V Settings")
source = input.source(close, title="Source", group="MACD-V Settings")

//ema_length = input.int(20, title="EMA Length for Trailing TP", group="Trailing TP Settings")
trailing_profit = input.float(1000, title="Trailing Profit", minval=0.01, maxval=1000000, step=0.01, group="Trailing TP Settings")
trailing_offset = input.float(30000, title="Trailing Offset", minval=0.01, maxval=1000000, step=0.01, group="Trailing TP Settings")
trailing_factor = input.float(0.01, title="Trailing Factor", minval=0.01, maxval=1000000, step=0.01, group="Trailing TP Settings")
fix_loss = input.float(20000, title="Fix Loss", minval=0.01, maxval=1000000, step=0.01, group="Trailing TP Settings")

fib_lookback = input.int(9, title="Fibonacci Lookback Periods", minval=1, group="Fibonacci Settings")

macd_tf = input.timeframe("5", title="MACD Timeframe", group="Timeframe Settings")
fib_tf = input.timeframe("30", title="Fibonacci Timeframe", group="Timeframe Settings")
//ema_tf = input.timeframe("30", title="EMA Timeframe for Trailing TP", group="Timeframe Settings")




// MACD-V Hesaplama
atr = ta.atr(atr_len)
ema_slow = ta.ema(source, slow_len)
ema_fast = ta.ema(source, fast_len)

atr_tf = request.security(syminfo.tickerid, macd_tf , atr)
ema_slow_tf = request.security(syminfo.tickerid, macd_tf , ema_slow)
ema_fast_tf = request.security(syminfo.tickerid, macd_tf , ema_fast)

macd = ( ema_fast_tf - ema_slow_tf ) / atr_tf * 100
signal = ta.ema(macd, signal_len)
hist = macd - signal
hist_prev = hist[1]

// log.info("MACD {0} ", macd)
// log.info("Signal {0} ", signal)
// log.info("Histogram {0} ", hist)
// log.info("Previous Histogram {0} ", hist_prev)

// EMA for Trailing TP
//ema_trailing_tf = ta.ema(close, ema_length)

//ema_trailing = request.security(syminfo.tickerid, ema_tf, ema_trailing_tf)

//log.info("EMA Trailing {0} ", ema_trailing)

// Fibonacci Seviyeleri

high_val_tf = ta.highest(high, fib_lookback)
low_val_tf = ta.lowest(low, fib_lookback)

h1 = request.security(syminfo.tickerid, fib_tf, high_val_tf)
l1 = request.security(syminfo.tickerid, fib_tf, low_val_tf)

fark = h1 - l1

//Low ile fark
hl236 = l1 + fark * 0.236
hl382 = l1 + fark * 0.382
hl500 = l1 + fark * 0.5
hl618 = l1 + fark * 0.618
hl786 = l1 + fark * 0.786
//High ile fark
lh236 = h1 - fark * 0.236
lh382 = h1 - fark * 0.382
lh500 = h1 - fark * 0.5
lh618 = h1 - fark * 0.618
lh786 = h1 - fark * 0.786

hbars_tf = -ta.highestbars(high, fib_lookback)
lbars_tf = -ta.lowestbars(low, fib_lookback)

hbars = request.security(syminfo.tickerid, fib_tf , hbars_tf)
lbars = request.security(syminfo.tickerid, fib_tf , lbars_tf)

fib_236 = hbars > lbars ? hl236 : lh236
fib_382 = hbars > lbars ? hl382 : lh382
fib_500 = hbars > lbars ? hl500 : lh500
fib_618 = hbars > lbars ? hl618 : lh618
fib_786 = hbars > lbars ? hl786 : lh786

// log.info("Fibo 382 {0} ", fib_382)
// log.info("Fibo 618 {0} ", fib_618)

// Keep track of the strategy's highest and lowest net profit
var highestNetProfit = 0.0
var lowestNetProfit  = 0.0

var bool sell_retracing = false
var bool sell_reversing = false
var bool buy_rebound = false
var bool buy_rallying = false

// Satış Koşulları
sell_retracing := (signal > -20) and (macd > -50 and macd < 150) and (macd < signal) and (hist < hist_prev) and (close < fib_382)
sell_reversing := (macd > -150 and macd < -50) and (macd < signal) and (hist < hist_prev) and (close < fib_618)

// log.info("Retracing var mi: {0} ", sell_retracing)
// log.info("Reversing var mi: {0} ", sell_reversing)

// Alım Koşulları
buy_rebound := (signal < 20) and (macd > -150 and macd < 50) and (macd > signal) and (hist > hist_prev) and ((fib_618 < close) or ((fib_618 > close ) and (close > fib_382)))
buy_rallying := (macd > 50 and macd < 150) and (macd > signal) and (hist > hist_prev) and (close > fib_618)

// log.info("Rallying var mi: {0} ", buy_rallying)
// log.info("Rebound var mi: {0} ", buy_rebound)

// Emirleri Yerleştirme
if (sell_retracing == true and strategy.opentrades == 0 )
    strategy.entry("sell_retracing", strategy.short)

if (sell_reversing == true and strategy.opentrades == 0 )
    strategy.entry("sell_reversing", strategy.short)

if (buy_rebound == true and strategy.opentrades == 0 )
    strategy.entry("buy_rebound", strategy.long)

if (buy_rallying == true and strategy.opentrades == 0 )
    strategy.entry("buy_rallying", strategy.long)


// log.info("open order: {0} ", strategy.opentrades )


highestNetProfit := math.max(highestNetProfit, strategy.netprofit)
lowestNetProfit  := math.min(lowestNetProfit, strategy.netprofit)




// Plot the net profit, as well as its highest and lowest value
//plot(strategy.netprofit, style=plot.style_area, title="Net profit",
//     color=strategy.netprofit > 0 ? color.green : color.red)

//plot(highestNetProfit, color=color.green, title="Highest net profit")
//plot(lowestNetProfit, color=color.red, title="Lowest net profit")

// Trailing Take Profit
//long_trailing_stop = ema_trailing * trailing_factor
//short_trailing_stop = ema_trailing / trailing_factor

//log.info("long trailing stop {0} ", long_trailing_stop)
//log.info("short trailing stop {0} ", short_trailing_stop)
//log.info("avg price {0} ", strategy.position_avg_price)
//trail_price1 = strategy.position_avg_price * (1 + trailing_factor)
//trail_price2 = strategy.position_avg_price * (1 - trailing_factor)
// log.info("position_size {0} ", strategy.position_size)

// Trailing Take Profit
var float long_trailing_stop = 0.0
var float short_trailing_stop = 0.0

//if (strategy.position_size > 0)
 //   long_trailing_stop := math.max(long_trailing_stop, close * (1 + trailing_factor))  // Yeni bir maksimum değer belirlendiğinde güncelle
//if (strategy.position_size < 0)
 //  short_trailing_stop := math.min(short_trailing_stop, close * (1 - trailing_factor))  // Yeni bir minimum değer belirlendiğinde güncelle

//log.info("long trailing {0} ", long_trailing_stop)
// log.info("trailing factor{0} ", trailing_factor)
//log.info("short trailing {0} ", short_trailing_stop)

if (strategy.position_size != 0 )
    strategy.exit("Exit Long", from_entry="buy_rebound", trail_points = trailing_profit, trail_offset = trailing_offset, loss = fix_loss)
    strategy.exit("Exit Long", from_entry="buy_rallying", trail_points = trailing_profit, trail_offset = trailing_offset, loss = fix_loss)
    strategy.exit("Exit Short", from_entry="sell_retracing", trail_points = trailing_profit, trail_offset = trailing_offset, loss = fix_loss)
    strategy.exit("Exit Short", from_entry="sell_reversing", trail_points = trailing_profit, trail_offset = trailing_offset, loss = fix_loss)