وسائل لوڈ ہو رہے ہیں... لوڈنگ...

MACD+EMA کثیر ٹائم فریم بریک آؤٹ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-03-22 11:13:12
ٹیگز:

img

جائزہ

یہ حکمت عملی MACD اشارے اور متعدد EMA لائنوں کو یکجا کرتی ہے تاکہ دو ٹائم فریموں - ہفتہ وار اور انٹرا ڈے سے مضبوط مارکیٹ کے رجحانات کو حاصل کیا جاسکے۔ یہ مجموعی رجحان کی سمت کا تعین کرنے کے لئے ہفتہ وار چارٹ پر MACD اشارے کا استعمال کرتا ہے ، اور رجحان کی تصدیق اور بریک آؤٹ پوائنٹس پر تجارت کرنے کے لئے انٹرا ڈے چارٹ پر تین EMA لائنیں (5 دن ، 15 دن ، 30 دن) استعمال کرتا ہے۔ بنیادی خیال یہ ہے کہ مضبوط رجحانات کی پیروی کریں اور بڑی لہروں پر سوار ہوں ، جب قلیل مدتی EMA طویل مدتی EMA سے اوپر ٹوٹ جاتا ہے تو تجارت میں داخل ہوں ، اور جب EMAs واپس کھینچیں یا اسٹاپ نقصان کی شرائط کو متحرک کیا جائے تو باہر نکلیں۔

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

  1. ہفتہ وار ایم اے سی ڈی مجموعی رجحان کا تعین کرتا ہے۔ ہفتہ وار ایم اے سی ڈی اشارے کا حساب لگائیں اور موجودہ ہفتوں اور پچھلے ہفتوں کے ایم اے سی ڈی ہسٹوگرام اقدار کے مابین فرق کا موازنہ کریں۔ ایک مثبت فرق ایک اپ ٹرینڈ کی نشاندہی کرتا ہے ، جبکہ منفی فرق ایک ڈاؤن ٹرینڈ کی نشاندہی کرتا ہے۔ ہر پیر کو مارکیٹ کھولنے پر رجحان کی سمت کو اپ ڈیٹ کریں۔

  2. متعدد ای ایم اے لائنز رجحان کی تصدیق کرتی ہیں۔ 5 دن ، 15 دن اور 30 دن کی ای ایم اے لائنز کو انٹرا ڈے چارٹ پر پلاٹ کریں۔ جب قلیل مدتی ای ایم اے طویل مدتی ای ایم اے سے اوپر اور دور چلتی ہے تو ، رجحان اوپر ہے؛ اس کے برعکس ، رجحان نیچے ہے۔

  3. ای ایم اے کراسنگ پوائنٹس پر تجارت:

    • لانگ انٹری: جب ہفتہ وار ایم اے سی ڈی رجحان اوپر ہے اور انٹرا ڈے بند 15 دن کے ای ایم اے سے اوپر عبور کرتا ہے تو ، طویل ہوجائیں۔ داخلے کی قیمت سے نیچے ایک مقررہ نکات پر اسٹاپ نقصان مقرر کریں ، یا جب 5 دن کا ای ایم اے 15 دن کے ای ایم اے سے نیچے عبور کرتا ہے تو باہر نکلیں۔
    • مختصر اندراج: جب ہفتہ وار ایم اے سی ڈی رجحان نیچے ہے اور 5 دن کا ای ایم اے 30 دن کے ای ایم اے سے نیچے عبور کرتا ہے تو ، مختصر ہوجائیں۔ اندراج کی قیمت سے اوپر ایک مقررہ نکات پر اسٹاپ نقصان مقرر کریں ، یا جب 5 دن کا ای ایم اے 15 دن کے ای ایم اے سے اوپر عبور کرتا ہے تو باہر نکلیں۔
  4. پوزیشنوں کا اضافہ: ابھی تک داخلے کی کوئی اضافی شرائط مقرر نہیں کی گئی ہیں۔

فوائد کا تجزیہ

  1. دو ٹائم فریموں کو یکجا کرنے سے رجحان کا تعین زیادہ قابل اعتماد ہوتا ہے۔ ہفتہ وار ایم اے سی ڈی رینج سے منسلک مارکیٹوں میں پھنسنے سے بچتا ہے ، جبکہ انٹرا ڈے ای ایم اے کراس اوورز رجحان کے اندر ہر لہر کو پکڑتے ہیں۔

  2. انٹرا ڈے چارٹ پر 5/15/30 دن کے EMA کا انتخاب مؤثر طریقے سے شور کو فلٹر کرتا ہے اور واضح رجحانات کو پکڑتا ہے۔

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

  4. ماڈیولر کوڈ ڈیزائن، جیسے MACD اور EMA حساب کے اہم اجزاء کے ساتھ، انتہائی دوبارہ استعمال اور توسیع پذیر ہے.

خطرے کا تجزیہ

  1. ایم اے سی ڈی ہسٹوگرام فرق کی حد کا غلط انتخاب بہت زیادہ لچکدار یا سخت رجحان کے معیار کا باعث بن سکتا ہے ، جس سے غلط فیصلے ہوسکتے ہیں۔ بیک ٹیسٹنگ اور پیرامیٹر کی اصلاح سے زیادہ سے زیادہ حد کا انتخاب کرنے میں مدد مل سکتی ہے۔

  2. انٹرا ڈے ای ایم اے پیرامیٹرز کا غلط انتخاب - بہت مختصر ہونے سے اوور ٹریڈنگ ہوسکتی ہے ، جبکہ بہت طویل ہونے سے مواقع ضائع ہوسکتے ہیں۔ بیک ٹیسٹنگ اور پیرامیٹر کی اصلاح سے پیرامیٹرز کے بہترین امتزاج کا انتخاب کرنے میں مدد مل سکتی ہے۔

  3. غلط فکسڈ اسٹاپ نقصان پوائنٹس - اسے بہت تنگ ترتیب دینے سے کثرت سے اسٹاپ آؤٹ ہوسکتے ہیں ، جبکہ بہت وسیع تجارت کے مطابق زیادہ نقصانات کا باعث بن سکتا ہے۔ ہر آلہ کی اتار چڑھاؤ کی خصوصیات کی بنیاد پر اپنی مرضی کے مطابق اسٹاپ نقصان مدد کرسکتا ہے۔

  4. ای ایم اے رجحان کے موڑ کے مقامات پر پیچھے رہ سکتے ہیں ، ممکنہ طور پر بہترین انٹری / آؤٹ پوائنٹس سے محروم رہ سکتے ہیں۔ لیکن طویل مدتی میں ، یہ اب بھی خطرات کو مؤثر طریقے سے کنٹرول کرسکتا ہے اور اچھی مجموعی کارکردگی کا مظاہرہ کرسکتا ہے۔

اصلاح کی ہدایات

  1. ہفتہ وار MACD کے اوپر RSI جیسے دیگر اشارے شامل کرنے پر غور کریں تاکہ رجحان کی طاقت کی تصدیق اور درستگی کو بہتر بنایا جاسکے۔

  2. تجارت کی تعدد اور خطرے کو کم کرنے کے لئے دن کے اندر EMA کراس اوور سگنلز کے لئے اضافی فلٹرز کے طور پر CCI جیسے دیگر اشارے شامل کرنے پر غور کریں۔

  3. ہر اسٹاک کی تاریخی اتار چڑھاؤ کی بنیاد پر اپنی مرضی کے مطابق سٹاپ نقصان پوائنٹس مقرر کریں تاکہ اس کی خصوصیات کو بہتر طور پر پورا کیا جاسکے۔

  4. پوزیشنوں میں داخل ہونے اور باہر جانے کے لئے حکمت عملی کے قواعد شامل کرنے پر غور کریں - دارالحکومت کی کارکردگی کو بہتر بنانے کے لئے مضبوط رجحانات پر آہستہ آہستہ اضافہ اور کمزور رجحانات کو کم کرنا.

خلاصہ

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


/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


// 1) 전주와 전전주의 히스토그램의 차이를 계산하여, 매주 월요일에 매매 방향을 표시하고, 
// 2) 5일, 15일, 30일 선을 호출하여 평행하게 그리고, 매매 방향에 따라 
// 3) 분봉기준의 이동평균선 매매전략  
// 4) 수익 실현은 미설정 해둠 


//@version=5
strategy('Last week MACD+ 15day, 30day break through, by Ho.J', overlay=true, initial_capital=30000, commission_value = 7.5, commission_type=strategy.commission.cash_per_order, slippage = 0)

// 백테스팅 기간 설정
start_time = input(timestamp("Jan 19 2024 00:00:01"), confirm = true)
end_time = input(timestamp("MAR 19 2024 23:59:59"), confirm = true)
is_in_time = true
stopLoss = input.int(100, title="손절 수준")


// 지난주 값 불러오기 입력 매개변수, 1은 5일, 3은 15일, 6은 30일 이동평균선을 구하는 변수임
emaLength1 = input(1, title="EMA Length")
emaLength2 = input(3, title="EMA Length")
emaLength3 = input(6, title="EMA Length")
timeframePeriod = "W" // 'D'는 일간 데이터를 의미


// 분봉기준 EMA 계산
shortEMA = ta.ema(close, 50)
mediumEMA = ta.ema(close, 60)
longEMA = ta.ema(close, 150)


// 분봉기준 EMA 그리기
plot(shortEMA, color=color.blue, title="5일 EMA")
plot(mediumEMA, color=color.orange, title="15일 EMA")
plot(longEMA, color=color.red, title="30일 EMA")



// 주간 MACD 계산, 전주와 전전주 히스토그램을 계산하여 상대적인 상승, 하락을 계산 
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
histogram = macdLine - signalLine
histLastWeek = request.security(syminfo.tickerid, timeframePeriod, histogram[1], lookahead=barmerge.lookahead_on)
histWeekBeforeLast = request.security(syminfo.tickerid, timeframePeriod, histogram[2], lookahead=barmerge.lookahead_on)
histDiff = histLastWeek - histWeekBeforeLast


// 현재 주의 월요일 첫 봉인지 확인
isMondayFirstBar = (dayofweek == dayofweek.monday) and (hour == 09) and (minute == 00) // 여기서 시간은 시장 개장 시간에 따라 조정해야 함


// 월요일 첫봉에, 주간 MACD 히스토그램이 상승하면 '매수', 하락하면 '매도' 표시
var label myLabel = na
if (isMondayFirstBar)
    if (histDiff > 0)
        myLabel := label.new(bar_index, high, "이번주는 매수만", color=color.green, textcolor=color.white, style=label.style_label_down, size=size.large)
    else if (histDiff < 0)
        myLabel := label.new(bar_index, low, "이번주는 매도만", color=color.red, textcolor=color.white, style=label.style_label_up, size=size.large)


// 지난주 EMA 값 요청
// 'lookahead'를 사용하여 지난 데이터를 기준으로 계산
lastWeekEMA1 = request.security(syminfo.tickerid, timeframePeriod, ta.ema(close[1], emaLength1), lookahead=barmerge.lookahead_on)
lastWeekEMA2 = request.security(syminfo.tickerid, timeframePeriod, ta.ema(close[1], emaLength2), lookahead=barmerge.lookahead_on)
lastWeekEMA3 = request.security(syminfo.tickerid, timeframePeriod, ta.ema(close[1], emaLength3), lookahead=barmerge.lookahead_on)

// 지난주 EMA 그리기
plot(lastWeekEMA1, color=color.red, title="Last Week EMA1")
plot(lastWeekEMA2, color=color.rgb(157, 126, 126), title="Last Week EMA2")
plot(lastWeekEMA3, color=color.rgb(199, 192, 192), title="Last Week EMA3")


// 매수/매도 조건
buySignal = ta.crossover(close, lastWeekEMA2) and histDiff > 0
// addbuySignal = ta.crossover(close, lastWeekEMA3) and histDiff > 0

sellSignal = ta.crossunder(shortEMA, longEMA) and histDiff < 0
// addSellSignal = ta.crossunder(close, lastWeekEMA3) and histDiff < 0


// 매수 조건
if (buySignal)
    strategy.entry('Buy', strategy.long)
    alert('Buy Signal', alert.freq_once_per_bar_close)
	
// if (addbuySignal)
   // strategy.entry('Buy', strategy.long)
   // alert('add Buy Signal', alert.freq_once_per_bar_close)

if (strategy.position_size > 0 and ((strategy.position_avg_price - close) >= stopLoss) or ta.crossunder(close, mediumEMA))
    strategy.close('Buy')
    alert('Close Buy Signal', alert.freq_once_per_bar_close)

// 매도 조건
if (sellSignal)
    strategy.entry('Sell', strategy.short)
    alert('Sell Signal', alert.freq_once_per_bar_close)
	
//if (addSellSignal)
   // strategy.entry('Sell', strategy.short)
   // alert('add Sell Signal', alert.freq_once_per_bar_close)

if (strategy.position_size < 0 and ((close - strategy.position_avg_price) >= stopLoss) or ta.crossover(shortEMA, mediumEMA))
    strategy.close('Sell')
    alert('Close Sell Signal', alert.freq_once_per_bar_close)

مزید