یہ حکمت عملی اسٹوکاسٹک آسکیلیٹر کا استعمال زیادہ خریدنے اور زیادہ فروخت ہونے والی مارکیٹ کے حالات کی نشاندہی کرنے کے لئے کرتی ہے ، جو ایک غیر مستحکم تجارتی رینج کے اندر قیمتوں میں اتار چڑھاؤ پر فائدہ اٹھانے کے لئے پہلے سے طے شدہ رسک اور انعام کے پیرامیٹرز کے ساتھ تجارت کو متحرک کرتی ہے۔ اس حکمت عملی کے پیچھے بنیادی خیال یہ ہے کہ تجارتی رینج کے نچلے حصے میں خریدیں اور اعلی حصے میں فروخت کریں ، جبکہ خطرہ کو سختی سے کنٹرول کریں۔
اسٹوکاسٹک آسکیلیٹر پر مبنی اتار چڑھاؤ رینج ٹریڈنگ حکمت عملی پہلے سے طے شدہ ٹریڈنگ رینج کے اندر آسکیلیٹر کے زیادہ خریدنے اور زیادہ فروخت ہونے والے سگنلز سے فائدہ اٹھانے کی کوشش کرتی ہے۔ حکمت عملی سخت رسک مینجمنٹ اور تجارتی وقفوں کے ذریعے خطرے کو کنٹرول کرتی ہے۔ اگرچہ اس حکمت عملی کے کچھ فوائد ہیں ، لیکن اس کی کامیابی کا انحصار تجارتی رینج کی درست شناخت پر ہے۔ مستقبل میں اصلاح کی سمتوں میں دیگر تکنیکی اشارے کو جوڑنا ، متحرک اسٹاپ نقصان اور منافع لینے کی سطحوں کو متعارف کرانا ، زیادہ جدید رینج کی نشاندہی کی تکنیکوں کا استعمال کرنا ، اور رجحان فلٹر شامل کرنا شامل ہے۔ عملی طور پر حکمت عملی کو لاگو کرتے وقت ، ذاتی ترجیحات اور رسک رواداری کے مطابق پیرامیٹرز اور رسک مینجمنٹ کے قوانین کو ایڈجسٹ کرنا یقینی بنائیں۔
/*backtest start: 2023-06-11 00:00:00 end: 2024-06-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Range Trading with Stochastic", overlay=true) // Input Parameters overboughtLevel = input.int(80, title="Overbought Level", minval=1, maxval=100) oversoldLevel = input.int(20, title="Oversold Level", minval=1, maxval=100) stochLength = input.int(14, title="Stochastic Length", minval=1) riskPerTrade = input.float(0.01, title="Risk per Trade (%)", minval=0.01, maxval=100, step=0.01) barsBetweenTrades = input.int(20, title="Bars Between Trades", minval=1) // Calculate Stochastic Oscillator k = ta.sma(ta.stoch(close, high, low, stochLength), 3) d = ta.sma(k, 3) // Variables to Track Time Since Last Trade var lastTradeBar = 0 barsSinceLastTrade = bar_index - lastTradeBar // Risk Management atr = ta.atr(14) stopLoss = 2 * atr takeProfit = 2 * atr riskAmount = strategy.equity * riskPerTrade / 100 positionSize = 1 // Entry Conditions longCondition = k < oversoldLevel and strategy.position_size == 0 and barsSinceLastTrade >= barsBetweenTrades shortCondition = k > overboughtLevel and strategy.position_size == 0 and barsSinceLastTrade >= barsBetweenTrades // Entry/Exit Orders if longCondition strategy.entry("Long", strategy.long, qty=positionSize) strategy.exit("Long Exit", "Long", stop=close - stopLoss, limit=close + takeProfit) lastTradeBar := bar_index // Update last trade bar if shortCondition strategy.entry("Short", strategy.short, qty=positionSize) strategy.exit("Short Exit", "Short", stop=close + stopLoss, limit=close - takeProfit) lastTradeBar := bar_index // Update last trade bar // Plot Stochastic plot(k, color=color.blue, title="%K") plot(d, color=color.orange, title="%D") hline(overboughtLevel, color=color.red, title="Overbought") hline(oversoldLevel, color=color.green, title="Oversold")