ڈبل EMA گولڈن کراس Oscillation ٹریکنگ کی حکمت عملی


تخلیق کی تاریخ: 2024-01-03 11:38:51 آخر میں ترمیم کریں: 2024-01-03 11:38:51
کاپی: 0 کلکس کی تعداد: 591
1
پر توجہ دیں
1621
پیروکار

ڈبل EMA گولڈن کراس Oscillation ٹریکنگ کی حکمت عملی

جائزہ

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

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

اس حکمت عملی میں 20 سائیکل ای ایم اے کا استعمال کیا گیا ہے۔ جب قیمت ای ایم اے سے اوپر جاتی ہے تو ، یہ سمجھا جاتا ہے کہ قیمت بڑھنے لگی ہے۔ جب قیمت ای ایم اے سے نیچے جاتی ہے تو ، یہ سمجھا جاتا ہے کہ قیمت گرنے لگی ہے۔

جب قیمت پر ای ایم اے پہننے کے لئے ، 20 دور highest کی اعلی ترین قیمت کو روکنے کے لئے ، قیمت پر ای ایم اے پہننے کے بعد کم سے کم قیمت کو روکنے کے لئے ، زیادہ داخلے پر عمل کریں۔ جب قیمت پر ای ایم اے پہننے کے لئے ، 20 دور lowest کی کم سے کم قیمت کو روکنے کے لئے ، قیمت پر ای ایم اے پہننے کے بعد اعلی ترین قیمت کو روکنے کے لئے ، خالی داخلے پر عمل کریں۔

اس کے علاوہ ، حکمت عملی یہ بھی فیصلہ کرتی ہے کہ آیا ADX 30 سے زیادہ ہے۔ صرف اس وقت تجارت کی جائے گی جب رجحان کافی واضح ہو ، یعنی ADX 30 سے زیادہ ہو۔ اس سے زلزلے کی صورتحال میں اسٹاپ نقصان سے بچا جاسکتا ہے۔

ٹریل اسٹاپ مارکیٹ کے حقیقی وقت کے حالات کے مطابق ایڈجسٹ ہوتا ہے تاکہ زیادہ منافع کو لاک کیا جاسکے۔

طاقت کا تجزیہ

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

ای ایم اے کا اطلاق حکمت عملی کے پیرامیٹرز کو بھی کم کرتا ہے ، جس سے زیادہ سے زیادہ اصلاح کا خطرہ کم ہوجاتا ہے ، اور اس طرح حکمت عملی کی استحکام کو یقینی بنایا جاتا ہے۔

خطرے کا تجزیہ

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

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

اصلاح کی سمت

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

  1. ای ایم اے کی مدت کا انتخاب۔ آپ ای ایم اے کی مدت کے زیادہ پیرامیٹرز کی جانچ کر سکتے ہیں تاکہ پیرامیٹرز کا بہترین مجموعہ تلاش کیا جاسکے۔

  2. ADX کے پیرامیٹرز کو بہتر بنایا جاسکتا ہے۔ ADX کے دورانیے اور ADX کی thresholds مختلف ترتیبات کی کوشش کر سکتے ہیں۔

  3. اسٹاپ اسٹاپ نقصان کے الگورتھم کو بہتر بنایا جاسکتا ہے ، جیسے متحرک اسٹاپ اسٹاپ نقصان متعارف کرانا۔

  4. دیگر اشارے کے ساتھ مجموعہ پر غور کیا جاسکتا ہے ، جیسے KDJ ، MACD ، وغیرہ ، ایک کثیر اشارے کی توثیق کی حکمت عملی تشکیل دینے کے لئے۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Linda Raschke's Holy Grail", shorttitle="RHG", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true)
adxlen = input(14, title="ADX period")
adxMin = input(30)
dilen = adxlen
f_highest(_src, _length)=>
    _adjusted_length = _length < 1 ? 1 : _length
    _value = _src
    for _i = 0 to (_adjusted_length-1)
        _value := _src[_i] >= _value ? _src[_i] : _value
    _return = _value

f_lowest(_src, _length)=>
    _adjusted_length = _length < 1 ? 1 : _length
    _value = _src
    for _i = 0 to (_adjusted_length-1)
        _value := _src[_i] <= _value ? _src[_i] : _value
    _return = _value

dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)

emaLength = input(20)
curEma = ema(close, emaLength)
highPeriod = input(20)
d = na

takeProfitLong = highest(high, highPeriod) 
stopLossLong = f_lowest(low, barssince(low >= curEma))

if strategy.position_size == 0
    if adx(dilen, adxlen) <= adxMin or high < curEma 
        strategy.cancel("Long")
    if adx(dilen, adxlen) > adxMin and low < curEma and high > curEma and curEma > curEma[highPeriod / 2] and curEma > curEma[highPeriod] and takeProfitLong > high
        strategy.order("Long", strategy.long, stop = high)
        strategy.exit("Exit", "Long", limit = takeProfitLong, stop = stopLossLong)
        d := high

takeProfitShort = lowest(low, highPeriod) 
stopLossShort = f_highest(high, barssince(high <= curEma))

if strategy.position_size == 0
    if adx(dilen, adxlen) <= adxMin or low > curEma 
        strategy.cancel("Short")
    if adx(dilen, adxlen) > adxMin and high > curEma and low < curEma and curEma < curEma[highPeriod / 2] and curEma < curEma[highPeriod] and takeProfitShort < low
        strategy.order("Short", strategy.short, stop = low)
        strategy.exit("Exit", "Short", limit = takeProfitShort, stop = stopLossShort)
        d := low


strategy.close("Exit")

plot(d == high ? stopLossLong : d == low ? stopLossShort : na, style = circles, linewidth = 4, color = red)
plot(d == high ? takeProfitLong : d == low ? takeProfitShort : na, style = circles, linewidth = 4, color = green)
plot(d, style = circles, linewidth = 4, color = yellow)
plot(curEma, color = black, linewidth = 2)  

// === Backtesting Dates ===
testPeriodSwitch = input(false, "Custom Backtesting Dates")
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(3, "Backtest Start Month")
testStartDay = input(6, "Backtest Start Day")
testStartHour = input(08, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0)
testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(14, "Backtest Stop Day")
testStopHour = input(14, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStopHour,0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
isPeriod = testPeriodSwitch == true ? testPeriod() : true
// === /END
if not isPeriod
    strategy.cancel_all()
    strategy.close_all()