
یہ ایک مقداری تجارتی حکمت عملی ہے جس میں بائنری مساوی لائن کراس ، آر ایس آئی اوور بیس اور رسک ریٹرن شامل ہیں۔ یہ حکمت عملی قلیل مدتی اور طویل مدتی متحرک اوسط کی کراسنگ کے ذریعہ مارکیٹ کے رجحان کی سمت کا تعین کرتی ہے ، جبکہ آر ایس آئی اشارے کو اوور بیس اور اوور سیل علاقوں کی نشاندہی کرنے کے لئے استعمال کرتی ہے ، جس سے زیادہ درست تجارتی سگنل فلٹرنگ ممکن ہوتی ہے۔ حکمت عملی میں اے ٹی آر پر مبنی متحرک اسٹاپ نقصان کی ترتیب اور فکسڈ رسک ریٹرن پر مبنی منافع کے اہداف کے انتظام کا نظام بھی شامل ہے۔
حکمت عملی نے 9 اور 21 تاریخ کے دو متحرک اوسطوں کو رجحانات کی بنیاد کے طور پر استعمال کیا ، اور آر ایس آئی اشارے کے اوور بیئر اوور سیل علاقے ((35⁄65) کے ذریعے سگنل کی تصدیق کی۔ کثیر سرخی کے حالات میں ، قلیل مدتی اوسطا طویل مدتی اوسط سے اوپر ہونا ضروری ہے اور آر ایس آئی اوور سیل علاقے میں ہے ((35 سے کم) ۔ خالی سرخی کے حالات میں ، قلیل مدتی اوسطا طویل مدتی اوسط سے نیچے ہونا ضروری ہے اور آر ایس آئی اوور سیل علاقے میں ہے ((65 سے زیادہ) ۔ حکمت عملی نے 1.5 گنا اے ٹی آر کی قیمت کا استعمال کرتے ہوئے اسٹاپ نقصان کا فاصلہ طے کیا ، اور 2: 1 پر مبنی خطرہ منافع کے مقابلے میں منافع کا ہدف خود بخود حساب لگایا گیا۔ حد سے زیادہ پوزیشنوں کو روکنے کے لئے ، حکمت عملی نے کم سے کم 3 گھنٹے کی پوزیشن کی حد مقرر کی۔
یہ حکمت عملی متعدد تکنیکی اشارے کے باہمی تعاون کے ذریعے ایک نسبتا complete مکمل تجارتی نظام کی تشکیل کرتی ہے۔ اس میں نہ صرف انٹری سگنل کے معیار پر توجہ دی جاتی ہے ، بلکہ خطرے کے انتظام اور منافع کے اہداف کی ترتیب پر بھی توجہ دی جاتی ہے۔ اگرچہ کچھ مقامات پر اصلاح کی ضرورت ہے ، لیکن مجموعی طور پر فریم ورک کا ڈیزائن معقول ہے ، جس میں عمدہ عملی قدر اور توسیع کی گنجائش ہے۔ حکمت عملی کا ماڈیولر ڈیزائن بھی بعد میں اصلاح کے لئے سہولت فراہم کرتا ہے۔
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("JakeJohn", overlay=true)
// Input parameters
smaShortLength = input(9, title="Short SMA Length")
smaLongLength = input(21, title="Long SMA Length")
lengthRSI = input(14, title="RSI Length")
rsiOverbought = input(65, title="RSI Overbought Level")
rsiOversold = input(35, title="RSI Oversold Level")
riskRewardRatio = input(2, title="Risk/Reward Ratio") // 2:1
atrMultiplier = input(1.5, title="ATR Multiplier") // Multiplier for ATR to set stop loss
// Calculate indicators
smaShort = ta.sma(close, smaShortLength)
smaLong = ta.sma(close, smaLongLength)
rsi = ta.rsi(close, lengthRSI)
atr = ta.atr(14)
// Entry conditions
longCondition = (smaShort > smaLong) and (rsi < rsiOversold) // Buy when short SMA is above long SMA and RSI is oversold
shortCondition = (smaShort < smaLong) and (rsi > rsiOverbought) // Sell when short SMA is below long SMA and RSI is overbought
// Variables for trade management
var float entryPrice = na
var float takeProfit = na
var int entryBarIndex = na
// Entry logic for long trades
if (longCondition and (strategy.position_size == 0))
entryPrice := close
takeProfit := entryPrice + (entryPrice - (entryPrice - (atr * atrMultiplier))) * riskRewardRatio
strategy.entry("Buy", strategy.long)
entryBarIndex := bar_index // Record the entry bar index
label.new(bar_index, high, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)
// Entry logic for short trades
if (shortCondition and (strategy.position_size == 0))
entryPrice := close
takeProfit := entryPrice - (entryPrice - (entryPrice + (atr * atrMultiplier))) * riskRewardRatio
strategy.entry("Sell", strategy.short)
entryBarIndex := bar_index // Record the entry bar index
label.new(bar_index, low, "SELL", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
// Manage trade duration and exit after a minimum of 3 hours
if (strategy.position_size != 0)
// Check if the trade has been open for at least 3 hours (180 minutes)
if (bar_index - entryBarIndex >= 180) // 3 hours in 1-minute bars
if (strategy.position_size > 0)
strategy.exit("Take Profit Long", from_entry="Buy", limit=takeProfit)
else
strategy.exit("Take Profit Short", from_entry="Sell", limit=takeProfit)
// Background colors for active trades
var color tradeColor = na
if (strategy.position_size > 0)
tradeColor := color.new(color.green, 90) // Light green for long trades
else if (strategy.position_size < 0)
tradeColor := color.new(color.red, 90) // Light red for short trades
else
tradeColor := na // No color when no trade is active
bgcolor(tradeColor, title="Trade Background")
// Plotting position tools
if (strategy.position_size > 0)
// Plot long position tool
strategy.exit("TP Long", limit=takeProfit)
if (strategy.position_size < 0)
// Plot short position tool
strategy.exit("TP Short", limit=takeProfit)
// Plotting indicators
plot(smaShort, color=color.green, title="Short SMA", linewidth=2)
plot(smaLong, color=color.red, title="Long SMA", linewidth=2)
// Visual enhancements for RSI
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, color=color.blue, title="RSI", linewidth=2)
// Ensure there's at least one plot function
plot(close, color=color.black, title="Close Price", display=display.none) // Hidden plot for compliance