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

مصنف:چاؤ ژانگ، تاریخ: 2023-11-03 16:51:18
ٹیگز:

img

جائزہ

یہ حکمت عملی تجارتی سگنل پیدا کرنے کے لئے 2 اشارے استعمال کرتی ہے: 2/20 تیزی سے چلنے والی اوسط اور اوسط حقیقی رینج الٹ۔ اس میں رجحان کی پیروی اور قلیل مدتی الٹ کے نظریات کو جوڑتا ہے ، جس کا مقصد الٹ کے مواقع کو حاصل کرنا ہے۔

اصول

اسٹریٹیجی میں 2 حصے ہیں:

  1. 2/20 ایکسپونینشل موونگ ایوریج۔ یہ 20 دن کے ای ایم اے کا حساب لگاتا ہے اور جب قیمت ای ایم اے کو اوپر یا نیچے عبور کرتی ہے تو سگنل تیار کرتا ہے۔

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

یہ حکمت عملی دونوں سے سگنل کو جوڑتی ہے۔ یہ مختصر ہوجاتا ہے جب 2/20 ای ایم اے طویل سگنل دیتا ہے جبکہ اے ٹی آر الٹ مختصر سگنل دیتا ہے۔ یہ لمبا ہوجاتا ہے جب مخالف سگنل پیدا ہوتے ہیں۔

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

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

  1. 2/20 EMA درمیانی مدت کے رجحان کی نشاندہی کرتا ہے، مارکیٹ شور سے بچتا ہے.

  2. اے ٹی آر ریورس مختصر مدت کے ریورسز اور مواقع کو پکڑتا ہے.

  3. سگنلز کو یکجا کرنے سے رجحان کی تبدیلی کو وقت سے پہلے پکڑ لیا جاتا ہے اور منافع میں اضافہ ہوتا ہے۔

  4. معقول اے ٹی آر سٹاپ نقصان ایک خاص خطرہ کنٹرول فراہم کرتا ہے.

  5. اپنی مرضی کے مطابق ATR ضارب مختلف مصنوعات کے مطابق ڈھال لیتا ہے.

  6. واپسی کا اختیار مختلف مارکیٹ کے ماحول کے مطابق ہوتا ہے۔

خطرے کا تجزیہ

خطرات یہ ہیں:

  1. 2/20 EMA سست ہے اور قلیل مدتی مواقع کو یاد کر سکتا ہے۔

  2. اے ٹی آر سٹاپ نقصان آسانی سے داخل کیا جا سکتا ہے. وسیع سٹاپ نقصان کی ضرورت ہے.

  3. واحد اشارے کا اشارہ ناقابل اعتماد ہے۔ مزید فلٹرز کی ضرورت ہے۔

  4. زیادہ تجارت سے بچو.

  5. پیرامیٹر ٹیوننگ اور بیک ٹیسٹ کی ضرورت ہوتی ہے تاکہ مصنوعات کو فٹ کیا جاسکے۔

  6. ہر تجارت کے خطرے پر قابو پانے کے لئے سخت سرمائے کے انتظام کی ضرورت ہے۔

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

حکمت عملی کو بہتر بنایا جا سکتا ہے:

  1. بہترین مجموعہ کے لئے EMA پیرامیٹرز کو ایڈجسٹ.

  2. بہتر سٹاپ نقصان کے لئے ATR ضارب کو بہتر بنانا.

  3. فلٹر کی شرائط شامل کرنا جیسے حجم اور اتار چڑھاؤ۔

  4. متحرک پوزیشن سائزنگ کے لیے کیپٹل مینجمنٹ ماڈل کا اضافہ۔

  5. دیگر سٹاپ نقصان کی حکمت عملی جیسے Chandelier Exit کو شامل کرنا.

  6. مختلف مصنوعات میں ٹیسٹنگ پیرامیٹرز.

  7. بہتر کارکردگی کے لیے مشین لرننگ ماڈل شامل کرنا۔

  8. زیادہ الفا کے لئے متعدد ذیلی حکمت عملیوں کا مجموعہ.

نتیجہ

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


/*backtest
start: 2022-10-27 00:00:00
end: 2023-11-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/04/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// Average True Range Trailing Stops Strategy, by Sylvain Vervoort 
// The related article is copyrighted material from Stocks & Commodities Jun 2009 
// Please, use it only for learning or paper trading. Do not for real trading.
//
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos


ATRR(nATRPeriod,nATRMultip) =>
    pos = 0.0
    xATR = ta.atr(nATRPeriod)
    nLoss = nATRMultip * xATR
    xATRTrailingStop = 0.0
    xATRTrailingStop := close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), close - nLoss) :
                          close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), close + nLoss) : 
                          close > nz(xATRTrailingStop[1], 0) ? close - nLoss : close + nLoss
    pos:= close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0) ? 1 :
    	     close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & Average True Range Reversed', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Average True Range Reversed  ═════●'
nATRPeriod = input.int(5, group=I2)
nATRMultip = input.float(3.5, group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosATRR = ATRR(nATRPeriod,nATRMultip)
iff_1 = posEMA20 == -1 and prePosATRR == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosATRR == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)

مزید