
یہ ایک مقداری تجارتی حکمت عملی ہے جس میں بل ولیمز کے ایک تہائی K لائن تجزیہ کے طریقہ کار اور متحرک ٹریکنگ اسٹاپ نقصان کی خصوصیت کو یکجا کیا گیا ہے۔ یہ حکمت عملی موجودہ اور سابقہ K لائن کی ساختی خصوصیات کے تجزیہ کے ذریعہ واضح کثیر فاریکس سگنل تیار کرتی ہے اور پوزیشنوں کو محفوظ رکھنے کے لئے ترتیب دینے والے ٹریکنگ اسٹاپ نقصان کے طریقہ کار کا استعمال کرتی ہے ، جس سے عین مطابق انٹری / آؤٹ اور رسک مینجمنٹ کا احساس ہوتا ہے۔
اس حکمت عملی کی بنیادی منطق مندرجہ ذیل اہم حصوں پر مبنی ہے:
یہ ایک منظم ، منطقی اور واضح مقدار میں تجارت کرنے والی حکمت عملی ہے ، جو کلاسیکی تکنیکی تجزیہ کے طریقوں اور جدید رسک مینجمنٹ ٹکنالوجی کے امتزاج کے ذریعہ عمدہ عملی ہے۔ حکمت عملی کے ڈیزائن میں سگنل جنریشن ، ہولڈنگ مینجمنٹ اور رسک کنٹرول جیسے اہم پہلوؤں سمیت ریئل اسٹیٹ تجارت کی ضروریات کو پوری طرح سے مدنظر رکھا گیا ہے۔ مزید اصلاح اور بہتری کے ذریعہ ، اس حکمت عملی کو حقیقی تجارت میں بہتر کارکردگی کا مظاہرہ کرنے کی امید ہے۔
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-16 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("TrinityBar with Trailing Stop", overlay=true, initial_capital=100000,
default_qty_type=strategy.percent_of_equity, default_qty_value=250)
//─────────────────────────────────────────────────────────────
// 1. BAR THIRDS CALCULATIONS
//─────────────────────────────────────────────────────────────
cur_range = high - low
cur_lowerThird = low + cur_range / 3
cur_upperThird = high - cur_range / 3
prev_range = high[1] - low[1]
prev_lowerThird = low[1] + prev_range / 3
prev_upperThird = high[1] - prev_range / 3
//─────────────────────────────────────────────────────────────
// 2. DEFINE BULLISH & BEARISH BAR TYPES (CURRENT & PREVIOUS)
//─────────────────────────────────────────────────────────────
// Current bar types
is_1_3 = (open <= cur_lowerThird) and (close >= cur_upperThird)
is_3_3 = (open >= cur_upperThird) and (close >= cur_upperThird)
is_2_3 = (open > cur_lowerThird) and (open < cur_upperThird) and (close >= cur_upperThird)
is_3_1 = (open >= cur_upperThird) and (close <= cur_lowerThird)
is_1_1 = (open <= cur_lowerThird) and (close <= cur_lowerThird)
is_2_1 = (open > cur_lowerThird) and (open < cur_upperThird) and (close <= cur_lowerThird)
// Previous bar types
prev_is_1_3 = (open[1] <= prev_lowerThird) and (close[1] >= prev_upperThird)
prev_is_3_3 = (open[1] >= prev_upperThird) and (close[1] >= prev_upperThird)
prev_is_2_3 = (open[1] > prev_lowerThird) and (open[1] < prev_upperThird) and (close[1] >= prev_upperThird)
prev_is_3_1 = (open[1] >= prev_upperThird) and (close[1] <= prev_lowerThird)
prev_is_1_1 = (open[1] <= prev_lowerThird) and (close[1] <= prev_lowerThird)
prev_is_2_1 = (open[1] > prev_lowerThird) and (open[1] < prev_upperThird) and (close[1] <= prev_lowerThird)
//─────────────────────────────────────────────────────────────
// 3. VALID SIGNAL CONDITIONS
//─────────────────────────────────────────────────────────────
validBuy = (prev_is_2_3 or prev_is_3_3 or prev_is_1_3) and (is_1_3 or is_3_3)
validSell = (prev_is_2_1 or prev_is_1_1 or prev_is_3_1) and (is_1_1 or is_3_1)
//─────────────────────────────────────────────────────────────
// 4. PLOT SIGNAL TRIANGLES
//─────────────────────────────────────────────────────────────
plotshape(validBuy, title="Valid Buy", style=shape.triangleup, location=location.belowbar,
color=color.green, size=size.small, text="B")
plotshape(validSell, title="Valid Sell", style=shape.triangledown, location=location.abovebar,
color=color.red, size=size.small, text="S")
//─────────────────────────────────────────────────────────────
// 5. MARKET ORDER EXECUTION BASED ON SIGNALS
//─────────────────────────────────────────────────────────────
if validBuy
// Close any short positions.
strategy.close("Short", comment="")
// If not already long, enter a market long.
if strategy.position_size <= 0
strategy.entry("Long", strategy.long, comment="")
if validSell
// Close any long positions.
strategy.close("Long", comment="")
// If not already short, enter a market short.
if strategy.position_size >= 0
strategy.entry("Short", strategy.short, comment="")
//─────────────────────────────────────────────────────────────
// 6. TRAILING STOP LOSS FUNCTION
//─────────────────────────────────────────────────────────────
// Inputs for trailing stop settings:
trailBars = input.int(title="Trailing Stop Bars Back", defval=1, minval=1)
trailTF = input.timeframe(title="Trailing Stop Timeframe", defval="") // "" = current timeframe
// For long positions, use the low from 'trailBars' bars back on the specified timeframe.
// For short positions, use the high from 'trailBars' bars back.
trailStopLong = request.security(syminfo.tickerid, trailTF, low[trailBars])
trailStopShort = request.security(syminfo.tickerid, trailTF, high[trailBars])
// Apply trailing stops if a position is open.
if strategy.position_size > 0
strategy.exit("Trailing Stop Long", from_entry="Long", stop=trailStopLong)
if strategy.position_size < 0
strategy.exit("Trailing Stop Short", from_entry="Short", stop=trailStopShort)