
মাল্টি-ইনডিকেটর ট্রেন্ড কনফার্মেশন অ্যান্ড ওভাররাইডিং ট্রেডিং কৌশল হল একটি কোয়ান্টাম ট্রেডিং সিস্টেম যা একাধিক প্রযুক্তিগত সূচককে একত্রিত করে, মূলত ব্রিন ব্যান্ড ((BB), মুভিং এভারেজ সমাপ্তি বিচ্ছিন্নতা সূচক ((MACD), সরল মুভিং এভারেজ ((SMA), তুলনামূলকভাবে দুর্বল সূচক ((RSI) এবং গঠিত ওভারওয়েট গড় মূল্য ((VWAP) এর সাথে ট্রেডিং সংকেত উত্পন্ন করে। এই কৌশলটির মূল ধারণাটি হ’ল একাধিক সূচক দ্বারা ক্রস যাচক বাজার প্রবণতা, যখন দামগুলি ব্রিন ব্যান্ডের সীমানা স্পর্শ করে তখন MACD সংকেত এবং এসএমএ ট্রেন্ড কনফার্মেশনকে একত্রিত করে উচ্চ সম্ভাব্যতার ব্যবসায়ের সুযোগগুলি ক্যাপচার করার জন্য, পাশাপাশি একটি উন্নত ঝুঁকি ব্যবস্থাপনা ব্যবস্থা রয়েছে যার মধ্যে রয়েছে স্টপ লস, স্টপ স্টপ লস এবং লস ট্র্যাকিং সেটআপ, প্রতিটি ব্যবসায়ের জন্য কার্যকর
এই কৌশলটির ট্রেডিং লজিক নিম্নলিখিত মূল নীতির উপর ভিত্তি করেঃ
সূচক সংমিশ্রণ এবং সংকেত উৎপত্তি:
প্রবেশের শর্ত:
ঝুঁকি ব্যবস্থাপনা ব্যবস্থা:
ভিজ্যুয়ালাইজেশন এবং সিদ্ধান্ত গ্রহণ:
কোড বিশ্লেষণ থেকে দেখা যায় যে, এই কৌশলটি RSI এবং VWAP সূচকগুলি বিবেচনা করে, তবে প্রকৃত প্রবেশের সংকেতের মূল্যায়নে মূলত BB, MACD এবং SMA এর তিনটি মূল সূচকগুলির উপর নির্ভর করে, সম্ভবত অতিরিক্ত ফিটনেস এড়াতে এবং কৌশলটির স্থিতিশীলতা বাড়ানোর জন্য।
মাল্টি-ইনডিকেটর ট্রেন্ড কনফার্মেশন এবং ওভারল্যাপ ব্রেকিং ট্রেডিং কৌশলগুলির উল্লেখযোগ্য সুবিধা রয়েছেঃ
বহু-মাত্রিক সংকেত নিশ্চিতকরণ: একাধিক সূচককে একই সাথে নির্দিষ্ট শর্ত পূরণ করার জন্য অনুরোধ করে, কার্যকরভাবে মিথ্যা সংকেতের সম্ভাবনা হ্রাস করে। এই ‘সম্মতি প্রক্রিয়া’ নিশ্চিত করে যে কেবলমাত্র যখন দামের ওঠানামা (BB), গতিশীলতা (MACD) এবং প্রবণতা (SMA) তিনটি মাত্রা একই দিকে নির্দেশ করে তখনই একটি ট্রেডিং সংকেত ট্রিগার করা হবে।
বাজারের সাথে খাপ খাইয়ে নেওয়াব্রিন ব্যান্ড হল একটি মূল সূচক যা বাজারের অস্থিরতার উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে ট্রেনে ওঠার এবং নামার প্রস্থকে সামঞ্জস্য করে, যা কৌশলগুলিকে বিভিন্ন বাজারের অস্থিরতার পরিবেশের সাথে খাপ খাইয়ে নিতে এবং কম অস্থিরতার সময় অত্যধিক সংকেত তৈরি করা বা উচ্চ অস্থিরতার সময় গুরুত্বপূর্ণ সুযোগগুলি মিস করা এড়াতে সক্ষম করে।
সম্পূর্ণ ঝুঁকি ব্যবস্থাপনা কাঠামো: একটি ত্রিগুণ সুরক্ষা ব্যবস্থার অন্তর্নির্মিত ((ফিক্সড স্টপ লস, স্টপ টার্গেট এবং ট্র্যাকিং স্টপ লস), যা কেবলমাত্র মূলধনকে বড় ক্ষতির হাত থেকে রক্ষা করে না, তবে ট্রেন্ডিং পরিস্থিতিতে মুনাফা লক করতে পারে। এই সুষম রিস্ক রিটার্ন সেটিং ((1% ঝুঁকি 2% রিটার্ন) পেশাদার ব্যবসায়ের ঝুঁকি পরিচালনার নীতির সাথে সামঞ্জস্যপূর্ণ) ।
ভিজ্যুয়াল ট্রেডিং পরিবেশ: একটি বিস্তৃত গ্রাফিকাল ইন্টারফেস প্রদান করা হয়, যার মধ্যে রয়েছে ব্রাইন ব্রেড ভর্তি অঞ্চল, প্রবণতা ব্যাকগ্রাউন্ড রঙ, প্রবেশের সংকেত চিহ্ন এবং স্টপ এবং টার্গেট মূল্য লাইন। উপরন্তু, প্রযুক্তিগত সূচক টেবিলটি রিয়েল-টাইম সূচক অবস্থা প্রদান করে, যা ব্যবসায়ীদের বর্তমান বাজারের অবস্থার দ্রুত মূল্যায়ন করতে সহায়তা করে।
উচ্চতর কাস্টমাইজেশন: সমস্ত মূল প্যারামিটারগুলি ইনপুট ভেরিয়েবলের মাধ্যমে ব্যবহারকারীদের জন্য উন্মুক্ত, প্রতিটি সূচকের জন্য চক্রের দৈর্ঘ্য এবং ঝুঁকি পরিচালনার প্যারামিটার সহ, ব্যবসায়ীদের ব্যক্তিগত পছন্দ, ট্রেডিং জাত এবং সময় ফ্রেমের উপর ভিত্তি করে অনুকূলিতকরণের অনুমতি দেয়।
অ্যালার্ম ইন্টিগ্রেটেড: অন্তর্নির্মিত ক্রয় এবং বিক্রয় সংকেত সতর্কতা শর্ত, যাতে ব্যবসায়ীরা রিয়েল-টাইমে ট্রেডিং সুযোগের বিজ্ঞপ্তি পেতে পারে, বাজারকে ক্রমাগত পর্যবেক্ষণ না করে।
যদিও এই কৌশলটি ব্যাপকভাবে পরিকল্পিত, তবে এর মধ্যে কিছু সম্ভাব্য ঝুঁকি এবং সীমাবদ্ধতা রয়েছেঃ
ওয়াই-ফাই মার্কেটের দুর্বলতা: কোন সুস্পষ্ট প্রবণতা না থাকা অস্থির বাজারে, এই কৌশলটি ঘন ঘন মিথ্যা সংকেত তৈরি করতে পারে, যার ফলে ধারাবাহিক স্টপ লস হয়। এটি বিশেষত প্রবণতা যখন দামগুলি বুলিন বন্ডের উপরে এবং নীচে ট্র্যাকের মধ্যে ওভার-ওভার করে কিন্তু একটি ধারাবাহিক প্রবণতা তৈরি করে না।
ফিক্সড শতাংশ ঝুঁকি নিয়ন্ত্রণের সীমাবদ্ধতাস্থির শতাংশে স্টপ এবং স্টপ ব্যবহার করা সমস্ত বাজার পরিস্থিতির জন্য উপযুক্ত নাও হতে পারে। অত্যন্ত উদ্বায়ী বাজারে, 1% স্টপটি খুব বেশি ঘন ঘন ট্রিগার হতে পারে এবং কম উদ্বায়ী বাজারে, 2% স্টপ টার্গেটটি খুব বেশি কঠিন হতে পারে।
পরামিতি সংবেদনশীলতা: কৌশলটি একাধিক প্রযুক্তিগত সূচকের উপর নির্ভর করে, প্রতিটি সূচকের নির্দিষ্ট প্যারামিটার রয়েছে। প্যারামিটার সেটিংটি ভুল হলে কৌশলটির কার্যকারিতা উল্লেখযোগ্যভাবে হ্রাস পেতে পারে। উদাহরণস্বরূপ, এসএমএ চক্র (ডিফল্ট 50) । যদি সেটিংটি ভুল হয় তবে এটি বর্তমান বাজার প্রবণতা সঠিকভাবে প্রতিফলিত করতে পারে না।
ঐতিহাসিক প্রাসঙ্গিকতার উপর অতিরিক্ত নির্ভরশীলতা: এই কৌশলটি অনুমান করে যে MACD, BB এবং SMA এর মধ্যে ঐতিহাসিক সম্পর্ক ভবিষ্যতে কার্যকর থাকবে। যাইহোক, বাজারের অবস্থার পরিবর্তনগুলি এই সম্পর্কগুলিকে দুর্বল বা অকার্যকর করতে পারে, বিশেষত যখন বাজারের কাঠামোতে উল্লেখযোগ্য পরিবর্তন হয়।
মৌলিক বিষয়গুলোকে উপেক্ষা করা: খাঁটি প্রযুক্তিগত বিশ্লেষণ কৌশল হিসাবে, অর্থনৈতিক তথ্য, নীতি পরিবর্তন বা বিশেষ ঘটনাগুলির মতো মূল বিষয়গুলিকে পুরোপুরি উপেক্ষা করা হয় যা দামকে উল্লেখযোগ্যভাবে প্রভাবিত করতে পারে, যা কিছু বাজার পরিস্থিতিতে উল্লেখযোগ্য ক্ষতির কারণ হতে পারে।
লেনদেনের পরিমাণ নিশ্চিতকরণের অভাব: ভিডাব্লুএপি গণনা করা সত্ত্বেও, প্রকৃত লেনদেনের সংকেতে লেনদেনের পরিমাণের তথ্যটি নিশ্চিতকরণ ফ্যাক্টর হিসাবে পুরোপুরি ব্যবহার করা হয়নি, যা কম তরলতার পরিস্থিতিতে বিভ্রান্তিকর সংকেত তৈরি করতে পারে।
কৌশলগত ধারণাগুলির গভীর বিশ্লেষণের ভিত্তিতে, নিম্নলিখিত অপ্টিমাইজেশনের দিকগুলি বিবেচনা করা যেতে পারেঃ
গতিশীল প্যারামিটার সমন্বয় প্রক্রিয়া: স্বনির্ধারিত প্যারামিটার সিস্টেম প্রবর্তন করুন, যা বাজারের অস্থিরতার উপর নির্ভর করে স্বয়ংক্রিয়ভাবে স্টপ এবং স্টপ স্তরগুলিকে সামঞ্জস্য করে। উদাহরণস্বরূপ, উচ্চ অস্থিরতার বাজারে স্টপ স্পেসের প্রসারিত করা এবং নিম্ন অস্থিরতার বাজারে স্টপ লক্ষ্যকে আরও কঠোর করা বিভিন্ন বাজারের পরিবেশে কৌশলগুলির অভিযোজনযোগ্যতা বাড়িয়ে তুলতে পারে।
মার্কেট স্ট্যাটাস ক্লাসিফিকেশন যোগ করুন: বাজার পরিবেশ সনাক্তকরণ মডিউল বিকাশ করুন, যা ট্রেন্ডিং বাজার এবং ঝড়ের বাজারকে আলাদা করতে পারে এবং বিভিন্ন বাজার অবস্থার উপর ভিত্তি করে কৌশলগত প্যারামিটারগুলি সামঞ্জস্য করতে পারে বা এমনকি বিভিন্ন ট্রেডিং লজিককে স্যুইচ করতে পারে। এটি হরফ বাজারগুলিতে কৌশলগুলির দুর্বল পারফরম্যান্সের সমস্যা সমাধান করতে পারে।
সমন্বিত লেনদেনের বিশ্লেষণ: VWAP এবং ট্রেডিং ভলিউমের পরিবর্তনকে সংকেত নিশ্চিতকরণ ব্যবস্থায় অন্তর্ভুক্ত করা, গুরুত্বপূর্ণ ব্রেকিং সিগন্যালকে সংশ্লিষ্ট ট্রেডিং ভলিউম দ্বারা সমর্থিত করা, যা কিছু নিম্নমানের মূল্য ব্রেকিংকে ফিল্টার করবে।
সংকেত ফিল্টার অপ্টিমাইজ করুন: অতিরিক্ত সংকেত মানের ফিল্টারিং শর্ত যুক্ত করুন, যেমন একটি ব্রেকআউট সংকেত একাধিক সময় চক্রের জন্য প্রয়োজন, বা মিথ্যা ব্রেকআউট প্রভাব কমাতে ব্রেকআউট প্রস্থের ন্যূনতম থ্রেশহোল্ডের প্রয়োজনীয়তা বৃদ্ধি করুন।
সময় ফিল্টার যোগ করুনকম লেনদেনের ঝুঁকিঃ কম লেনদেনের ঝুঁকি হ্রাস করার জন্য কম লেনদেন করা বা এড়ানো (যেমন এশিয়ান বাজার শুরুর দিকে বা ইউরো-আমেরিকান এক্সচেঞ্জের সময়) কম লেনদেনের ঝুঁকি হ্রাস করতে পারে।
মাল্টি টাইম ফ্রেম বিশ্লেষণট্রেডিংয়ের দিকনির্দেশ ফিল্টার হিসাবে উচ্চতর সময়কালের ট্রেন্ডিং তথ্যকে একত্রিত করা, উদাহরণস্বরূপ, কেবলমাত্র সূর্যমুখী ট্রেন্ডিংয়ের দিকনির্দেশে ছোট সময়কালের ট্রেডিং করা, যা সামগ্রিকভাবে কৌশলটির সাফল্যের হার বাড়িয়ে তুলতে পারে।
মেশিন লার্নিং এলিমেন্ট: মেশিন লার্নিং অ্যালগরিদমের মাধ্যমে গতিশীলভাবে বিভিন্ন সূচকগুলির ওজন মূল্যায়ন করে, সাম্প্রতিক বাজার আচরণের ভিত্তিতে সিদ্ধান্ত গ্রহণের ক্ষেত্রে স্বয়ংক্রিয়ভাবে প্রতিটি সূচকের গুরুত্বকে সামঞ্জস্য করে, যাতে কৌশলগুলি বাজারের বিবর্তনশীল বৈশিষ্ট্যগুলির সাথে আরও ভালভাবে খাপ খাইয়ে নিতে পারে।
মাল্টি-ইনডিকেটর ট্রেন্ড কনফার্মেশন অ্যান্ড ওভাররাইডিং ট্রেডিং স্ট্র্যাটেজি হল একটি সুনির্দিষ্ট কাঠামোগত পরিমাণগত ট্রেডিং সিস্টেম যা উচ্চমানের ট্রেডিং সুযোগগুলিকে চিহ্নিত করে একটি মাল্টি-ডাইমেনশনাল প্রযুক্তিগত সূচক পোর্টফোলিওর মাধ্যমে (BB, MACD, SMA, ইত্যাদি) এবং পেশাদার ঝুঁকি ব্যবস্থাপনার সাথে সংযুক্ত থাকে। এই কৌশলটির মূল সুবিধা হল সিগন্যাল কনফার্মেশনের কঠোর শর্তাবলী এবং সম্পূর্ণ দৃশ্যমান সিদ্ধান্ত সমর্থন যা এটিকে সিস্টেমিক ট্রেডিং পদ্ধতির সন্ধানকারী বিনিয়োগকারীদের জন্য উপযুক্ত করে তোলে।
যদিও কিছু অন্তর্নিহিত ঝুঁকি রয়েছে, যেমন হরতালের বাজারে দুর্বল পারফরম্যান্স এবং প্যারামিটার সেটিংয়ের সংবেদনশীলতা, তবে প্রস্তাবিত অপ্টিমাইজেশনের দিকনির্দেশ যেমন গতিশীল প্যারামিটার সমন্বয়, বাজার অবস্থা শ্রেণিবদ্ধকরণ এবং মাল্টি টাইম ফ্রেম বিশ্লেষণের মাধ্যমে এই সীমাবদ্ধতাগুলি উল্লেখযোগ্যভাবে উন্নতি হওয়ার সম্ভাবনা রয়েছে। বিশেষত মেশিন লার্নিং উপাদানগুলি প্রবর্তনের পরামর্শটি কৌশলকে বাজারের পরিবর্তনের সাথে খাপ খাইয়ে নেওয়ার ক্ষমতা প্রদান করবে, যা পরিমাণগত ব্যবসায়ের অগ্রগতির দিকনির্দেশের প্রতিনিধিত্ব করে।
সংক্ষেপে, এই কৌশলটি একটি সুষম এবং সম্পূর্ণ প্রযুক্তিগত বিশ্লেষণের ট্রেডিং পদ্ধতির প্রতিনিধিত্ব করে, যা প্রযুক্তিগত বিশ্লেষণের একটি নির্দিষ্ট ভিত্তির সাথে ব্যবসায়ীদের ব্যবহারের জন্য উপযুক্ত। যুক্তিসঙ্গত প্যারামিটার অপ্টিমাইজেশান এবং প্রস্তাবিত উন্নতির ব্যবস্থাগুলির সাথে, এটি একটি স্থিতিশীল এবং নির্ভরযোগ্য ট্রেডিং সরঞ্জাম হওয়ার সম্ভাবনা রয়েছে, যা ব্যবসায়ীদের জটিল এবং পরিবর্তনশীল বাজার পরিবেশে একটি সামঞ্জস্যপূর্ণ ট্রেডিং সুবিধা অর্জনে সহায়তা করে।
/*backtest
start: 2025-01-01 00:00:00
end: 2025-05-14 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © vivekm8955
//@version=5
strategy("RSI/BB/MACD/VWAP/SMA Strategy [vivekm8955]", overlay=true, margin_long=100, margin_short=100)
// Inputs with improved ranges
rsiLength = input.int(14, "RSI Length", minval=5, maxval=50)
rsiOverbought = input.int(70, "RSI Overbought", minval=60, maxval=90)
rsiOversold = input.int(30, "RSI Oversold", minval=10, maxval=40)
bbLength = input.int(20, "BB Length", minval=10, maxval=50)
bbStdDev = input.float(2.0, "BB Std Dev", minval=1, maxval=3, step=0.1)
vwapLength = input.int(20, "VWAP Length", minval=10, maxval=50)
smaLength = input.int(50, "SMA Length", minval=20, maxval=200)
// Risk Management Inputs
stopLossPerc = input.float(1.0, "Stop Loss %", minval=0.1, maxval=10, step=0.1) / 100
takeProfitPerc = input.float(2.0, "Take Profit %", minval=0.5, maxval=10, step=0.1) / 100
trailingStopPerc = input.float(0.5, "Trailing Stop %", minval=0.1, maxval=5, step=0.1) / 100
// Calculate Indicators
rsi = ta.rsi(close, rsiLength)
[bbUpper, bbMiddle, bbLower] = ta.bb(close, bbLength, bbStdDev)
macdLine = ta.ema(close, 12) - ta.ema(close, 26)
signalLine = ta.ema(macdLine, 9)
macdHist = macdLine - signalLine
vwap = ta.vwap(hlc3, vwapLength)
sma = ta.sma(close, smaLength)
// Trend Determination (modified to exclude VWAP)
isBullish = close > sma and macdLine > signalLine and close > bbMiddle
isBearish = close < sma and macdLine < signalLine and close < bbMiddle
// Buy/Sell Conditions (removed RSI and VWAP conditions)
buyCondition =
close < bbLower and
macdLine > signalLine and
isBullish
sellCondition =
close > bbUpper and
macdLine < signalLine and
isBearish
// Strategy Execution with stop loss and take profit
if (buyCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPerc), limit=close * (1 + takeProfitPerc), trail_points=close * trailingStopPerc, trail_offset=close * trailingStopPerc)
if (sellCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPerc), limit=close * (1 - takeProfitPerc), trail_points=close * trailingStopPerc, trail_offset=close * trailingStopPerc)
// Improved Chart Plots with better visuals
bbUpperPlot = plot(bbUpper, "BB Upper", color=color.new(#2962FF, 50), linewidth=2)
bbMiddlePlot = plot(bbMiddle, "BB Middle", color=color.new(#FF6D00, 50), linewidth=2)
bbLowerPlot = plot(bbLower, "BB Lower", color=color.new(#2962FF, 50), linewidth=2)
fill(bbUpperPlot, bbLowerPlot, color=color.new(#2962FF, 90), title="BB Area")
vwapPlot = plot(vwap, "VWAP", color=color.new(#AA00FF, 0), linewidth=3)
smaPlot = plot(sma, "SMA", color=color.new(#FF0000, 0), linewidth=2)
// Buy/Sell Signals with improved visuals
plotshape(buyCondition, style=shape.triangleup, location=location.belowbar,
color=color.new(#00C853, 0), size=size.normal, text="BUY", textcolor=color.rgb(10, 1, 1))
plotshape(sellCondition, style=shape.triangledown, location=location.abovebar,
color=color.new(#FF3D00, 0), size=size.normal, text="SELL", textcolor=color.rgb(10, 1, 1))
// Entry price lines and stop/target levels
var float longStopPrice = na
var float longTargetPrice = na
var float shortStopPrice = na
var float shortTargetPrice = na
if buyCondition
longStopPrice := close * (1 - stopLossPerc)
longTargetPrice := close * (1 + takeProfitPerc)
if sellCondition
shortStopPrice := close * (1 + stopLossPerc)
shortTargetPrice := close * (1 - takeProfitPerc)
plot(strategy.position_size > 0 ? longStopPrice : na, "Long Stop", color=color.new(#FF5252, 0), style=plot.style_linebr, linewidth=2)
plot(strategy.position_size > 0 ? longTargetPrice : na, "Long Target", color=color.new(#64DD17, 0), style=plot.style_linebr, linewidth=2)
plot(strategy.position_size < 0 ? shortStopPrice : na, "Short Stop", color=color.new(#FF5252, 0), style=plot.style_linebr, linewidth=2)
plot(strategy.position_size < 0 ? shortTargetPrice : na, "Short Target", color=color.new(#64DD17, 0), style=plot.style_linebr, linewidth=2)
// Technical Values Table
var table techTable = table.new(position.top_right, 3, 8,
bgcolor=color.new(#263238, 90),
border_width=2,
border_color=color.new(#FFFFFF, 50))
if barstate.islast
// Header
table.cell(techTable, 0, 0, "Indicator",
bgcolor=color.new(#263238, 100),
text_color=color.rgb(10, 1, 1),
text_size=size.small,
width=3)
// Column Headers
table.cell(techTable, 1, 0, "Value",
bgcolor=color.new(#263238, 100),
text_color=color.rgb(10, 1, 1))
table.cell(techTable, 2, 0, "Signal",
bgcolor=color.new(#263238, 100),
text_color=color.rgb(10, 1, 1))
// RSI Row (kept in table but removed from signals)
table.cell(techTable, 0, 1, "RSI(14)", text_color=color.rgb(10, 1, 1))
table.cell(techTable, 1, 1, str.format("{0,number,#.##}", rsi),
text_color=color.rgb(10, 1, 1))
table.cell(techTable, 2, 1, rsi < rsiOversold ? "Oversold" : rsi > rsiOverbought ? "Overbought" : "Neutral", bgcolor=rsi < rsiOversold ? color.new(#00C853, 0) : rsi > rsiOverbought ? color.new(#FF3D00, 0) : color.gray)
// MACD Row
table.cell(techTable, 0, 2, "MACD", text_color=color.rgb(10, 1, 1))
table.cell(techTable, 1, 2, str.format("{0,number,#.######}", macdHist),
text_color=color.rgb(10, 1, 1))
table.cell(techTable, 2, 2, macdLine > signalLine ? "Bullish" : "Bearish", bgcolor=macdLine > signalLine ? color.new(#00C853, 0) : color.new(#FF3D00, 0))
// BB Row
bbPosition = (close - bbLower)/(bbUpper - bbLower)
table.cell(techTable, 0, 3, "BB Position", text_color=color.rgb(10, 1, 1))
table.cell(techTable, 1, 3, str.format("{0,number,#.##%}", bbPosition),
text_color=color.rgb(10, 1, 1))
table.cell(techTable, 2, 3, close < bbLower ? "Lower Band" : close > bbUpper ? "Upper Band" : "Middle", bgcolor=close < bbLower ? color.new(#00C853, 0) : close > bbUpper ? color.new(#FF3D00, 0) : color.gray)
// VWAP Row (kept in table but removed from signals)
vwapDiff = (close - vwap)/vwap
table.cell(techTable, 0, 4, "VWAP Diff", text_color=color.rgb(10, 1, 1))
table.cell(techTable, 1, 4, str.format("{0,number,#.##%}", vwapDiff),
text_color=color.rgb(10, 1, 1))
table.cell(techTable, 2, 4, close > vwap ? "Above" : "Below", bgcolor=close > vwap ? color.new(#00C853, 0) : color.new(#FF3D00, 0))
// SMA Row
smaDiff = (close - sma)/sma
table.cell(techTable, 0, 5, "SMA(50) Diff", text_color=color.rgb(10, 1, 1))
table.cell(techTable, 1, 5, str.format("{0,number,#.##%}", smaDiff),
text_color=color.rgb(10, 1, 1))
table.cell(techTable, 2, 5, close > sma ? "Above" : "Below", bgcolor=close > sma ? color.new(#00C853, 0) : color.new(#FF3D00, 0))
// Trend Row
table.cell(techTable, 0, 6, "Trend", text_color=color.rgb(10, 1, 1))
table.cell(techTable, 1, 6, isBullish ? "Bullish" : isBearish ? "Bearish" : "Neutral",
text_color=color.rgb(10, 1, 1))
table.cell(techTable, 2, 6, isBullish ? "Strong Up" : isBearish ? "Strong Down" : "Sideways", bgcolor=isBullish ? color.new(#00C853, 0) : isBearish ? color.new(#FF3D00, 0) : color.gray)
// Signal Status Row
table.cell(techTable, 0, 7, "Signal", text_color=color.rgb(10, 1, 1))
table.cell(techTable, 1, 7, buyCondition ? "Buy" : sellCondition ? "Sell" : "None",
text_color=color.rgb(10, 1, 1))
table.cell(techTable, 2, 7, buyCondition ? "Long Entry" : sellCondition ? "Short Entry" : "No Trade", bgcolor=buyCondition ? color.new(#00C853, 0) : sellCondition ? color.new(#FF3D00, 0) : color.gray)
// Trend Visualization with better colors
bgcolor(isBullish ? color.new(#00C853, 90) : isBearish ? color.new(#FF3D00, 90) : na, title="Trend Background")
// Add alerts for trading signals
alertcondition(buyCondition, title="Buy Signal", message="Buy Signal Triggered")
alertcondition(sellCondition, title="Sell Signal", message="Sell Signal Triggered")