
حکمت عملی ایک جامع تجارتی نظام ہے جو متعدد ٹائم فریم تجزیہ، فیئر ویلیو گیپس (FVG) اور بریک آؤٹ آف سٹرکچر (BOS) کو یکجا کرتا ہے۔ یہ اعلی ٹائم فریموں پر قیمت کے ڈھانچے میں بریک آؤٹ کی نشاندہی کرتے ہوئے ممکنہ تجارتی اندراجات کی نشاندہی کرتا ہے جبکہ کم ٹائم فریموں پر منصفانہ قدر کے فرق کو تلاش کرتا ہے۔ حکمت عملی خطرے کے انتظام کے نظام کو بھی مربوط کرتی ہے، بشمول سٹاپ لاس اور منافع کے اہداف کی خودکار ترتیب۔
حکمت عملی کی بنیادی منطق تین اہم ستونوں پر بنائی گئی ہے: پہلا، قیمت کے ڈھانچے (BOS) میں بریک آؤٹ کی نشاندہی کرنے کے لیے اعلیٰ ٹائم فریم (پہلے سے طے شدہ 1 گھنٹہ یا اس سے اوپر) کا استعمال، جو ٹریڈنگ کی سمت کے لیے بنیادی فریم ورک فراہم کرتا ہے۔ دوم، کم وقت کے فریموں پر فیئر ویلیو گیپ (FVG) کی تلاش یہ بتاتی ہے کہ اس علاقے میں مارکیٹ میں سپلائی اور ڈیمانڈ کا ممکنہ عدم توازن ہے۔ آخر میں، ان دونوں شرائط کو موجودہ قیمت کی پوزیشن کے ساتھ ملا کر تجارتی سگنل کو متحرک کیا جاتا ہے جب قیمت سازگار پوزیشن میں ہو۔ سسٹم ہر تجارت کے خطرے کو رسک ریوارڈ ریشو اور اسٹاپ لاس فیکٹر کے ذریعے منظم کرتا ہے۔
یہ حکمت عملی کثیر وقتی تجزیہ، قیمت کے ڈھانچے کی کامیابیوں اور مناسب قدر کے فرق کو ملا کر ایک مکمل تجارتی نظام تیار کرتی ہے۔ اس کے فوائد اس کے کثیر جہتی تجزیہ کے طریقوں اور خطرے کے انتظام کے کامل طریقہ کار میں مضمر ہیں، لیکن تاجروں کو ابھی بھی مارکیٹ کے حقیقی حالات کی بنیاد پر مناسب پیرامیٹر کی اصلاح اور رسک کنٹرول کرنے کی ضرورت ہے۔ اس کے بعد کی اصلاح سگنل کی تصدیق، متحرک پیرامیٹر ایڈجسٹمنٹ اور مارکیٹ کے ماحول کی فلٹرنگ سے شروع ہو سکتی ہے تاکہ حکمت عملی کے استحکام اور وشوسنییتا کو مزید بہتر بنایا جا سکے۔
/*backtest
start: 2024-01-17 00:00:00
end: 2025-01-15 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("ICT Strategy with Historical Backtest", overlay=true)
// === Настройки ===
tf = input.timeframe("60", title="Higher Timeframe (1H or above)") // Таймфрейм для анализа BOS
fvg_length = input(3, title="FVG Lookback Length") // Длина для поиска FVG
risk_reward = input(2, title="Risk-Reward Ratio") // Риск-вознаграждение
show_fvg_boxes = input(true, title="Show FVG Boxes") // Показывать FVG
stop_loss_factor = input.float(1.0, title="Stop Loss Factor") // Множитель для стоп-лосса
// === Переменные для анализа ===
var float bos_high = na
var float bos_low = na
// Получаем данные с более старшего таймфрейма
htf_high = request.security(syminfo.tickerid, tf, high)
htf_low = request.security(syminfo.tickerid, tf, low)
htf_close = request.security(syminfo.tickerid, tf, close)
// Определение BOS (Break of Structure) на старшем таймфрейме
bos_up = ta.highest(htf_high, fvg_length) > ta.highest(htf_high[1], fvg_length)
bos_down = ta.lowest(htf_low, fvg_length) < ta.lowest(htf_low[1], fvg_length)
// Обновляем уровни BOS
if (bos_up)
bos_high := ta.highest(htf_high, fvg_length)
if (bos_down)
bos_low := ta.lowest(htf_low, fvg_length)
// === Определение FVG (Fair Value Gap) ===
fvg_up = low > high[1] and low[1] > high[2]
fvg_down = high < low[1] and high[1] < low[2]
// Визуализация FVG (Fair Value Gap)
// if (show_fvg_boxes)
// if (fvg_up)
// box.new(left=bar_index[1], top=high[1], right=bar_index, bottom=low, bgcolor=color.new(color.green, 90), border_color=color.green)
// if (fvg_down)
// box.new(left=bar_index[1], top=high, right=bar_index, bottom=low[1], bgcolor=color.new(color.red, 90), border_color=color.red)
// === Логика сделок ===
// Условия для входа в Лонг
long_condition = bos_up and fvg_up and close < bos_high
if (long_condition)
strategy.entry("Long", strategy.long, stop=low * stop_loss_factor, limit=low + (high - low) * risk_reward)
// Условия для входа в Шорт
short_condition = bos_down and fvg_down and close > bos_low
if (short_condition)
strategy.entry("Short", strategy.short, stop=high * stop_loss_factor, limit=high - (high - low) * risk_reward)
// === Надписи для прогнозируемых сделок ===
if (long_condition)
label.new(bar_index, low, text="Potential Long", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)
if (short_condition)
label.new(bar_index, high, text="Potential Short", color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)