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

مصنف:چاؤ ژانگ، تاریخ: 2023-09-12 15:32:12
ٹیگز:

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

حکمت عملی منطق:

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

  2. سگنل لائن حاصل کرنے کے لئے ایک اور ای ایم اے کا استعمال کرتے ہوئے ایم اے سی ڈی لائن کو ہموار کریں۔

  3. سگنل کے اوپر MACD کراسنگ پر طویل اور نیچے کراسنگ پر مختصر جائیں۔

  4. فی صد سٹاپ نقصان مقرر کریں اور خطرے کے انتظام کے لئے منافع لیں.

فوائد:

  1. واضح رجحان کی نشاندہی کے لیے ایم اے سی ڈی واحد ای ایم اے پر بہتر ہوتا ہے۔

  2. بریکآؤٹ ٹریڈنگ بروقت طریقے سے موڑ کے مقامات کو پکڑتی ہے۔

  3. سٹاپ نقصان / منافع لینے کے طریقہ کار تجارتی خطرات کو کنٹرول کرنے میں مدد کرتے ہیں۔

خطرات:

  1. ایم اے سی ڈی صفر لائن کے قریب مزید جھوٹے بریک آؤٹ۔

  2. مختلف تجارتی آلات کے لئے پیرامیٹرز کی ترتیب کی ضرورت ہے۔

  3. رجحان ٹریڈنگ واقعات کے خطرات کا شکار ہے، جس میں رکنے کی ضرورت ہوتی ہے.

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


/*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) 




مزید