اس مضمون میں ایک سادہ حرکت پذیر اوسط پر مبنی تجارتی حکمت عملی پر تبادلہ خیال کیا گیا ہے۔ حکمت عملی میں اختتامی قیمت کا موازنہ 17 مدت کی حرکت پذیر اوسط کے ساتھ کیا جاتا ہے ، جب اختتامی قیمت حرکت پذیر اوسط سے اوپر ہوتی ہے تو طویل ہوجاتا ہے اور جب اس سے نیچے ہوتا ہے تو مختصر ہوجاتا ہے۔
حکمت عملی میں درج ذیل پیرامیٹرز کا استعمال کرتے ہوئے اوسط چلنے کا حساب لگایا گیا ہے:
ان پیرامیٹرز کی بنیاد پر ، بندش کی قیمتوں کے 17 پیریڈ ایس ایم اے کا حساب لگانے کے لئے گیٹ میٹائپ () فنکشن کو بلایا جاتا ہے۔
پھر بندش کی قیمت اور چلتی اوسط کے درمیان تعلقات کا موازنہ کریں:
جب اختتامی قیمت نیچے سے چلتی اوسط سے اوپر سے گزرتی ہے تو ، ایک طویل سگنل تیار ہوتا ہے۔ جب یہ اوپر سے نیچے سے گزرتی ہے تو ، ایک مختصر سگنل تیار ہوتا ہے۔
بیک ٹسٹ کی مدت کے دوران، جب طویل سگنل ظاہر ہوتے ہیں تو طویل پوزیشنیں کھولیں اور جب مختصر سگنل ظاہر ہوتے ہیں تو مختصر پوزیشنیں کھولیں۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ منطق بہت آسان اور واضح ہے۔ صرف ایک اشارے کے ساتھ ، یہ اشارے کی سمت کی تبدیلی کی بنیاد پر رجحان کی تبدیلی کا فیصلہ کرتا ہے۔ حکمت عملی کو سمجھنا اور لاگو کرنا آسان ہے ، جو سیکھنے کے لئے ابتدائی افراد کے لئے موزوں ہے۔
اس کے علاوہ، چلتے ہوئے اوسط رجحانات کی پیروی کرنے والے اشارے سے تعلق رکھتے ہیں، جو مؤثر طریقے سے رجحانات کی تبدیلیوں کو ٹریک کرسکتے ہیں اور قلیل مدتی مارکیٹ شور سے مداخلت سے بچ سکتے ہیں.
پیرامیٹرز کو ایڈجسٹ کرکے، یہ مختلف سائیکلوں اور مختلف مصنوعات کو اپنانے کے قابل ہے.
سب سے پہلے، یہ حکمت عملی صرف ایک اشارے پر منحصر ہے، لہذا فیصلے کے معیار نسبتا واحد ہیں، جو زیادہ غلط سگنل پیدا کرسکتے ہیں.
اس کے علاوہ، ایک رجحان کی پیروی کرنے والے نظام کے طور پر، یہ رینج محدود اور ضمنی بازاروں میں اچھی طرح سے کام نہیں کرتا.
اس کے علاوہ، سٹاپ نقصان یا منافع لینے کے بغیر، نقصانات کو بڑھانے کا خطرہ ہے.
حل دیگر اشارے کو شامل کرنا ، غلط سگنل کو کم کرنے کے لئے پیرامیٹر کے مجموعوں کو بہتر بنانا ہے۔ خطرات کو کنٹرول کرنے اور ڈراؤونگ کو بہتر بنانے کے لئے اسٹاپ نقصان اور منافع لینا شامل کریں۔
یہاں حکمت عملی کو بہتر بنانے کے لئے کچھ خیالات ہیں:
چلتی اوسط پیرامیٹرز کو ایڈجسٹ کریں، مدت کی تعداد کو بہتر بنائیں، مثال کے طور پر 30 مدت یا 50 مدت میں تبدیلی.
مختلف قسم کے چلتے ہوئے اوسط کی کوشش کریں ، جیسے ای ایم اے ، ویڈیا وغیرہ۔ ان کی قیمتوں میں ہونے والی تبدیلیوں پر مختلف حساسیت ہے۔
دیگر اشارے کو مل کر شامل کریں، مثال کے طور پر مضبوطی کا اندازہ کرنے کے لئے MACD؛ غلط سگنل کو کم کرنے کے لئے RSI.
سٹاپ نقصان کے طریقہ کار کو شامل کریں۔ ایک ہی تجارت کے نقصان کی رقم کو کنٹرول کرنے کے لئے مقررہ فیصد یا اے ٹی آر پر مبنی ٹریلنگ اسٹاپ نقصان مقرر کریں۔
منافع لینے کے طریقہ کار شامل کریں۔ منافع کو زیادہ سے زیادہ کرنے کے لئے ہدف منافع کا فیصد مقرر کریں۔
یہ اصلاحات حکمت عملی کی کارکردگی کو زیادہ مستحکم بناسکتی ہیں اور ضرورت سے زیادہ کمی سے بچ سکتی ہیں۔
اس مضمون میں 17 مدت کی حرکت پذیر اوسط کی بنیاد پر ایک سادہ تجارتی حکمت عملی کا تجزیہ کیا گیا ہے۔ اس حکمت عملی میں سادہ سگنل ذرائع ہیں ، جن کو سمجھنا اور لاگو کرنا آسان ہے ، جو ایک عام رجحان کی پیروی کرنے والے نظام سے تعلق رکھتے ہیں۔ حکمت عملی کی گہرائی سے تشریح کے ذریعے ، اس کے پیشہ اور cons کا تجزیہ کیا جاتا ہے ، اور اصلاح کے نظریات کے متعدد جہتوں کی تجویز پیش کی جاتی ہے۔ یہ خیال کیا جاتا ہے کہ مسلسل اصلاح اور افزودگی کے ذریعے ، یہ حکمت عملی آہستہ آہستہ تیار ہوسکتی ہے اور رواں تجارت میں بھی مستحکم واپسی حاصل کرسکتی ہے۔
/*backtest start: 2023-12-05 00:00:00 end: 2024-01-04 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Simple 17 BF 🚀", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0) /////////////// Time Frame /////////////// testStartYear = input(2012, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0) testPeriod() => true ///////////// Moving Average ///////////// source = input(title="MA Source", defval=ohlc4) maType = input(title="MA Type", defval="sma", options=["sma", "ema", "swma", "wma", "vwma", "rma"]) length = input(title="MA Length", defval=17) ///////////// Get MA Function ///////////// getMAType(maType, sourceType, maLen) => res = sma(close, 1) if maType == "ema" res := ema(sourceType, maLen) if maType == "sma" res := sma(sourceType, maLen) if maType == "swma" res := swma(sourceType) if maType == "wma" res := wma(sourceType, maLen) if maType == "vwma" res := vwma(sourceType, maLen) if maType == "rma" res := rma(sourceType, maLen) res MA = getMAType(maType, source, length) /////////////// Strategy /////////////// long = close > MA short = close < MA last_long = 0.0 last_short = 0.0 last_long := long ? time : nz(last_long[1]) last_short := short ? time : nz(last_short[1]) long_signal = crossover(last_long, last_short) short_signal = crossover(last_short, last_long) /////////////// Execution /////////////// if testPeriod() strategy.entry("L", strategy.long, when=long_signal) strategy.entry("S", strategy.short, when=short_signal) /////////////// Plotting /////////////// p1 = plot(MA, color = long ? color.lime : color.red, linewidth=2) p2 = plot(close, linewidth=2) fill(p1, p2, color=strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=80)