MACD اشارے بریک آؤٹ ٹریڈنگ کی حکمت عملی


تخلیق کی تاریخ: 2023-09-12 15:32:12 آخر میں ترمیم کریں: 2023-09-12 15:32:12
کاپی: 1 کلکس کی تعداد: 789
1
پر توجہ دیں
1617
پیروکار

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

حکمت عملی:

  1. ایک MACD وکر کی تشکیل کے لئے ایک تیز رفتار EMA اور ایک سست رفتار EMA کا حساب لگائیں۔

  2. MACD وکر پر EMA ہموار کریں اور MACD سگنل لائن حاصل کریں۔

  3. جب MACD اوپر سگنل لائن کو پار کرتے وقت زیادہ کام کرتا ہے ، نیچے سگنل لائن کو پار کرتے وقت خالی کریں۔

  4. خطرے کے انتظام کے لئے 100٪ سٹاپ نقصان کی حد مقرر کریں.

اس حکمت عملی کے فوائد:

  1. MACD اشارے ایک واحد EMA سے بہتر ہے ، جس سے رجحانات کا زیادہ واضح اندازہ لگایا جاسکتا ہے۔

  2. ٹرانزیکشن کے طریقوں کو توڑنے کے لئے وقت پر تبادلوں کے مواقع کو پکڑنے کے لئے.

  3. نقصان کی روک تھام کا طریقہ کار تجارت کے خطرے کو کنٹرول کرنے میں مدد کرتا ہے۔

اس حکمت عملی کے خطرات:

  1. MACD منحنی خطوط کے صفر کے محور کے قریب زیادہ سے زیادہ جھوٹے بریک سگنل ہوسکتے ہیں۔

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

  3. رجحان ٹریڈنگ میں اچانک واقعات کا سامنا کرنا پڑتا ہے ، اور آپ کو روکنے کی ضرورت ہے۔

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

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

//@version=3 
strategy("uray MACD", overlay=false, pyramiding = 0, calc_on_every_tick=true, precision=2, currency="USD", default_qty_value=10, default_qty_type=strategy.cash,initial_capital=100,commission_type=strategy.commission.percent,commission_value=0.1) 

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 6, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 6, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
inTimeframe()  => true


isPosLong    = strategy.position_size > 0
isPosShort   = strategy.position_size < 0
isNoMarginPos= strategy.position_size == 0

fastLength    = input(12, minval = 1, title = "MACD fast")
slowlength    = input(26, minval = 1, title = "MACD slow")
MACDLength    = input( 9, minval = 1, title = "MACD length")
stopLoss      = input( 10, minval = 1, title = "Stop Loss (price %)", type=float)
takeProfit    = input( 50, minval = 1, title = "Take Profit (price %)", type=float)
src           = close   // Source of Calculations (Close of Bar)

MACD  = ta.ema(src, fastLength) - ta.ema(src, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD
stopLossValue      = close*(stopLoss/100)/syminfo.mintick
takeProfitValue    = close*(takeProfit/100)/syminfo.mintick
switchLongTrigger  = ta.crossover(delta, 0)
switchShortTrigger = ta.crossunder(delta, 0)
closeLongTrigger   = ta.crossunder(delta, 0)
closeShortTrigger  = ta.crossover(delta, 0)
entryLongTrigger   = ta.crossover(delta, 0)
entryShortTrigger  = ta.crossunder(delta, 0)

// if inTimeframe()
//     if isNoMarginPos
//         if entryLongTrigger
//             strategy.entry("Long", strategy.long,  comment="Entry Long")
//             strategy.exit("Stop (long SL/TP)", loss=stopLossValue, profit=takeProfitValue)   
//         if entryShortTrigger
//             strategy.entry("Short", strategy.short, comment="Entry Short")  
//             strategy.exit("Stop (short SL/TP)", loss=stopLossValue, profit=takeProfitValue)   
//     if isPosShort
//         if switchLongTrigger
//             strategy.close_all()    
//             strategy.entry("Long", strategy.long, comment="switch Long")
//             strategy.exit("Stop (long SL/TP)", loss=stopLossValue, profit=takeProfitValue)   
//         if closeLongTrigger
//             strategy.close_all()    
//     if isPosLong 
//         if switchShortTrigger
//             strategy.close_all()   
//             strategy.entry("Short", strategy.short, comment="switch Short")
//             strategy.exit("Stop (short SL/TP)", loss=stopLossValue, profit=takeProfitValue) 
//         if closeShortTrigger
//             strategy.close_all()   

if inTimeframe()
    strategy.entry("Long", strategy.long,  comment="Entry Long", when=entryLongTrigger)
    strategy.close("Long", when=entryShortTrigger)
    strategy.entry("Short", strategy.short,  comment="Entry Short", when=entryShortTrigger)
    strategy.close("Short", when=entryLongTrigger)
    strategy.exit("Stop (short SL/TP)", loss=stopLossValue, profit=takeProfitValue, when=entryShortTrigger) 
    strategy.exit("Stop (long SL/TP)", loss=stopLossValue, profit=takeProfitValue, when=entryLongTrigger)