یہ حکمت عملی مختلف ادوار کے تین چلتے ہوئے اوسطوں کا حساب کتاب کرکے اور قیمت کی پیشرفتوں کو جوڑ کر تجارتی سگنل تیار کرتی ہے۔ یہ ایک عام رجحان کی پیروی کرنے والی حکمت عملی سے تعلق رکھتی ہے۔ اس حکمت عملی کا مقصد مارکیٹ میں درمیانی مدتی رجحانات کی پیروی کرنا ہے اور پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرکے مختلف مصنوعات اور تجارتی ماحول کو اپنایا جاسکتا ہے۔
اس حکمت عملی میں تین حرکت پذیر اوسط شامل ہیں: ایم اے 1 ، ایم اے 2 اور ایم اے 3۔ ایم اے 1 اور ایم اے 2 تجارتی چینل تشکیل دیتے ہیں ، اور ان کا کراس اوور تجارتی سگنل تیار کرتا ہے۔ ایم اے 3 سگنل کو فلٹر کرنے کے لئے استعمال ہوتا ہے۔
جب تیز رفتار حرکت پذیر اوسط MA1 درمیانی مدتی حرکت پذیر اوسط MA2 سے اوپر عبور کرتا ہے تو ، اس سے قلیل مدتی رجحان کی مضبوطی ظاہر ہوتی ہے۔ اس وقت ، اگر قیمت طویل مدتی حرکت پذیر اوسط MA3 سے اوپر ہے تو ، ایک لمبا سگنل تیار کیا جاتا ہے۔ اس کے برعکس ، اگر MA1 MA2 سے نیچے عبور کرتا ہے اور قیمت MA3 سے نیچے ہے تو ، ایک مختصر سگنل تیار کیا جاتا ہے۔
ایم اے 3 کا کردار قلیل مدتی مارکیٹ شور کو فلٹر کرنا ہے اور صرف اس بات کا تعین کرنے کے بعد سگنل تیار کرنا ہے کہ رجحان درمیانے اور طویل مدتی مرحلے میں داخل ہوگیا ہے۔ تینوں حرکت پذیر اوسط کے پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرکے ، حکمت عملی مختلف مارکیٹوں میں پیرامیٹرز کا بہترین امتزاج تلاش کرسکتی ہے۔
مختلف مصنوعات کے لئے MA ادوار کو بہتر بنا سکتے ہیں؛ واحد نقصان کو کنٹرول کرنے کے لئے سٹاپ نقصان کو بہتر بنا سکتے ہیں؛ سگنل کی موزونیت کی تصدیق اور جھوٹے سگنل کو کم کرنے کے لئے دیگر تکنیکی اشارے کو یکجا کر سکتے ہیں.
یہ حکمت عملی تین حرکت پذیر اوسطوں کا حساب کتاب کرکے اور ان کے کراسوں کا مشاہدہ کرکے تجارتی سگنل تیار کرتی ہے۔ رجحانات کا تعین کرنے کے لئے تیز ، درمیانے اور سست لائنوں کے امتزاج کے خیال کا استعمال کرتے ہوئے ، یہ ایک عام رجحان کی پیروی کرنے والی حکمت عملی ہے۔ اس حکمت عملی کو پیرامیٹر کی اصلاح کے ذریعے مختلف مصنوعات کے مطابق بنایا جاسکتا ہے ، لیکن اس میں وِپساؤس اور گمشدہ موڑ کا خطرہ ہے۔ مستقبل میں بہتری سگنل کی موزونیت کا فیصلہ کرنے کے لئے دوسرے تکنیکی اشارے متعارف کروا سکتی ہے ، متحرک پیرامیٹر کی اصلاح کے طریقہ کار کو تیار کرسکتی ہے ، وغیرہ۔ حکمت عملی کو زیادہ لچکدار بنانے کے ل.
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 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/ // © Meesemoo //@version=4 strategy("Custom MA Strategy Tester", overlay = true) MA1Period = input(13, title="MA1 Period") MA1Type = input(title="MA1 Type", defval="SMA", options=["RMA", "SMA", "EMA", "WMA", "HMA", "DEMA", "TEMA"]) MA1Source = input(title="MA1 Source", type=input.source, defval=close) MA1Visible = input(title="MA1 Visible", type=input.bool, defval=true) MA2Period = input(50, title="MA2 Period") MA2Type = input(title="MA2 Type", defval="SMA", options=["RMA", "SMA", "EMA", "WMA", "HMA", "DEMA", "TEMA"]) MA2Source = input(title="MA2 Source", type=input.source, defval=close) MA2Visible = input(title="MA2 Visible", type=input.bool, defval=true) MA3Period = input(200, title="MA3 Period") MA3Type = input(title="MA3 Type", defval="SMA", options=["RMA", "SMA", "EMA", "WMA", "HMA", "DEMA", "TEMA"]) MA3Source = input(title="MA3 Source", type=input.source, defval=close) MA3Visible = input(title="MA3 Visible", type=input.bool, defval=true) ShowCrosses = input(title="Show Crosses", type=input.bool, defval=true) MA1 = if MA1Type == "SMA" sma(MA1Source, MA1Period) else if MA1Type == "EMA" ema(MA1Source, MA1Period) else if MA1Type == "WMA" wma(MA1Source, MA1Period) else if MA1Type == "RMA" rma(MA1Source, MA1Period) else if MA1Type == "HMA" wma(2*wma(MA1Source, MA1Period/2)-wma(MA1Source, MA1Period), round(sqrt(MA1Period))) else if MA1Type == "DEMA" e = ema(MA1Source, MA1Period) 2 * e - ema(e, MA1Period) else if MA1Type == "TEMA" e = ema(MA1Source, MA1Period) 3 * (e - ema(e, MA1Period)) + ema(ema(e, MA1Period), MA1Period) MA2 = if MA2Type == "SMA" sma(MA2Source, MA2Period) else if MA2Type == "EMA" ema(MA2Source, MA2Period) else if MA2Type == "WMA" wma(MA2Source, MA2Period) else if MA2Type == "RMA" rma(MA2Source, MA2Period) else if MA2Type == "HMA" wma(2*wma(MA2Source, MA2Period/2)-wma(MA2Source, MA2Period), round(sqrt(MA2Period))) else if MA2Type == "DEMA" e = ema(MA2Source, MA2Period) 2 * e - ema(e, MA2Period) else if MA2Type == "TEMA" e = ema(MA2Source, MA2Period) 3 * (e - ema(e, MA2Period)) + ema(ema(e, MA2Period), MA2Period) MA3 = if MA3Type == "SMA" sma(MA3Source, MA3Period) else if MA3Type == "EMA" ema(MA3Source, MA3Period) else if MA3Type == "WMA" wma(MA3Source, MA3Period) else if MA3Type == "RMA" rma(MA3Source, MA3Period) else if MA3Type == "HMA" wma(2*wma(MA3Source, MA3Period/2)-wma(MA3Source, MA3Period), round(sqrt(MA3Period))) else if MA3Type == "DEMA" e = ema(MA3Source, MA3Period) 2 * e - ema(e, MA3Period) else if MA3Type == "TEMA" e = ema(MA3Source, MA3Period) 3 * (e - ema(e, MA3Period)) + ema(ema(e, MA3Period), MA3Period) p1 = plot(MA1Visible ? MA1 : na, color=color.green, linewidth=1) p2 = plot(MA2Visible ? MA2 : na, color=color.yellow, linewidth=1) p3 = plot(MA3Visible ? MA3 : na, color=color.red, linewidth=2) fill(p1, p2, color.silver, transp=80, title="Fill") start = timestamp(2019, 1, 1, 1, 0) end = timestamp(2025, 1, 1, 1, 0) if time >= start and time <= end longCondition = crossover(MA1, MA2) and close > MA3 if (longCondition) strategy.entry("Long", strategy.long) shortCondition = crossunder(MA1, MA2) and close < MA3 if (shortCondition) strategy.entry("Short", strategy.short)