
یہ حکمت عملی ایک ٹریڈنگ سسٹم ہے جو متعدد تکنیکی اشارے پر مبنی ہے ، جس میں رجحان سے باخبر رہنے اور صدمے کے اشارے کی طاقت کو جوڑ دیا گیا ہے۔ اس کی بنیادی منطق یہ ہے کہ ایس ایم اے اوسط کی کراسنگ کے ذریعہ رجحان کی سمت کا فیصلہ کیا جائے ، ایڈکس کا استعمال کرتے ہوئے رجحان کی طاقت کی تصدیق کی جائے ، پھر رجحان کی سمت میں بہترین انٹری پوائنٹس تلاش کرنے کے لئے بے ترتیب آر ایس آئی کا استعمال کیا جائے ، اور منافع کی حفاظت کے لئے ٹریکنگ اسٹاپ نقصانات کا استعمال کیا جائے۔ یہ حکمت عملی 5 منٹ کے دورانیے پر تجارت کے لئے موزوں ہے ، جو مارکیٹ میں اہم رجحان سازی کے مواقع کو مؤثر طریقے سے پکڑ سکتی ہے۔
اس حکمت عملی کا بنیادی اصول یہ ہے:
یہ حکمت عملی متعدد کلاسیکی تکنیکی اشارے کو ملا کر ایک جامع تجارتی نظام بناتی ہے۔ یہ نہ صرف اہم رجحانات کو پکڑنے کے قابل ہے ، بلکہ رجحانات میں داخل ہونے کے لئے بہترین نقطہ تلاش کرنے کے قابل بھی ہے ، اور اس کے ساتھ ہی ایک مکمل رسک مینجمنٹ میکانزم ہے۔ اگرچہ کچھ موروثی خطرات موجود ہیں ، لیکن مسلسل اصلاح اور باریک پیرامیٹرز کی ایڈجسٹمنٹ کے ذریعہ ، اس حکمت عملی کو مختلف مارکیٹ کے ماحول میں مستحکم کارکردگی برقرار رکھنے کا امکان ہے۔ حکمت عملی کا ماڈیولر ڈیزائن بھی بعد میں اصلاح کے لئے ایک اچھی بنیاد فراہم کرتا ہے ، جو اصل تجارتی اثر کے مطابق مستقل طور پر بہتر اور بہتر بنایا جاسکتا ہے۔
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-17 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("XAU/USD 5M SMA + Stochastic RSI + ADX Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)
// === Входные параметры ===
sma_fast_length = input(20, title="SMA Fast Period")
sma_slow_length = input(200, title="SMA Slow Period")
stoch_k_length = input(14, title="Stochastic RSI K Length")
stoch_d_length = input(3, title="Stochastic RSI D Length")
adx_length = input(10, title="ADX Period")
adx_smoothing = input(10, title="ADX Smoothing Period")
atr_length = input(14, title="ATR Period")
// === Уровни фильтрации ===
adx_min_trend = input(20, title="ADX Minimum Trend Strength") // Было 25 → уменьшено до 20
stoch_buy_level = input(30, title="Stoch RSI Buy Level") // Было 20 → увеличено для входов
stoch_sell_level = input(70, title="Stoch RSI Sell Level") // Было 80 → снижено для входов
// === Трейлинг-стоп ===
use_trailing_stop = input(true, title="Enable Trailing Stop")
trailing_stop_pips = input(40, title="Trailing Stop (Pips)") // Было 50 → уменьшено для активной торговли
trailing_step_pips = input(5, title="Trailing Step (Pips)")
// === Управление позициями ===
entry_delay = input(1, title="Bars Delay Before Re-Entry") // Было 2 → уменьшено до 1
// === Расчёт индикаторов ===
sma_fast = ta.sma(close, sma_fast_length)
sma_slow = ta.sma(close, sma_slow_length)
[diPlus, diMinus, adx_value] = ta.dmi(adx_length, adx_smoothing)
atr_value = ta.atr(atr_length)
// === Stochastic RSI ===
stoch_rsi_k = ta.stoch(close, stoch_k_length, stoch_d_length, stoch_d_length)
stoch_rsi_d = ta.sma(stoch_rsi_k, stoch_d_length)
// === Фильтр волатильности (Убран, если мешает входам) ===
// atr_threshold = ta.sma(atr_value, 20)
// volatility_ok = atr_value > atr_threshold // Комментируем, если ATR слишком строгий
// === Пересечения ===
sma_crossover = ta.crossover(sma_fast, sma_slow)
sma_crossunder = ta.crossunder(sma_fast, sma_slow)
stoch_rsi_crossover = ta.crossover(stoch_rsi_k, stoch_rsi_d)
stoch_rsi_crossunder = ta.crossunder(stoch_rsi_k, stoch_rsi_d)
// === Условия входа ===
longCondition = sma_crossover and adx_value > adx_min_trend and stoch_rsi_crossover and stoch_rsi_k < stoch_buy_level
shortCondition = sma_crossunder and adx_value > adx_min_trend and stoch_rsi_crossunder and stoch_rsi_k > stoch_sell_level
// === Исправленный таймер на повторные входы ===
barsSinceExit = ta.barssince(strategy.position_size == 0)
canReenter = not na(barsSinceExit) and barsSinceExit > entry_delay
// === Переворот позиции (исправлен) ===
if strategy.position_size > 0 and shortCondition and canReenter
strategy.close("BUY")
strategy.entry("SELL", strategy.short)
if strategy.position_size < 0 and longCondition and canReenter
strategy.close("SELL")
strategy.entry("BUY", strategy.long)
// === Открытие позиций ===
if strategy.position_size == 0 and longCondition
strategy.entry("BUY", strategy.long)
if strategy.position_size == 0 and shortCondition
strategy.entry("SELL", strategy.short)
// === Трейлинг-стоп (работает корректно) ===
if use_trailing_stop
strategy.exit("Exit Long", from_entry="BUY", trail_points=trailing_stop_pips, trail_offset=trailing_step_pips)
strategy.exit("Exit Short", from_entry="SELL", trail_points=trailing_stop_pips, trail_offset=trailing_step_pips)
// === Визуализация ===
plot(sma_fast, color=color.blue, title="SMA 20")
plot(sma_slow, color=color.red, title="SMA 200")
hline(stoch_buy_level, title="Stoch RSI Buy Level", color=color.blue)
hline(stoch_sell_level, title="Stoch RSI Sell Level", color=color.purple)
hline(adx_min_trend, title="ADX Min Trend Level", color=color.orange)