
এই কৌশলটি একটি ব্যাপক ট্রেডিং সিস্টেম যা একাধিক সময়কাল বিশ্লেষণ, ফেয়ার ভ্যালু গ্যাপ (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)