মাল্টি-ইন্ডিকেটর ট্রেন্ড লাইন ক্রসওভার ডায়নামিক স্টপ লস পরিমাণগত ট্রেডিং কৌশল

RSI MACD 线性回归 趋势线 支撑阻力 成交量 ATR 动态止损 市场结构
সৃষ্টির তারিখ: 2025-06-23 11:25:43 অবশেষে সংশোধন করুন: 2025-06-23 11:25:43
অনুলিপি: 3 ক্লিকের সংখ্যা: 239
2
ফোকাস
319
অনুসারী

মাল্টি-ইন্ডিকেটর ট্রেন্ড লাইন ক্রসওভার ডায়নামিক স্টপ লস পরিমাণগত ট্রেডিং কৌশল মাল্টি-ইন্ডিকেটর ট্রেন্ড লাইন ক্রসওভার ডায়নামিক স্টপ লস পরিমাণগত ট্রেডিং কৌশল

ওভারভিউ

মাল্টি-ইনডিকেটর ট্রেন্ড লাইন ক্রস ডায়নামিক স্টপ লস কোয়ান্টাম ট্রেডিং কৌশল একটি সমন্বিত ট্রেডিং সিস্টেম যা ট্রেন্ড লাইন বিশ্লেষণ, প্রযুক্তিগত সূচক এবং ঝুঁকি ব্যবস্থাপনাকে একত্রিত করে। এই কৌশলটির মূল অংশটি হ’ল উচ্চ সম্ভাব্যতার ব্যবসায়ের সুযোগগুলি সনাক্ত করার জন্য আরএসআই, এমএসিডি, ক্রয়-বিক্রয় এবং বাজার কাঠামোর বিশ্লেষণের সাথে একত্রে একটি গতিশীল ট্রেন্ড লাইন তৈরি করা। এই কৌশলটি এটিআর ডায়নামিক স্টপ লস ব্যবহার করে, ঝুঁকি শতাংশ পদ্ধতি ব্যবহার করে পজিশন পরিচালনা করে এবং দ্বিগুণ লাভের লক্ষ্য নির্ধারণ করে। এই কৌশলটি বিশেষত অস্থির বাজারের জন্য উপযুক্ত, একাধিক নিশ্চিতকরণ প্রক্রিয়া এবং কঠোর ঝুঁকি নিয়ন্ত্রণের মাধ্যমে ব্যবসায়ের সাফল্যের হার বাড়ায়।

কৌশল নীতি

এই কৌশলটি নিম্নলিখিত মূল নীতিগুলির উপর ভিত্তি করে তৈরি করা হয়েছেঃ

  1. গতিশীল প্রবণতা লাইন সনাক্তকরণ: লিনিয়ার রিগ্রেশন প্রযুক্তি ব্যবহার করে সমর্থন এবং প্রতিরোধের প্রবণতা লাইন তৈরি করুন এবং প্রবণতা লাইনগুলির সাথে দামের সম্পর্ক বিশ্লেষণ করে সম্ভাব্য বিপর্যয় এবং প্রত্যাখ্যান চিহ্নিত করুন।

  2. মাল্টি-ইনডিকেটর রেজোনেশন নিশ্চিত

    • RSI (Relative Strength to Weakness Index) একটি সূচক যা ওভার-বয় ওভার-সেলিংয়ের জন্য ব্যবহৃত হয়।
    • MACD গতির দিকনির্দেশের জন্য ব্যবহৃত হয়
    • বাজারে অংশগ্রহণ নিশ্চিত করার জন্য বিক্রির পরিমাণে ব্রেকডাউন
    • মার্কেট স্ট্রাকচারাল অ্যানালিসিস (উচ্চতম নিম্নতম / নিম্নতম উচ্চতম) সামগ্রিক প্রবণতা নিশ্চিত করার জন্য ব্যবহৃত হয়
  3. ট্রেডিং সিস্টেম ভেঙে ফেলা: যখন দামের সাথে লেনদেনের পরিমাণ প্রতিরোধ বা সমর্থন অতিক্রম করে, তখন একটি ব্রেক ট্রেডিং সিগন্যাল ট্রিগার করে।

  4. ঝুঁকি ব্যবস্থাপনা সিস্টেম

    • অ্যাকাউন্টের ঝুঁকি শতাংশ পদ্ধতি ব্যবহার করে পজিশনের আকার নির্ধারণ করুন
    • ATR গুণক ব্যবহার করে গতিশীল স্টপ লস সেট করুন
    • বিভিন্ন মূল্যের লক্ষ্যমাত্রায় ধারাবাহিক মুনাফা অর্জনের কৌশল বাস্তবায়ন করুন
  5. লেনদেন কার্যকর করার লজিক

    • মাল্টি-হেড প্রবেশঃ মূল্য সমর্থন থেকে ফিরে আসে + আরএসআই ওভারসোল্ড + এমএসিডি কলামযুক্ত চার্ট বৃদ্ধি + ব্রেকডাউন + বাজারের কাঠামোর দিকে তাকান
    • শূন্যপদ প্রবেশঃ মূল্য প্রতিরোধের স্থানে প্রত্যাখ্যান + আরএসআই ওভারবয় + এমএসিডি কলামযুক্ত চার্টটি হ্রাস পেয়েছে + ব্রেকিং ভলিউম + বাজারের কাঠামোর পতন
    • ব্রেক-ইনঃ মূল প্রবণতা লাইন অতিক্রম করে + লেনদেনের পরিমাণ নিশ্চিত

কৌশলগত সুবিধা

  1. সম্পূর্ণ বাজার বিশ্লেষণ: ট্রেন্ড লাইন, কম্পন সূচক, গতিশীলতা সূচক এবং লেনদেনের পরিমাণ বিশ্লেষণ সহ বিভিন্ন প্রযুক্তিগত বিশ্লেষণ পদ্ধতির সমন্বয়, যা একটি বিস্তৃত বাজার দৃষ্টিভঙ্গি সরবরাহ করে এবং মিথ্যা সংকেত হ্রাস করে।

  2. গতিশীল বাজার অবস্থার সাথে খাপ খাইয়ে নেওয়া: ট্রেন্ড লাইনটি লিনিয়ার রিগ্রেশন ডায়নামিক ক্যালকুলেশনের মাধ্যমে বিভিন্ন বাজার পরিবেশের সাথে খাপ খাইয়ে নিতে সক্ষম এবং স্ট্যাটিক সাপোর্ট রেসপন্স পয়েন্টের তুলনায় আরও নমনীয়।

  3. একাধিক নিশ্চিতকরণ ব্যবস্থা: একাধিক শর্ত পূরণ করা প্রয়োজন যাতে ট্রেডিং সিগন্যাল ট্রিগার করা যায়, যা সিগন্যালের গুণমানকে উল্লেখযোগ্যভাবে উন্নত করে এবং ত্রুটিপূর্ণ লেনদেনকে হ্রাস করে।

  4. ভাল ঝুঁকি ব্যবস্থাপনা

    • প্রতিটি লেনদেনের ঝুঁকি অ্যাকাউন্টের একটি নির্দিষ্ট শতাংশে সীমাবদ্ধ
    • বাজারের অস্থিরতার সাথে সামঞ্জস্য রেখে ATR-এর গতিশীল ক্ষতি বন্ধ
    • সেগমেন্টাল মুনাফা কৌশল ঝুঁকি-ফেরতের অনুপাতকে অনুকূল করে
    • লিভারেজ সীমাবদ্ধতা অতিরিক্ত ঝুঁকি প্রতিরোধ করে
  5. ভিজ্যুয়াল ফিডব্যাককৌশলগুলি ট্রেন্ড লাইন, সংকেত এবং বাজারের অবস্থা সম্পর্কে ভিজ্যুয়াল প্রতিক্রিয়া সরবরাহ করে, যা ব্যবসায়ীদের বাজার পরিবেশ এবং কৌশল কার্যকরকরণের আরও ভাল বোঝার জন্য সহায়তা করে।

  6. নমনীয় প্যারামিটার সেটিং: কৌশল ব্যবহারকারীদের ট্রেডিং প্রজাতি এবং ব্যক্তিগত ঝুঁকি পছন্দ অনুসারে প্যারামিটারগুলি সামঞ্জস্য করতে দেয়, যা অভিযোজনযোগ্যতা বাড়ায়।

কৌশলগত ঝুঁকি

  1. পরামিতি সংবেদনশীলতাকৌশলটি একাধিক প্যারামিটার সেটিংয়ের উপর নির্ভর করে, যার মধ্যে রয়েছে ট্রেন্ড লাইনের দৈর্ঘ্য, আরএসআই থ্রেশহোল্ড এবং এমএসিডি প্যারামিটার ইত্যাদি। অনুপযুক্ত প্যারামিটার সেটিংটি অত্যধিক ট্রেডিং বা মিস করা সুযোগের কারণ হতে পারে। সমাধানটি হল প্যারামিটারগুলিকে অনুকূলিতকরণ করে এবং বিভিন্ন বাজারের অবস্থার জন্য বিভিন্ন প্যারামিটার কনফিগারেশন সেট করা।

  2. একাধিক শর্তাধীন লেনদেনের সীমাবদ্ধতা: একাধিক নিশ্চিতকরণ ব্যবস্থা যদিও সংকেতের গুণমান বাড়ায়, তবে এটি ব্যবসায়ের সুযোগ হ্রাস করতে পারে, কিছু বাজার পরিবেশে দীর্ঘ সময়ের জন্য সংকেত ট্রিগার করতে পারে না। সমাধানটি হ’ল শর্তাদি ওজন সিস্টেম বাড়ানোর বিষয়টি বিবেচনা করা, যখন কিছু শর্ত বিশেষভাবে শক্তিশালী হয় তখন অন্যান্য শর্তের প্রয়োজনীয়তা শিথিল করার অনুমতি দেয়।

  3. ট্রেন্ড লাইন গণনার জটিলতা: কিছু চরম বাজার অবস্থার অধীনে, বিশেষত তীব্রভাবে ওঠানামা বা হঠাৎ পাল্টা বাজারে, লিনিয়ার রিটার্ন ট্রেন্ড লাইনটি সঠিক নাও হতে পারে। সমাধানটি হ’ল অন্যান্য সমর্থনকারী প্রতিরোধের সনাক্তকরণের পদ্ধতি যেমন মূল মূল্য বা চলমান গড়ের সাথে একত্রিত করা।

  4. অবস্থান গণনা নির্ভরশীল স্টপ লস

  5. প্রত্যাহারের ঝুঁকি: ঝুঁকি ব্যবস্থাপনা ব্যবস্থা সত্ত্বেও, চরম বাজার পরিস্থিতিতে, যেমন ঝড় বা দামের উড়ন্ত, প্রকৃত ক্ষতি প্রত্যাশার চেয়ে বেশি হতে পারে। সমাধান হল অতিরিক্ত বাজার অস্থিরতা ফিল্টার যুক্ত করা, পজিশন হ্রাস করা বা চরম অস্থিরতার সময় ট্রেডিং স্থগিত করা।

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

  1. মেশিন লার্নিং: মেশিন লার্নিং অ্যালগরিদমের প্রবর্তন যা স্বয়ংক্রিয়ভাবে প্যারামিটারগুলিকে অনুকূল করে তোলে, বিভিন্ন বাজারের পরিবেশের গতিশীলতার উপর ভিত্তি করে আরএসআই থ্রেশহোল্ড, এমএসিডি প্যারামিটার এবং ট্রেন্ড লাইনের দৈর্ঘ্যকে সামঞ্জস্য করে। এটি বিভিন্ন বাজারের পর্যায়ে স্থির প্যারামিটারগুলির সীমাবদ্ধতা অতিক্রম করতে পারে এবং কৌশলগত অভিযোজনযোগ্যতা বাড়িয়ে তুলতে পারে।

  2. বাজার পরিবেশের শ্রেণীবিভাগ: বাজার পরিবেশ সনাক্তকরণ সিস্টেম বাস্তবায়ন করুন, বাজারকে ট্রেন্ডিং, ব্যাচ টাইপ এবং ট্রান্সফার তিনটি রাজ্যে বিভক্ত করুন এবং প্রতিটি রাজ্যের জন্য বিভিন্ন ট্রেডিং নিয়ম ব্যবহার করুন। এটি অপ্রয়োজনীয় বাজার পরিবেশে অত্যধিক লেনদেন এড়াতে পারে।

  3. সূচক ওজনের ব্যবস্থা: একটি গতিশীল সূচক ওজন ব্যবস্থা স্থাপন করা, যা কিছু সূচক সংকেত বিশেষভাবে শক্তিশালী হলে অন্যান্য সূচক গুরুত্ব হ্রাস করার অনুমতি দেয়। এটি একাধিক নিশ্চিতকরণ সুবিধা বজায় রাখার সাথে সাথে লেনদেনের ফ্রিকোয়েন্সি বৃদ্ধি করতে পারে।

  4. ট্রেন্ড লাইন অ্যালগরিদমের উন্নতিট্রেন্ড লাইন সনাক্তকরণের আরও জটিল অ্যালগরিদম যেমন মাল্টিপল রিগ্রেশন বা সাপোর্ট ভেক্টর মেশিন (এসভিএম) ব্যবহার করে বিভিন্ন বাজারের অবস্থার অধীনে ট্রেন্ড লাইনের নির্ভুলতা বাড়ানো যায়।

  5. ঝুঁকি ব্যবস্থাপনা

    • ডায়নামিক ঝুঁকি শতাংশ, বাজার অস্থিরতা উপর ভিত্তি করে প্রতিটি লেনদেনের ঝুঁকি সমন্বয়
    • মুনাফা বাড়ান, ক্ষতি ট্র্যাক করুন এবং অর্জিত মুনাফা রক্ষা করুন
    • কানেক্টিভিটি বিশ্লেষণ প্রবর্তন, একই দিকে লেনদেনের সামগ্রিক ঝুঁকি হোল্ডিং নিয়ন্ত্রণ
  6. সংবেদনশীলতা সংহতমার্কেট ইমোশন ইন্ডিকেটর যেমন ভোল্টেবিলিটি ইন্ডিকেটর (VIX) বা তহবিলের প্রবাহের ডেটা যুক্ত করুন অতিরিক্ত ফিল্টারিংয়ের শর্ত হিসাবে, যাতে বাজারের চরম ইমোশনে লেনদেন এড়ানো যায়।

সারসংক্ষেপ

মাল্টি-ইনডিকেটর ট্রেন্ডলাইন ক্রস ডায়নামিক স্টপ লস কোয়ান্টাম ট্রেডিং কৌশলটি একটি বিস্তৃত ট্রেডিং সিস্টেম যা ট্রেডারদের জন্য উচ্চমানের ট্রেডিং সংকেত সরবরাহ করে ট্রেন্ডলাইন বিশ্লেষণ, প্রযুক্তিগত সূচক এবং কঠোর ঝুঁকি পরিচালনার সমন্বয়ে। এই কৌশলটির সর্বাধিক সুবিধা হ’ল এর একাধিক নিশ্চিতকরণ ব্যবস্থা এবং একটি উন্নত ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা, তবে প্যারামিটার সংবেদনশীলতা এবং ট্রেডিং ফ্রিকোয়েন্সি সীমাবদ্ধতার মতো সম্ভাব্য সমস্যাগুলির বিষয়েও মনোযোগ দেওয়া দরকার।

ট্রেন্ড লাইন অ্যালগরিদমের অপ্টিমাইজেশান, গতিশীল প্যারামিটার সমন্বয়, বাজার পরিবেশের শ্রেণিবিন্যাস এবং ঝুঁকি ব্যবস্থাপনা সিস্টেমের বর্ধিতকরণের মাধ্যমে এই কৌশলটি আরও স্থিতিশীলতা এবং অভিযোজনযোগ্যতা বাড়িয়ে তুলতে পারে। এটি একটি সামগ্রিক ট্রেডিং ফ্রেমওয়ার্ক যা কিছু অভিজ্ঞতার সাথে ব্যবসায়ীদের জন্য বিবেচনা করা উচিত, বিশেষত যারা ঝুঁকি ব্যবস্থাপনার দিকে মনোনিবেশ করে এবং উচ্চ মানের সংকেত ব্যবসায়ের জন্য অপেক্ষা করতে ইচ্ছুক।

এই কৌশলটি প্রযুক্তিগত বিশ্লেষণের একাধিক মাত্রা, যার মধ্যে রয়েছে মূল্যের আকৃতি, সূচকীয় অনুরণন এবং লেনদেনের পরিমাণ নিশ্চিতকরণ, একটি একীভূত লেনদেনের সিদ্ধান্ত গ্রহণের সিস্টেম গঠন করে। কঠোর প্রবেশের শর্তাবলী এবং স্পষ্ট ঝুঁকি পরিচালনার নিয়মের মাধ্যমে এটি একটি শৃঙ্খলাবদ্ধ লেনদেনের পদ্ধতি সরবরাহ করে যা ব্যবসায়ীদের উদ্বেগজনক বাজারে মানসিকভাবে স্থিতিশীল থাকতে সহায়তা করে এবং একটি সুসংগত লেনদেনের পরিকল্পনা সম্পাদন করে।

কৌশল সোর্স কোড
/*backtest
start: 2024-06-23 00:00:00
end: 2024-09-09 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Advanced Crypto Trend Line Strategy", overlay=true, margin_long=100, margin_short=100)

// ================================
// INPUT PARAMETERS
// ================================

// Crypto Selection
crypto_type = input.string("BTC", "Cryptocurrency", options=["BTC", "SOL", "AUTO"])

// Trend Line Parameters
trendline_length = input.int(20, "Trend Line Calculation Length", minval=10, maxval=50)
min_touches = input.int(2, "Minimum Trend Line Touches", minval=2, maxval=5)
breakout_threshold = input.float(0.5, "Breakout Threshold %", minval=0.1, maxval=2.0) / 100

// Risk Management
risk_percent = input.float(2.0, "Risk Per Trade %", minval=0.5, maxval=5.0) / 100
tp1_ratio = input.float(2.0, "Take Profit 1 Ratio", minval=1.0, maxval=5.0)
tp2_ratio = input.float(3.0, "Take Profit 2 Ratio", minval=2.0, maxval=6.0)
max_leverage = crypto_type == "BTC" ? 5 : crypto_type == "SOL" ? 10 : 7

// Technical Indicators
rsi_length = input.int(14, "RSI Length", minval=5, maxval=30)
rsi_oversold = input.int(35, "RSI Oversold Level", minval=20, maxval=40)
rsi_overbought = input.int(70, "RSI Overbought Level", minval=60, maxval=80)

macd_fast = input.int(12, "MACD Fast Length", minval=5, maxval=20)
macd_slow = input.int(26, "MACD Slow Length", minval=20, maxval=40)
macd_signal = input.int(9, "MACD Signal Length", minval=5, maxval=15)

volume_multiplier = input.float(1.5, "Volume Spike Multiplier", minval=1.1, maxval=3.0)

// ATR for Dynamic Stops
atr_length = input.int(14, "ATR Length for Stops", minval=5, maxval=30)
atr_multiplier = input.float(2.0, "ATR Stop Multiplier", minval=1.0, maxval=4.0)

// ================================
// TECHNICAL INDICATORS
// ================================

// RSI
rsi = ta.rsi(close, rsi_length)

// MACD
[macd_line, signal_line, macd_histogram] = ta.macd(close, macd_fast, macd_slow, macd_signal)

// Volume
volume_avg = ta.sma(volume, 20)
volume_spike = volume > volume_avg * volume_multiplier

// ATR for dynamic stops
atr = ta.atr(atr_length)

// ================================
// TREND LINE CALCULATION
// ================================

// Function to calculate trend line slope and intercept
get_trend_line(src, len, min_touch) =>
    var float slope = na
    var float intercept = na
    var int touches = 0
    var array<float> highs = array.new<float>()
    var array<float> lows = array.new<float>()
    var array<int> high_bars = array.new<int>()
    var array<int> low_bars = array.new<int>()
    
    // Find pivots
    ph = ta.pivothigh(high, 5, 5)
    pl = ta.pivotlow(low, 5, 5)
    
    // Store pivot points
    if not na(ph)
        array.push(highs, ph)
        array.push(high_bars, bar_index - 5)
        if array.size(highs) > len
            array.shift(highs)
            array.shift(high_bars)
    
    if not na(pl)
        array.push(lows, pl)
        array.push(low_bars, bar_index - 5)
        if array.size(lows) > len
            array.shift(lows)
            array.shift(low_bars)
    
    [slope, intercept, touches]

// Calculate trend lines
[up_slope, up_intercept, up_touches] = get_trend_line(low, trendline_length, min_touches)
[down_slope, down_intercept, down_touches] = get_trend_line(high, trendline_length, min_touches)

// ================================
// TREND LINE VALUES
// ================================

// Simplified trend line calculation using linear regression
uptrend_line = ta.linreg(low, trendline_length, 0)
downtrend_line = ta.linreg(high, trendline_length, 0)

// Dynamic trend line based on recent pivots
recent_low = ta.lowest(low, 10)
recent_high = ta.highest(high, 10)

// Support and Resistance levels
support_level = uptrend_line
resistance_level = downtrend_line

// ================================
// MARKET STRUCTURE
// ================================

// Higher lows and lower highs detection
higher_low = low > ta.lowest(low[1], 5) and low[1] > ta.lowest(low[2], 5)
lower_high = high < ta.highest(high[1], 5) and high[1] < ta.highest(high[2], 5)

// Overall trend determination
uptrend = close > ta.sma(close, 50) and ta.sma(close, 20) > ta.sma(close, 50)
downtrend = close < ta.sma(close, 50) and ta.sma(close, 20) < ta.sma(close, 50)

// ================================
// ENTRY CONDITIONS
// ================================

// Long entry conditions
long_trend_bounce = close > support_level and low <= support_level * 1.01
long_rsi = rsi < rsi_oversold or (rsi > rsi_oversold and rsi[1] < rsi_oversold)
long_macd = macd_histogram > macd_histogram[1]
long_volume = volume_spike
long_structure = higher_low or uptrend

long_condition = long_trend_bounce and long_rsi and long_macd and long_volume and long_structure

// Short entry conditions
short_trend_reject = close < resistance_level and high >= resistance_level * 0.99
short_rsi = rsi > rsi_overbought or (rsi < rsi_overbought and rsi[1] > rsi_overbought)
short_macd = macd_histogram < macd_histogram[1]
short_volume = volume_spike
short_structure = lower_high or downtrend

short_condition = short_trend_reject and short_rsi and short_macd and short_volume and short_structure

// ================================
// BREAKOUT CONDITIONS
// ================================

// Uptrend breakout (bearish)
uptrend_break = close < support_level * (1 - breakout_threshold) and volume_spike
// Downtrend breakout (bullish)
downtrend_break = close > resistance_level * (1 + breakout_threshold) and volume_spike

// ================================
// POSITION SIZING
// ================================

// Calculate position size based on risk
account_size = strategy.equity
risk_amount = account_size * risk_percent

// ================================
// STRATEGY EXECUTION
// ================================

// Long entries
if long_condition and strategy.position_size == 0
    stop_loss = support_level - (atr * atr_multiplier)
    take_profit_1 = close + (close - stop_loss) * tp1_ratio
    take_profit_2 = close + (close - stop_loss) * tp2_ratio
    
    // Position sizing
    risk_per_share = close - stop_loss
    position_size = risk_amount / risk_per_share
    position_size := math.min(position_size, account_size * max_leverage / close)
    
    strategy.entry("Long", strategy.long, qty=position_size)
    strategy.exit("Long TP1", "Long", limit=take_profit_1, stop=stop_loss, qty=position_size * 0.5)
    strategy.exit("Long TP2", "Long", limit=take_profit_2, stop=stop_loss, qty=position_size * 0.5)

// Short entries
if short_condition and strategy.position_size == 0
    stop_loss = resistance_level + (atr * atr_multiplier)
    take_profit_1 = close - (stop_loss - close) * tp1_ratio
    take_profit_2 = close - (stop_loss - close) * tp2_ratio
    
    // Position sizing
    risk_per_share = stop_loss - close
    position_size = risk_amount / risk_per_share
    position_size := math.min(position_size, account_size * max_leverage / close)
    
    strategy.entry("Short", strategy.short, qty=position_size)
    strategy.exit("Short TP1", "Short", limit=take_profit_1, stop=stop_loss, qty=position_size * 0.5)
    strategy.exit("Short TP2", "Short", limit=take_profit_2, stop=stop_loss, qty=position_size * 0.5)

// Breakout entries
if downtrend_break and strategy.position_size == 0
    stop_loss = resistance_level - (atr * atr_multiplier)
    take_profit = close + (close - stop_loss) * 2.0
    
    risk_per_share = close - stop_loss
    position_size = risk_amount / risk_per_share
    position_size := math.min(position_size, account_size * max_leverage / close)
    
    strategy.entry("Breakout Long", strategy.long, qty=position_size)
    strategy.exit("Breakout Long Exit", "Breakout Long", limit=take_profit, stop=stop_loss)

if uptrend_break and strategy.position_size == 0
    stop_loss = support_level + (atr * atr_multiplier)
    take_profit = close - (stop_loss - close) * 2.0
    
    risk_per_share = stop_loss - close
    position_size = risk_amount / risk_per_share
    position_size := math.min(position_size, account_size * max_leverage / close)
    
    strategy.entry("Breakout Short", strategy.short, qty=position_size)
    strategy.exit("Breakout Short Exit", "Breakout Short", limit=take_profit, stop=stop_loss)

// ================================
// VISUALIZATION
// ================================

// Plot trend lines
plot(support_level, "Support Trend Line", color=color.green, linewidth=2)
plot(resistance_level, "Resistance Trend Line", color=color.red, linewidth=2)

// Plot entry signals
plotshape(long_condition, "Long Signal", shape.triangleup, location.belowbar, color.green, size=size.small)
plotshape(short_condition, "Short Signal", shape.triangledown, location.abovebar, color.red, size=size.small)

// Plot breakout signals
plotshape(downtrend_break, "Bullish Breakout", shape.diamond, location.belowbar, color.blue, size=size.small)
plotshape(uptrend_break, "Bearish Breakout", shape.diamond, location.abovebar, color.orange, size=size.small)

// Background color for trend
bgcolor(uptrend ? color.new(color.green, 95) : downtrend ? color.new(color.red, 95) : na)

// ================================
// ALERTS
// ================================

// Entry alerts
alertcondition(long_condition, "Long Entry", "Long entry signal detected")
alertcondition(short_condition, "Short Entry", "Short entry signal detected")
alertcondition(downtrend_break, "Bullish Breakout", "Bullish breakout detected")
alertcondition(uptrend_break, "Bearish Breakout", "Bearish breakout detected")

// ================================
// TABLE FOR INFORMATION
// ================================

// Create info table
var table info_table = table.new(position.top_right, 2, 8, bgcolor=color.white, border_width=1)

if barstate.islast
    table.cell(info_table, 0, 0, "Metric", text_color=color.black, bgcolor=color.gray)
    table.cell(info_table, 1, 0, "Value", text_color=color.black, bgcolor=color.gray)
    table.cell(info_table, 0, 1, "RSI", text_color=color.black)
    table.cell(info_table, 1, 1, str.tostring(math.round(rsi, 2)), text_color=color.black)
    table.cell(info_table, 0, 2, "MACD", text_color=color.black)
    table.cell(info_table, 1, 2, str.tostring(math.round(macd_line, 4)), text_color=color.black)
    table.cell(info_table, 0, 3, "Volume Spike", text_color=color.black)
    table.cell(info_table, 1, 3, volume_spike ? "YES" : "NO", text_color=color.black)
    table.cell(info_table, 0, 4, "Trend", text_color=color.black)
    table.cell(info_table, 1, 4, uptrend ? "UP" : downtrend ? "DOWN" : "SIDEWAYS", text_color=color.black)
    table.cell(info_table, 0, 5, "Support", text_color=color.black)
    table.cell(info_table, 1, 5, str.tostring(math.round(support_level, 2)), text_color=color.black)
    table.cell(info_table, 0, 6, "Resistance", text_color=color.black)
    table.cell(info_table, 1, 6, str.tostring(math.round(resistance_level, 2)), text_color=color.black)
    table.cell(info_table, 0, 7, "ATR", text_color=color.black)
    table.cell(info_table, 1, 7, str.tostring(math.round(atr, 2)), text_color=color.black)