یہ حکمت عملی ایک خودکار تجارتی نظام ہے جس کی بنیاد سادہ حرکت پذیر اوسط (ایس ایم اے) کراس اوورز اور حجم فلٹرنگ پر ہے۔ اس میں رجحان کی طاقت کی تصدیق کے لئے حجم کے اشارے شامل کرتے ہوئے ، داخلے کے سگنل پیدا کرنے کے لئے تیز اور سست ایس ایم اے کے کراس اوور کا استعمال کیا جاتا ہے۔ اس حکمت عملی میں متحرک اسٹاپ نقصان اور منافع لینے کے طریقہ کار کے ساتھ ساتھ وقت پر مبنی خارجی حالات بھی شامل ہیں ، جس کا مقصد رسک مینجمنٹ کو بہتر بنانا اور منافع کو بڑھانا ہے۔
اس حکمت عملی کے بنیادی اصول مندرجہ ذیل اہم اجزاء پر مبنی ہیں:
ایس ایم اے کراس اوور سگنل:
حجم فلٹرنگ:
متحرک سٹاپ نقصان اور منافع لینے:
وقت پر مبنی باہر نکلیں:
بیک ٹسٹ مدت کی ترتیب:
رجحان کی پیروی اور رفتار کا مجموعہ: ایس ایم اے کراس اوورز اور حجم فلٹرنگ کو یکجا کرکے، حکمت عملی کمزور مارکیٹوں میں کثرت سے تجارت سے بچنے کے دوران مضبوط رجحان کی نقل و حرکت کو پکڑ سکتی ہے.
لچکدار رسک مینجمنٹ: متحرک سٹاپ نقصان اور منافع لینے کے میکانزم اس حکمت عملی کو مارکیٹ کی اتار چڑھاؤ کی بنیاد پر خطرہ کی نمائش کو خود بخود ایڈجسٹ کرنے کی اجازت دیتے ہیں، منافع کی حفاظت اور ممکنہ نقصانات کو محدود کرنے میں مدد ملتی ہے.
اوور ہولڈنگ کی روک تھام: زیادہ سے زیادہ انعقاد کی حد اس حکمت عملی کو روکنے میں مدد ملتی ہے کہ مارکیٹ کے خراب حالات میں طویل عرصے تک نقصان دہ پوزیشنوں کو برقرار رکھنے کے لۓ، سرمایہ کاری کے مؤثر استعمال کو فروغ دینا.
اعلی حسب ضرورت: متعدد سایڈست پیرامیٹرز (جیسے ایس ایم اے کی مدت، سٹاپ نقصان اور منافع لینے کے فیصد، زیادہ سے زیادہ ہولڈنگ کا وقت وغیرہ) حکمت عملی کو مختلف مارکیٹوں اور تجارتی طرزوں کے لئے بہتر بنانے کی اجازت دیتا ہے.
بصری مدد: اسٹریٹجی میں ایس ایم اے لائنز اور تجارتی سگنل چارٹ پر دکھائے گئے ہیں، جس سے حکمت عملی کی کارکردگی کی بدیہی تفہیم اور تجزیہ کی سہولت ملتی ہے۔
پسماندہ فطرت: ایس ایم اے اشارے فطری طور پر پیچھے رہ جاتے ہیں ، جس کی وجہ سے تیزی سے الٹ جانے والی منڈیوں میں تاخیر سے اندراج یا کھوئے ہوئے مواقع ہوسکتے ہیں۔
جھوٹا بریک آؤٹ خطرہ: مختلف مارکیٹوں میں ، ایس ایم اے کراس اوورز اکثر غلط بریک آؤٹ سگنل پیدا کرسکتے ہیں ، جس سے زیادہ تجارت اور لین دین کی لاگت میں اضافہ ہوتا ہے۔
حجم انحصار: حجم کے اشارے پر زیادہ انحصار کرنا مارکیٹ کے کچھ حالات میں حکمت عملی کو گمراہ کرسکتا ہے ، خاص طور پر کم لیکویڈیٹی یا غیر معمولی تجارتی حجم کے ادوار کے دوران۔
مقررہ فیصد سٹاپ نقصان / منافع لے لو: مقررہ فیصد سٹاپ نقصان اور منافع لینے کا استعمال تمام مارکیٹ کے حالات کے لئے مناسب نہیں ہوسکتا ہے، خاص طور پر ڈرامائی اتار چڑھاؤ کی تبدیلیوں کے دوران.
وقت پر مبنی باہر نکلنے کی حدود: مقررہ زیادہ سے زیادہ انعقاد کے اوقات سے پہلے ہی باہر نکلنے کا سبب بن سکتا ہے جب سازگار رجحانات ابھی تک ختم نہیں ہوئے ہیں، ممکنہ واپسی پر اثر انداز ہوتا ہے.
متحرک پیرامیٹر ایڈجسٹمنٹ: مختلف مارکیٹ سائیکلوں اور اتار چڑھاؤ کو اپنانے کے لئے ایس ایم اے کی مدت، سٹاپ نقصان اور منافع لینے کے فیصد، اور زیادہ سے زیادہ ہولڈنگ اوقات کی متحرک ایڈجسٹمنٹ کو لاگو کریں.
اضافی فلٹرز شامل کریں: تجارتی اشاروں کی درستگی کو بہتر بنانے کے لئے اضافی فلٹرنگ شرائط کے طور پر دیگر تکنیکی اشارے (جیسے آر ایس آئی ، ایم اے سی ڈی ، وغیرہ) متعارف کروائیں۔
موافقت پذیر حجم کی حد: مختلف مارکیٹ مراحل میں حجم کی خصوصیات کو بہتر طور پر اپنانے کے لئے حجم کی حد کو متحرک طور پر ایڈجسٹ کرنے والے میکانزم تیار کریں۔
بہتر اخراج کے طریقہ کار: مارکیٹ کی ساخت یا رفتار کے اشارے پر مبنی ذہین باہر نکلنے کے طریقہ کار کو تلاش کریں تاکہ مقررہ وقت کے باہر نکلنے کی جگہ لے سکیں ، حکمت عملی کی موافقت کو بہتر بنائیں۔
اتار چڑھاؤ ایڈجسٹمنٹ: مارکیٹ کی اتار چڑھاؤ کی بنیاد پر اسٹاپ نقصان اور منافع کی سطح کی متحرک ایڈجسٹمنٹ کو لاگو کریں تاکہ خطرے کو بہتر طریقے سے منظم کیا جاسکے اور منافع حاصل کیا جاسکے۔
کثیر ٹائم فریم تجزیہ: مارکیٹ کے رجحانات اور تبدیلیوں کی نشاندہی کرنے کی حکمت عملی کی صلاحیت کو بہتر بنانے کے لئے متعدد ٹائم فریموں سے ڈیٹا تجزیہ کو ضم کریں۔
مشین لرننگ کی اصلاح: مختلف مارکیٹ کے ماحول میں کارکردگی کو بہتر بنانے کے لئے حکمت عملی کے پیرامیٹرز کو متحرک طور پر بہتر بنانے کے لئے مشین لرننگ الگورتھم کا استعمال کریں۔
/*backtest start: 2024-06-30 00:00:00 end: 2024-07-30 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Simple_CrossOver_Bot_V1_EBO", overlay=true) // INPUTS dateStart_Year = input.int(2018, title="Start Year", minval=2000) dateStart_Month = input.int(1, title="Start Month", minval=1, maxval=12) dateStart_Day = input.int(1, title="Start Day", minval=1, maxval=31) dateEnd_Year = input.int(2019, title="End Year", minval=2000) dateEnd_Month = input.int(1, title="End Month", minval=1, maxval=12) dateEnd_Day = input.int(1, title="End Day", minval=1, maxval=31) fast_SMA_input = input.int(7, title="SMA Fast") slow_SMA_input = input.int(25, title="SMA Slow") volume_SMA_input = input.int(20, title="Volume SMA") stop_loss_percent = input.float(1.0, title="Stop Loss (%)", step=0.1) / 100 take_profit_percent = input.float(2.0, title="Take Profit (%)", step=0.1) / 100 max_bars_in_trade = input.int(50, title="Max Bars in Trade", minval=1) // INDICATORS fast_SMA = ta.sma(close, fast_SMA_input) slow_SMA = ta.sma(close, slow_SMA_input) volume_SMA = ta.sma(volume, volume_SMA_input) // STRATEGY LONG = ta.crossover(fast_SMA, slow_SMA) and fast_SMA > slow_SMA and volume > volume_SMA SHORT = ta.crossunder(fast_SMA, slow_SMA) and fast_SMA < slow_SMA and volume < volume_SMA // TRIGGERS testPeriodStart = timestamp(dateStart_Year, dateStart_Month, dateStart_Day) testPeriodEnd = timestamp(dateEnd_Year, dateEnd_Month, dateEnd_Day) timecondition = true // Track bar index for entries var int long_entry_bar_index = na var int short_entry_bar_index = na if timecondition if LONG strategy.entry(id="LONG", direction=strategy.long) long_entry_bar_index := bar_index if SHORT strategy.entry(id="SHORT", direction=strategy.short) short_entry_bar_index := bar_index // Exit conditions for LONG if not na(long_entry_bar_index) and bar_index - long_entry_bar_index >= max_bars_in_trade strategy.close("LONG") long_entry_bar_index := na // Exit conditions for SHORT if not na(short_entry_bar_index) and bar_index - short_entry_bar_index >= max_bars_in_trade strategy.close("SHORT") short_entry_bar_index := na // Standard exits if LONG strategy.exit("Exit LONG", from_entry="LONG", stop=close * (1 - stop_loss_percent), limit=close * (1 + take_profit_percent)) if SHORT strategy.exit("Exit SHORT", from_entry="SHORT", stop=close * (1 + stop_loss_percent), limit=close * (1 - take_profit_percent)) // PLOTS plot(fast_SMA, color=color.green, linewidth=1, title="Fast SMA") plot(slow_SMA, color=color.yellow, linewidth=1, title="Slow SMA") plot(volume_SMA, color=color.blue, linewidth=1, title="Volume SMA") plotshape(series=LONG, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small) plotshape(series=SHORT, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small) // Uncomment the following lines for alerts // alertcondition(LONG, title="LONG") // alertcondition(SHORT, title="SHORT")