یہ حکمت عملی بی ٹی سی کے 50 دن کے چلتے ہوئے اوسط اور 200 دن کے چلتے ہوئے اوسط کے سنہری کراس اور موت کے کراس سگنلز پر مبنی ہے ، جو خرید و فروخت کے سگنل پیدا کرنے کے لئے اضافی تکنیکی اشارے کے ساتھ مل کر ہے۔ یہ حکمت عملی بنیادی طور پر بی ٹی سی / یو ایس ڈی ٹی جیسی واضح رجحان کی خصوصیات والے کرنسی کے جوڑوں کے لئے موزوں ہے۔
جب 50 دن کا چلتا ہوا اوسط 200 دن کے چلتے ہوئے اوسط سے اوپر جاتا ہے تاکہ
بنیادی چلتی اوسط کے علاوہ
ای ایم اے اشارے: لمبائی + آفسیٹ کے ساتھ ای ایم اے اشارے کا حساب لگائیں ، جب یہ اوپر جاتا ہے تو اس سے ظاہر ہوتا ہے کہ موجودہ مارکیٹ میں تیزی ہے ، ہم خرید سکتے ہیں۔
چلتی اوسط اور ای ایم اے کے درمیان قدر کے تعلقات کا موازنہ کریں: اگر ای ایم اے کی قیمت 50 دن کی چلتی اوسط سے زیادہ ہے تو ، خریدنے کا اشارہ پیدا ہوتا ہے۔
چیک کریں کہ آیا قیمت پچھلی K لائن کی کم سے کم 1٪ سے زیادہ گر گئی ہے ، اگر ایسا ہے تو فروخت کا اشارہ بنائیں۔
مندرجہ بالا کئی اشارے کے استعمال کو یکجا کرکے، کچھ غلط سگنل کو فلٹر کیا جاسکتا ہے اور حکمت عملی کے تجارتی فیصلے زیادہ قابل اعتماد ہوسکتے ہیں۔
اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:
مرکزی تجارتی سگنل کے طور پر چلتی اوسط کا استعمال مارکیٹ شور کو فلٹر کرسکتا ہے اور رجحان کی سمت کی نشاندہی کرسکتا ہے۔
متعدد معاون تکنیکی اشارے کے ساتھ مل کر سگنل کی وشوسنییتا کو بڑھا سکتا ہے اور غلط سگنل کو فلٹر کرسکتا ہے۔
مناسب سٹاپ نقصان کی حکمت عملیوں کو اپنانے سے واحد نقصان کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے۔
نسبتا سادہ ٹریڈنگ منطق کو سمجھنے اور لاگو کرنے میں آسان ہے، مقداری ٹریڈنگ کے beginners کے لئے موزوں.
بہت سے ترتیب دینے والے پیرامیٹرز ہیں جو آپ کی اپنی ترجیحات کے مطابق ایڈجسٹ کیے جا سکتے ہیں۔
اس حکمت عملی میں کچھ خطرات بھی ہیں جن پر نوٹ کیا جانا چاہئے:
خود حرکت پذیر اوسط کی ایک مضبوط پسماندہ خصوصیت ہے، ممکنہ طور پر تیزی سے قیمت کی تبدیلی کے مواقع کو کھو دیا.
معاون اشارے شامل کرنے سے قواعد کی تعداد میں اضافہ ہوتا ہے اور غلط سگنل پیدا کرنے کا امکان بھی بڑھتا ہے۔
غلط سٹاپ نقصان کی ترتیبات بڑے نقصانات کا باعث بن سکتی ہیں۔
غیر مناسب پیرامیٹر کی ترتیبات (جیسے حرکت پذیر اوسط لمبائی وغیرہ) بھی حکمت عملی کے نتائج کو متاثر کریں گے۔
متعلقہ حل:
مناسب طریقے سے چلتی اوسط سائیکل کو مختصر کریں اور پیرامیٹر کی اصلاح کی حد میں اضافہ کریں.
سگنل کی کوالٹی چیک کرنے کے لیے بیک ٹیسٹ ڈیٹا کی مقدار میں اضافہ کریں۔
مناسب طریقے سے سٹاپ نقصان کی حد کو آرام کریں جبکہ منافع لینے کے لئے روکنے کی ترتیب.
بہترین پیرامیٹر مجموعے تلاش کرنے کے لئے پیرامیٹر کی اصلاح میں اضافہ.
اس حکمت عملی کو مندرجہ ذیل سمتوں میں بھی بہتر بنایا جاسکتا ہے:
خودکار پیرامیٹر اصلاحات حاصل کرنے کے لئے مشین لرننگ الگورتھم کو بڑھانا۔
مزید معاون اشارے شامل کریں تاکہ متعدد ذیلی حکمت عملیاں تیار کی جاسکیں اور ووٹنگ کے طریقہ کار کے ذریعے فیصلے کیے جاسکیں۔
قیمتوں میں اضافے کی نشاندہی کرنے کے لئے بریک آؤٹ کی حکمت عملی آزمائیں۔
قیمتوں کے رجحانات کی پیشن گوئی کرنے کے لئے گہری سیکھنے کا استعمال کریں.
متحرک ٹریکنگ سٹاپ نقصان کو حاصل کرنے کے لئے سٹاپ نقصان کے طریقہ کار کو بہتر بنائیں.
مذکورہ بالا اصلاحات فیصلے کی درستگی کو بہتر بناسکتی ہیں اور حکمت عملی کی منافع بخش اور استحکام کو بڑھا سکتی ہیں۔
یہ حکمت عملی بنیادی طور پر بی ٹی سی کے چلتے ہوئے اوسط کراس اوور کی بنیاد پر تجارتی فیصلے کرتی ہے ، جس میں سگنلز کو فلٹر کرنے کے لئے ای ایم اے جیسے تکنیکی اشارے کی مدد سے مدد ملتی ہے۔ اس حکمت عملی میں رجحان کی پیروی کرنے کی مضبوط صلاحیت اور اعلی تشکیل ہے ، جس سے یہ ابتدائی کی مقداری تجارتی حکمت عملی کے طور پر موزوں ہے۔ لیکن کچھ پسماندہ خطرات بھی ہیں جن سے بچنے کی ضرورت ہے۔ اگلی اصلاح کی سمتیں متعدد جہتوں سے ہوسکتی ہیں جیسے مشین لرننگ ، پورٹ فولیو حکمت عملی ، اسٹاپ نقصان کی حکمت عملی ، وغیرہ۔
/*backtest start: 2023-11-06 00:00:00 end: 2023-12-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('JayJay BTC Signal', overlay=true, initial_capital=100, currency='USD', default_qty_value=100, default_qty_type=strategy.percent_of_equity, commission_value=0, calc_on_every_tick=true) securityNoRepaint(sym, tf, src) => request.security(sym, tf, src[barstate.isrealtime ? 1 : 0])[barstate.isrealtime ? 0 : 1] //200 50 Moving Average ma50Len = input.int(50, minval=1, title='MA50-Length') ma50Src = input(close, title='MA50-Source') ma50Show = input(true, title='Show SMA50 on chart') ma50Close = ta.sma(ma50Src, ma50Len) ma50CloseTimeframe = input.timeframe("240", "Ma50 Timeframe", group = "EMA Options") ma50Open = ta.sma(open, ma50Len) ma200Len = input.int(200, minval=1, title='MA200-Length') ma200Src = input(close, title='MA200-Source') ma200Show = input(true, title='Show SMA200 on chart') ma200CloseTimeframe = input.timeframe("D", "Ma200 Timeframe", group = "EMA Options") ma200Close = ta.sma(ma200Src, ma200Len) ma200Open = ta.sma(open, ma200Len) //plot(ma200Close, color=color.new(#0b6ce5, 0), title='MA200') //plot(ma50Close, color=color.new(#00d8ff, 0), title='MA50') sma50 = securityNoRepaint(syminfo.tickerid, ma50CloseTimeframe, ma50Close) plot(sma50 and ma50Show ? sma50 : na, color=color.new(#00d8ff, 0), title='SMA50') sma200 = securityNoRepaint(syminfo.tickerid, ma200CloseTimeframe, ma200Close) plot(sma200 and ma200Show ? sma200 : na, color=color.new(#00d8ff, 0), title='SMA200') // Short/Long EMA // Define the offset value EMAOffsetValue = input.int(2, title='EMA Offset', minval=0) emaplot = input(true, title='Show EMA on chart') len = input.int(20, minval=1, title='ema Length') + EMAOffsetValue emaCloseTimeframe = input.timeframe("240", "EMA 1 Timeframe", group = "EMA Options") emaOpen = ta.ema(open, len) emaClose = ta.ema(close, len) ema = securityNoRepaint(syminfo.tickerid, emaCloseTimeframe, emaClose) up = emaClose > ema[1] down = emaClose < ema[1] mycolor = up ? color.green : down ? color.red : color.blue plot(ema and emaplot ? ema : na, title='Signal EMA', color=mycolor, linewidth=3) //plot(emaClose and emaplot ? emaClose : na, title='Signal 20 EMA', color=color.yellow, linewidth=3) ma50GreaterThanMa200 = sma50 > sma200 last3BarUp = ema > ema[1] startLong = up and ema > sma50 and ma50GreaterThanMa200 and (100 - (sma50 / ema * 100) > 1.0) startFrom = input(timestamp("20 Jan 2000 00:00"), "StartFrom") yearFilter = true alertLongPositionMessage = "{\"direction:\": \"long\", \"action\": \"{{strategy.order.action}}\", \"price\": \"{{strategy.order.price}}\", \"qty\": \"{{strategy.position_size}}\", \"symbol\": \"{{ticker}}\", \"date\": \"{{time}}\"}" if true and startLong and yearFilter strategy.entry('Long', strategy.long, comment = "Long", alert_message = alertLongPositionMessage) longStopLossLevel = open * 0.05 strategy.exit('StopLoss', from_entry='Long',comment = "StopLoss!", loss=longStopLossLevel, profit=close * 0.3, alert_message = alertLongPositionMessage) longPercentageChange = low / close[1] * 100 - 100 is1PercentLower = longPercentageChange < -0.1 closeLongPositionWhen = (down and is1PercentLower) or (emaClose < sma50) if closeLongPositionWhen strategy.close('Long', comment = "Fuck It!", alert_message = alertLongPositionMessage) bgcolor(startLong ? color.green : na, transp=90)