/////////////////////////////////////////////////////// // // SaherElm IT Center MQL5 XMAN Parser Library // ----------------------------------------------- // Name: XMANParser // Description: Parsing XMAN Config ... // // // Maintainer: // ------------ // Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com) // ////////////////////////////////////////////////////// // // Global Properties ... #property library #property copyright "Copyright 2023, SaherElm IT Center" #property link "https://www.saherelm.ir" #property version "1.00" #property strict // // Candle Timer Config ... // candleTimerColor(clrGold)candleTimerCorner(2) // // Chrt Style ... // upColor(clrLime) downColor(clrRed) lineColor(clrLime) bearishColor(clrRed) bullishColor(clrLime) volumesColor(clrGreen) chartMode(1) // // Market Cycles ... // // Short ... // l1Method(1)l1Period(NULL) // // Medium ... // l2Method(1)l2Period(NULL) // // Long ... // l3Method(1)l3Period(NULL) // // Hind ... // l4Method(1)l4Period(NULL) // // Fibonacci ... // fiboLevel1(0.236)fiboLevel2(0.382)fiboLevel3(0.5)fiboLevel4(0.618)fiboLevel5(0.764) // // Boundary Detection Mode ... // hhMode(2)llMode(1) // // Trend Detection ... // trendMultiplier(3)trendPriceAppliedTo(4) // // Ribbon Detection ... // ribbonMode(5) // // Hull Trend Detection ... // hullDivisor(2.0)hullUpAppliedTo(3)hullDownAppliedTo(4) // // SSL Channel ... // sslcMode(1)sslcUpAppliedTo(3)sslcDownAppliedTo(4) // // Style Presentation Config ... // showCandleTimer(true)showCandles(true)showHKCandles(false)showSMHKCandles(false) // // // PV Presentation Config ... // showPeaksAndVales(true)showLevels(false)showConsolidations(false) // // // Trend Presentation Config ... // showHull(false)showTrends(false)fillTrends(false)showRibbons(false)showSSLChannel(false) // // // Fibo Presentation Config ... // showFibo1Levels(false)showFibo2Levels(false)showFibo3Levels(false)showFibo4Levels(false)showFibo5Levels(false) // #include "../Libraries/x-saherelm.models.lib.mq5" #include "../Libraries/x-saherelm.common.lib.mq5" // // XPERIOD Calculation Method ... // USED For Multiple Time Frames ... enum ENUM_X_PERIOD_METHOD { // X_PERIOD_NOTHING, // Nothing X_PERIOD_AUTO, // Auto Select X_PERIOD_MANUALLY // Manually }; // enum ENUM_X_MA_METHOD { X_MA_NOTHING, // Nothing X_MA_SMA, // Simple X_MA_EMA, // Expotential X_MA_SMMA, // Smoothed Simple X_MA_LWMA, // Linear Weighted X_MA_AMA // Adaptive }; // // PARSERS ... // // CTIMER ... // string candleTimerColorToken = "candleTimerColor"; string candleTimerCornerToken = "candleTimerCorner"; // struct XCTimerConfig { color candleTimerColor; // Text Color ENUM_BASE_CORNER candleTimerCorner; // Text Position }; // string GenerateCTimerConfig( color mCandleTimerColor = clrGold, // Text Color ENUM_BASE_CORNER mCandleTimerCorner = CORNER_RIGHT_UPPER // Text Position ) { // string result = candleTimerColorToken + "(" + ToString(mCandleTimerColor) + ")" + candleTimerCornerToken + "(" + ToString((int)mCandleTimerCorner) + ")"; // return result; } // string ToString(XCTimerConfig &config) { // return GenerateCTimerConfig( config.candleTimerColor, config.candleTimerCorner); } // XCTimerConfig ParseCTimerConfig( string config // Source Config ) { // XCTimerConfig result; // // CandleTimerColor ... string candleTimerColorStr = // ExtractString( config, candleTimerColorToken + "(", ")"); // ; if (StringLen(candleTimerColorStr) > 0) { // color mCandleTimerColor = (color)candleTimerColorStr; result.candleTimerColor = mCandleTimerColor; } // // CandleTimerCorner ... string candleTimerCornerStr = // ExtractString( config, candleTimerCornerToken + "(", ")"); // ; if (StringLen(candleTimerCornerStr) > 0) { // ENUM_BASE_CORNER mCandleTimerCorner = (ENUM_BASE_CORNER)((int)candleTimerCornerStr); result.candleTimerCorner = mCandleTimerCorner; } // return result; } // // CHARTSTYLE ... // string upColorToken = "upColor"; string downColorToken = "downColor"; string lineColorToken = "lineColor"; string bearishColorToken = "bearishColor"; string bullishColorToken = "bullishColor"; string volumesColorToken = "volumesColor"; string chartModeToken = "chartMode"; // struct XChartStyleConfig { color upColor; // Up Color color downColor; // Down Color color lineColor; // Line mode and Doji candlestick Color color bearishColor; // Bullish Color color bullishColor; // Bearish Color color volumesColor; // Volumes Color ENUM_CHART_MODE chartMode; // Chart Mode }; // string GenerateChartStyleConfig( color mUpColor = clrLime, // Up Color color mDownColor = clrRed, // Down Color color mLineColor = clrLime, // Line mode and Doji candlestick Color color mBearishColor = clrRed, // Bullish Color color mBullishColor = clrLime, // Bearish Color color mVolumesColor = clrGreen, // Volumes Color ENUM_CHART_MODE mChartMode = CHART_CANDLES // Chart Mode ) { // string result = ""; // result = // upColorToken + "(" + ToString(mUpColor) + ")" + downColorToken + "(" + ToString(mDownColor) + ")" + lineColorToken + "(" + ToString(mLineColor) + ")" + bearishColorToken + "(" + ToString(mBearishColor) + ")" + bullishColorToken + "(" + ToString(mBullishColor) + ")" + volumesColorToken + "(" + ToString(mVolumesColor) + ")" + chartModeToken + "(" + ToString((int)mChartMode) + ")" // ; // return result; } // string ToString(XChartStyleConfig &config) { return GenerateChartStyleConfig( config.upColor, config.downColor, config.lineColor, config.bearishColor, config.bullishColor, config.volumesColor, config.chartMode); } // XChartStyleConfig ParseChartStyleConfig(string config) { // XChartStyleConfig result; // string upColorStr = // ExtractString( config, upColorToken + "(", ")") // ; if (StringLen(upColorStr) > 0) { // color mUpColor = (color)upColorStr; result.upColor = mUpColor; } // string downColorStr = // ExtractString( config, downColorToken + "(", ")") // ; if (StringLen(downColorStr) > 0) { // color mDownColor = (color)downColorStr; result.downColor = mDownColor; } // string lineColorStr = // ExtractString( config, lineColorToken + "(", ")") // ; if (StringLen(lineColorStr) > 0) { // color mLineColor = (color)lineColorStr; result.lineColor = mLineColor; } // string bearishColorStr = // ExtractString( config, bearishColorToken + "(", ")") // ; if (StringLen(bearishColorStr) > 0) { // color mBearishColor = (color)bearishColorStr; result.bearishColor = mBearishColor; } // string bullishColorStr = // ExtractString( config, bullishColorToken + "(", ")") // ; if (StringLen(bullishColorStr) > 0) { // color mBullishColor = (color)bullishColorStr; result.bullishColor = mBullishColor; } // string volumesColorStr = // ExtractString( config, volumesColorToken + "(", ")") // ; if (StringLen(volumesColorStr) > 0) { // color mVolumesColor = (color)volumesColorStr; result.volumesColor = mVolumesColor; } // string chartModeStr = // ExtractString( config, chartModeToken + "(", ")") // ; if (StringLen(chartModeStr) > 0) { // ENUM_CHART_MODE mChartMode = (ENUM_CHART_MODE)((int)chartModeStr); result.chartMode = mChartMode; } // return result; } // // MARKETCYCLES ... // // SHORT ... // string l1MethodToken = "l1Method"; string l1PeriodToken = "l1Period"; // struct XSCConfig { ENUM_X_PERIOD_METHOD l1Method; // How to Find Period ENUM_TIMEFRAMES l1Period; // Time Period }; // string GenerateSCConfig( ENUM_X_PERIOD_METHOD mML1Method = X_PERIOD_AUTO, // How to Find Period ENUM_TIMEFRAMES mML1Period = NULL // Time Period ) { // string result = ""; // result = // l1MethodToken + "(" + ToString(mML1Method) + ")" + l1PeriodToken + "(" + ToString(mML1Period) + ")" // ; // return result; } // string ToString(XSCConfig &config) { return GenerateSCConfig( config.l1Method, config.l1Period); } // XSCConfig PrseSCConfig(string config) { // XSCConfig result; // string l1MethodStr = ExtractString( config, l1MethodToken + "(", ")"); if (StringLen(l1MethodStr) > 0) { // ENUM_X_PERIOD_METHOD mML1Method = (ENUM_X_PERIOD_METHOD)((int)l1MethodStr); result.l1Method = mML1Method; } // string l1PeriodStr = ExtractString( config, l1PeriodToken + "(", ")"); if (StringLen(l1PeriodStr) > 0) { // ENUM_TIMEFRAMES mML1Period = (ENUM_TIMEFRAMES)((int)l1PeriodStr); result.l1Period = mML1Period; } // return result; } // // MEDIUM ... // string l2MethodToken = "l2Method"; string l2PeriodToken = "l2Period"; // struct XMCConfig { ENUM_X_PERIOD_METHOD l2Method; // How to Find Period ENUM_TIMEFRAMES l2Period; // Time Period }; // string GenerateMCConfig( ENUM_X_PERIOD_METHOD mML2Method = X_PERIOD_AUTO, // How to Find Period ENUM_TIMEFRAMES mML2Period = NULL // Time Period ) { // string result = ""; // result = // l2MethodToken + "(" + ToString(mML2Method) + ")" + l2PeriodToken + "(" + ToString(mML2Period) + ")" // ; // return result; } // string ToString(XMCConfig &config) { return GenerateSCConfig( config.l2Method, config.l2Period); } // XMCConfig PrseMCConfig(string config) { // XMCConfig result; // string l2MethodStr = ExtractString( config, l2MethodToken + "(", ")"); if (StringLen(l2MethodStr) > 0) { // ENUM_X_PERIOD_METHOD mML2Method = (ENUM_X_PERIOD_METHOD)((int)l2MethodStr); result.l2Method = mML2Method; } // string l2PeriodStr = ExtractString( config, l2PeriodToken + "(", ")"); if (StringLen(l2PeriodStr) > 0) { // ENUM_TIMEFRAMES mML2Period = (ENUM_TIMEFRAMES)((int)l2PeriodStr); result.l2Period = mML2Period; } // return result; } // // LONG ... // string l3MethodToken = "l3Method"; string l3PeriodToken = "l3Period"; // struct XLCConfig { ENUM_X_PERIOD_METHOD l3Method; // How to Find Period ENUM_TIMEFRAMES l3Period; // Time Period }; // string GenerateLCConfig( ENUM_X_PERIOD_METHOD mML3Method = X_PERIOD_AUTO, // How to Find Period ENUM_TIMEFRAMES mML3Period = NULL // Time Period ) { // string result = ""; // result = // l3MethodToken + "(" + ToString(mML3Method) + ")" + l3PeriodToken + "(" + ToString(mML3Period) + ")" // ; // return result; } // string ToString(XLCConfig &config) { return GenerateSCConfig( config.l3Method, config.l3Period); } // XLCConfig PrseLCConfig(string config) { // XLCConfig result; // string l3MethodStr = ExtractString( config, l3MethodToken + "(", ")"); if (StringLen(l3MethodStr) > 0) { // ENUM_X_PERIOD_METHOD mML3Method = (ENUM_X_PERIOD_METHOD)((int)l3MethodStr); result.l3Method = mML3Method; } // string l3PeriodStr = ExtractString( config, l3PeriodToken + "(", ")"); if (StringLen(l3PeriodStr) > 0) { // ENUM_TIMEFRAMES mML3Period = (ENUM_TIMEFRAMES)((int)l3PeriodStr); result.l3Period = mML3Period; } // return result; } // // HIND ... // string l4MethodToken = "l4Method"; string l4PeriodToken = "l4Period"; // struct XHCConfig { ENUM_X_PERIOD_METHOD l4Method; // How to Find Period ENUM_TIMEFRAMES l4Period; // Time Period }; // string GenerateHCConfig( ENUM_X_PERIOD_METHOD mML4Method = X_PERIOD_AUTO, // How to Find Period ENUM_TIMEFRAMES mML4Period = NULL // Time Period ) { // string result = ""; // result = // l4MethodToken + "(" + ToString(mML4Method) + ")" + l4PeriodToken + "(" + ToString(mML4Period) + ")" // ; // return result; } // string ToString(XHCConfig &config) { return GenerateSCConfig( config.l4Method, config.l4Period); } // XHCConfig PrseHCConfig(string config) { // XHCConfig result; // string l4MethodStr = ExtractString( config, l4MethodToken + "(", ")"); if (StringLen(l4MethodStr) > 0) { // ENUM_X_PERIOD_METHOD mML4Method = (ENUM_X_PERIOD_METHOD)((int)l4MethodStr); result.l4Method = mML4Method; } // string l4PeriodStr = ExtractString( config, l4PeriodToken + "(", ")"); if (StringLen(l4PeriodStr) > 0) { // ENUM_TIMEFRAMES mML4Period = (ENUM_TIMEFRAMES)((int)l4PeriodStr); result.l4Period = mML4Period; } // return result; } // // XFIBONACCI ... // string fiboLevel1Token = "fiboLevel1"; string fiboLevel2Token = "fiboLevel2"; string fiboLevel3Token = "fiboLevel3"; string fiboLevel4Token = "fiboLevel4"; string fiboLevel5Token = "fiboLevel5"; // struct XFiboConfig { double fiboLevel1; // Fibio 1st Level double fiboLevel2; // Fibio 2st Level double fiboLevel3; // Fibio 3rd Level double fiboLevel4; // Fibio 4th Level double fiboLevel5; // Fibio 5th Level }; // string GenerateFibonacciConfig( double mFiboLevel1 = 0.236, // Fibio 1st Level double mFiboLevel2 = 0.382, // Fibio 2st Level double mFiboLevel3 = 0.5, // Fibio 3rd Level double mFiboLevel4 = 0.618, // Fibio 4th Level double mFiboLevel5 = 0.764 // Fibio 5th Level ) { // string result = ""; // result = // fiboLevel1Token + "(" + ToString(mFiboLevel1) + ")" + fiboLevel2Token + "(" + ToString(mFiboLevel2) + ")" + fiboLevel3Token + "(" + ToString(mFiboLevel3) + ")" + fiboLevel4Token + "(" + ToString(mFiboLevel4) + ")" + fiboLevel5Token + "(" + ToString(mFiboLevel5) + ")" // ; // return result; } // string ToString(XFiboConfig &config) { return GenerateFibonacciConfig( config.fiboLevel1, config.fiboLevel2, config.fiboLevel3, config.fiboLevel4, config.fiboLevel5); } // XFiboConfig PrseFiboConfig(string config) { // XFiboConfig result; // string fiboLevel1Str = ExtractString( config, fiboLevel1Token + "(", ")"); if (StringLen(fiboLevel1Str) > 0) { // double mFiboLevel1 = (double)fiboLevel1Str; result.fiboLevel1 = mFiboLevel1; } // string fiboLevel2Str = ExtractString( config, fiboLevel2Token + "(", ")"); if (StringLen(fiboLevel2Str) > 0) { // double mFiboLevel2 = (double)fiboLevel2Str; result.fiboLevel2 = mFiboLevel2; } // string fiboLevel3Str = ExtractString( config, fiboLevel3Token + "(", ")"); if (StringLen(fiboLevel3Str) > 0) { // double mFiboLevel3 = (double)fiboLevel3Str; result.fiboLevel3 = mFiboLevel3; } // string fiboLevel4Str = ExtractString( config, fiboLevel4Token + "(", ")"); if (StringLen(fiboLevel4Str) > 0) { // double mFiboLevel4 = (double)fiboLevel4Str; result.fiboLevel4 = mFiboLevel4; } // string fiboLevel5Str = ExtractString( config, fiboLevel5Token + "(", ")"); if (StringLen(fiboLevel5Str) > 0) { // double mFiboLevel5 = (double)fiboLevel5Str; result.fiboLevel5 = mFiboLevel5; } // return result; } // // BOUNDARYDETECTION ... // string hhModeToken = "hhMode"; string llModeToken = "llMode"; // struct XBDConfig { ENUM_SERIESMODE hhMode; // Highest High Calculation Method ENUM_SERIESMODE llMode; // Lowest Low Calculation Method }; // string GenerateBDConfig( ENUM_SERIESMODE mHhMode = MODE_HIGH, // Highest High Calculation Method ENUM_SERIESMODE mLlMode = MODE_LOW // Lowest Low Calculation Method ) { // string result = ""; // result = // hhModeToken + "(" + ToString((int)mHhMode) + ")" + llModeToken + "(" + ToString((int)mLlMode) + ")" // ; // return result; } // string ToString(XBDConfig &config) { return GenerateBDConfig( config.hhMode, config.llMode); } // XBDConfig ParseBDConfig(string config) { // XBDConfig result; // string hhModeStr = ExtractString( config, hhModeToken + "(", ")"); if (StringLen(hhModeStr) > 0) { // ENUM_SERIESMODE mHhMode = (ENUM_SERIESMODE)((int)hhModeStr); result.hhMode = mHhMode; } // string llModeStr = ExtractString( config, llModeToken + "(", ")"); if (StringLen(llModeStr) > 0) { // ENUM_SERIESMODE mLlMode = (ENUM_SERIESMODE)((int)llModeStr); result.llMode = mLlMode; } // return result; } // // TREND ... // string trendMultiplierToken = "trendMultiplier"; string trendPriceAppliedToToken = "trendPriceAppliedTo"; // struct XTDConfig { double trendMultiplier; // Multiplier ENUM_APPLIED_PRICE trendPriceAppliedTo; // Applied To }; // string GenerateTDConfig( double mTrendMultiplier = 3, // Multiplier ENUM_APPLIED_PRICE mTrendPriceAppliedTo = PRICE_MEDIAN // Applied To ) { // string result = ""; // result = // trendMultiplierToken + "(" + ToString(mTrendMultiplier) + ")" + trendPriceAppliedToToken + "(" + ToString(mTrendPriceAppliedTo) + ")" // ; // return result; } // string ToString(XTDConfig &config) { return GenerateTDConfig( config.trendMultiplier, config.trendPriceAppliedTo); } // XTDConfig ParseTDConfig(string config) { // XTDConfig result; // string trendMultiplierStr = ExtractString( config, trendMultiplierToken + "(", ")"); if (StringLen(trendMultiplierStr) > 0) { // double mTrendMultiplier = (double)trendMultiplierStr; result.trendMultiplier = mTrendMultiplier; } // string trendPriceAppliedToStr = ExtractString( config, trendPriceAppliedToToken + "(", ")"); if (StringLen(trendPriceAppliedToStr) > 0) { // ENUM_APPLIED_PRICE mTrendPriceAppliedTo = (ENUM_APPLIED_PRICE)((int)trendPriceAppliedToStr); // result.trendPriceAppliedTo = mTrendPriceAppliedTo; } // return result; } // // RIBBON RB ... // string ribbonModeToken = "ribbonMode"; // struct XRBConfig { ENUM_X_MA_METHOD ribbonMode; // How to Calculate }; // string GenerateRBConfig( ENUM_X_MA_METHOD mRibbonMode = X_MA_AMA // How to Calculate ) { // string result = ""; // result = // ribbonModeToken + "(" + ToString(mRibbonMode) + ")" // ; // return result; } // string ToString(XRBConfig &config) { // return GenerateRBConfig( config.ribbonMode); } // XRBConfig ParseRBConfig(string config) { // XRBConfig result; // string ribbonModeStr = ExtractString( config, ribbonModeToken + "(", ")"); if (StringLen(ribbonModeStr) > 0) { // ENUM_X_MA_METHOD mRibbonMode = (ENUM_X_MA_METHOD)((int)ribbonModeStr); result.ribbonMode = mRibbonMode; } // return result; } // // HULL ... // string hullDivisorToken = "hullDivisor"; string hullUpAppliedToToken = "hullUpAppliedTo"; string hullDownAppliedToToken = "hullDownAppliedTo"; // struct XHullConfig { double hullDivisor; // Divisor (Speed) ENUM_APPLIED_PRICE hullUpAppliedTo; // Up Zone Applied to ENUM_APPLIED_PRICE hullDownAppliedTo; // Down Zone Applied to }; // string GenerateHullConfig( double mHullDivisor = 2.0, // Divisor (Speed) ENUM_APPLIED_PRICE mHullUpAppliedTo = PRICE_HIGH, // Up Zone Applied to ENUM_APPLIED_PRICE mHullDownAppliedTo = PRICE_LOW // Down Zone Applied to ) { // string result = ""; // result = // hullDivisorToken + "(" + ToString(mHullDivisor) + ")" + hullUpAppliedToToken + "(" + ToString(mHullUpAppliedTo) + ")" + hullDownAppliedToToken + "(" + ToString(mHullDownAppliedTo) + ")" // ; // return result; } // string ToString(XHullConfig &config) { // return GenerateHullConfig( config.hullDivisor, config.hullUpAppliedTo, config.hullDownAppliedTo); } // XHullConfig ParseHullConfig(string config) { // XHullConfig result; // string hullDivisorStr = ExtractString( config, hullDivisorToken + "(", ")"); if (StringLen(hullDivisorStr) > 0) { // double mHullDivisor = (double)hullDivisorStr; result.hullDivisor = mHullDivisor; } // string hullUpAppliedToStr = ExtractString( config, hullUpAppliedToToken + "(", ")"); if (StringLen(hullUpAppliedToStr) > 0) { // ENUM_APPLIED_PRICE mHullUpAppliedTo = (ENUM_APPLIED_PRICE)((int)hullUpAppliedToStr); result.hullUpAppliedTo = mHullUpAppliedTo; } // string hullDownAppliedToStr = ExtractString( config, hullDownAppliedToToken + "(", ")"); if (StringLen(hullDownAppliedToStr) > 0) { // ENUM_APPLIED_PRICE mHullDownAppliedTo = (ENUM_APPLIED_PRICE)((int)hullDownAppliedToStr); result.hullDownAppliedTo = mHullDownAppliedTo; } // return result; } // // SSLC ... // string sslcModeToken = "sslcMode"; string sslcUpAppliedToToken = "sslcUpAppliedTo"; string sslcDownAppliedToToken = "sslcDownAppliedTo"; // struct XSSLCConfig { ENUM_X_MA_METHOD sslcMode; // How to Calculate ENUM_APPLIED_PRICE sslcUpAppliedTo; // Up Applied To ENUM_APPLIED_PRICE sslcDownAppliedTo; // Down Applied To }; // string GenerateSSLCConfig( ENUM_X_MA_METHOD mSslcMode = X_MA_SMA, // How to Calculate ENUM_APPLIED_PRICE mSslcUpAppliedTo = PRICE_HIGH, // Up Applied To ENUM_APPLIED_PRICE mSslcDownAppliedTo = PRICE_LOW // Down Applied To ) { // string result; // result = // sslcModeToken + "(" + ToString(mSslcMode) + ")" + sslcUpAppliedToToken + "(" + ToString(mSslcUpAppliedTo) + ")" + sslcDownAppliedToToken + "(" + ToString(mSslcDownAppliedTo) + ")" // ; // return result; } // string ToString(XSSLCConfig &config) { return GenerateSSLCConfig( config.sslcMode, config.sslcUpAppliedTo, config.sslcDownAppliedTo); } // XSSLCConfig ParseSSLCConfig(string config) { // XSSLCConfig result; // string sslcModeStr = ExtractString( config, sslcModeToken + "(", ")"); if (StringLen(sslcModeStr) > 0) { // ENUM_X_MA_METHOD mSslcMode = (ENUM_X_MA_METHOD)((int)sslcModeStr); result.sslcMode = mSslcMode; } // string sslcUpAppliedToStr = ExtractString( config, sslcUpAppliedToToken + "(", ")"); if (StringLen(sslcUpAppliedToStr) > 0) { // ENUM_APPLIED_PRICE mSslcUpAppliedTo = (ENUM_APPLIED_PRICE)((int)sslcUpAppliedToStr); result.sslcUpAppliedTo = mSslcUpAppliedTo; } // string sslcDownAppliedToStr = ExtractString( config, sslcDownAppliedToToken + "(", ")"); if (StringLen(sslcDownAppliedToStr) > 0) { // ENUM_APPLIED_PRICE mSslcDownAppliedTo = (ENUM_APPLIED_PRICE)((int)sslcDownAppliedToStr); result.sslcDownAppliedTo = mSslcDownAppliedTo; } // return result; } // // PRESENTATION ... // string showCandleTimerToken = "showCandleTimer"; string showCandlesToken = "showCandles"; string showHKCandlesToken = "showHKCandles"; string showSMHKCandlesToken = "showSMHKCandles"; string showPeaksAndValesToken = "showPeaksAndVales"; string showTrendsToken = "showTrends"; string fillTrendsToken = "fillTrends"; string showLevelsToken = "showLevels"; string showConsolidationsToken = "showConsolidations"; string showRibbonsToken = "showRibbons"; string showHullToken = "showHull"; string showSSLChannelToken = "showSSLChannel"; string showFibo1LevelsToken = "showFibo1Levels"; string showFibo2LevelsToken = "showFibo2Levels"; string showFibo3LevelsToken = "showFibo3Levels"; string showFibo4LevelsToken = "showFibo4Levels"; string showFibo5LevelsToken = "showFibo5Levels"; // struct XStylePresentationConfig { bool showCandleTimer; // Show Candle Time bool showCandles; // Show Candles bool showHKCandles; // Draw Hiken Ashi Candle bool showSMHKCandles; // Draw Smoothed Hiken Ashi Candle }; // string GenerateStylePresentationConfig( bool mShowCandleTimer = true, // Show Candle Time bool mShowCandles = true, // Show Candles bool mShowHKCandles = false, // Draw Hiken Ashi Candle bool mShowSMHKCandles = false // Draw Smoothed Hiken Ashi Candle ) { // string result = ""; // result = // showCandleTimerToken + "(" + ToString(mShowCandleTimer) + ")" + showCandlesToken + "(" + ToString(mShowCandles) + ")" + showHKCandlesToken + "(" + ToString(mShowHKCandles) + ")" + showSMHKCandlesToken + "(" + ToString(mShowSMHKCandles) + ")" // ; // return result; } // XStylePresentationConfig ParseStylePresentationConfig(string config) { // XStylePresentationConfig result; // string showCandleTimerStr = ExtractString( config, showCandleTimerToken + "(", ")"); if (StringLen(showCandleTimerStr) > 0) { // bool mShowCandleTimer = ToBoolean(showCandleTimerStr); result.showCandleTimer = mShowCandleTimer; } // string showCandlesStr = ExtractString( config, showCandlesToken + "(", ")"); if (StringLen(showCandlesStr) > 0) { // bool mShowCandles = ToBoolean(showCandlesStr); result.showCandles = mShowCandles; } // string showHKCandlesStr = ExtractString( config, showHKCandlesToken + "(", ")"); if (StringLen(showHKCandlesStr) > 0) { // bool mShowHKCandles = ToBoolean(showHKCandlesStr); result.showHKCandles = mShowHKCandles; } // string showSMHKCandlesStr = ExtractString( config, showSMHKCandlesToken + "(", ")"); if (StringLen(showSMHKCandlesStr) > 0) { // bool mShowSMHKCandles = ToBoolean(showSMHKCandlesStr); result.showSMHKCandles = mShowSMHKCandles; } // return result; } // string ToString(XStylePresentationConfig &config) { // return GenerateStylePresentationConfig( config.showCandleTimer, config.showCandles, config.showHKCandles, config.showSMHKCandles); } // struct XPVPresentationConfig { bool showPeaksAndVales; // Show Peaks and Vales bool showLevels; // Show Levels bool showConsolidations; // Show Consolidations }; // string GeneratePVPresentationConfig( bool mShowPeaksAndVales = true, // Show Peaks and Vales bool mShowLevels = false, // Show Levels bool mShowConsolidations = false // Show Consolidations ) { // string result; // result = // showPeaksAndValesToken + "(" + ToString(mShowPeaksAndVales) + ")" + showLevelsToken + "(" + ToString(mShowLevels) + ")" + showConsolidationsToken + "(" + ToString(mShowConsolidations) + ")" // ; // return result; } // string ToString(XPVPresentationConfig &config) { // return GeneratePVPresentationConfig( config.showPeaksAndVales, config.showLevels, config.showConsolidations); } // XPVPresentationConfig ParsePVPresentationConfig(string config) { // XPVPresentationConfig result; // string showPeaksAndValesStr = ExtractString( config, showPeaksAndValesToken + "(", ")"); if (StringLen(showPeaksAndValesStr) > 0) { // bool mShowPeaksAndVales = ToBoolean(showPeaksAndValesStr); result.showPeaksAndVales = mShowPeaksAndVales; } // string showLevelsStr = ExtractString( config, showLevelsToken + "(", ")"); if (StringLen(showLevelsStr) > 0) { // bool mShowLevels = ToBoolean(showLevelsStr); result.showLevels = mShowLevels; } // string showConsolidationsStr = ExtractString( config, showConsolidationsToken + "(", ")"); if (StringLen(showConsolidationsStr) > 0) { // bool mShowConsolidations = ToBoolean(showConsolidationsStr); result.showConsolidations = mShowConsolidations; } // return result; } // struct XTrendPresentationConfig { bool showHull; // Show Hull bool showTrends; // Show Trends bool fillTrends; // Fill Trends bool showRibbons; // Show Ribbons bool showSSLChannel; // Show SSL Channel }; // string GenerateTrendPresentationConfig( bool mShowTrends = true, // Show Trends bool mFillTrends = false, // Fill Trends bool mShowRibbons = false, // Show Ribbons bool mShowHull = false, // Show Hull bool mShowSSLChannel = false // Show SSL Channel ) { // string result; // result = // showTrendsToken + "(" + ToString(mShowTrends) + ")" + fillTrendsToken + "(" + ToString(mFillTrends) + ")" + showRibbonsToken + "(" + ToString(mShowRibbons) + ")" + showHullToken + "(" + ToString(mShowHull) + ")" + showSSLChannelToken + "(" + ToString(mShowSSLChannel) + ")" // ; // return result; } // string ToString(XTrendPresentationConfig &config) { // return GenerateTrendPresentationConfig( config.showHull, config.showTrends, config.fillTrends, config.showRibbons, config.showSSLChannel); } // XTrendPresentationConfig ParseTrendPresentationConfig(string config) { // XTrendPresentationConfig result; // string showTrendsStr = ExtractString( config, showTrendsToken + "(", ")"); if (StringLen(showTrendsStr) > 0) { // bool mShowTrends = ToBoolean(showTrendsStr); result.showTrends = mShowTrends; } // string fillTrendsStr = ExtractString( config, fillTrendsToken + "(", ")"); if (StringLen(fillTrendsStr) > 0) { // bool mFillTrends = ToBoolean(fillTrendsStr); result.fillTrends = mFillTrends; } // string showRibbonsStr = ExtractString( config, showRibbonsToken + "(", ")"); if (StringLen(showRibbonsStr) > 0) { // bool mShowRibbons = ToBoolean(showRibbonsStr); result.showRibbons = mShowRibbons; } // string showHullStr = ExtractString( config, showHullToken + "(", ")"); if (StringLen(showHullStr) > 0) { // bool mShowHull = ToBoolean(showHullStr); result.showHull = mShowHull; } // string showSSLChannelStr = ExtractString( config, showSSLChannelToken + "(", ")"); if (StringLen(showSSLChannelStr) > 0) { // bool mShowSSLChannel = ToBoolean(showSSLChannelStr); result.showSSLChannel = mShowSSLChannel; } // return result; } // struct XFiboPresentationConfig { bool showFibo1Levels; // Show Fibo 1st Level bool showFibo2Levels; // Show Fibo 2nd Level bool showFibo3Levels; // Show Fibo 3rd Level bool showFibo4Levels; // Show Fibo 4th Level bool showFibo5Levels; // Show Fibo 5th Level }; // string GenerateFiboPresentationConfig( bool mShowFibo1Levels = false, // Show Fibo 1st Level bool mShowFibo2Levels = false, // Show Fibo 2nd Level bool mShowFibo3Levels = false, // Show Fibo 3rd Level bool mShowFibo4Levels = false, // Show Fibo 4th Level bool mShowFibo5Levels = false // Show Fibo 5th Level ) { // string result = ""; // result = // showFibo1LevelsToken + "(" + ToString(mShowFibo1Levels) + ")" + showFibo2LevelsToken + "(" + ToString(mShowFibo2Levels) + ")" + showFibo3LevelsToken + "(" + ToString(mShowFibo3Levels) + ")" + showFibo4LevelsToken + "(" + ToString(mShowFibo4Levels) + ")" + showFibo5LevelsToken + "(" + ToString(mShowFibo5Levels) + ")" // ; // return result; } // string ToString(XFiboPresentationConfig &config) { // return GenerateFiboPresentationConfig( config.showFibo1Levels, config.showFibo2Levels, config.showFibo3Levels, config.showFibo4Levels, config.showFibo5Levels); } // XFiboPresentationConfig ParePresentationConfig(string config) { // XFiboPresentationConfig result; // string showFibo1LevelsStr = ExtractString( config, showFibo1LevelsToken + "(", ")"); if (StringLen(showFibo1LevelsStr) > 0) { // bool mShowFibo1Levels = ToBoolean(showFibo1LevelsStr); result.showFibo1Levels = mShowFibo1Levels; } // string showFibo2LevelsStr = ExtractString( config, showFibo2LevelsToken + "(", ")"); if (StringLen(showFibo2LevelsStr) > 0) { // bool mShowFibo2Levels = ToBoolean(showFibo2LevelsStr); result.showFibo2Levels = mShowFibo2Levels; } // string showFibo3LevelsStr = ExtractString( config, showFibo3LevelsToken + "(", ")"); if (StringLen(showFibo3LevelsStr) > 0) { // bool mShowFibo3Levels = ToBoolean(showFibo3LevelsStr); result.showFibo3Levels = mShowFibo3Levels; } // string showFibo4LevelsStr = ExtractString( config, showFibo4LevelsToken + "(", ")"); if (StringLen(showFibo4LevelsStr) > 0) { // bool mShowFibo4Levels = ToBoolean(showFibo4LevelsStr); result.showFibo4Levels = mShowFibo4Levels; } // string showFibo5LevelsStr = ExtractString( config, showFibo5LevelsToken + "(", ")"); if (StringLen(showFibo5LevelsStr) > 0) { // bool mShowFibo5Levels = ToBoolean(showFibo5LevelsStr); result.showFibo5Levels = mShowFibo5Levels; } // return result; } // // //