یہ حکمت عملی تجارت کے لئے حرکت پذیر اوسط کے کراس اوور اصول پر مبنی ہے۔ یہ دو حرکت پذیر اوسط کا استعمال کرتا ہے ، جب مختصر مدت کی حرکت پذیر اوسط نیچے سے طویل مدتی حرکت پذیر اوسط کے اوپر عبور کرتی ہے تو خرید سگنل پیدا کرتا ہے۔ جب قیمت کسی دوسرے حرکت پذیر اوسط سے نیچے ہوتی ہے تو فروخت سگنل پیدا ہوتے ہیں۔ یہ حکمت عملی رجحان سازی کی منڈیوں کے لئے موزوں ہے ، کچھ شور کی تجارت کو مؤثر طریقے سے فلٹر کرنے اور مرکزی رجحان کو پکڑنے کے قابل ہے۔
یہ حکمت عملی صارف کی مرضی کے مطابق مختصر مدت اور طویل مدتی چلتی اوسط مدت، باہر نکلنے والی چلتی اوسط مدت، اور چلتی اوسط حساب کے طریقوں کا استعمال کرتی ہے.
جب قلیل مدتی حرکت پذیر اوسط نیچے سے طویل مدتی حرکت پذیر اوسط سے اوپر گزر جاتا ہے تو ، خرید کا اشارہ پیدا ہوتا ہے۔ اس سے یہ ظاہر ہوتا ہے کہ قلیل مدتی رجحان ایک اپ ٹرینڈ میں تبدیل ہوگیا ہے ، اور ہم خرید سکتے ہیں۔
جب اختتامی قیمت باہر نکلنے والے حرکت پذیر اوسط سے نیچے ہوتی ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔ اس سے رجحان کی تبدیلی کا اشارہ ہوتا ہے ، لہذا ہمیں پوزیشن سے باہر نکلنا چاہئے۔
لہذا، حکمت عملی کے ٹریڈنگ سگنل مختصر مدت اور طویل مدتی چلتی اوسط کے کراس اوور سے آتے ہیں، اور اختتامی قیمت اور باہر نکلنے والی اوسط کے درمیان تعلقات.
اس حکمت عملی کے فوائد یہ ہیں:
سادہ اور لاگو کرنے میں آسان.
اپنی مرضی کے مطابق پیرامیٹرز مختلف مارکیٹ کے حالات کے مطابق.
اوسط حرکت پذیری شور کو فلٹر کرتی ہے اور مرکزی رجحان کو پکڑتی ہے۔
مزید بہتر بنانے کے لئے رجحان، حمایت / مزاحمت جیسے دیگر تکنیکی اشارے شامل کر سکتے ہیں.
کنٹرول قابل خطرہ انعام کا تناسب، سٹاپ نقصان کا طریقہ کار ہے.
خطرات یہ ہیں:
غیر رجحان سازی کے بازاروں میں غلط سگنل کا شکار۔
پیرامیٹر کی غلط ترتیبات کی وجہ سے غائب رجحانات یا بہت زیادہ غلط تجارت ہوسکتی ہے۔
غلط سٹاپ نقصان کی جگہ نقصانات میں اضافہ کر سکتا ہے.
ناکام فرار نقصانات کا سبب بن سکتا ہے.
پیرامیٹرز کو مارکیٹ میں ہونے والی تبدیلیوں کے مطابق بروقت ایڈجسٹ کرنے کی ضرورت ہے۔
حل میں پیرامیٹرز کو بہتر بنانا ، دوسرے فلٹرز کو شامل کرنا ، اسٹاپ کو ایڈجسٹ کرنا ، تجارت سے پہلے رجحان کی تصدیق کا انتظار کرنا وغیرہ شامل ہیں۔
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جا سکتا ہے:
رجحان کا تعین کرنے کے طریقہ کار تیار کرنا اور رجحان کی تصدیق کے بعد ہی تجارت کرنا۔
فلٹر سگنلز میں حجم یا اتار چڑھاؤ جیسے فلٹرز شامل کرنا۔
متحرک اوسط مدت کی متحرک اصلاح.
ٹرائلنگ سٹاپ استعمال کرنے کے لئے سٹاپ نقصان کے میکانزم کو بہتر بنانا.
سگنل کی مزید تصدیق کے لیے سپورٹ/مزاحمت اور دیگر اشارے شامل کرنا۔
مختلف مصنوعات اور ٹائم فریم پر مبنی پیرامیٹرز کو ایڈجسٹ کرنا۔
مجموعی طور پر یہ حرکت پذیر اوسط کراس اوور حکمت عملی ایک سادہ اور عملی رجحان کے بعد کا نظام ہے۔ اسے پیرامیٹرز کو ٹویک کرکے مارکیٹ کے حالات میں ایڈجسٹ کیا جاسکتا ہے اور رجحان سازی کی منڈیوں میں اہم رجحان کی سمت کو پکڑ سکتا ہے۔ لیکن رجحان کی غلط شناخت جیسے خطرات کو نوٹ کرنا چاہئے ، اور بدلتی منڈیوں کے مطابق ڈھالنے کے لئے مستقل اصلاح کی ضرورت ہے۔ عام طور پر ، اس حکمت عملی کی اچھی قابلیت ہے۔
/*backtest start: 2022-10-30 00:00:00 end: 2023-11-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © TwoChiefs //@version=4 strategy("John EMA Crossover Strategy", overlay=true) //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2020, title = "From Year", minval = 1970) // To Date Inputs toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2021, title = "To Year", minval = 1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true //////////////////////////////////////////////////////////////////////////////// //CREATE USER-INPUT VARIABLES periodShort = input(13, minval=1, title="Enter Period for Short Moving Average") smoothingShort = input(title="Choose Smoothing Type for Short Moving Average", defval="EMA", options=["RMA", "SMA", "EMA", "WMA", "VWMA", "SMMA", "DEMA", "TEMA", "HullMA", "LSMA"]) periodLong = input(48, minval=1, title="Enter Period for Long Moving Average") smoothingLong = input(title="Choose Smoothing Type for Long Moving Average", defval="EMA", options=["RMA", "SMA", "EMA", "WMA", "VWMA", "SMMA", "DEMA", "TEMA", "HullMA", "LSMA"]) periodExit = input(30, minval=1, title="Enter Period for Exit Moving Average") smoothingExit = input(title="Choose Smoothing Type for Exit Moving Average", defval="EMA", options=["RMA", "SMA", "EMA", "WMA", "VWMA", "SMMA", "DEMA", "TEMA", "HullMA", "LSMA"]) src1 = close pivot = (high + low + close) / 3 //MA CALCULATION FUNCTION ma(smoothing, src, length) => if smoothing == "RMA" rma(src, length) else if smoothing == "SMA" sma(src, length) else if smoothing == "EMA" ema(src, length) else if smoothing == "WMA" wma(src, length) else if smoothing == "VWMA" vwma(src, length) else if smoothing == "SMMA" na(src[1]) ? sma(src, length) : (src[1] * (length - 1) + src) / length else if smoothing == "HullMA" wma(2 * wma(src, length / 2) - wma(src, length), round(sqrt(length))) //ASSIGN A MOVING AVERAGE RESULT TO A VARIABLE shortMA=ma(smoothingShort, pivot, periodShort) longMA=ma(smoothingLong, pivot, periodLong) exitMA=ma(smoothingExit, pivot, periodExit) //PLOT THOSE VARIABLES plot(shortMA, linewidth=4, color=color.yellow,title="The Short Moving Average") plot(longMA, linewidth=4, color=color.blue,title="The Long Moving Average") plot(exitMA, linewidth=1, color=color.red,title="The Exit CrossUnder Moving Average") //BUY STRATEGY buy = crossover(shortMA,longMA) ? true : na exit = crossunder(close,exitMA) ? true : na strategy.entry("long",true,when=buy and time_cond) strategy.close("long",when=exit and time_cond) if (not time_cond) strategy.close_all()