دوہری حرکت پذیر اوسط اور MACD مجموعہ قلیل مدتی تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-09 16:47:42
ٹیگز:

جائزہ

یہ حکمت عملی دوہری چلتی اوسط، اسٹوکاسٹک اشارے اور MACD کو یکجا کرتی ہے تاکہ قلیل مدتی تجارتی مواقع کی نشاندہی کی جاسکے، جو کہ ایک نسبتا کلاسیکی قلیل مدتی تجارتی حکمت عملی ہے۔

اصول

یہ حکمت عملی بنیادی طور پر مندرجہ ذیل اصولوں پر مبنی ہے:

  1. رجحان کی سمت کا تعین کرنے کے لئے 50 پیریڈ اور 100 پیریڈ ای ایم اے کا استعمال کریں۔ مختصر مدت کے ساتھ ای ایم اے قیمت کی تبدیلیوں پر تیزی سے ردعمل ظاہر کرسکتا ہے۔ 100 پیریڈ ای ایم اے کے اوپر 50 پیریڈ ای ایم اے کا عبور طویل پوزیشن کے قیام کی نمائندگی کرتا ہے؛ نیچے عبور کرنا مختصر پوزیشن کے قیام کی نمائندگی کرتا ہے۔

  2. داخلہ اور باہر نکلنے کے نکات کا تعین کرنے کے لئے ایم اے سی ڈی کے درمیان فرق کا استعمال کریں۔ جب فرق 0 سے اوپر جاتا ہے تو ، یہ بیل پاور کی مضبوطی کو ظاہر کرتا ہے اور طویل اندراج کی طرف جاتا ہے۔ جب یہ 0 سے نیچے جاتا ہے تو ، یہ ریچھ کی طاقت کی مضبوطی کو ظاہر کرتا ہے اور مختصر اندراج کی طرف جاتا ہے۔

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

  4. داخلہ کی سمت کا تعین کرنے کے بعد، اگر آخری 5 شمعدانوں میں سے 4 کی بندش کی قیمتیں حرکت پذیر اوسط کو چھو رہی ہیں، تو یہ ظاہر کرتا ہے کہ حرکت پذیر اوسط کے ارد گرد معاونت / مزاحمت موجود ہے، اور پوزیشنیں کھولی جاسکتی ہیں۔

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

فوائد

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

  1. متعدد اشارے کا امتزاج جیت کی شرح کو بہتر بناتا ہے ، جو چلتی اوسط ، زیادہ خریدنے / زیادہ فروخت کرنے والے اشارے اور رفتار کے اشارے کو ایک ساتھ استعمال کرتا ہے۔

  2. مختصر مدت کے چلتے ہوئے اوسط تیزی سے رجحان اور الٹ کو پکڑ سکتے ہیں۔ MACD پیرامیٹرز کو درست انٹری سگنل پیدا کرنے کے لئے بہتر بنایا گیا ہے۔

  3. اسٹوکاسٹک آر ایس آئی پیرامیٹرز کو زیادہ سے زیادہ خرید / فروخت کی حالتوں کو اچھی طرح سے شناخت کرنے کے لئے بہتر بنایا گیا ہے.

  4. ٹائمنگ کنٹرول کے لئے چلتی اوسط کے ارد گرد سپورٹ / مزاحمت کا استعمال کرتے ہوئے جعلی بریک آؤٹ کی طرف سے پھنس جانے سے بچتا ہے.

  5. معقول سٹاپ نقصان اور منافع لے مؤثر طریقے سے ہر تجارت کے لئے خطرات کو کنٹرول.

خطرات

اس حکمت عملی کے کچھ خطرات بھی ہیں:

  1. جعلی فرار کے باعث ہونے والے نقصانات سے مکمل طور پر بچنے میں ناکام۔

  2. اشارے کے مابین اختلافات ہوسکتے ہیں ، جس سے تجارتی سگنل متضاد ہوجاتے ہیں۔

  3. فکسڈ سٹاپ نقصان اور منافع لینے سے مارکیٹ میں ہونے والی تبدیلیوں میں تبدیلی نہیں آسکتی ہے۔

  4. بہت سے پیرامیٹرز کے ساتھ پیچیدہ کوڈ کو بہتر بنانا مشکل ہے۔

حل یہ ہیں:

  1. سگنل کے معیار کو بہتر بنانے اور جعلی بریک آؤٹ کے امکانات کو کم کرنے کے لئے پیرامیٹرز کو بہتر بنائیں.

  2. تنازعات سے بچنے کے لئے اشارے کے درمیان ترجیحات کا تعین کریں۔

  3. متحرک سٹاپ نقصان کو اپنائیں اور اے ٹی آر رینج کی بنیاد پر منافع لیں.

  4. منطق کو آسان بنائیں اور جانچ اور اصلاح کے لئے بنیادی پیرامیٹرز نکالیں۔

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

حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:

  1. ٹیسٹ کریں اور دورانیہ اور MACD پیرامیٹرز کے متحرک اوسط کے بہترین مجموعے تلاش کریں.

  2. اسٹوکاسٹک آر ایس آئی کو تبدیل کرنے کے لئے مختلف oversold/oversold اشارے کی جانچ کریں۔

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

  4. سگنل کے معیار کو بہتر بنانے کے لیے فلٹرنگ کی شرائط شامل کریں جیسے حجم میں اضافہ۔

  5. رجحان کا تعین کرنے کے لئے مزید اشارے کا استعمال کرتے ہوئے غیر موثر بریک آؤٹ سے بچنے کے لئے انٹری منطق کو بہتر بنائیں۔

  6. اسٹاپ نقصان کی حد مقرر کریں اکاؤنٹ کے سائز کے مطابق، مجموعی خطرات کو کنٹرول کرنے کے لئے فی دن تجارت کی تعداد.

خلاصہ

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


/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="Forex scalper 2xEMA + SRSI + MACD", shorttitle="Forex scalper 5-15min", overlay=true)
src = input(title="Source", type=input.source, defval=close)

src_0 = src[0]
src_1 = src[1]
src_2 = src[2]
src_3 = src[3]
src_4 = src[4]

len50 = input(50, minval=1, title="Length")
src50 = input(close, title="Source")
out50 = ema(src50, len50)
len100 = input(100)
src100 = input(close, title="Source")
out100 = ema(src100, len100)

len1 = input(1, minval=1, title="Length")
src1 = input(close, title="Source")
out1 = sma(src1, len1)

length = input(4, minval=1)
OverBought = input(80)
OverSold = input(20)
smoothK = 3
smoothD = 3

k = sma(stoch(close, high, low, length), smoothK)
d = sma(k, smoothD)
cu = crossover(k,OverSold)
co = crossunder(k,OverBought)

sma_down = crossunder(out1, out50)
sma_up = crossover(out1,out50)

//if (not na(k) and not na(d))
  //  if (co and k < OverSold)
    //    strategy.entry("StochLE", strategy.long, comment="StochLE")
    //if (cu and k > OverBought)
     //   strategy.entry("StochSE", strategy.short, comment="StochSE")

crossCandle_4 = crossover(src[4],out50)
crossCandleUnder_4= cross(src[4],out50)
crossCandle_3 = crossover(src[3],out50)
crossCandleUnder_3= crossunder(src[3],out50)
crossCandle_2 = crossover(src[2],out50)
crossCandleUnder_2= crossunder(src[2],out50)
crossCandle_1 = crossover(src[1],out50)
crossCandleUnder_1= crossunder(src[1],out50)
crossCandle_0 = crossover(src[0],out50)
crossCandleUnder_0= crossunder(src[0],out50)

conditionOver = (crossCandle_4 or crossCandle_3 or crossCandle_2 or crossCandle_1 or crossCandle_0)
conditionUnder =(crossCandleUnder_4 or crossCandleUnder_3 or crossCandleUnder_2 or crossCandleUnder_1 or crossCandleUnder_0)

touch4 = (cross(low[4],out50) or cross(high[4],out50))
touch3 = (cross(low[3],out50) or cross(high[3],out50))
touch2 = (cross(low[2],out50) or cross(high[2],out50))
touch1 = (cross(low[1],out50) or cross(high[1],out50))

touch = touch1 or touch2 or touch3 or touch4

//and sma_up
//and sma_down

// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src_macd = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 10)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src_macd, fast_length) : ema(src_macd, fast_length)
slow_ma = sma_source ? sma(src_macd, slow_length) : ema(src_macd, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

//plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
//plot(macd, title="MACD", color=col_macd, transp=0)
//plot(signal, title="Signal", color=col_signal, transp=0)


// plot((conditionOver or conditionUnder or touch)  and src[0] >= out50 and close >= out50 and  (cu) and out50 > out100 and hist>=0 , title="Buy", style=columns, color=lime)
// plot((conditionOver or conditionUnder or touch)  and src[0] <= out50 and close <= out50 and  (co) and out50< out100 and hist<=0 , title="sell", style=columns, color=red)


long_cond = ((conditionOver or conditionUnder or touch)  and src[0] >= out50 and close > out50 and  (cu) and out50 > out100 and hist>=0)
short_cond = ((conditionOver or conditionUnder or touch)  and src[0] <= out50 and close < out50 and  (co) and out50< out100 and hist<=0)

tp=input(200)
sl=input(200)

strategy.entry("long",strategy.long, when=long_cond)
strategy.entry("short",strategy.short, when=short_cond)

strategy.exit("X_long", "long", profit=tp,  loss=sl, when=touch  )
strategy.exit("x_short", "short",profit=tp, loss=sl,when = touch )

مزید