
یہ ایک اے ٹی آر متحرک ایڈجسٹمنٹ پر مبنی ٹرینڈ ٹریکنگ حکمت عملی ہے جس میں داخلہ اور باہر نکلنے کے مقامات کا تعین کرنے کے لئے ایک متحرک اوسط اور اے ٹی آر اشارے کا امتزاج کیا گیا ہے۔ اس حکمت عملی کی بنیادی خصوصیت اے ٹی آر متحرک ایڈجسٹمنٹ کے ذریعہ ایک متحرک اوسط کے اوپر اور نیچے کی سمت ہے ، جب قیمت ٹریک سے ٹکرا جاتی ہے تو زیادہ سے زیادہ داخل ہوتا ہے ، اور اے ٹی آر ضرب پر مبنی اسٹاپ اور اسٹاپ پوائنٹس کا تعین کرتا ہے۔ اس کے علاوہ ، اس حکمت عملی میں ایک جدید دوبارہ داخلہ کا طریقہ کار بھی شامل ہے ، جب قیمت داخلہ کے مقام پر واپس آتی ہے تو دوبارہ پوزیشن کی اجازت دیتا ہے۔
حکمت عملی مندرجہ ذیل اہم عناصر پر مبنی ہے:
یہ ایک اچھی طرح سے ڈیزائن کردہ ، منطقی اور واضح رجحان کی پیروی کرنے والی حکمت عملی ہے ، جو اے ٹی آر کی متحرک ایڈجسٹمنٹ کے ذریعہ اچھی مارکیٹ کی موافقت فراہم کرتی ہے۔ حکمت عملی کا دوبارہ داخلہ کا طریقہ کار ایک جدید نقطہ ہے ، جو اچھے مارکیٹ کے حالات میں اضافی منافع کے مواقع فراہم کرنے کے قابل ہے۔ اگرچہ کچھ خطرات موجود ہیں جن پر توجہ دینے کی ضرورت ہے ، لیکن تجویز کردہ اصلاح کی سمت سے حکمت عملی کی استحکام اور منافع کو مزید بہتر بنایا جاسکتا ہے۔
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("KON SET By Sai", overlay=true, max_lines_count=40)
// INPUTS
length = input.int(10, "Trend Length")
target_multiplier = input.int(0, "Set Targets") // Target adjustment
max_bars = 30 // Number of bars to display the lines after signal
// VARIABLES
var bool inTrade = false
var float entryPrice = na
var float stopLoss = na
var float targetPrice = na
var int barCount = na // Counter to track how many bars have passed since signal
// ATR for stop-loss and target calculation
atr_value = ta.sma(ta.atr(200), 200) * 0.8
// Moving averages for trend detection
sma_high = ta.sma(high, length) + atr_value
sma_low = ta.sma(low, length) - atr_value
// Signal conditions for trend changes
signal_up = ta.crossover(close, sma_high)
signal_down = ta.crossunder(close, sma_low)
// Entry conditions
if not inTrade and signal_up
entryPrice := close
stopLoss := close - atr_value * 2
targetPrice := close + atr_value * (5 + target_multiplier)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=stopLoss, limit=targetPrice)
inTrade := true
barCount := 0 // Reset bar count when signal occurs
// Exit conditions
if inTrade and (close <= stopLoss or close >= targetPrice)
inTrade := false
entryPrice := na
stopLoss := na
targetPrice := na
barCount := na // Reset bar count on exit
// Re-entry logic
if not inTrade and close == entryPrice
entryPrice := close
stopLoss := close - atr_value * 2
targetPrice := close + atr_value * (5 + target_multiplier)
strategy.entry("Re-Long", strategy.long)
strategy.exit("Re-Exit Long", "Re-Long", stop=stopLoss, limit=targetPrice)
inTrade := true
barCount := 0 // Reset bar count when re-entry happens
// Count bars since the signal appeared (max 30 bars)
if inTrade and barCount < max_bars
barCount := barCount + 1
// Plotting lines for entry, stop-loss, and targets (Only during active trade and within max_bars)
entry_line = plot(inTrade and barCount <= max_bars ? entryPrice : na, title="Entry Price", color=color.new(color.green, 0), linewidth=1, style=plot.style_cross)
sl_line = plot(inTrade and barCount <= max_bars ? stopLoss : na, title="Stop Loss", color=color.new(color.red, 0), linewidth=1, style=plot.style_cross)
target_line = plot(inTrade and barCount <= max_bars ? targetPrice : na, title="Target Price", color=color.new(color.blue, 0), linewidth=1, style=plot.style_cross)
// Background color between entry and target/stop-loss (Only when inTrade and within max_bars)
fill(entry_line, target_line, color=color.new(color.green, 90), title="Target Zone")
fill(entry_line, sl_line, color=color.new(color.red, 90), title="Stop-Loss Zone")
// Label updates (reduce overlap and clutter)
if bar_index % 50 == 0 and inTrade and barCount <= max_bars // Adjust label frequency for performance
label.new(bar_index + 1, entryPrice, text="Entry: " + str.tostring(entryPrice, "#.##"), style=label.style_label_left, color=color.green, textcolor=color.white, size=size.small)
label.new(bar_index + 1, stopLoss, text="Stop Loss: " + str.tostring(stopLoss, "#.##"), style=label.style_label_left, color=color.red, textcolor=color.white, size=size.small)
label.new(bar_index + 1, targetPrice, text="Target: " + str.tostring(targetPrice, "#.##"), style=label.style_label_left, color=color.blue, textcolor=color.white, size=size.small)