
اس حکمت عملی میں ، اسٹوکاسٹک آسکیلیٹر کا استعمال کیا جاتا ہے تاکہ مارکیٹ میں زیادہ خرید اور زیادہ فروخت کی شناخت کی جاسکے ، اور اس سے پہلے سے طے شدہ خطرہ اور واپسی کے پیرامیٹرز کے تحت تجارت کو متحرک کیا جاسکتا ہے ، تاکہ تجارت کے اتار چڑھاؤ والے علاقوں میں منافع حاصل کیا جاسکے۔ اس حکمت عملی کا بنیادی نظریہ یہ ہے کہ تجارت کے علاقوں میں کم قیمت پر خریدیں اور تجارت کے علاقوں میں زیادہ قیمت پر فروخت کریں ، جبکہ خطرے کو سختی سے کنٹرول کریں۔
بے ترتیب oscillating اشارے پر مبنی اتار چڑھاؤ کے بینڈ ٹریڈنگ حکمت عملی پہلے سے طے شدہ ٹریڈنگ بینڈ کے اندر تجارت کو متحرک کرنے کی کوشش کرتی ہے ، بے ترتیب اشارے کے اوور خرید اور اوور فروخت سگنل کا استعمال کرتے ہوئے۔ یہ حکمت عملی سخت رسک مینجمنٹ اور ٹریڈنگ وقفے کے ذریعہ خطرے کو کنٹرول کرتی ہے۔ اگرچہ اس حکمت عملی کے کچھ فوائد ہیں ، لیکن اس کی کامیابی کا انحصار زیادہ تر تجارت کے بینڈ کی صحیح شناخت پر ہے۔ مستقبل کی اصلاح کی سمت میں دیگر تکنیکی اشارے ، متحرک اسٹاپ نقصان کی حد ، جدید ترین بینڈ شناخت کی تکنیک کا استعمال اور رجحان فلٹر شامل کرنا شامل ہے۔ عملی طور پر ، حکمت عملی کے پیرامیٹرز اور رسک مینجمنٹ کے قواعد کو ذاتی ترجیحات اور خطرے سے نمٹنے کی اہلیت کے مطابق ایڈجسٹ کرنا ضروری ہے۔
/*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")