
यह रणनीति एक व्यापक तकनीकी विश्लेषण ट्रेडिंग प्रणाली है, जो कई संकेतकों को एकीकृत करके उच्च संभावना वाले ट्रेडिंग अवसरों की पहचान करती है। यह प्रणाली मुख्य रूप से ट्रेंड की ताकत की पुष्टि करने के लिए ट्रेंड दिशा फिल्टर के रूप में सुपरट्रेंड सूचक पर आधारित है, जो ADX ((औसत दिशा सूचकांक) के साथ संयुक्त है, और तरलता त्रिभुज ((लिक्विडिटी डेल्टा) के विश्लेषण का उपयोग करके बेचने के दबाव के असंतुलन का उपयोग करता है, जिससे कई प्रकार के बाजार वातावरण में प्रवेश और निकास संकेतों का सटीक उत्पादन होता है। यह रणनीति एक संरक्षित जोखिम प्रबंधन दृष्टिकोण का उपयोग करती है, जिसमें एक निश्चित अनुपात के साथ स्टॉप लॉस (डिफ़ॉल्ट 2%) और स्टॉप लॉस (डिफ़ॉल्ट 4%) सेट किया गया है ताकि एक अच्छा जोखिम रिटर्न अनुपात सुनिश्चित किया जा सके। यह प्रणाली क्रिप्टोकरेंसी, विदेशी मुद्रा शेयर या विदेशी मुद्रा सूचकांक के लिए दैनिक स्तर के लहर स्तर पर ट्रेडिंग के लिए डिज़ाइन की गई है, विशेष रूप से उन परिसंपत्तियों के लिए उपयुक्त है जिनके पास स्पष्ट रुझान व्यवहार और पर्याप्त अस्थिरता है।
यह रणनीति निम्नलिखित चार मुख्य संकेतकों के साथ मिलकर काम करके ट्रेडिंग सिग्नल का निर्माण करती हैः
सुपरट्रेंड सूचकांक: मुख्य प्रवृत्ति दिशा फिल्टर के रूप में, प्रतिक्रियाशीलता और विश्वसनीयता को संतुलित करने के लिए अनुकूलित सेटिंग्स का उपयोग किया जाता है। जब कीमत सुपरट्रेंड लाइन के ऊपर होती है, तो इसे उछाल के रूप में पहचाना जाता है; जब कीमत सुपरट्रेंड लाइन के नीचे होती है, तो इसे गिरावट के रूप में पहचाना जाता है।
ADX सूचकांक: वर्तमान प्रवृत्ति की ताकत की पुष्टि करने के लिए, एक पारदर्शी या अराजक बाजार के वातावरण को फ़िल्टर करें। रणनीति को कस्टम कार्यान्वयन के तरीके से लागू किया जाता है, वास्तविक तरंग दैर्ध्य, सकारात्मक और नकारात्मक दिशा में आंदोलन की गणना की जाती है, और अंततः ADX मूल्य उत्पन्न होता है। जब ADX मूल्य सेट थ्रेशोल्ड (डिफ़ॉल्ट 25) से अधिक होता है, तो यह एक मजबूत प्रवृत्ति का संकेत देता है, सिस्टम सिग्नल ट्रेडिंग उत्पन्न करने के लिए अधिक इच्छुक होता है।
तरलता डेल्टा सूचकांक: व्यापार की मात्रा के लिए बिक्री और खरीद दबाव के असंतुलन का विश्लेषण करें, खरीद और बिक्री की मात्रा की गणना करें, और एक श्रृंखला के मानकीकरण और चिकनीकरण के माध्यम से अंतिम डेल्टा मूल्य प्राप्त करें। जब डेल्टा मूल्य सकारात्मक थ्रेशोल्ड से अधिक होता है तो एक अधिक संकेत उत्पन्न होता है, और नकारात्मक थ्रेशोल्ड से कम होने पर एक शून्य संकेत उत्पन्न होता है, जिससे प्रवृत्ति की दिशा और संभावित उलट की पुष्टि होती है।
पीएसएआर सूचक(वैकल्पिक): रुझान में बदलाव की अतिरिक्त पुष्टि के रूप में, सिग्नल फ़िल्टरिंग को कम करने के लिए डिफ़ॉल्ट रूप से बंद। जब कीमत पीएसएआर बिंदु से ऊपर होती है, तो इसे ऊपर की ओर माना जाता है; जब कीमत पीएसएआर बिंदु से नीचे होती है, तो इसे नीचे की ओर माना जाता है।
ट्रेडिंग लॉजिक सभी सक्रिय संकेतकों के संयोजन के माध्यम से एक समग्र संकेत उत्पन्न करता है। एक अंतिम खरीद या बिक्री संकेत तब उत्पन्न होता है जब सभी संकेतक एक ही दिशा में इंगित करते हैं। उदाहरण के लिए, सिस्टम केवल एक खरीद संकेत उत्पन्न करता है जब पीएसएआर शर्त, सुपरट्रेंड शर्त, एडीएक्स शर्त और तरलता डेल्टा शर्त दोनों को पूरा किया जाता है। इसके अलावा, रणनीति उपयोगकर्ताओं को व्यापार की दिशा का चयन करने की अनुमति देती है (केवल अधिक, केवल शून्य या द्वि-दिशात्मक व्यापार) विभिन्न बाजार स्थितियों या खाता प्रतिबंधों के अनुकूल।
इस रणनीति के कुछ प्रमुख फायदे हैंः
बहुआयामी सत्यापन प्रणाली: विभिन्न प्रकार के तकनीकी संकेतकों के एकीकरण के माध्यम से, ट्रेडों की पुष्टि के लिए प्रवृत्ति, ताकत और लेनदेन की मात्रा से लेकर कई आयामों तक, झूठे संकेतों के जोखिम को काफी कम कर दिया गया है, जिससे ट्रेडों की सटीकता में सुधार हुआ है।
अत्यधिक अनुकूलनीय: रणनीतियाँ उपयोगकर्ता को व्यापार दिशा और विशिष्ट संकेतकों को चालू / बंद करने के लिए लचीलापन की अनुमति देती हैं, जिससे सिस्टम विभिन्न बाजार स्थितियों और विभिन्न प्रकार के व्यापार के लिए अनुकूल हो सकता है।
सख्त जोखिम नियंत्रण: एक अंतर्निहित निश्चित अनुपात रोक और रोक तंत्र, जो सुनिश्चित करता है कि प्रत्येक लेनदेन में पूर्वनिर्धारित जोखिम सीमाएं और लाभ लक्ष्य हैं, प्रभावी रूप से धन की सुरक्षा की रक्षा करते हैं।
वास्तविक लेनदेन लागत को ध्यान में रखना: रणनीति मॉडल में कमीशन ((0.035%) और स्लिप पॉइंट ((2 अंक) की गणना शामिल है, जिससे रिटर्न्स परिणाम वास्तविक व्यापारिक वातावरण के अनुरूप हैं।
दृश्य व्यापार संकेत: एक स्पष्ट खरीद/बिक्री सिग्नल तीर प्रदान करता है, जिसमें एक अनुकूलन योग्य आकार होता है, जिसे चार्ट पर जल्दी से पहचाना जा सकता है।
सूचना पैनल: गतिशील रूप से वर्तमान में सक्रिय संकेतक और जोखिम सेटिंग्स प्रदर्शित करता है, जो रणनीति चलाने की स्थिति के बारे में तत्काल प्रतिक्रिया प्रदान करता है।
रूढ़िवादी स्थिति प्रबंधन: प्रति लेन-देन के लिए स्थिति आकार के रूप में डिफ़ॉल्ट रूप से 5% का उपयोग करें, जिससे ओवर-ट्रेडिंग के कारण होने वाले धन के नुकसान से बचा जा सके।
हालांकि इस रणनीति को व्यापक रूप से तैयार किया गया है, लेकिन इसमें संभावित जोखिम शामिल हैंः
पैरामीटर संवेदनशीलता: रणनीति का प्रदर्शन सूचक पैरामीटर सेटिंग्स पर अत्यधिक निर्भर करता है, विशेष रूप से सुपरट्रेंड कारक और एडीएक्स थ्रेड, अलग-अलग बाजार स्थितियों के लिए अलग-अलग पैरामीटर अनुकूलन की आवश्यकता हो सकती है, अन्यथा यह ओवरट्रेडिंग या महत्वपूर्ण अवसरों को याद करने का कारण बन सकता है।
पिछड़ेपन का खतराचूंकि कई चलती औसत संकेतक का उपयोग किया जाता है, इसलिए संकेतों में देरी हो सकती है, जिससे तेजी से बदलते बाजारों में समय पर प्रवेश या निकास नहीं होता है।
सम्बंधित जोखिम: कई तकनीकी संकेतकों के बीच अंतर्निहित सहसंबंध हो सकता है, जिसका अर्थ है कि प्रतीत होता है कि स्वतंत्र पुष्टि एक समान गणितीय मॉडल पर आधारित संकेतकों से आ सकती है, जो कई पुष्टि के वास्तविक मूल्य को कम करती है।
अति-अनुकूलन जोखिम: 2021-2033 के रिट्रेसमेंट पीरियड के दौरान अच्छा प्रदर्शन करने का मतलब यह नहीं है कि यह भविष्य के बाजारों में भी उतना ही प्रभावी होगा, खासकर यदि ये पैरामीटर ऐतिहासिक डेटा के लिए अति-अनुकूलित किए गए हैं।
समाधान:
इस रणनीति को निम्नलिखित तरीकों से अनुकूलित किया जा सकता हैः
गतिशील पैरामीटर समायोजन: सुपरट्रेंड कारक और एडीएक्स अवमूल्यन को बाजार की अस्थिरता के आधार पर स्वचालित रूप से समायोजित करने के लिए एक तंत्र को लागू करना, जिससे रणनीति को विभिन्न बाजार स्थितियों के लिए बेहतर रूप से अनुकूलित किया जा सके। उदाहरण के लिए, कम अस्थिरता वाले बाजारों में छोटे सुपरट्रेंड कारक का उपयोग करें और उच्च अस्थिरता वाले बाजारों में बड़े कारक का उपयोग करें।
समय फ़िल्टर: समय-आधारित फ़िल्टरिंग तंत्र को जोड़ना और ज्ञात कम तरलता या उच्च उतार-चढ़ाव के समय में व्यापार करने से बचना, जैसे कि क्रिप्टोक्यूरेंसी बाजारों में सप्ताहांत या विदेशी मुद्रा बाजारों में महत्वपूर्ण आर्थिक आंकड़ों की रिलीज़ के समय।
बहु-समय-सीमा विश्लेषण: उच्च समय सीमा के लिए प्रवृत्ति की पुष्टि को एकीकृत करना, उदाहरण के लिए, केवल तभी ट्रेडों में प्रवेश करें जब सूर्य रेखा की प्रवृत्ति की दिशा वर्तमान ट्रेडिंग समय सीमा के साथ मेल खाती हो। यह रणनीति की जीत की दर को काफी बढ़ा सकता है।
स्मार्ट रोकथाम रणनीति: एटीआर या समर्थन/प्रतिरोध बिंदु पर आधारित गतिशील रोक के लिए निश्चित अनुपात रोक को प्रतिस्थापित करें, जो बाजार के वास्तविक उतार-चढ़ाव को बेहतर ढंग से दर्शाता है, और बाजार के शोर से प्रेरित रोक को कम करता है।
प्रवेश फ़िल्टर जोड़ें: आरएसआई ओवरबॉय ओवरसोल निर्णय या ब्रिन बेल्ट बॉर्डर टेस्ट जैसे फ़िल्टर शर्तों को शामिल करने पर विचार किया जा सकता है, केवल अधिक लाभदायक मूल्य स्तर पर प्रवेश, प्रवेश की गुणवत्ता में सुधार।
धन प्रबंधन में सुधार: वर्तमान रणनीति के प्रदर्शन और बाजार की स्थिति के आधार पर गतिशील स्थिति प्रबंधन को लागू करना, जब रणनीति अच्छा प्रदर्शन करती है तो स्थिति को धीरे-धीरे बढ़ाएं, अनिश्चितता बढ़ने पर स्थिति को कम करें।
मशीन लर्निंग: मशीन सीखने की तकनीक का उपयोग करके सूचक भार के वितरण को अनुकूलित करें, विभिन्न बाजार स्थितियों के अनुसार प्रत्येक सूचक को स्वचालित रूप से समायोजित करें।
बहु-सूचक गतिशील प्रवृत्ति व्यापार रणनीति SuperTrend, ADX और तरलता डेल्टा जैसे कई तकनीकी संकेतकों के एकीकरण के माध्यम से एक व्यापक और लचीली व्यापार प्रणाली का निर्माण करती है, जो विभिन्न बाजार स्थितियों में तरंग व्यापार के लिए उपयुक्त है। इस रणनीति का मुख्य लाभ इसकी बहु-आयामी सिग्नल पुष्टिकरण तंत्र और सख्त जोखिम प्रबंधन ढांचे में है, जो बाजार के शोर को प्रभावी ढंग से फ़िल्टर करने और व्यापारिक धन की रक्षा करने में सक्षम है। हालांकि, उपयोगकर्ताओं को पैरामीटर संवेदनशीलता और सूचक विलंबता जैसे संभावित जोखिमों पर ध्यान देने की आवश्यकता है, और रणनीति के प्रदर्शन को नियमित रूप से फिर से मूल्यांकन करना चाहिए।
इस प्रणाली में प्रस्तावित अनुकूलन दिशाओं जैसे कि गतिशील पैरामीटर समायोजन, बहु-समय फ्रेम विश्लेषण और स्मार्ट स्टॉप-लॉस रणनीतियों को लागू करने के माध्यम से अपनी लाभप्रदता और स्थिरता को और बढ़ाने की क्षमता है। अंततः, यह रणनीति एक ठोस ढांचा प्रदान करती है जिसे व्यक्तिगत जोखिम वरीयताओं और बाजार के दृष्टिकोण के अनुसार अनुकूलित और विस्तारित किया जा सकता है।
/*backtest
start: 2025-01-27 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/
// © TiamatCrypto
//@version=6
// ====================================================================================
// Multi-Indicator Swing Trading Strategy [TIAMATCRYPTO]v6
// ====================================================================================
// DESCRIPTION:
// This strategy uses a combination of technical indicators to identify swing trading
// opportunities in various markets. The default settings are optimized for daily
// timeframes on cryptocurrency and forex markets.
//
// RECOMMENDED DEFAULT SETTINGS:
// - Trading direction: Both (performs well in trending and ranging markets)
// - Position size: 5% (conservative position sizing to manage risk)
// - Stop Loss: 2% (conservative risk management for capital preservation)
// - Take Profit: 4% (realistic profit target with 1:2 risk-reward ratio)
// - Initial capital: $10,000 (realistic starting account size)
// - Timeframe: 2m (best performance on 2m charts)
// - Testing period: 2021-2033 (provides sufficient sample size of trades)
// ====================================================================================
strategy("Multi-Indicator Swing [TIAMATCRYPTO]v6", overlay=true,
default_qty_type=strategy.percent_of_equity, default_qty_value=5,
initial_capital=10000, commission_type=strategy.commission.percent,
commission_value=0.035, slippage=2)
// === BASIC SETTINGS ===
// Backtesting time period set directly in the code for realistic testing
var startDateInput = timestamp("2021-01-01T00:00:00")
var endDateInput = timestamp("2033-12-31T23:59:59")
var inDateRange = time >= startDateInput and time <= endDateInput
// Trading direction settings
tradeDirection = input.string("Both", "Trading Direction", options=["Long Only", "Short Only", "Both"], group="Basic Settings")
// === INDICATOR SWITCHES ===
// PSAR is now disabled by default
usePSAR = input.bool(false, "Use PSAR", group="Indicator Switches")
useSupertrend = input.bool(true, "Use Supertrend", group="Indicator Switches")
useADX = input.bool(true, "Use ADX", group="Indicator Switches")
useLiquidityDelta = input.bool(true, "Use Liquidity Delta", group="Indicator Switches")
// === INDICATOR SETTINGS SECTION ===
// PSAR Settings
// Default PSAR settings are conservative and work well across multiple markets
psarStart = input.float(0.02, "PSAR Initial Value", minval=0.01, maxval=0.1, step=0.01, group="PSAR Settings")
psarIncrement = input.float(0.02, "PSAR Increment", minval=0.01, maxval=0.1, step=0.01, group="PSAR Settings")
psarMaximum = input.float(0.2, "PSAR Maximum", minval=0.1, maxval=0.5, step=0.05, group="PSAR Settings")
// Supertrend Settings
// Factor 3.0 provides a good balance between sensitivity and false signals
atrPeriod = input.int(10, "SuperTrend ATR Period", minval=1, maxval=50, group="SuperTrend Settings")
factor = input.float(3.0, "SuperTrend Multiplier", minval=1, maxval=10, step=0.1, group="SuperTrend Settings")
// ADX Settings
// ADX threshold of 25 is standard for identifying strong trends
adxLength = input.int(14, "ADX Length", minval=1, maxval=50, group="ADX Settings")
adxThreshold = input.int(25, "ADX Trend Strength Threshold", minval=10, maxval=50, group="ADX Settings")
// Liquidity Delta Settings
// These settings help identify significant volume imbalances for trend confirmation
deltaLength = input.int(14, "Liquidity Delta Length", minval=1, maxval=50, group="Liquidity Delta")
deltaSmooth = input.int(3, "Delta Smoothing", minval=1, maxval=20, group="Liquidity Delta")
deltaThreshold = input.float(0.5, "Delta Signal Threshold", minval=0.1, maxval=5, step=0.1, group="Liquidity Delta")
// Risk Management Settings
// Conservative settings to ensure capital preservation
useStopLoss = input.bool(true, "Use Stop Loss", group="Risk Management")
useTakeProfit = input.bool(true, "Use Take Profit", group="Risk Management")
stopLossPercent = input.float(2.0, "Stop Loss (%)", minval=0.5, maxval=5, step=0.1, group="Risk Management")
takeProfitPercent = input.float(4.0, "Take Profit (%)", minval=1.0, maxval=10, step=0.1, group="Risk Management")
// Visualization Settings
signalSize = input.string("Normal", "Signal Size", options=["Small", "Normal", "Large"], group="Visualization")
buyColor = input.color(color.green, "Buy Signal Color", group="Visualization")
sellColor = input.color(color.red, "Sell Signal Color", group="Visualization")
// === INDICATOR CALCULATIONS ===
// All remaining indicators set to initialize as true when their respective switch is off
// PSAR Calculations
psar = ta.sar(psarStart, psarIncrement, psarMaximum)
psarCondition = not usePSAR or (close > psar)
psarSellCondition = not usePSAR or (close < psar)
// Supertrend Calculations
[supertrendValue, supertrendDirection] = ta.supertrend(factor, atrPeriod)
supertrendCondition = not useSupertrend or (supertrendDirection > 0)
supertrendSellCondition = not useSupertrend or (supertrendDirection < 0)
// ADX Calculations - custom implementation
trueRange = math.max(high - low, math.abs(high - close[1]), math.abs(low - close[1]))
smoothedTrueRange = ta.sma(trueRange, adxLength)
dmPlus = high > high[1] ? math.max(high - high[1], 0) : 0
dmMinus = low[1] > low ? math.max(low[1] - low, 0) : 0
smoothedDmPlus = ta.sma(dmPlus, adxLength)
smoothedDmMinus = ta.sma(dmMinus, adxLength)
diPlus = smoothedTrueRange > 0 ? 100 * smoothedDmPlus / smoothedTrueRange : 0
diMinus = smoothedTrueRange > 0 ? 100 * smoothedDmMinus / smoothedTrueRange : 0
dx = (diPlus + diMinus) > 0 ? math.abs(diPlus - diMinus) / (diPlus + diMinus) * 100 : 0
adxValue = ta.sma(dx, adxLength)
adxCondition = not useADX or (adxValue > adxThreshold)
// Liquidity Delta Calculations
bidVolume = close < open ? volume : volume * (high - close) / (high - low + 0.000001)
askVolume = close > open ? volume : volume * (close - low) / (high - low + 0.000001)
deltaRaw = bidVolume - askVolume
deltaAvg = ta.sma(deltaRaw, deltaLength)
deltaNormalized = deltaAvg / ta.sma(volume, deltaLength)
deltaSmoothed = ta.ema(deltaNormalized, deltaSmooth)
// Delta Signals
bullishDelta = deltaSmoothed > deltaThreshold
bearishDelta = deltaSmoothed < -deltaThreshold
deltaCondition = not useLiquidityDelta or bullishDelta
deltaSellCondition = not useLiquidityDelta or bearishDelta
// === TRADING LOGIC ===
// Buy signal - combination of all active indicators
buySignal = psarCondition and supertrendCondition and adxCondition and deltaCondition
// Sell signal - combination of all active indicators
sellSignal = psarSellCondition and supertrendSellCondition and adxCondition and deltaSellCondition
// Apply trading direction
isLongAllowed = tradeDirection == "Long Only" or tradeDirection == "Both"
isShortAllowed = tradeDirection == "Short Only" or tradeDirection == "Both"
finalBuySignal = buySignal and isLongAllowed
finalSellSignal = sellSignal and isShortAllowed
// === POSITION ENTRY WITH RISK MANAGEMENT ===
// Conservative position management with defined risk parameters
if finalBuySignal and inDateRange
strategy.entry("Long", strategy.long)
// Conditional setting of stop-loss and take-profit
if useStopLoss or useTakeProfit
stopLevel = useStopLoss ? close * (1 - stopLossPercent / 100) : na
takeProfitLevel = useTakeProfit ? close * (1 + takeProfitPercent / 100) : na
strategy.exit("Long Exit", "Long", stop=stopLevel, limit=takeProfitLevel)
if finalSellSignal and inDateRange
strategy.entry("Short", strategy.short)
// Conditional setting of stop-loss and take-profit
if useStopLoss or useTakeProfit
stopLevel = useStopLoss ? close * (1 + stopLossPercent / 100) : na
takeProfitLevel = useTakeProfit ? close * (1 - takeProfitPercent / 100) : na
strategy.exit("Short Exit", "Short", stop=stopLevel, limit=takeProfitLevel)
// === SIGNAL VISUALIZATION ===
// Creating separate signals for different sizes
buySmallSignal = finalBuySignal and signalSize == "Small"
buyNormalSignal = finalBuySignal and signalSize == "Normal"
buyLargeSignal = finalBuySignal and signalSize == "Large"
sellSmallSignal = finalSellSignal and signalSize == "Small"
sellNormalSignal = finalSellSignal and signalSize == "Normal"
sellLargeSignal = finalSellSignal and signalSize == "Large"
// Draw signals for each size
plotshape(buySmallSignal and inDateRange, title="Buy Small", location=location.belowbar, color=buyColor, style=shape.triangleup, size=size.small)
plotshape(buyNormalSignal and inDateRange, title="Buy Normal", location=location.belowbar, color=buyColor, style=shape.triangleup, size=size.normal)
plotshape(buyLargeSignal and inDateRange, title="Buy Large", location=location.belowbar, color=buyColor, style=shape.triangleup, size=size.large)
plotshape(sellSmallSignal and inDateRange, title="Sell Small", location=location.abovebar, color=sellColor, style=shape.triangledown, size=size.small)
plotshape(sellNormalSignal and inDateRange, title="Sell Normal", location=location.abovebar, color=sellColor, style=shape.triangledown, size=size.normal)
plotshape(sellLargeSignal and inDateRange, title="Sell Large", location=location.abovebar, color=sellColor, style=shape.triangledown, size=size.large)
// === INFORMATION PANEL ===
// Building list of active indicators
indList = ""
indList := usePSAR ? indList + "PSAR, " : indList
indList := useSupertrend ? indList + "SuperT, " : indList
indList := useADX ? indList + "ADX, " : indList
indList := useLiquidityDelta ? indList + "Delta" : indList
// Remove last comma if it exists
if str.endswith(indList, ", ")
indList := str.substring(indList, 0, str.length(indList) - 2)
// Building risk management text
riskText = ""
if useStopLoss and useTakeProfit
riskText := str.tostring(stopLossPercent, "#.#") + "% SL, " + str.tostring(takeProfitPercent, "#.#") + "% TP"
else if useStopLoss
riskText := str.tostring(stopLossPercent, "#.#") + "% SL"
else if useTakeProfit
riskText := str.tostring(takeProfitPercent, "#.#") + "% TP"
else
riskText := "Disabled"
// Display strategy information
var table infoTable = table.new(position.top_right, 2, 5, border_width=1)
table.cell(infoTable, 0, 0, "Strategy:", bgcolor=color.new(color.blue, 90), text_color=color.white)
table.cell(infoTable, 1, 0, "Multi-Indicator Swing", bgcolor=color.new(color.blue, 90), text_color=color.white)
table.cell(infoTable, 0, 1, "Period:", bgcolor=color.new(color.blue, 90), text_color=color.white)
table.cell(infoTable, 1, 1, "2021-2023", bgcolor=color.new(color.blue, 90), text_color=color.white)
table.cell(infoTable, 0, 2, "Direction:", bgcolor=color.new(color.blue, 90), text_color=color.white)
table.cell(infoTable, 1, 2, tradeDirection, bgcolor=color.new(color.blue, 90), text_color=color.white)
table.cell(infoTable, 0, 3, "Indicators:", bgcolor=color.new(color.blue, 90), text_color=color.white)
table.cell(infoTable, 1, 3, indList, bgcolor=color.new(color.blue, 90), text_color=color.white)
table.cell(infoTable, 0, 4, "Risk Management:", bgcolor=color.new(color.blue, 90), text_color=color.white)
table.cell(infoTable, 1, 4, riskText, bgcolor=color.new(color.blue, 90), text_color=color.white)