یہ حکمت عملی سادہ حرکت پذیر اوسط (ایس ایم اے) کے سنہری کراس اور مردہ کراس اصولوں کی بنیاد پر تیار کی گئی ہے۔ یہ حکمت عملی دو ایس ایم اے ، یعنی تیز ایس ایم اے اور سست ایس ایم اے کا استعمال کرتی ہے۔ جب تیز ایس ایم اے نیچے سے سست ایس ایم اے کے اوپر سے عبور کرتی ہے تو ، خرید کا اشارہ پیدا ہوتا ہے۔ جب تیز ایس ایم اے اوپر سے سست ایس ایم اے کے نیچے سے عبور کرتی ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔
یہ حکمت عملی بنیادی طور پر دو ایس ایم اے اشارے کی لائنوں پر انحصار کرتی ہے۔ تیز ایس ایم اے کی مدت کم ہے اور وہ قیمت کی تبدیلیوں کو تیزی سے پکڑ سکتی ہے۔ سست ایس ایم اے کی مدت زیادہ ہے اور وہ کچھ شور کو فلٹر کرسکتی ہے۔ جب تیز ایس ایم اے نیچے سے سست ایس ایم اے سے اوپر کی طرف بڑھتی ہے تو ، اس سے یہ ظاہر ہوتا ہے کہ قلیل مدتی بڑھتی ہوئی رفتار تیز ہے اور خریداری کا اشارہ پیدا کرتی ہے۔ جب تیز ایس ایم اے اوپر سے سست ایس ایم اے سے نیچے کی طرف بڑھتی ہے تو ، اس سے یہ ظاہر ہوتا ہے کہ قلیل مدتی گرنے کی رفتار تیز ہے اور فروخت کا اشارہ پیدا کرتی ہے۔
مختلف ایس ایم اے مدت کے پیرامیٹرز کی ترتیب سے ، حکمت عملی کے پیرامیٹرز کو مختلف مارکیٹ کے ماحول کے مطابق کچھ حد تک ایڈجسٹ کیا جاسکتا ہے۔ اسی وقت ، حکمت عملی تاریخی اعداد و شمار پر حکمت عملی کے پیرامیٹرز کی جانچ کے لئے بیک ٹسٹنگ ٹائم رینج کی ترتیب کی بھی اجازت دیتی ہے۔
مذکورہ بالا خطرات سے نمٹنے کے لیے مندرجہ ذیل اقدامات کئے جا سکتے ہیں:
یہ ایک عام رجحان کی پیروی کرنے والی حکمت عملی ہے۔ جب پیرامیٹرز کو مناسب طریقے سے ترتیب دیا جاتا ہے تو ، یہ ڈبل حرکت پذیر اوسط کراس اوور کے آسان اصول کو لاگو کرکے ٹریکنگ کے اچھے نتائج حاصل کرسکتا ہے۔ تاہم ، ایس ایم اے خود ایک خاص پسماندہ اثر رکھتا ہے اور رجحان کی رفتار کا تعین نہیں کرسکتا ہے۔ لہذا ، اصل درخواست میں ، اشارے کے امتزاج کو تشکیل دینے کے لئے دیگر معاون ٹولز متعارف کرانے کی ضرورت ہے ، اور خودکار پیرامیٹر کی اصلاح اور رسک کنٹرول کے ذریعہ اس کی تکمیل کی جاتی ہے ، تاکہ حکمت عملی کو مستقل طور پر منافع بخش بنایا جاسکے۔
/*backtest start: 2023-12-17 00:00:00 end: 2023-12-18 19:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //strategy(title="MA Cross Entry & Exit w/Date Range", overlay=true, initial_capital=10000, currency='USD') strategy(title="SMA Cross Entry & Exit Strategy", overlay=true) // Credit goes to this developer for the "Date Range Code" // https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/ // === GENERAL INPUTS === // short ma maFastSource = input(defval = open, title = "Fast MA Source") maFastLength = input(defval = 36, title = "Fast MA Period", minval = 1) // long ma maSlowSource = input(defval = open , title = "Slow MA Source") maSlowLength = input(defval = 46, title = "Slow MA Period", minval = 1) // === SERIES SETUP === // a couple of ma's.. maFast = sma(maFastSource, maFastLength) maSlow = sma(maSlowSource, maSlowLength) // === PLOTTING === fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30) slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30) // === INPUT BACKTEST RANGE === FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" // === LOGIC === //enterLong = crossover(maFast, maSlow) //exitLong = crossover(maSlow, maFast) enterLong = crossover(maSlow, maFast) exitLong = crossover(maFast, maSlow) // Entry // strategy.entry(id="Long Entry", long=true, when=window() and enterLong) strategy.entry(id="Short Entry", long=false, when=window() and exitLong) // === FILL ==== fill(fast, slow, color = maFast > maSlow ? green : red)