ڈبل EMA حکمت عملی کے تجزیہ پر مبنی


تخلیق کی تاریخ: 2024-02-28 18:07:59 آخر میں ترمیم کریں: 2024-02-28 18:07:59
کاپی: 1 کلکس کی تعداد: 550
1
پر توجہ دیں
1617
پیروکار

ڈبل EMA حکمت عملی کے تجزیہ پر مبنی

جائزہ

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

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

یہ حکمت عملی بنیادی طور پر دو ای ایم اے اشارے پر مبنی ہے ، ایک مختصر مدت کے 9 دن کا ای ایم اے اور دوسرا طویل مدت کے 21 دن کا ای ایم اے۔ ان کا کراسنگ اسٹاک لگانے اور اسٹاک سگنل کے لئے ہے۔

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

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

اسٹریٹجک فوائد

یہ حکمت عملی مندرجہ ذیل فوائد رکھتی ہے:

  1. حکمت عملی سادہ اور واضح ہے اور اسے سمجھنے اور اس پر عمل کرنے میں آسانی ہے۔
  2. قیمتوں کے رجحانات کو مؤثر طریقے سے پہچاننے کے قابل ، بروقت پوزیشنیں بنائیں اور رجحانات کی پیروی کریں۔
  3. ای ایم اے اشارے کا استعمال کرتے ہوئے شور کو فلٹر کریں ، تاکہ قلیل مدتی قیمتوں کے اتار چڑھاؤ سے بچ سکیں۔
  4. EMA پیرامیٹرز کو ترتیب دیں اور حکمت عملی کی حساسیت کو ایڈجسٹ کریں۔

اسٹریٹجک رسک

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

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

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

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

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

خلاصہ کریں۔

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

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

//@version=5
// This can only draw so many lines. Use bar replay to go back further
strategy("Strategy Lines", shorttitle="Strategy Lines", overlay=true, max_lines_count=500)

//###########################################################################################################################################
// Replace your strategy here
//###########################################################################################################################################

shortEMA = ta.ema(close, input(9, title="Short EMA Length"))
longEMA = ta.ema(close, input(21, title="Long EMA Length"))

// Entry conditions for long and short positions
longCondition = ta.crossover(shortEMA, longEMA)
shortCondition = ta.crossunder(shortEMA, longEMA)

//###########################################################################################################################################
// Strategy Lines
//###########################################################################################################################################

var timeLow = bar_index
var line li = na
var openLPrice = 0.0000
var openSPrice = 0.0000

LongWColor = input.color(color.rgb(0,255,0,0),"Long Win Color", group="Strategy Lines")
LongLColor = input.color(color.rgb(0,0,255,0),"Long Loss Color", group="Strategy Lines")
ShortWColor = input.color(color.rgb(255,255,0,0),"Short Win Color", group="Strategy Lines")
ShortLColor = input.color(color.rgb(255,0,0,0),"Short Loss Color", group="Strategy Lines")
WinFontColor = input.color(color.rgb(0,0,0,0),"Win Font Color", group="Strategy Lines")
LossFontColor = input.color(color.rgb(255,255,255,0),"Loss Font Color", group="Strategy Lines")
LinesShowLabel = input(false,"Show Labels?",group = "Strategy Lines")

// // Start new line when we go long
// if strategy.position_size >0
//     line.delete(li)
//     li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=close>openLPrice?LongWColor:LongLColor)

// // Start new line when we go short
// if strategy.position_size <0
//     line.delete(li)
//     li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=close<openSPrice?ShortWColor:ShortLColor)

// //Delete Lines if we don't have a position open
// if strategy.position_size ==0
//     li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=color.rgb(0,0,0,100))
//     line.delete(li)

if LinesShowLabel
    // Short Label
    if strategy.position_size>=0 and strategy.position_size[1] <0
        label.new(
             timeLow, na, 
             text=str.tostring((openSPrice-close[1])/(syminfo.mintick*10)), 
             color=close[1]<openSPrice?ShortWColor:ShortLColor, 
             textcolor=close[1]<openSPrice?WinFontColor:LossFontColor,
             size=size.small, 
             style=label.style_label_down, yloc=yloc.abovebar)
    // Long Label
    if strategy.position_size<=0 and strategy.position_size[1] >0
        label.new(
             timeLow, na,
             text=str.tostring((close[1]-openLPrice)/(syminfo.mintick*10)), 
             color=close[1]>openLPrice?LongWColor:LongLColor, 
             textcolor=close[1]>openLPrice?WinFontColor:LossFontColor,
             size=size.small, 
             style=label.style_label_down, yloc=yloc.abovebar)

// Open long position and draw line
if (longCondition)
    //strategy.entry("Long", strategy.long)
    // timeLow := bar_index
    // li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=close>openLPrice?LongWColor:LongLColor)
    openLPrice := close

// Open short position and draw line
if (shortCondition)
    //strategy.entry("Short", strategy.short)
    // timeLow := bar_index
    // li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=close<openSPrice?ShortWColor:ShortLColor)
    openSPrice := close

//###########################################################################################################################################
// Strategy Execution (Replace this as well)
//###########################################################################################################################################

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)