دوہری حرکت پذیر اوسط کے ساتھ مومنٹم بریک آؤٹ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-06 14:39:22
ٹیگز:

img

جائزہ

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

حکمت عملی میں تین اختیاری اسٹاپ نقصان کے طریقے فراہم کیے گئے ہیں: ٹریلنگ اسٹاپ نقصان ، حرکت پذیر اوسط اسٹاپ اور حرکت پذیر اوسط کراس اوور اسٹاپ۔ دو منافع کے اہداف طے کیے گئے ہیں۔

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

  1. اندراج کا اشارہ
    • 12 دن کے EMA اور 26 دن کے EMA کے درمیان گولڈن کراس
    • ایم اے سی ڈی مثبت ہے اور ایم اے سی ڈی لائن سگنل لائن سے اوپر ہے
    • RSI پہلے سے طے شدہ حد کے اندر
  2. داخلے کی تصدیق
    • اختیاری: متحرک مزاحمت سے اوپر قیمت کا وقفہ
  3. سٹاپ نقصان
    • ٹریلنگ سٹاپ نقصان کی بنیاد پر داخلہ قیمت اور پیش سیٹ فیصد
    • 7 دن کی ایس ایم اے سے نیچے بند
    • 12 دن اور 26 دن کے EMA کے درمیان bearish کراس
  4. منافع حاصل کریں
    • دو مرحلے لے منافع کے اہداف، پہلی ہدف پر جزوی پوزیشن سے باہر نکلیں اور سب کو دوسری پر

فوائد

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

خطرات

  1. مارکیٹ میں اتار چڑھاؤ کے وقت مزید غلط سگنل
  2. مضبوط چلانے کے بعد پیچھے سٹاپ میں داخل کیا جا سکتا ہے
  3. رجحان کی تبدیلی پر بروقت باہر نکلنے میں ناکام

حل:

  1. حقیقی رجحان کا اندازہ کرنے کے لئے MACD کا استعمال کریں
  2. پچھلے فیصد کو ایڈجسٹ کریں
  3. دیگر سٹاپ کے طریقوں کا استعمال کریں یا سٹاپ کو یکجا کریں

بہتری

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

نتیجہ

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


/*backtest
start: 2023-01-30 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © AbdulRahimShama
//@version=5


strategy('12/26-IT strategy', overlay=true,initial_capital = 100000)



Show_Only_12_26_Crossover_Entry = input.bool(true, group = "Entry_Exit Criteria")
Show_12_26_Crossover_and_resistance_Entry = input.bool(false, group = "Entry_Exit Criteria")


Show_TSL_StopLoss = input.bool(true, group = "Entry_Exit Criteria")
Show_Crossdown_StopLoss = input.bool(true, group = "Entry_Exit Criteria")
Show_SMA7_StopLoss = input.bool(false, group = "Entry_Exit Criteria")



////////////////////////////////////////////////
////////////////TARGETS INPUT
////////////////////////////////////////////////

////////Target1

TargetPerc1 = input.float(title="Target (%)", minval=0,defval=5, group="Target-1") / 100
TargetPrice1 = strategy.position_avg_price * (1 + TargetPerc1)
Target1_exit_qty = input.int(50, group="Target-1",tooltip = "% qty to sell when Target1 is reached")



////////Target2

TargetPerc2 = input.float(title="Target (%)", minval=0,defval=10, group="Target-2") / 100
TargetPrice2 = strategy.position_avg_price * (1 + TargetPerc2)
Target2_exit_qty = input.int(100, group="Target-2",tooltip = "% qty to sell when Target2 is reached")



////////////////////////////////////////////////
////////////////TRAILING STOP LOSS
////////////////////////////////////////////////


TSLsource = input(low, title="TSL Source", group="Trailing StopLoss")

longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=1, group="Trailing StopLoss") * 0.01

TrailStopPrice = 0.0

TrailStopPrice := if strategy.position_size > 0
    sPIVOT_highValue = TSLsource * (1 - longTrailPerc)
    math.max(sPIVOT_highValue, TrailStopPrice[1])
else
    0

TSL = close < TrailStopPrice
plot(series=strategy.position_size > 0 and Show_TSL_StopLoss ? TrailStopPrice : na, color=color.new(color.fuchsia, 0), style=plot.style_linebr, linewidth=2, title='Trailing StopLoss')




////////////////////////////////////////////////
////////////////Moving Averages
////////////////////////////////////////////////



EMA_12=ta.ema(close, 12)
EMA_26=ta.ema(close, 26)
EMA_21=ta.ema(close,21)

plot(EMA_12, title="EMA_12", color=color.rgb(0, 255, 0), offset=0, linewidth=1)
plot(EMA_26, title="EMA_26", color=color.rgb(0, 0, 255), offset=0, linewidth=1)
plot(Show_SMA7_StopLoss ? ta.sma(close,7) : na, title="SMA_7", color=color.rgb(255, 0, 0), offset=0, linewidth=1)



////////////////////////////////////////////////
////////////////RESISTANCE INPUT and PLOTTING
////////////////////////////////////////////////

CrossOverLookbackCandles = input.int(10, group= "RESISTANCE")

resistanceSRC = input(high, group= "RESISTANCE")
resistanceLEFT = input(10, group= "RESISTANCE")
resistanceRIGHT = input(10, group= "RESISTANCE")

hih = ta.pivothigh(resistanceSRC, resistanceLEFT, resistanceRIGHT)
top = ta.valuewhen(hih, resistanceSRC[resistanceRIGHT], 0)

res = plot(top, color=top != top[1] ? na : color.new(#00ff00, 50), offset=-resistanceLEFT, linewidth=2, title="Resistance Line")

EMA_12_Low = ta.lowest(EMA_12, CrossOverLookbackCandles)
EMA_26_Low = ta.lowest(EMA_26, CrossOverLookbackCandles)


////////////////////////////////////////////////
////////////////RSI INPUT and PLOTTING
////////////////////////////////////////////////
RSI = ta.rsi(close, 14)
RSILowerRange = input.int(50, tooltip = "RSI value should be ABOVE this value for entry", group = "RSI")
RSIUpperRange = input.int(70, tooltip = "RSI value should be BELOW this value for entry", group = "RSI")



////////////////////////////////////////////////
////////////////MACD
////////////////////////////////////////////////
fast_length = 12
slow_length = 26
MACD_src = close
signal_length = 9

fast_ma = ta.ema(MACD_src, fast_length)
slow_ma = ta.ema(MACD_src, slow_length)
macd = fast_ma - slow_ma
signal = ta.ema(macd, signal_length)
hist = macd - signal



////////////////////////////////////////////////
////////////////ENTRY CRITERIA
////////////////////////////////////////////////


BUYVALUE= input(100000, tooltip = "Buy qty displayed on chart will be based on this value")

BASEENTRY = macd > signal and RSI > RSILowerRange and RSI < RSIUpperRange and close > EMA_21 and close > ta.sma(close, 7)


Entry= ta.crossover(EMA_12, EMA_26) and BASEENTRY
Entry2 = ta.crossover(close, top) and EMA_12_Low < EMA_26_Low and EMA_12 > EMA_26 and RSI < 70

////////////////////////////////////////////////
////////////////BUY SELL STRATEGY
////////////////////////////////////////////////

if ((Entry and Show_Only_12_26_Crossover_Entry))
    strategy.entry("buy", strategy.long, qty=BUYVALUE/close)

if (Entry2 and Show_12_26_Crossover_and_resistance_Entry)
    strategy.entry("buy", strategy.long, qty=BUYVALUE/close)

strategy.exit("Tg1", "buy", limit=TargetPrice1, qty_percent = Target1_exit_qty)
strategy.exit("Tg2", "buy", limit=TargetPrice2, qty_percent = Target2_exit_qty)



if TSL and Show_TSL_StopLoss and close < EMA_12 
    strategy.close_all ("sl")

if ta.crossunder(EMA_12, EMA_26) and Show_Crossdown_StopLoss
    strategy.close_all ("sl")

if ta.crossunder(close, ta.sma(close, 7)) and Show_SMA7_StopLoss
    strategy.close_all ("sl")




مزید