{"id":9684,"date":"2023-12-20T10:46:40","date_gmt":"2023-12-20T02:46:40","guid":{"rendered":"http:\/\/members.1uptick.com\/?page_id=9684"},"modified":"2024-11-08T03:33:48","modified_gmt":"2024-11-07T19:33:48","slug":"pine-script","status":"publish","type":"page","link":"https:\/\/members.1uptick.com\/th\/pine-script\/","title":{"rendered":"Pine script"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"9684\" class=\"elementor elementor-9684\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-12d6712 elementor-section-full_width elementor-section-stretched elementor-section-height-default elementor-section-height-default\" data-id=\"12d6712\" data-element_type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;,&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1684667\" data-id=\"1684667\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5d3b42b elementor-widget elementor-widget-wp-widget-ipw\" data-id=\"5d3b42b\" data-element_type=\"widget\" data-widget_type=\"wp-widget-ipw.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div data-post-id=\"11939\" class=\"insert-page insert-page-11939\">\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"11939\" class=\"elementor elementor-11939\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5490ce7 e-con-full e-flex e-con e-parent\" data-id=\"5490ce7\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-a7b0936 e-con-full e-flex e-con e-child\" data-id=\"a7b0936\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-799b9b7 e-con-full e-flex e-con e-child\" data-id=\"799b9b7\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-75ac99c e-con-full e-flex e-con e-child\" data-id=\"75ac99c\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-c06ce72 e-con-full e-flex e-con e-child\" data-id=\"c06ce72\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-f7eaf42 e-con-full e-flex e-con e-child\" data-id=\"f7eaf42\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d0b195e elementor-widget elementor-widget-heading\" data-id=\"d0b195e\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">\u0e2a\u0e21\u0e31\u0e04\u0e23\u0e2a\u0e21\u0e32\u0e0a\u0e34\u0e01\u0e0a\u0e48\u0e2d\u0e07 FX V.1.3.1<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5328fb4 e-con-full e-flex e-con e-child\" data-id=\"5328fb4\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c99ef2a elementor-widget elementor-widget-button\" data-id=\"c99ef2a\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"http:\/\/members.1uptick.com\/th\/subscription\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0e17\u0e14\u0e25\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e1f\u0e23\u0e35 7 \u0e27\u0e31\u0e19<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e7ca21b e-con-full e-flex e-con e-child\" data-id=\"e7ca21b\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-669efad e-con-full e-flex e-con e-child\" data-id=\"669efad\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4c3ebc3 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"4c3ebc3\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-xs\" href=\"http:\/\/members.1uptick.com\/th\/trading-room-gold-1-3-1\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0e2b\u0e49\u0e2d\u0e07\u0e04\u0e49\u0e32\u0e17\u0e2d\u0e07\u0e04\u0e33<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8a6eedb e-con-full e-flex e-con e-child\" data-id=\"8a6eedb\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4c1f35b elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"4c1f35b\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-xs\" href=\"http:\/\/members.1uptick.com\/th\/trading-room\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0e2b\u0e49\u0e2d\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22 FX<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-092f5d3 e-con-full e-flex e-con e-child\" data-id=\"092f5d3\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ba96c36 elementor-widget elementor-widget-spacer\" data-id=\"ba96c36\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6581b02 e-con-full e-flex e-con e-child\" data-id=\"6581b02\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-93e56a7 elementor-widget elementor-widget-spacer\" data-id=\"93e56a7\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-87a2730 e-con-full e-flex e-con e-child\" data-id=\"87a2730\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c370c7f elementor-widget elementor-widget-spacer\" data-id=\"c370c7f\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e24ce6b e-con-full e-flex e-con e-child\" data-id=\"e24ce6b\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bbf87e6 elementor-widget__width-initial elementor-widget elementor-widget-elementskit-popup-modal\" data-id=\"bbf87e6\" data-element_type=\"widget\" data-widget_type=\"elementskit-popup-modal.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" >        <!-- Start Markup -->\n                            <div class='ekit-popup-modal__toggler-wrapper'>\n                    <!-- Button trigger modal -->\n                    <button \n                        type=\"button\" \n                        class=\"elementskit-btn ekit-popup-btn ekit-popup-btn__filled ekit-popup__toggler ekit-popup-modal-toggler whitespace--normal\" \n                        data-toggle=\"modal\" \n                        data-target=\"#ekit-popup-modal\"\n                        id=\"ekit-popup-modal-toggler\"\n                    >\n                        \u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e04\u0e33\u0e19\u0e27\u0e13\u0e21\u0e32\u0e23\u0e4c\u0e08\u0e34\u0e49\u0e19                    <\/button>\n                <\/div>\n            \n            <!-- Modal -->\n            <div \n                class=\"ekit-popup-modal ekit-popup-modal__inside middle center\" \n                data-toggleafter=\"0\"\n                data-toggletype=\"button\"\n                data-cookieconsent=\"\"\n            >\n                                <div\n                    class=\"ekit-popup-modal__content ekit-popup__content animated animated-normal\" \n                    style=\"\"\n                    data-animation=\"fade-in-up\"\n                >\n                                            <div class=\"ekit-popup-modal__close popup-top-right\">\n                            <i aria-hidden=\"true\" class=\"icon icon-cross\"><\/i>                        <\/div>\n                    \n                    <!-- Start Header -->\n                                            <div class=\"ekit-popup-modal__header ekit-popup__header\">\n                            <h4 class=\"ekit-popup-modal__title ekit-popup__title\">\n                                \u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e04\u0e33\u0e19\u0e27\u0e13\u0e21\u0e32\u0e23\u0e4c\u0e08\u0e34\u0e49\u0e19                            <\/h4>\n                                                        <p class=\"ekit-popup-modal__subtitle ekit-popup__subtitle\">\n                                \u0e04\u0e33\u0e19\u0e27\u0e13\u0e21\u0e32\u0e23\u0e4c\u0e08\u0e34\u0e49\u0e19\u0e02\u0e31\u0e49\u0e19\u0e15\u0e48\u0e33\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d\u0e25\u0e47\u0e2d\u0e15                            <\/p>\n                                                    <\/div>\n                                        <!-- End Header -->\n\n                    <!-- Start Body -->\n                    <div class=\"ekit-popup-modal__body ekit-popup__body\">\n                        \t\t\t\t\t\t\t<div class=\"ekit-popup__raw-content\">\n\t\t\t\t\t\t\t\t<iframe loading=\"lazy\" src=\"https:\/\/ssltools.investing.com\/margin-calculator\/index.php?force_lang=1&amp;acc=12&amp;pair=1\" width=\"430\" height=\"425\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<div style=\"width: 430;\"><span style=\"float: left;\"><span style=\"font-size: 11px; color: #333333; text-decoration: none;\">The Margin Calculator is powered by Investing.com<\/span><\/span><\/div>\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t                    <\/div>\n                    <!-- Emd Body -->\n\n                    <!-- Start Footer -->\n                                            <div class=\"ekit-popup-modal__footer ekit-popup-footer ekit-popup-modal__footer-with-divider\">\n                            <div \n                                class='ekit-popup-modal__actions'\n                                style=\"\">\n                                                                                            <\/div>\n                        <\/div>\n                                        <!-- End Footer -->\n                <\/div>\n                                    <div class=\"ekit-popup-modal__overlay ekit-popup__close\"><\/div>\n                            <\/div>\n        <!-- End Markup -->\n    <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-730168c e-con-full e-flex e-con e-child\" data-id=\"730168c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-699e7bd elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"699e7bd\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-xs\" href=\"http:\/\/members.1uptick.com\/th\/chart\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0e41\u0e1c\u0e19\u0e20\u0e39\u0e21\u0e34\u0e2a\u0e14<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5b11ec0 e-con-full e-flex e-con e-child\" data-id=\"5b11ec0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-feba9ca elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"feba9ca\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-xs\" href=\"http:\/\/members.1uptick.com\/th\/economic-calendar\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0e1b\u0e0f\u0e34\u0e17\u0e34\u0e19<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e5367dd e-con-full e-flex e-con e-child\" data-id=\"e5367dd\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-904513c elementor-hidden-mobile elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"904513c\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-976340d\" data-id=\"976340d\" data-element_type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-85d338a elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"85d338a\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-39b2ba2 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile\" data-id=\"39b2ba2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-61d55c1\" data-id=\"61d55c1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-eb7fdc4 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile\" data-id=\"eb7fdc4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-cafb011 elementor-widget elementor-widget-image\" data-id=\"cafb011\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/tw.tradingview.com\/?aff_id=133504\" target=\"_blank\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"619\" height=\"181\" src=\"https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/Asset-21uptick-header-TW-.png\" class=\"attachment-large size-large wp-image-9829\" alt=\"\" srcset=\"https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/Asset-21uptick-header-TW-.png 619w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/Asset-21uptick-header-TW--300x88.png 300w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/Asset-21uptick-header-TW--18x5.png 18w\" sizes=\"auto, (max-width: 619px) 100vw, 619px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-da0252b elementor-widget__width-initial elementor-widget elementor-widget-elementskit-tab\" data-id=\"da0252b\" data-element_type=\"widget\" data-widget_type=\"elementskit-tab.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" >        <div class=\"elementkit-tab-wraper   elementskit-fitcontent-tab\">\n            <ul class=\"nav nav-tabs elementkit-tab-nav  tab-nav-fluid\">\n                                    <li class=\"elementkit-nav-item elementor-repeater-item-898296c\">\n                        <a class=\"elementkit-nav-link  active left-pos\" id=\"content-898296c69d29b6064094-tab\" data-ekit-handler-id=\"tab-898296c\" data-ekit-toggle=\"tab\" data-target=\"#content-898296c69d29b6064094\" data-ekit-toggle-trigger=\"click\" aria-describedby=\"content-898296c69d29b6064094\" href=\"#content-898296c69d29b6064094\">\n                                                        <div class=\"ekit-tab-title-group\">\n                                                                <p class=\"elementskit-tab-sub-title\">\u0e0a\u0e48\u0e27\u0e07\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22 (\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19)<\/p>\n                                                                <span class=\"elementskit-tab-title\"><\/span>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n                                        <li class=\"elementkit-nav-item elementor-repeater-item-af2bfa3\">\n                        <a class=\"elementkit-nav-link  left-pos\" id=\"content-af2bfa369d29b6064094-tab\" data-ekit-handler-id=\"tab-af2bfa3\" data-ekit-toggle=\"tab\" data-target=\"#content-af2bfa369d29b6064094\" data-ekit-toggle-trigger=\"click\" aria-describedby=\"content-af2bfa369d29b6064094\" href=\"#content-af2bfa369d29b6064094\">\n                                                        <div class=\"ekit-tab-title-group\">\n                                                                <p class=\"elementskit-tab-sub-title\">\u0e40\u0e27\u0e25\u0e32\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e14\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e39\u0e07\/\u0e15\u0e48\u0e33\u0e23\u0e32\u0e22\u0e27\u0e31\u0e19 (\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19)<\/p>\n                                                                <span class=\"elementskit-tab-title\"><\/span>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n                                        <li class=\"elementkit-nav-item elementor-repeater-item-ac6bf32\">\n                        <a class=\"elementkit-nav-link  left-pos\" id=\"content-ac6bf3269d29b6064094-tab\" data-ekit-handler-id=\"tab-ac6bf32\" data-ekit-toggle=\"tab\" data-target=\"#content-ac6bf3269d29b6064094\" data-ekit-toggle-trigger=\"click\" aria-describedby=\"content-ac6bf3269d29b6064094\" href=\"#content-ac6bf3269d29b6064094\">\n                                                        <div class=\"ekit-tab-title-group\">\n                                                                <p class=\"elementskit-tab-sub-title\">\u0e41\u0e1c\u0e19\u0e20\u0e39\u0e21\u0e34\u0e41\u0e19\u0e27\u0e15\u0e49\u0e32\u0e19\u0e41\u0e25\u0e30\u0e41\u0e19\u0e27\u0e23\u0e31\u0e1a (\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19)<\/p>\n                                                                <span class=\"elementskit-tab-title\"><\/span>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n                                        <li class=\"elementkit-nav-item elementor-repeater-item-7ff668a\">\n                        <a class=\"elementkit-nav-link  left-pos\" id=\"content-7ff668a69d29b6064094-tab\" data-ekit-handler-id=\"tab-7ff668a\" data-ekit-toggle=\"tab\" data-target=\"#content-7ff668a69d29b6064094\" data-ekit-toggle-trigger=\"click\" aria-describedby=\"content-7ff668a69d29b6064094\" href=\"#content-7ff668a69d29b6064094\">\n                                                        <div class=\"ekit-tab-title-group\">\n                                                                <p class=\"elementskit-tab-sub-title\">\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19 COT CFTC (\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19)<\/p>\n                                                                <span class=\"elementskit-tab-title\"><\/span>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n                                        <li class=\"elementkit-nav-item elementor-repeater-item-0002118\">\n                        <a class=\"elementkit-nav-link  left-pos\" id=\"content-000211869d29b6064094-tab\" data-ekit-handler-id=\"tab-0002118\" data-ekit-toggle=\"tab\" data-target=\"#content-000211869d29b6064094\" data-ekit-toggle-trigger=\"click\" aria-describedby=\"content-000211869d29b6064094\" href=\"#content-000211869d29b6064094\">\n                                                        <div class=\"ekit-tab-title-group\">\n                                                                <p class=\"elementskit-tab-sub-title\">\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e04\u0e25\u0e37\u0e48\u0e19\u0e40\u0e2d\u0e25\u0e40\u0e25\u0e35\u0e22\u0e15 (\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e01\u0e25\u0e32\u0e07)<\/p>\n                                                                <span class=\"elementskit-tab-title\"><\/span>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n                                <\/ul>\n\n\t\t\t<div class=\"tab-content elementkit-tab-content\">\n\t\t\t\t\t\t\t\t\t<div class=\"tab-pane elementkit-tab-pane elementor-repeater-item-898296c  active show\" id=\"content-898296c69d29b6064094\" role=\"tabpanel\" aria-labelledby=\"content-898296c69d29b6064094-tab\">\n\t\t\t\t\t\t<div class=\"animated fadeIn\">\n\t\t\t\t\t\t\t\n\t\t<div class=\"widgetarea_warper widgetarea_warper_editable\" data-elementskit-widgetarea-key=\"da0252b\"  data-elementskit-widgetarea-index=\"898296c\">\n\t\t\t<div class=\"widgetarea_warper_edit\" data-elementskit-widgetarea-key=\"da0252b\" data-elementskit-widgetarea-index=\"898296c\">\n\t\t\t\t<i class=\"eicon-edit\" aria-hidden=\"true\"><\/i>\n\t\t\t\t<span>Edit Content<\/span>\n\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t<div class=\"ekit-widget-area-container\">\n\t\t\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"10103\" class=\"elementor elementor-10103\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5bc9c84 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"5bc9c84\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6fd5da81\" data-id=\"6fd5da81\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6458369e elementor-widget elementor-widget-elementskit-heading\" data-id=\"6458369e\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h4 class=\"ekit-heading--title elementskit-section-title\">\u0a35\u0a2a\u0a3e\u0a30 \u0a38\u0a48\u0a38\u0a3c\u0a28<\/h4><h6 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\tMarket Sessions\n\t\t\t\t\t<\/h6><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a355370 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"a355370\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-edf51f7\" data-id=\"edf51f7\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4ea22b94 elementor-widget elementor-widget-image\" data-id=\"4ea22b94\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"627\" src=\"https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/pine-session-1024x627.jpg\" class=\"attachment-large size-large wp-image-10112\" alt=\"\" srcset=\"https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/pine-session-1024x627.jpg 1024w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/pine-session-300x184.jpg 300w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/pine-session-768x470.jpg 768w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/pine-session-18x12.jpg 18w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/pine-session.jpg 1488w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-73732dc3 elementor-widget elementor-widget-elementskit-heading\" data-id=\"73732dc3\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e23\u0e2b\u0e31\u0e2a\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<div class=\"ChatMessage_chatMessage__xkgHx\">\n<div class=\"ChatMessage_messageRow__DHlnq\">\n<div class=\"ChatMessage_messageWrapper__4Ugd6\">\n<div class=\"Message_rowWithFooter__FShU6\">\n<div class=\"Message_row__ug_UU\">\n<div class=\"Message_botMessageBubble__aYctV\">\n<div class=\"Markdown_markdownContainer__Tz3HQ\">\n<p>Pine Script<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"Message_botOptimisticFooter__FL0c_\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a7787a3 elementor-widget elementor-widget-elementskit-heading\" data-id=\"7a7787a3\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e01\u0e32\u0e23\u0e41\u0e19\u0e30\u0e19\u0e33: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<div class=\"ChatMessage_chatMessage__xkgHx\">\n<div class=\"ChatMessage_messageRow__DHlnq\">\n<div class=\"ChatMessage_messageWrapper__4Ugd6\">\n<div class=\"Message_rowWithFooter__FShU6\">\n<div class=\"Message_row__ug_UU\">\n<div class=\"Message_botMessageBubble__aYctV\">\n<div class=\"Markdown_markdownContainer__Tz3HQ\">\n<p><span>\u0e15\u0e31\u0e27\u0e1a\u0e48\u0e07\u0e0a\u0e35\u0e49\u0e07\u0e48\u0e32\u0e22\u0e46 \u0e17\u0e35\u0e48\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e43\u0e19\u0e15\u0e25\u0e32\u0e14 4 \u0e0a\u0e48\u0e27\u0e07 (\u0e42\u0e14\u0e22\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19 \u0e42\u0e15\u0e40\u0e01\u0e35\u0e22\u0e27 \u0e25\u0e2d\u0e19\u0e14\u0e2d\u0e19 \u0e19\u0e34\u0e27\u0e22\u0e2d\u0e23\u0e4c\u0e01 \u0e0b\u0e34\u0e14\u0e19\u0e35\u0e22\u0e4c) \u0e19\u0e33\u0e40\u0e2a\u0e19\u0e2d\u0e43\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e20\u0e32\u0e1e\u0e17\u0e35\u0e48\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19 4 \u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a (\u0e01\u0e25\u0e48\u0e2d\u0e07 \u0e44\u0e17\u0e21\u0e4c\u0e44\u0e25\u0e19\u0e4c \u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48 \u0e40\u0e0a\u0e34\u0e07\u0e40\u0e17\u0e35\u0e22\u0e19\u0e2a\u0e35) \u0e41\u0e25\u0e30\u0e21\u0e2d\u0e1a\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e21\u0e35\u0e1b\u0e23\u0e30\u0e42\u0e22\u0e0a\u0e19\u0e4c\u0e2d\u0e37\u0e48\u0e19\u0e46 \u0e2d\u0e35\u0e01\u0e21\u0e32\u0e01\u0e21\u0e32\u0e22 \u0e15\u0e31\u0e27\u0e1a\u0e48\u0e07\u0e0a\u0e35\u0e49\u0e19\u0e35\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e40\u0e02\u0e49\u0e32\u0e43\u0e08\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e41\u0e25\u0e30\u0e40\u0e27\u0e25\u0e32\u0e17\u0e35\u0e48\u0e17\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e01\u0e31\u0e19\u0e02\u0e2d\u0e07\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e43\u0e19\u0e15\u0e25\u0e32\u0e14\u0e15\u0e48\u0e32\u0e07\u0e46 \u0e44\u0e14\u0e49\u0e14\u0e35\u0e22\u0e34\u0e48\u0e07\u0e02\u0e36\u0e49\u0e19 \u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e41\u0e25\u0e30\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e25\u0e22\u0e38\u0e17\u0e18\u0e4c\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e44\u0e14\u0e49\u0e14\u0e35\u0e22\u0e34\u0e48\u0e07\u0e02\u0e36\u0e49\u0e19<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"Message_botOptimisticFooter__FL0c_\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3fe4215e elementor-widget elementor-widget-elementskit-heading\" data-id=\"3fe4215e\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<p><span>\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e41\u0e2a\u0e14\u0e07\/\u0e0b\u0e48\u0e2d\u0e19\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14 \u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e0a\u0e37\u0e48\u0e2d \u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e2a\u0e35 \u0e41\u0e25\u0e30\u0e15\u0e31\u0e49\u0e07\u0e40\u0e27\u0e25\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\/\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e44\u0e14\u0e49 \u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07\u0e23\u0e39\u0e1b\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e02\u0e2d\u0e07\u0e15\u0e31\u0e27\u0e1a\u0e48\u0e07\u0e0a\u0e35\u0e49\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e01\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e0a\u0e2d\u0e1a\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e1b\u0e23\u0e31\u0e1a\u0e43\u0e2b\u0e49\u0e40\u0e02\u0e49\u0e32\u0e01\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e41\u0e25\u0e30\u0e01\u0e23\u0e2d\u0e1a\u0e40\u0e27\u0e25\u0e32\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e41\u0e25\u0e30\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e17\u0e32\u0e07\u0e01\u0e32\u0e23\u0e15\u0e25\u0e32\u0e14\u0e44\u0e14\u0e49\u0e14\u0e35\u0e22\u0e34\u0e48\u0e07\u0e02\u0e36\u0e49\u0e19<\/span><\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e8cee6c elementor-widget elementor-widget-elementskit-heading\" data-id=\"7e8cee6c\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e1e\u0e34\u0e40\u0e28\u0e29: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<ol>\n<li>\"\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19 (Pips)\" - \u0e08\u0e30\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e48\u0e32\u0e07\u0e02\u0e2d\u0e07 pip \u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e08\u0e38\u0e14\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14\u0e41\u0e25\u0e30\u0e15\u0e48\u0e33\u0e2a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22 \u0e2b\u0e23\u0e37\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e40\u0e1b\u0e34\u0e14\u0e41\u0e25\u0e30\u0e1b\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22 \u0e44\u0e1b\u0e22\u0e31\u0e07\u0e1b\u0e49\u0e32\u0e22\u0e01\u0e33\u0e01\u0e31\u0e1a\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22<\/li>\n<li>\"\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07 (%)\" - \u0e08\u0e30\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e47\u0e19\u0e15\u0e4c\u0e04\u0e27\u0e32\u0e21\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e08\u0e38\u0e14\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14\u0e41\u0e25\u0e30\u0e15\u0e48\u0e33\u0e2a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22 \u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e47\u0e19\u0e15\u0e4c\u0e04\u0e27\u0e32\u0e21\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e23\u0e32\u0e04\u0e32\u0e40\u0e1b\u0e34\u0e14\u0e41\u0e25\u0e30\u0e23\u0e32\u0e04\u0e32\u0e1b\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22 \u0e44\u0e1b\u0e22\u0e31\u0e07\u0e1b\u0e49\u0e32\u0e22\u0e01\u0e33\u0e01\u0e31\u0e1a\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22<\/li>\n<li>\"Merge Overlap\" - \u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e19\u0e35\u0e49\u0e08\u0e30\u0e23\u0e27\u0e21\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e17\u0e35\u0e48\u0e17\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e01\u0e31\u0e19 \u0e42\u0e14\u0e22\u0e41\u0e2a\u0e14\u0e07\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e40\u0e14\u0e35\u0e22\u0e27\u0e43\u0e19\u0e41\u0e15\u0e48\u0e25\u0e30\u0e04\u0e23\u0e31\u0e49\u0e07 (\u0e40\u0e27\u0e25\u0e32\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e42\u0e15\u0e40\u0e01\u0e35\u0e22\u0e27\u0e22\u0e49\u0e32\u0e22\u0e44\u0e1b\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e27\u0e25\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e02\u0e2d\u0e07\u0e25\u0e2d\u0e19\u0e14\u0e2d\u0e19 \u0e40\u0e27\u0e25\u0e32\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e25\u0e2d\u0e19\u0e14\u0e2d\u0e19\u0e22\u0e49\u0e32\u0e22\u0e44\u0e1b\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e27\u0e25\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e02\u0e2d\u0e07\u0e19\u0e34\u0e27\u0e22\u0e2d\u0e23\u0e4c\u0e01 \u0e40\u0e27\u0e25\u0e32\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e19\u0e34\u0e27\u0e22\u0e2d\u0e23\u0e4c\u0e01\u0e22\u0e49\u0e32\u0e22\u0e44\u0e1b\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e27\u0e25\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e02\u0e2d\u0e07\u0e0b\u0e34\u0e14\u0e19\u0e35\u0e22\u0e4c \u0e0b\u0e34\u0e14\u0e19\u0e35\u0e22\u0e4c \u0e40\u0e27\u0e25\u0e32\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e22\u0e49\u0e32\u0e22\u0e44\u0e1b\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e27\u0e25\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e02\u0e2d\u0e07\u0e42\u0e15\u0e40\u0e01\u0e35\u0e22\u0e27)<\/li>\n<li>\"\u0e0b\u0e48\u0e2d\u0e19\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14\u0e2a\u0e38\u0e14\u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c\" - \u0e27\u0e34\u0e18\u0e35\u0e19\u0e35\u0e49\u0e08\u0e30\u0e1b\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e19\u0e44\u0e21\u0e48\u0e43\u0e2b\u0e49\u0e2a\u0e04\u0e23\u0e34\u0e1b\u0e15\u0e4c\u0e14\u0e36\u0e07\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e43\u0e19\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14\u0e2a\u0e38\u0e14\u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c (\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e15\u0e25\u0e32\u0e14\u0e1b\u0e34\u0e14)<\/li>\n<li>\"\u0e40\u0e2a\u0e49\u0e19\u0e40\u0e1b\u0e34\u0e14\/\u0e1b\u0e34\u0e14\" - \u0e25\u0e32\u0e01\u0e40\u0e2a\u0e49\u0e19\u0e08\u0e32\u0e01\u0e23\u0e32\u0e04\u0e32\u0e40\u0e1b\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e23\u0e32\u0e04\u0e32\u0e1b\u0e34\u0e14 (\u0e2b\u0e23\u0e37\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19 \u0e2b\u0e32\u0e01\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e48\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e2d\u0e22\u0e39\u0e48\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23)<\/li>\n<li>\"\u0e23\u0e30\u0e22\u0e30\u0e40\u0e27\u0e25\u0e32 0.5 \u0e23\u0e30\u0e14\u0e31\u0e1a\" - \u0e08\u0e30\u0e25\u0e32\u0e01\u0e40\u0e2a\u0e49\u0e19\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e2a\u0e39\u0e07\u0e41\u0e25\u0e30\u0e15\u0e48\u0e33\u0e25\u0e07\u0e04\u0e23\u0e36\u0e48\u0e07\u0e2b\u0e19\u0e36\u0e48\u0e07<\/li>\n<li>\"\u0e40\u0e17\u0e35\u0e22\u0e19\u0e2a\u0e35\" - \u0e08\u0e30\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e40\u0e17\u0e35\u0e22\u0e19\u0e21\u0e35\u0e2a\u0e35\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e2a\u0e35\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e48\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e41\u0e2a\u0e14\u0e07\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e48\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e02\u0e2d\u0e07\u0e40\u0e17\u0e35\u0e22\u0e19\u0e2a\u0e35<\/li>\n<li>\"\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e32\u0e23\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25\" - \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e2a\u0e32\u0e21\u0e27\u0e34\u0e18\u0e35\u0e17\u0e35\u0e48\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19\u0e43\u0e19\u0e01\u0e32\u0e23\u0e41\u0e2a\u0e14\u0e07\u0e20\u0e32\u0e1e\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22 (\u0e01\u0e25\u0e48\u0e2d\u0e07 \u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48 \u0e41\u0e25\u0e30\u0e40\u0e0a\u0e34\u0e07\u0e40\u0e17\u0e35\u0e22\u0e19)<\/li>\n<li>\"Lookback Days\" - \u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e19\u0e35\u0e49\u0e08\u0e30\u0e1a\u0e2d\u0e01\u0e2a\u0e04\u0e23\u0e34\u0e1b\u0e15\u0e4c\u0e43\u0e2b\u0e49\u0e1e\u0e25\u0e47\u0e2d\u0e15\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a X \u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e1c\u0e48\u0e32\u0e19\u0e21\u0e32\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19 (1 = 1 \u0e27\u0e31\u0e19)<\/li>\n<li>\"\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19 (% \/ \u0e04\u0e30\u0e41\u0e19\u0e19)\" - \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e17\u0e47\u0e1a \"\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19 (\u0e04\u0e30\u0e41\u0e19\u0e19)\" \u0e41\u0e25\u0e30 \"\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19 (%)\" \u0e17\u0e35\u0e48\u0e19\u0e35\u0e48 \u0e01\u0e32\u0e23\u0e40\u0e25\u0e37\u0e2d\u0e01 \"\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e2a\u0e39\u0e07\/\u0e15\u0e48\u0e33\" \u0e08\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e2a\u0e39\u0e07\u0e41\u0e25\u0e30\u0e15\u0e48\u0e33 \u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e40\u0e25\u0e37\u0e2d\u0e01 \"\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e40\u0e1b\u0e34\u0e14\/\u0e1b\u0e34\u0e14\" \u0e08\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e34\u0e14\u0e41\u0e25\u0e30\u0e1b\u0e34\u0e14<\/li>\n<li>\"\u0e40\u0e02\u0e15\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e34\u0e19\u0e1e\u0e38\u0e15\" - \u0e01\u0e33\u0e2b\u0e19\u0e14\u0e42\u0e0b\u0e19\u0e40\u0e27\u0e25\u0e32\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e49\u0e2d\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e27\u0e25\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\/\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22 (\u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e2a\u0e34\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e49\u0e19\u0e41\u0e15\u0e48\u0e04\u0e38\u0e13\u0e08\u0e30\u0e23\u0e39\u0e49\u0e27\u0e48\u0e32\u0e04\u0e38\u0e13\u0e01\u0e33\u0e25\u0e31\u0e07\u0e17\u0e33\u0e2d\u0e30\u0e44\u0e23\u0e2d\u0e22\u0e39\u0e48)<\/li>\n<\/ol>\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-5ed9fe7c\" data-id=\"5ed9fe7c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6ced9bcd elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"6ced9bcd\" data-element_type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-6ced9bcd\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-atom-dark\"\n            data-dark-theme=\"mdp-theme-atom-dark\"\n        >\n            \n                <pre class=\"line-numbers show-invisibles inline-color copy-to-clipboard language-diff-markup diff-highlight\"data-previewers=\"\"><code>\/\/ This source code is subject to the terms of the Mozilla Public License 2.0 at https:\/\/mozilla.org\/MPL\/2.0\/\n\/\/ &copy; 1uptick\n\n\/\/@version=5\nindicator(&quot;Market Sessions&quot;, overlay = true, max_boxes_count = 500, max_labels_count = 500, max_lines_count = 500)\n\n\/\/ Box generation code inspired by Jos(TradingCode), session box visuals inspired by @boitoki\n\n\/\/ Session 1 - user inputs\nshowTokyo      = input.bool(true, &#039;&#039;, inline=&#039;Tokyo&#039;, group=&#039;Sessions&#039;)\nstringTokyo    = input.string(&#039;Tokyo&#039;, &#039;&#039;, inline=&#039;Tokyo&#039;, group=&#039;Sessions&#039;)\nTokyoTimeX     = input.session(defval=&quot;0000-0900&quot;, title=&#039;&ensp;&ensp;&ensp;&ensp;&ensp;&#039;, inline=&#039;Tokyo2&#039;, group=&#039;Sessions&#039;, tooltip = &#039;If you want to change the start\/end time of the session, just make sure they are in UTC. There is no need to change the timezone of your Tradingview chart or to change the Timezone input below, because the sessions will be plotted correctly as long as the start\/end time is set in UTC.&#039;)\nTokyoCol       = input.color(color.rgb(255, 153, 0, 90), &#039;&#039; , inline=&#039;Tokyo&#039;, group=&#039;Sessions&#039;)\n\/\/ Session 2 - user inputs\nshowLondon     = input.bool(true, &#039;&#039;, inline=&#039;London&#039;, group=&#039;Sessions&#039;)\nstringLondon   = input.string(&#039;London&#039;, &#039;&#039;, inline=&#039;London&#039;, group=&#039;Sessions&#039;)\nLondonTimeX    = input.session(defval=&quot;0700-1600&quot;, title=&#039;&ensp;&ensp;&ensp;&ensp;&ensp;&#039;, inline=&#039;London2&#039;, group=&#039;Sessions&#039;, tooltip = &#039;If you want to change the start\/end time of the session, just make sure they are in UTC. There is no need to change the timezone of your Tradingview chart or to change the Timezone input below, because the sessions will be plotted correctly as long as the start\/end time is set in UTC.&#039;)\nLondonCol      = input.color(color.rgb(76, 175, 79, 90), &#039;&#039; , inline=&#039;London&#039;, group=&#039;Sessions&#039;)\n\/\/ Session 3 - user inputs\nshowNewYork    = input.bool(true, title=&#039;&#039;, inline=&#039;New York&#039;, group=&#039;Sessions&#039;)\nstringNewYork  = input.string(&#039;New York&#039;, &#039;&#039;, inline=&#039;New York&#039;, group=&#039;Sessions&#039;)\nNewYorkTimeX   = input.session(defval=&quot;1300-2200&quot;, title=&#039;&ensp;&ensp;&ensp;&ensp;&ensp;&#039;, inline=&#039;New York2&#039;, group=&#039;Sessions&#039;, tooltip = &#039;If you want to change the start\/end time of the session, just make sure they are in UTC. There is no need to change the timezone of your Tradingview chart or to change the Timezone input below, because the sessions will be plotted correctly as long as the start\/end time is set in UTC.&#039;)\nNewYorkCol     = input.color(color.rgb(33, 149, 243, 90), &#039;&#039;, inline=&#039;New York&#039;, group=&#039;Sessions&#039;)\n\/\/ Session 4 - user inputs\nshowSydney     = input.bool(false, title=&#039;&#039;, inline=&#039;Sydney&#039;, group=&#039;Sessions&#039;)\nstringSydney   = input.string(&#039;Sydney&#039;, &#039;&#039;, inline=&#039;Sydney&#039;, group=&#039;Sessions&#039;)\nSydneyTimeX    = input.session(defval=&quot;2100-0600&quot;, title=&#039;&ensp;&ensp;&ensp;&ensp;&ensp;&#039;, inline=&#039;Sydney2&#039;, group=&#039;Sessions&#039;, tooltip = &#039;If you want to change the start\/end time of the session, just make sure they are in UTC. There is no need to change the timezone of your Tradingview chart or to change the Timezone input below, because the sessions will be plotted correctly as long as the start\/end time is set in UTC.&#039;)\nSydneyCol      = input.color(color.rgb(164, 97, 187, 90), &#039;&#039;, inline=&#039;Sydney&#039;, group=&#039;Sessions&#039;)\n\/\/ Additional tools and settings - user inputs\npipChange      = input.bool(false, &#039;Change (Pips)&ensp;&#039;, inline=&#039;0&#039;, group = &#039;Additional Tools and Settings&#039;)\npercentChange  = input.bool(false, &#039;Change (%)&#039;, inline=&#039;0&#039;, group = &#039;Additional Tools and Settings&#039;)\nmerge          = input.bool(false, &#039;Merge Overlaps&#039;, inline=&#039;2&#039;, group = &#039;Additional Tools and Settings&#039;)\nhideWeekends   = input.bool(true, &#039;Hide Weekends&#039;, inline=&#039;2&#039;, group = &#039;Additional Tools and Settings&#039;)\nsessionOC      = input.bool(true, &#039;Open\/Close Line&#039;, inline=&#039;3&#039;, group = &#039;Additional Tools and Settings&#039;)\nhalfline       = input.bool(false, &#039;Session 0.5 Level&#039;, inline=&#039;3&#039;, group = &#039;Additional Tools and Settings&#039;)\ncolorcandles   = input.bool(false, &#039;Color Candles&ensp;&ensp;&#039;, inline=&#039;4&#039;, group = &#039;Additional Tools and Settings&#039;)\nshowScreener   = input.bool(false, &#039;Screener (Soon)&#039;, inline=&#039;4&#039;, group = &#039;Additional Tools and Settings&#039;)\ndisplayType    = input.string(&#039;Boxes&#039;, &#039;Display Type&#039;, options = [&#039;Boxes&#039;, &#039;Zones&#039;,&#039;Timeline&#039;, &#039;Candles&#039;], group=&#039;Additional Tools and Settings&#039;, tooltip=&#039;Choose whether the scripts should plot session in the for of boxes or colored background zones.&#039;)\ndaysBack       = input.float(150, &#039;Lookback (Days)&#039;, group=&#039;Additional Tools and Settings&#039;, tooltip= &#039;This inputs defines the lookback period for plotting sessions. Eg. If it is set to 1, only the sessions of the past day will appear&#039;)\nchangeType     = input.string(&#039;Session High\/Low&#039;,&#039;Change (%\/Pips) Source&#039;, options = [&#039;Session High\/Low&#039;, &#039;Session Open\/Close&#039;], group=&#039;Additional Tools and Settings&#039;, tooltip=&#039;Choose whether the Change (%) and Change (Pips) should measure the distance between Session High and Session Low or the distance between Session Open and Session Close.&#039;)\nSessionZone    = input.string(&quot;UTC&quot;, title=&quot;Input Timezone&quot;, group=&#039;Additional Tools and Settings&#039;, tooltip = &#039;This input is defining the timezone for the session times selected above. It has nothing to do with the timezone of your chart, because the sessions will be plotted correctly even if your chart is not set to UTC.&#039;)\n\/\/ Appearance - user inputs\nborderWidth    = input.int(1, &#039;Box Border&#039;, inline=&#039;border&#039;, group=&#039;Appearance&#039;)\nborderStyle    = input.string(&#039;Dashed&#039;, &#039;&#039;, [&#039;Solid&#039;, &#039;Dashed&#039;, &#039;Dotted&#039;]  , inline=&#039;border&#039;, group=&#039;Appearance&#039;, tooltip=&#039;Select the width and style of session box borders&#039;)\nlevelsStyle    = input.string(&#039;Dashed&#039;, &#039;Line Style&#039;, [&#039;Solid&#039;, &#039;Dashed&#039;, &#039;Dotted&#039;], group=&#039;Appearance&#039;, tooltip=&#039;Select the style of 0.5 and Open\/Close lines.&#039;)\nlabelSize      = input.string(&#039;Normal&#039;, &#039;Label Size&#039;, options = [&#039;Auto&#039;, &#039;Tiny&#039;, &#039;Small&#039;, &#039;Normal&#039;], group=&#039;Appearance&#039;, tooltip=&#039;Select the size of text labels.&#039;)\nshowLabels     = input.bool(true, &#039;Session Labels&ensp;&#039;, inline=&#039;00&#039;, group = &#039;Appearance&#039;)\ncolorBoxes     = input.bool(true, &#039;Box Background&#039;, inline=&#039;00&#039;, group = &#039;Appearance&#039;)\n\n\/\/ Excluding or Including Weekends \nvar TokyoTime   = hideWeekends ? TokyoTimeX+&quot;:123456&quot; : TokyoTimeX+&quot;:1234567&quot;\nvar LondonTime  = hideWeekends ? LondonTimeX+&quot;:123456&quot; : LondonTimeX+&quot;:1234567&quot;\nvar NewYorkTime = hideWeekends ? NewYorkTimeX+&quot;:123456&quot; : NewYorkTimeX+&quot;:1234567&quot;\nvar SydneyTime  = hideWeekends ? SydneyTimeX+&quot;:123456&quot; : SydneyTimeX+&quot;:1234567&quot;\n\n\/\/ Defining Line Style and Label Size Variables\nlineStyle(x) =&gt;\n    switch x\n        &#039;Solid&#039;  =&gt; line.style_solid\n        &#039;Dashed&#039; =&gt; line.style_dashed\n        &#039;Dotted&#039; =&gt; line.style_dotted\nlabelStyle(x) =&gt;\n    switch x\n        &#039;Auto&#039;   =&gt; size.auto\n        &#039;Tiny&#039;   =&gt; size.tiny\n        &#039;Small&#039;  =&gt; size.small\n        &#039;Normal&#039; =&gt; size.normal\n\n\/\/ Calculating inRange, used for lookback\nMSPD        = 24 * 60 * 60 * 1000\nlastBarDate = timestamp(year(timenow), month(timenow), dayofmonth(timenow), hour(timenow), minute(timenow), second(timenow))\nthisBarDate = timestamp(year, month, dayofmonth, hour, minute, second)\ndaysLeft    = math.abs(math.floor((lastBarDate - thisBarDate) \/ MSPD))\ninRange     = daysLeft &lt; daysBack\n\n\/\/ Session Time\nInTokyo(TokyoTime, TokyoTimeZone=syminfo.timezone)       =&gt;\n    not na(time(timeframe.period, TokyoTime, SessionZone))\nInLondon(LondonTime, LondonTimeZone=syminfo.timezone)    =&gt;\n    not na(time(timeframe.period, LondonTime, SessionZone))\nInNewYork(NewYorkTime, NewYorkTimeZone=syminfo.timezone) =&gt;\n    not na(time(timeframe.period, NewYorkTime, SessionZone))\nInSydney(SydneyTime, SydneyTimeZone=syminfo.timezone)    =&gt;\n    not na(time(timeframe.period, SydneyTime, SessionZone))\n\n\/\/ Creating variables Session High, Low, Open and Session Boxes, Lines and Texts\nvar TokyoHighPrice     = 0.0, var TokyoLowPrice      = 0.0, var TokyoOpenPrice     = 0.0, var box TokyoBox       = na, var line TokyoLine     = na, var label TokyoLabel   = na, var line TokyoOC       = na, var string TokyoText   = str.tostring(stringTokyo)\nvar LondonHighPrice    = 0.0, var LondonLowPrice     = 0.0, var LondonOpenPrice    = 0.0, var box LondonBox      = na, var line LondonLine    = na, var label LondonLabel  = na, var line LondonOC      = na, var string LondonText  = str.tostring(stringLondon)\nvar NewYorkHighPrice   = 0.0, var NewYorkLowPrice    = 0.0, var NewYorkOpenPrice   = 0.0, var box NewYorkBox     = na, var line NewYorkLine   = na, var label NewYorkLabel = na, var line NewYorkOC     = na, var string NewYorkText = str.tostring(stringNewYork)\nvar SydneyHighPrice    = 0.0, var SydneyLowPrice     = 0.0, var SydneyOpenPrice    = 0.0, var box SydneyBox      = na, var line SydneyLine    = na, var label SydneyLabel  = na, var line SydneyOC      = na, var string SydneyText  = str.tostring(stringSydney)\n\n\/\/ Checking if session is active\/has started\ninTokyo        = InTokyo(TokyoTime, SessionZone)     and timeframe.isintraday\nTokyoStart     = inTokyo   and not inTokyo[1]\ninLondon       = InLondon(LondonTime, SessionZone)   and timeframe.isintraday\nLondonStart    = inLondon  and not inLondon[1]\ninNewYork      = InNewYork(NewYorkTime, SessionZone) and timeframe.isintraday\nNewYorkStart   = inNewYork and not inNewYork[1]\ninSydney       = InSydney(SydneyTime, SessionZone)   and timeframe.isintraday\nSydneyStart    = inSydney  and not inSydney[1]\n\n\/\/ Settings high, low, open at the beggining of the session\nif TokyoStart\n    TokyoHighPrice   := high\n    TokyoLowPrice    := low\n    TokyoOpenPrice   := open\nif LondonStart\n    LondonHighPrice  := high\n    LondonLowPrice   := low\n    LondonOpenPrice  := open\nif NewYorkStart\n    NewYorkHighPrice := high\n    NewYorkLowPrice  := low\n    NewYorkOpenPrice := open\nif SydneyStart\n    SydneyHighPrice  := high\n    SydneyLowPrice   := low\n    SydneyOpenPrice  := open\n\n\/\/ Track session&#039;s max high and max low during the session\nelse if inTokyo\n    TokyoHighPrice   := math.max(TokyoHighPrice, high)\n    TokyoLowPrice    := math.min(TokyoLowPrice, low)\nelse if inLondon\n    LondonHighPrice  := math.max(LondonHighPrice, high)\n    LondonLowPrice   := math.min(LondonLowPrice, low)\nelse if inNewYork\n    NewYorkHighPrice := math.max(NewYorkHighPrice, high)\n    NewYorkLowPrice  := math.min(NewYorkLowPrice, low)\nelse if inSydney\n    SydneyHighPrice  := math.max(SydneyHighPrice, high)\n    SydneyLowPrice   := math.min(SydneyLowPrice, low)\n\n\/\/ Plotting session boxes at the beginning of each session\nif TokyoStart and showTokyo and inRange\n    TokyoBox     := displayType==&#039;Boxes&#039; ? box.new(left=bar_index, top=na, right=na, bottom=na, border_width=borderWidth, bgcolor = colorBoxes ? TokyoCol : na, border_style = lineStyle(borderStyle), border_color=color.new(TokyoCol, 40)) : na\n    TokyoLine    := halfline   ? line.new(x1=bar_index, y1=na, x2=na, y2=na, style=lineStyle(levelsStyle), color = color.new(TokyoCol, 40)) : na\n    TokyoLabel   := showLabels ? label.new(x=na, y=na, text=TokyoText, textcolor=color.new(TokyoCol, 40), color=color.rgb(0,0,0,100), size=labelStyle(labelSize)) : na\n    TokyoOC      := sessionOC  ? line.new(x1=bar_index, y1=TokyoOpenPrice, x2=na, y2=na, style=lineStyle(levelsStyle), color = color.new(TokyoCol, 40)) : na\nif LondonStart and showLondon and inRange\n    LondonBox    := displayType==&#039;Boxes&#039; ? box.new(left=bar_index, top=na, right=na, bottom=na, border_width=borderWidth, bgcolor = colorBoxes ? LondonCol : na, border_style = lineStyle(borderStyle), border_color=color.new(LondonCol, 40)) : na\n    LondonLine   := halfline   ? line.new(x1=bar_index, y1=na, x2=na, y2=na, style=lineStyle(levelsStyle), color = color.new(LondonCol, 40)) : na\n    LondonLabel  := showLabels ? label.new(x=na, y=na, text=LondonText, textcolor=color.new(LondonCol, 40), color=color.rgb(0,0,0,100), size=labelStyle(labelSize)) : na\n    LondonOC     := sessionOC  ? line.new(x1=bar_index, y1=LondonOpenPrice, x2=na, y2=na, style=lineStyle(levelsStyle), color = color.new(LondonCol, 40)) : na\nif NewYorkStart and showNewYork and inRange\n    NewYorkBox   := displayType==&#039;Boxes&#039; ? box.new(left=bar_index, top=na, right=na, bottom=na, border_width=borderWidth, bgcolor = colorBoxes ? NewYorkCol : na, border_style = lineStyle(borderStyle), border_color=color.new(NewYorkCol, 40)) : na\n    NewYorkLine  := halfline   ? line.new(x1=bar_index, y1=na, x2=na, y2=na, style=lineStyle(levelsStyle), color = color.new(NewYorkCol, 40)) : na\n    NewYorkLabel := showLabels ? label.new(x=na, y=na, text=NewYorkText, textcolor=color.new(NewYorkCol, 40), color=color.rgb(0,0,0,100), size=labelStyle(labelSize)) : na\n    NewYorkOC    := sessionOC  ? line.new(x1=bar_index, y1=NewYorkOpenPrice, x2=na, y2=na, style=lineStyle(levelsStyle), color = color.new(NewYorkCol, 40)) : na\nif SydneyStart and showSydney and inRange\n    SydneyBox    := displayType==&#039;Boxes&#039; ? box.new(left=bar_index, top=na, right=na, bottom=na, border_width=borderWidth, bgcolor = colorBoxes ? SydneyCol : na, border_style = lineStyle(borderStyle), border_color=color.new(SydneyCol, 40)) : na\n    SydneyLine   := halfline   ? line.new(x1=bar_index, y1=na, x2=na, y2=na, style=lineStyle(levelsStyle), color = color.new(SydneyCol, 40)) : na\n    SydneyLabel  := showLabels ? label.new(x=na, y=na, text=SydneyText, textcolor=color.new(SydneyCol, 40), color=color.rgb(0,0,0,100), size=labelStyle(labelSize)) : na\n    SydneyOC     := sessionOC  ? line.new(x1=bar_index, y1=SydneyOpenPrice, x2=na, y2=na, style=lineStyle(levelsStyle), color = color.new(SydneyCol, 40)) : na\n\n\/\/ Creating variables for alternative Sessions Box top and bottom (used for merging sessions)\nvar float TokyoHighM   = 0, var float TokyoLowM    = 0, var float LondonHighM  = 0, var float LondonLowM   = 0, var float NewYorkHighM = 0, var float NewYorkLowM  = 0, var float SydneyHighM  = 0, var float SydneyLowM   = 0\n\n\/\/ Updating session boxes during sessions\nif inTokyo and inRange\n    TokyoHighPrice   := math.max(TokyoHighPrice, high)\n    TokyoLowPrice    := math.min(TokyoLowPrice, low)\n    box.set_top(TokyoBox, TokyoHighPrice)\n    box.set_bottom(TokyoBox, TokyoLowPrice)\n    box.set_right(TokyoBox, bar_index + 1)\n    label.set_x(TokyoLabel, (box.get_left(TokyoBox)+box.get_right(TokyoBox))\/2)\n    label.set_y(TokyoLabel, TokyoHighPrice)\n    if sessionOC\n        line.set_x2(TokyoOC, bar_index)\n        line.set_y2(TokyoOC, close)\n    if halfline\n        line.set_y1(TokyoLine, (TokyoHighPrice+TokyoLowPrice)\/2)\n        line.set_y2(TokyoLine, (TokyoHighPrice+TokyoLowPrice)\/2)\n        line.set_x2(TokyoLine, bar_index+1)\n    if merge and not inLondon and showLondon\n        TokyoHighM := TokyoHighPrice\n        TokyoLowM  := TokyoLowPrice\n    if merge and inLondon and showLondon\n        box.set_top(TokyoBox, TokyoHighM)\n        box.set_bottom(TokyoBox, TokyoLowM)\n        label.set_y(TokyoLabel, TokyoHighM)\n        box.set_right(TokyoBox, (box.get_left(LondonBox)))\n        line.set_x2(TokyoLine, (box.get_left(LondonBox)))\n        label.set_x(TokyoLabel, (box.get_left(TokyoBox)+box.get_right(TokyoBox))\/2)\n        line.set_x2(TokyoOC, (box.get_left(LondonBox)))\n        line.set_y2(TokyoOC, LondonOpenPrice)\n        line.set_y1(TokyoLine, (TokyoHighM+TokyoLowM)\/2)\n        line.set_y2(TokyoLine, (TokyoHighM+TokyoLowM)\/2)\n    var float pips = 0\n    var float chg = 0\n    pips := changeType==&#039;Session High\/Low&#039; ? ((TokyoHighPrice - TokyoLowPrice) \/ syminfo.mintick \/ 10) : ((close - TokyoOpenPrice) \/ syminfo.mintick \/ 10)\n    chg  := changeType==&#039;Session Open\/Close&#039; ? (100 * (close - TokyoOpenPrice) \/ TokyoOpenPrice) : ((TokyoHighPrice - TokyoLowPrice) \/ TokyoLowPrice * 100)\n    if percentChange and not pipChange\n        label.set_text(TokyoLabel, str.tostring(TokyoText) + &#039;  (&#039; + str.tostring(chg, format.percent) + &#039;)&#039;)\n    if pipChange and not percentChange\n        label.set_text(TokyoLabel, str.tostring(TokyoText) + &#039;  (&#039; + str.tostring(pips) + &#039;)&#039;)\n    if percentChange and pipChange\n        label.set_text(TokyoLabel, str.tostring(TokyoText) + &#039;  (&#039;+ str.tostring(chg, format.percent)+ &#039; &bull; &#039; + str.tostring(pips) + &#039;)&#039;)\nif inLondon and inRange\n    LondonHighPrice  := math.max(LondonHighPrice, high)\n    LondonLowPrice   := math.min(LondonLowPrice, low)\n    box.set_top(LondonBox, LondonHighPrice)\n    box.set_bottom(LondonBox, LondonLowPrice)\n    box.set_right(LondonBox, bar_index+1)\n    label.set_x(LondonLabel, (box.get_left(LondonBox)+box.get_right(LondonBox))\/2)\n    label.set_y(LondonLabel, LondonHighPrice)\n    if sessionOC\n        line.set_x2(LondonOC, bar_index)\n        line.set_y2(LondonOC, close)\n    if halfline\n        line.set_y1(LondonLine, (LondonHighPrice+LondonLowPrice)\/2)\n        line.set_y2(LondonLine, (LondonHighPrice+LondonLowPrice)\/2)\n        line.set_x2(LondonLine, bar_index+1)\n    if merge and not inNewYork and showNewYork\n        LondonHighM := LondonHighPrice\n        LondonLowM  := LondonLowPrice\n    if merge and inNewYork and showNewYork\n        box.set_top(LondonBox, LondonHighM)\n        box.set_bottom(LondonBox, LondonLowM)\n        label.set_y(LondonLabel, LondonHighM)\n        box.set_right(LondonBox, (box.get_left(NewYorkBox)))\n        line.set_x2(LondonLine, (box.get_left(NewYorkBox)))\n        label.set_x(LondonLabel, (box.get_left(LondonBox)+box.get_right(LondonBox))\/2)\n        line.set_x2(LondonOC, (box.get_left(NewYorkBox)))\n        line.set_y2(LondonOC, NewYorkOpenPrice)\n        line.set_y1(LondonLine, (LondonHighM+LondonLowM)\/2)\n        line.set_y2(LondonLine, (LondonHighM+LondonLowM)\/2)\n    var float pips = 0\n    var float chg = 0\n    pips := changeType==&#039;Session High\/Low&#039; ? ((LondonHighPrice - LondonLowPrice) \/ syminfo.mintick \/ 10) : ((close - LondonOpenPrice) \/ syminfo.mintick \/ 10)\n    chg  := changeType==&#039;Session Open\/Close&#039; ? (100 * (close - LondonOpenPrice) \/ LondonOpenPrice) : ((LondonHighPrice - LondonLowPrice) \/ LondonLowPrice * 100)\n    if percentChange and not pipChange\n        label.set_text(LondonLabel, str.tostring(LondonText) + &#039;  (&#039; + str.tostring(chg, format.percent) + &#039;)&#039;)\n    if pipChange and not percentChange\n        label.set_text(LondonLabel, str.tostring(LondonText) + &#039;  (&#039; + str.tostring(pips) + &#039;)&#039;)\n    if percentChange and pipChange\n        label.set_text(LondonLabel, str.tostring(LondonText) + &#039;  (&#039;+ str.tostring(chg, format.percent)+ &#039; &bull; &#039; + str.tostring(pips) + &#039;)&#039;)\nif inNewYork and inRange\n    NewYorkHighPrice  := math.max(NewYorkHighPrice, high)\n    NewYorkLowPrice   := math.min(NewYorkLowPrice, low)\n    box.set_top(NewYorkBox, NewYorkHighPrice)\n    box.set_bottom(NewYorkBox, NewYorkLowPrice)\n    box.set_right(NewYorkBox, bar_index + 1)\n    label.set_x(NewYorkLabel, (box.get_left(NewYorkBox)+box.get_right(NewYorkBox))\/2)\n    label.set_y(NewYorkLabel, NewYorkHighPrice)\n    if sessionOC\n        line.set_x2(NewYorkOC, bar_index)\n        line.set_y2(NewYorkOC, close)\n    if halfline\n        line.set_y1(NewYorkLine, (NewYorkHighPrice+NewYorkLowPrice)\/2)\n        line.set_y2(NewYorkLine, (NewYorkHighPrice+NewYorkLowPrice)\/2)\n        line.set_x2(NewYorkLine, bar_index+1)\n    if merge and not inSydney and showSydney\n        NewYorkHighM := NewYorkHighPrice\n        NewYorkLowM  := NewYorkLowPrice\n    if merge and inSydney and showSydney\n        box.set_top(NewYorkBox, NewYorkHighM)\n        box.set_bottom(NewYorkBox, NewYorkLowM)\n        label.set_y(NewYorkLabel, NewYorkHighM)\n        box.set_right(NewYorkBox, (box.get_left(SydneyBox)))\n        line.set_x2(NewYorkLine, (box.get_left(SydneyBox)))\n        label.set_x(NewYorkLabel, (box.get_left(NewYorkBox)+box.get_right(NewYorkBox))\/2)\n        line.set_x2(NewYorkOC, (box.get_left(SydneyBox)))\n        line.set_y2(NewYorkOC, SydneyOpenPrice)\n        line.set_y1(NewYorkLine, (NewYorkHighM+NewYorkLowM)\/2)\n        line.set_y2(NewYorkLine, (NewYorkHighM+NewYorkLowM)\/2)\n    var float pips = 0\n    var float chg = 0\n    pips := changeType==&#039;Session High\/Low&#039; ? ((NewYorkHighPrice - NewYorkLowPrice) \/ syminfo.mintick \/ 10) : ((close - NewYorkOpenPrice) \/ syminfo.mintick \/ 10)\n    chg  := changeType==&#039;Session Open\/Close&#039; ? (100 * (close - NewYorkOpenPrice) \/ NewYorkOpenPrice) : ((NewYorkHighPrice - NewYorkLowPrice) \/ NewYorkLowPrice * 100)\n    if percentChange and not pipChange\n        label.set_text(NewYorkLabel, str.tostring(NewYorkText) + &#039;  (&#039; + str.tostring(chg, format.percent) + &#039;)&#039;)\n    if pipChange and not percentChange\n        label.set_text(NewYorkLabel, str.tostring(NewYorkText) + &#039;  (&#039; + str.tostring(pips) + &#039;)&#039;)\n    if percentChange and pipChange\n        label.set_text(NewYorkLabel, str.tostring(NewYorkText) + &#039;  (&#039;+ str.tostring(chg, format.percent)+ &#039; &bull; &#039; + str.tostring(pips) + &#039;)&#039;)\nif inSydney and inRange\n    SydneyHighPrice  := math.max(SydneyHighPrice, high)\n    SydneyLowPrice   := math.min(SydneyLowPrice, low)\n    box.set_top(SydneyBox, SydneyHighPrice)\n    box.set_bottom(SydneyBox, SydneyLowPrice)\n    box.set_right(SydneyBox, bar_index + 1)\n    label.set_x(SydneyLabel, (box.get_left(SydneyBox)+box.get_right(SydneyBox))\/2)\n    label.set_y(SydneyLabel, SydneyHighPrice)\n    if sessionOC\n        line.set_x2(SydneyOC, bar_index)\n        line.set_y2(SydneyOC, close)\n    if halfline\n        line.set_y1(SydneyLine, (SydneyHighPrice+SydneyLowPrice)\/2)\n        line.set_y2(SydneyLine, (SydneyHighPrice+SydneyLowPrice)\/2)\n        line.set_x2(SydneyLine, bar_index+1)\n    if merge and not inTokyo and showTokyo\n        SydneyHighM := SydneyHighPrice\n        SydneyLowM  := SydneyLowPrice\n    if merge and inTokyo and showTokyo\n        box.set_top(SydneyBox, SydneyHighM)\n        box.set_bottom(SydneyBox, SydneyLowM)\n        label.set_y(SydneyLabel, SydneyHighM)\n        box.set_right(SydneyBox, (box.get_left(TokyoBox)))\n        line.set_x2(SydneyLine, (box.get_left(TokyoBox)))\n        label.set_x(SydneyLabel, (box.get_left(SydneyBox)+box.get_right(SydneyBox))\/2)\n        line.set_x2(SydneyOC, (box.get_left(TokyoBox)))\n        line.set_y2(SydneyOC, TokyoOpenPrice)\n        line.set_y1(SydneyLine, (SydneyHighM+SydneyLowM)\/2)\n        line.set_y2(SydneyLine, (SydneyHighM+SydneyLowM)\/2)\n    var float pips = 0\n    var float chg = 0\n    pips := changeType==&#039;Session High\/Low&#039; ? ((SydneyHighPrice - SydneyLowPrice) \/ syminfo.mintick \/ 10) : ((close - SydneyOpenPrice) \/ syminfo.mintick \/ 10)\n    chg  := changeType==&#039;Session Open\/Close&#039; ? (100 * (close - SydneyOpenPrice) \/ SydneyOpenPrice) : ((SydneyHighPrice - SydneyLowPrice) \/ SydneyLowPrice * 100)\n    if percentChange and not pipChange\n        label.set_text(SydneyLabel, str.tostring(SydneyText) + &#039;  (&#039; + str.tostring(chg, format.percent) + &#039;)&#039;)\n    if pipChange and not percentChange\n        label.set_text(SydneyLabel, str.tostring(SydneyText) + &#039;  (&#039; + str.tostring(pips) + &#039;)&#039;)\n    if percentChange and pipChange\n        label.set_text(SydneyLabel, str.tostring(SydneyText) + &#039;  (&#039;+ str.tostring(chg, format.percent)+ &#039; &bull; &#039; + str.tostring(pips) + &#039;)&#039;)\n\n\/\/ Coloring candles\nTKLO = showLondon  ? (not inLondon)  : true\nLONY = showNewYork ? (not inNewYork) : true\nNYSY = showSydney  ? (not inSydney)  : true\nSYTK = showTokyo   ? (not inTokyo)   : true\nbarcolor((colorcandles or displayType==&#039;Candles&#039;) and not merge and  showTokyo   and inTokyo   and inRange          ? color.new(TokyoCol, 40) : na, editable = false)\nbarcolor((colorcandles or displayType==&#039;Candles&#039;) and not merge and  showLondon  and inLondon  and inRange          ? color.new(LondonCol, 40) : na, editable = false)\nbarcolor((colorcandles or displayType==&#039;Candles&#039;) and not merge and  showNewYork and inNewYork and inRange          ? color.new(NewYorkCol, 40) : na, editable = false)\nbarcolor((colorcandles or displayType==&#039;Candles&#039;) and not merge and  showSydney  and inNewYork and inRange          ? color.new(SydneyCol, 40) : na, editable = false)\nbarcolor((colorcandles or displayType==&#039;Candles&#039;) and merge     and  showTokyo   and inTokyo   and TKLO and inRange ? color.new(TokyoCol, 40) : na, editable = false)\nbarcolor((colorcandles or displayType==&#039;Candles&#039;) and merge     and  showLondon  and inLondon  and LONY and inRange ? color.new(LondonCol, 40) : na, editable = false)\nbarcolor((colorcandles or displayType==&#039;Candles&#039;) and merge     and  showNewYork and inNewYork and NYSY and inRange ? color.new(NewYorkCol, 40) : na, editable = false)\nbarcolor((colorcandles or displayType==&#039;Candles&#039;) and merge     and  showSydney  and inSydney  and SYTK and inRange ? color.new(SydneyCol, 40) : na, editable = false)\n\n\/\/ Coloring background if displayType==&#039;Zones&#039;\nTokyoT              = time(timeframe.period, TokyoTime)\nLondonT             = time(timeframe.period, LondonTime)\nNewYorkT            = time(timeframe.period, NewYorkTime)\nSydneyT             = time(timeframe.period, SydneyTime)\nbgcolor(displayType == &#039;Zones&#039; and not merge and showTokyo   and inRange and  time == TokyoT   ? TokyoCol   : na, editable = false)\nbgcolor(displayType == &#039;Zones&#039; and not merge and showLondon  and inRange and  time == LondonT  ? LondonCol  : na, editable = false)\nbgcolor(displayType == &#039;Zones&#039; and not merge and showNewYork and inRange and  time == NewYorkT ? NewYorkCol : na, editable = false)\nbgcolor(displayType == &#039;Zones&#039; and not merge and showSydney  and inRange and  time == SydneyT  ? SydneyCol  : na, editable = false)\nbgcolor(displayType == &#039;Zones&#039; and merge and not inLondon  and showTokyo   and inRange and  time == TokyoT   ? TokyoCol   : na, editable = false)\nbgcolor(displayType == &#039;Zones&#039; and merge and not inNewYork and showLondon  and inRange and  time == LondonT  ? LondonCol  : na, editable = false)\nbgcolor(displayType == &#039;Zones&#039; and merge and not inSydney  and showNewYork and inRange and  time == NewYorkT ? NewYorkCol : na, editable = false)\nbgcolor(displayType == &#039;Zones&#039; and merge and not inTokyo   and showSydney  and inRange and  time == SydneyT  ? SydneyCol  : na, editable = false)\n\n\/\/ Plotting sessions in Timeline form\nplotshape(displayType==&#039;Timeline&#039; and (merge and showLondon  ? (showTokyo   and inTokyo   and not inLondon)  : showTokyo   and inTokyo),   style=shape.square, color=TokyoCol,   location = location.bottom, size=size.auto)\nplotshape(displayType==&#039;Timeline&#039; and (merge and showNewYork ? (showLondon  and inLondon  and not inNewYork) : showLondon  and inLondon),  style=shape.square, color=LondonCol,  location = location.bottom, size=size.auto)\nplotshape(displayType==&#039;Timeline&#039; and (merge and showSydney  ? (showNewYork and inNewYork and not inSydney)  : showNewYork and inNewYork), style=shape.square, color=NewYorkCol, location = location.bottom, size=size.auto)\nplotshape(displayType==&#039;Timeline&#039; and (merge and showTokyo   ? (showSydney  and inSydney  and not inTokyo)   : showSydney  and inSydney),  style=shape.square, color=SydneyCol,  location = location.bottom, size=size.auto)\n\n\/\/ Creating alerts\nalertcondition(inTokyo   and not inTokyo[1], &#039;Tokyo Open&#039;, &#039;The Tokyo Session has started&#039;)\nalertcondition(inLondon  and not inLondon[1], &#039;London Open&#039;, &#039;The London Session has started&#039;)\nalertcondition(inNewYork and not inNewYork[1], &#039;New York Open&#039;, &#039;The New York Session has started&#039;)\nalertcondition(inSydney  and not inSydney[1], &#039;Sydney Open&#039;, &#039;The Sydney Session has started&#039;)\nalertcondition(high &gt; TokyoHighPrice[0]    and inTokyo, &#039;Tokyo Session - New High&#039;, &#039;New High in Tokyo Session&#039;)\nalertcondition(high &gt; LondonHighPrice[0]   and inLondon, &#039;London Session - New High&#039;, &#039;New High in London Session&#039;)\nalertcondition(high &gt; NewYorkHighPrice[0]  and inNewYork, &#039;New York Session - New High&#039;, &#039;New High in New York Session&#039;)\nalertcondition(high &gt; SydneyHighPrice[0]   and inSydney, &#039;Sydney Session - New High&#039;, &#039;New High in Sydney Session&#039;)\nalertcondition(low  &gt; TokyoLowPrice[0]     and inTokyo, &#039;Tokyo Session - New Low&#039;, &#039;New Low in Tokyo Session&#039;)\nalertcondition(low  &gt; LondonLowPrice[0]    and inLondon, &#039;London Session - New Low&#039;, &#039;New Low in London Session&#039;)\nalertcondition(low  &gt; NewYorkLowPrice[0]   and inNewYork, &#039;New York Session - New Low&#039;, &#039;New Low In New York Session&#039;)\nalertcondition(low  &gt; SydneyLowPrice[0]    and inSydney, &#039;Sydney Session - New Low&#039;, &#039;New Low In Sydney Session&#039;)\n\n<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_6ced9bcd = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/members.1uptick.com\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_6ced9bcd();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_6ced9bcd );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"tab-pane elementkit-tab-pane elementor-repeater-item-af2bfa3\" id=\"content-af2bfa369d29b6064094\" role=\"tabpanel\" aria-labelledby=\"content-af2bfa369d29b6064094-tab\">\n\t\t\t\t\t\t<div class=\"animated fadeIn\">\n\t\t\t\t\t\t\t\n\t\t<div class=\"widgetarea_warper widgetarea_warper_editable\" data-elementskit-widgetarea-key=\"da0252b\"  data-elementskit-widgetarea-index=\"af2bfa3\">\n\t\t\t<div class=\"widgetarea_warper_edit\" data-elementskit-widgetarea-key=\"da0252b\" data-elementskit-widgetarea-index=\"af2bfa3\">\n\t\t\t\t<i class=\"eicon-edit\" aria-hidden=\"true\"><\/i>\n\t\t\t\t<span>Edit Content<\/span>\n\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t<div class=\"ekit-widget-area-container\">\n\t\t\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"9699\" class=\"elementor elementor-9699\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c1eb784 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"c1eb784\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c2800c6\" data-id=\"c2800c6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-45d9713f elementor-widget elementor-widget-elementskit-heading\" data-id=\"45d9713f\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h4 class=\"ekit-heading--title elementskit-section-title\">\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19\u0e04\u0e27\u0e32\u0e21\u0e1c\u0e31\u0e19\u0e1c\u0e27\u0e19\u0e23\u0e32\u0e22\u0e27\u0e31\u0e19<\/h4><h6 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\tDay of Week - Volatility Report\n\t\t\t\t\t<\/h6><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8a1f8cd elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"8a1f8cd\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-9529a80\" data-id=\"9529a80\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-da7ee78 elementor-widget elementor-widget-image\" data-id=\"da7ee78\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"478\" src=\"https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/day-high-low-screen-cap-1024x478.png\" class=\"attachment-large size-large wp-image-9719\" alt=\"\" srcset=\"https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/day-high-low-screen-cap-1024x478.png 1024w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/day-high-low-screen-cap-300x140.png 300w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/day-high-low-screen-cap-768x358.png 768w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/day-high-low-screen-cap-18x8.png 18w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/day-high-low-screen-cap.png 1164w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2dba13c elementor-widget elementor-widget-elementskit-heading\" data-id=\"2dba13c\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e23\u0e2b\u0e31\u0e2a\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<div class=\"ChatMessage_chatMessage__xkgHx\">\n<div class=\"ChatMessage_messageRow__DHlnq\">\n<div class=\"ChatMessage_messageWrapper__4Ugd6\">\n<div class=\"Message_rowWithFooter__FShU6\">\n<div class=\"Message_row__ug_UU\">\n<div class=\"Message_botMessageBubble__aYctV\">\n<div class=\"Markdown_markdownContainer__Tz3HQ\">\n<p>Pine Script<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"Message_botOptimisticFooter__FL0c_\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-873c7d7 elementor-widget elementor-widget-elementskit-heading\" data-id=\"873c7d7\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e01\u0e32\u0e23\u0e41\u0e19\u0e30\u0e19\u0e33: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<div class=\"ChatMessage_chatMessage__xkgHx\">\n<div class=\"ChatMessage_messageRow__DHlnq\">\n<div class=\"ChatMessage_messageWrapper__4Ugd6\">\n<div class=\"Message_rowWithFooter__FShU6\">\n<div class=\"Message_row__ug_UU\">\n<div class=\"Message_botMessageBubble__aYctV\">\n<div class=\"Markdown_markdownContainer__Tz3HQ\">\n<p><span>\u0e15\u0e31\u0e27\u0e1a\u0e48\u0e07\u0e0a\u0e35\u0e49\u0e08\u0e30\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e04\u0e27\u0e32\u0e21\u0e1c\u0e31\u0e19\u0e1c\u0e27\u0e19\u0e41\u0e25\u0e30\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19\u0e2a\u0e16\u0e34\u0e15\u0e34\u0e15\u0e32\u0e21\u0e27\u0e31\u0e19\u0e43\u0e19\u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"Message_botOptimisticFooter__FL0c_\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ffafb50 elementor-widget elementor-widget-elementskit-heading\" data-id=\"ffafb50\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e41\u0e19\u0e27\u0e04\u0e34\u0e14: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<div class=\"ChatMessage_chatMessage__xkgHx\">\n<div class=\"ChatMessage_messageRow__DHlnq\">\n<div class=\"ChatMessage_messageWrapper__4Ugd6\">\n<div class=\"Message_rowWithFooter__FShU6\">\n<div class=\"Message_row__ug_UU\">\n<div class=\"Message_botMessageBubble__aYctV\">\n<div class=\"Markdown_markdownContainer__Tz3HQ\">\n<p>\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e15\u0e25\u0e32\u0e14\u0e17\u0e35\u0e48\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19\u0e08\u0e30\u0e21\u0e35\u0e2a\u0e48\u0e27\u0e19\u0e23\u0e48\u0e27\u0e21\u0e43\u0e19\u0e0a\u0e48\u0e27\u0e07\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e17\u0e35\u0e48\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19 \u0e2a\u0e34\u0e48\u0e07\u0e19\u0e35\u0e49\u0e2a\u0e48\u0e07\u0e1c\u0e25\u0e15\u0e48\u0e2d\u0e15\u0e25\u0e32\u0e14\u0e43\u0e19\u0e0a\u0e48\u0e27\u0e07\u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e44\u0e23?<\/p>\n<p>\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e19\u0e27\u0e04\u0e34\u0e14\u0e1a\u0e32\u0e07\u0e2a\u0e48\u0e27\u0e19\u0e17\u0e35\u0e48\u0e04\u0e27\u0e23\u0e2a\u0e33\u0e23\u0e27\u0e08:<br \/>\u0e27\u0e31\u0e19\u0e43\u0e14\u0e43\u0e19\u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c\u0e17\u0e35\u0e48\u0e15\u0e25\u0e32\u0e14\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e1c\u0e31\u0e19\u0e1c\u0e27\u0e19\u0e21\u0e32\u0e01\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14?<\/p>\n<p>\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Stop Profit \u0e41\u0e25\u0e30 Stop Loss \u0e42\u0e14\u0e22\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e01\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e1c\u0e31\u0e19\u0e1c\u0e27\u0e19\u0e02\u0e2d\u0e07\u0e27\u0e31\u0e19<\/p>\n<p>\u0e21\u0e35\u0e2a\u0e16\u0e32\u0e19\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e17\u0e35\u0e48\u0e15\u0e23\u0e07\u0e01\u0e31\u0e1a\u0e27\u0e31\u0e19\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e17\u0e35\u0e48\u0e0a\u0e19\u0e30\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48?<br \/>\u0e04\u0e38\u0e13\u0e04\u0e27\u0e23\u0e2b\u0e22\u0e38\u0e14\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e27\u0e31\u0e19\u0e44\u0e2b\u0e19\u0e43\u0e19\u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c?<\/p>\n<p>\u0e04\u0e33\u0e16\u0e32\u0e21\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e1a\u0e1b\u0e31\u0e08\u0e08\u0e31\u0e22\u0e17\u0e35\u0e48\u0e0b\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e15\u0e25\u0e32\u0e14\u0e41\u0e25\u0e30\u0e2a\u0e20\u0e32\u0e27\u0e30\u0e15\u0e25\u0e32\u0e14 \u0e41\u0e25\u0e30\u0e2d\u0e32\u0e08\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e01\u0e32\u0e23\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e27\u0e34\u0e08\u0e31\u0e22\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e44\u0e14\u0e49\u0e04\u0e33\u0e15\u0e2d\u0e1a\u0e17\u0e35\u0e48\u0e41\u0e19\u0e48\u0e0a\u0e31\u0e14 \u0e01\u0e25\u0e22\u0e38\u0e17\u0e18\u0e4c\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e17\u0e35\u0e48\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e04\u0e27\u0e32\u0e21\u0e40\u0e2a\u0e35\u0e48\u0e22\u0e07\u0e2d\u0e32\u0e08\u0e19\u0e33\u0e44\u0e1b\u0e2a\u0e39\u0e48\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c\u0e17\u0e35\u0e48\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19 \u0e02\u0e2d\u0e41\u0e19\u0e30\u0e19\u0e33\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e40\u0e02\u0e49\u0e32\u0e43\u0e08\u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e1c\u0e48\u0e32\u0e19\u0e01\u0e32\u0e23\u0e27\u0e34\u0e08\u0e31\u0e22\u0e40\u0e0a\u0e34\u0e07\u0e25\u0e36\u0e01\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e22\u0e49\u0e2d\u0e19\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e27\u0e31\u0e19\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e17\u0e35\u0e48\u0e14\u0e35\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e25\u0e22\u0e38\u0e17\u0e18\u0e4c\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-134787f1\" data-id=\"134787f1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-be36cfa elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"be36cfa\" data-element_type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-be36cfa\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-atom-dark\"\n            data-dark-theme=\"mdp-theme-atom-dark\"\n        >\n            \n                <pre class=\"line-numbers show-invisibles inline-color copy-to-clipboard language-diff-markup diff-highlight\"data-previewers=\"\"><code>\/\/ This source code is subject to the terms of the Mozilla Public License 2.0 at https:\/\/mozilla.org\/MPL\/2.0\/\n\/\/ &copy; 1uptick\n\/\/ Last modified: 2023-11-15\n\/\/ Version 2.0\n\n\n\/\/@version=5\nindicator(&quot;Tops &amp; Bottoms - Time of Day Report&quot;, format = format.percent, max_labels_count = 72)\n\n\n\/\/--------------------------------------------------------------------\n\/\/#region                      Constants\n\/\/--------------------------------------------------------------------\n\nint             COLUMN_WIDTH                = 2\nint             COLUMN_GAP                  = 2\ncolor           COLUMN_BORDERCOLOR          = color.new(chart.fg_color, 80)\ncolor           COLUMN_TOP_MAX_COLOR        = color.green\ncolor           COLUMN_TOP_MIN_COLOR        = #0c3299\ncolor           COLUMN_BOTTOM_MAX_COLOR     = color.red\ncolor           COLUMN_BOTTOM_MIN_COLOR     = #311b92\ncolor           CATEGORY_LABEL_BGCOLOR      = color.new(chart.bg_color, 50)\ncolor           CATEGORY_LABEL_TEXTCOLOR    = chart.fg_color\narray&lt;string&gt;   TIMEFRAMES                  = array.from(&quot;15&quot;, &quot;30&quot;, &quot;60&quot;)\n\n\/\/#endregion\n\n\n\/\/--------------------------------------------------------------------\n\/\/#region                        Inputs\n\/\/--------------------------------------------------------------------\n\ntimezoneTooltip     = &quot;Exchange and geographical timezones may observe Daylight Saving Time (DST).&quot;\nsessionTooltip      = &quot;By default, the indicator identifies the top and bottom over the symbol&#039;s session. &quot; +\n                      &quot;You can specify your custom session (in the indicator&#039;s timezone).&quot;\nnoticeTitle         = &quot;Navigate to the 1-hour timeframe (30-minute timeframe if the market starts at \ud835\udc65:30 AM or &quot; +\n                      &quot;15-minute timeframe if \ud835\udc65:15 AM) for the indicator to analyze the bars and collect tops and bottoms.&quot;\n\ntimezoneInput       = input.string  (&quot;Exchange&quot;, &quot;Timezone&quot;,\n     [\n     &quot;UTC&quot;,\n     &quot;Exchange&quot;,\n     &quot;Africa\/Cairo&quot;,\n     &quot;Africa\/Johannesburg&quot;,\n     &quot;Africa\/Lagos&quot;,\n     &quot;Africa\/Nairobi&quot;,\n     &quot;Africa\/Tunis&quot;,\n     &quot;America\/Argentina\/Buenos_Aires&quot;,\n     &quot;America\/Bogota&quot;,\n     &quot;America\/Caracas&quot;,\n     &quot;America\/Chicago&quot;,\n     &quot;America\/Denver&quot;,\n     &quot;America\/El_Salvador&quot;,\n     &quot;America\/Juneau&quot;,\n     &quot;America\/Lima&quot;,\n     &quot;America\/Los_Angeles&quot;,\n     &quot;America\/New_York&quot;,\n     &quot;America\/Mexico_City&quot;,\n     &quot;America\/Phoenix&quot;,\n     &quot;America\/Santiago&quot;,\n     &quot;America\/Sao_Paulo&quot;,\n     &quot;America\/Toronto&quot;,\n     &quot;America\/Vancouver&quot;,\n     &quot;Asia\/Almaty&quot;,\n     &quot;Asia\/Ashgabat&quot;,\n     &quot;Asia\/Bahrain&quot;,\n     &quot;Asia\/Bangkok&quot;,\n     &quot;Asia\/Dubai&quot;,\n     &quot;Asia\/Chongqing&quot;,\n     &quot;Asia\/Colombo&quot;,\n     &quot;Asia\/Ho_Chi_Minh&quot;,\n     &quot;Asia\/Hong_Kong&quot;,\n     &quot;Asia\/Istanbul&quot;,\n     &quot;Asia\/Jakarta&quot;,\n     &quot;Asia\/Jerusalem&quot;,\n     &quot;Asia\/Karachi&quot;,\n     &quot;Asia\/Kathmandu&quot;,\n     &quot;Asia\/Kolkata&quot;,\n     &quot;Asia\/Kuwait&quot;,\n     &quot;Asia\/Manila&quot;,\n     &quot;Asia\/Muscat&quot;,\n     &quot;Asia\/Nicosia&quot;,\n     &quot;Asia\/Qatar&quot;,\n     &quot;Asia\/Riyadh&quot;,\n     &quot;Asia\/Seoul&quot;,\n     &quot;Asia\/Shanghai&quot;,\n     &quot;Asia\/Singapore&quot;,\n     &quot;Asia\/Taipei&quot;,\n     &quot;Asia\/Tehran&quot;,\n     &quot;Asia\/Tokyo&quot;,\n     &quot;Asia\/Yangon&quot;,\n     &quot;Atlantic\/Reykjavik&quot;,\n     &quot;Australia\/Adelaide&quot;,\n     &quot;Australia\/Brisbane&quot;,\n     &quot;Australia\/Perth&quot;,\n     &quot;Australia\/Sydney&quot;,\n     &quot;Europe\/Amsterdam&quot;,\n     &quot;Europe\/Athens&quot;,\n     &quot;Europe\/Belgrade&quot;,\n     &quot;Europe\/Berlin&quot;,\n     &quot;Europe\/Bratislava&quot;,\n     &quot;Europe\/Brussels&quot;,\n     &quot;Europe\/Bucharest&quot;,\n     &quot;Europe\/Budapest&quot;,\n     &quot;Europe\/Copenhagen&quot;,\n     &quot;Europe\/Dublin&quot;,\n     &quot;Europe\/Helsinki&quot;,\n     &quot;Europe\/Madrid&quot;,\n     &quot;Europe\/Malta&quot;,\n     &quot;Europe\/Moscow&quot;,\n     &quot;Europe\/Lisbon&quot;,\n     &quot;Europe\/London&quot;,\n     &quot;Europe\/Luxembourg&quot;,\n     &quot;Europe\/Oslo&quot;,\n     &quot;Europe\/Paris&quot;,\n     &quot;Europe\/Riga&quot;,\n     &quot;Europe\/Rome&quot;,\n     &quot;Europe\/Stockholm&quot;,\n     &quot;Europe\/Tallinn&quot;,\n     &quot;Europe\/Vilnius&quot;,\n     &quot;Europe\/Warsaw&quot;,\n     &quot;Europe\/Zurich&quot;,\n     &quot;Pacific\/Auckland&quot;,\n     &quot;Pacific\/Chatham&quot;,\n     &quot;Pacific\/Fakaofo&quot;,\n     &quot;Pacific\/Honolulu&quot;,\n     &quot;Pacific\/Norfolk&quot;\n     ],\n     timezoneTooltip,\n     display = display.none\n )\ncustomSessionInput  = input.bool    (false, &quot;Custom Session&quot;, inline = &quot;Session&quot;)\nsessionInput        = input.session (&quot;0000-0000&quot;, &quot;&quot;, tooltip = sessionTooltip, inline = &quot;Session&quot;, display = display.none)\nsessionTypeInput    = input.string  (&quot;All&quot;, &quot;Session&quot;, [&quot;All&quot;, &quot;Up&quot;, &quot;Down&quot;], group = &quot;Filters&quot;) \nstartDateInput      = input.time    (timestamp(&quot;01 Jan 1975&quot;), &quot;From&quot;, group = &quot;Filters&quot;)\nendDateInput        = input.time    (timestamp(&quot;31 Dec 2050&quot;), &quot;To&quot;, group = &quot;Filters&quot;)\nnoticeInput         = input.bool    (true, noticeTitle, group = &quot;How To Use?&quot;, confirm = true, display = display.none)\n\n\/\/#endregion\n\n\n\/\/--------------------------------------------------------------------\n\/\/#region                         Types \n\/\/--------------------------------------------------------------------\n\ntype Marker\n    float price = na\n    int   time  = na\n\n\/\/#endregion\n\n\n\/\/--------------------------------------------------------------------\n\/\/#region                 Variables declarations\n\/\/--------------------------------------------------------------------\n\nvar topsByHourMap       = map.new&lt;int, int&gt;()\nvar bottomsByHourMap    = map.new&lt;int, int&gt;()\nvar openTimesByHourMap  = map.new&lt;int, string&gt;()\nvar closeTimesByHourMap = map.new&lt;int, string&gt;() \nvar top                 = Marker.new()\nvar bottom              = Marker.new()\n\n\/\/#endregion\n\n\n\/\/--------------------------------------------------------------------\n\/\/#region                   Functions &amp; methods\n\/\/--------------------------------------------------------------------\n\n\/\/ @function Produce the timezone parameter from the user-selected setting.\n\/\/ @returns  (string) Timezone\ngetTimezone() =&gt; \n    var _tz = switch timezoneInput\n        &quot;UTC&quot;       =&gt; &quot;UTC+0&quot;\n        &quot;Exchange&quot;  =&gt; syminfo.timezone  \n        =&gt; timezoneInput\n\n\n\/\/ @function Get the hour in the user-selected timezone from a given UNIX time.\n\/\/ @returns  (int) Hour\ngetHour(int barTime) =&gt;\n    hour(barTime, getTimezone())\n\n\n\/\/ @function Get the color based on a gradient between the minimum and maximum values.\n\/\/ @returns  color \ngetGradientColor(float value, float minValue, float maxValue, color minColor, color maxColor) =&gt;\n    \/\/ When `minValue` and `maxValue` are identical (on the first collected values), return the mid gradient color instead of no color.\n    minValue != maxValue ? color.from_gradient(value, minValue, maxValue, minColor, maxColor) : color.from_gradient(0.5, 0, 1, minColor, maxColor)\n    \n\n\/\/ @function Draw the columns for a given hour.\n\/\/ @returns  void\ndrawHourlyColumns(int key) =&gt;\n    var _upperColumnBox = box.new(na, na, na, na, COLUMN_BORDERCOLOR)\n    var _lowerColumnBox = box.new(na, na, na, na, COLUMN_BORDERCOLOR)\n    var _upperDataLabel = label.new(na, na, color = color(na), style = label.style_label_down)\n    var _lowerDataLabel = label.new(na, na, color = color(na), style = label.style_label_up)\n    var _categoryLabel  = label.new(na, na, color = CATEGORY_LABEL_BGCOLOR, style = label.style_label_center, textcolor = CATEGORY_LABEL_TEXTCOLOR)\n    var _gridMultiplier = COLUMN_WIDTH + COLUMN_GAP \n    \n    if barstate.islast\n        _topsArray      = topsByHourMap.values()\n        _bottomsArray   = bottomsByHourMap.values()\n\n        \/\/ Sum the number of data sampled.\n        _dataSum        = _topsArray.sum()\n\n\n        \/\/ Calculate the shares of occurrence of tops and bottoms.\n\n        _top            = topsByHourMap.get(key)\n        _bottom         = bottomsByHourMap.get(key)\n        _topY           = nz(_top       \/ _dataSum * 100)\n        _bottomY        = nz(_bottom    \/ _dataSum * 100)\n\n\n        \/\/ Get the coordinates for plotting the columns chart (on the left or right side of the last bar, given enough space).\n\n        _hasSpace       = bar_index - 24 * _gridMultiplier &gt; 0\n        _x1             = _hasSpace ? bar_index + (key - 24) * _gridMultiplier : bar_index + key * _gridMultiplier\n        _x2             = _x1 + COLUMN_WIDTH\n        _center         = _x1 + COLUMN_WIDTH \/ 2\n\n\n        \/\/ Get the coloring of the columns and data labels.\n\n        _topsMin        = _topsArray.min()      \/ _dataSum * 100\n        _topsMax        = _topsArray.max()      \/ _dataSum * 100\n        _bottomsMin     = _bottomsArray.min()   \/ _dataSum * 100\n        _bottomsMax     = _bottomsArray.max()   \/ _dataSum * 100\n        _topColor       = getGradientColor(_topY, _topsMin, _topsMax, COLUMN_TOP_MIN_COLOR, COLUMN_TOP_MAX_COLOR)\n        _bottomColor    = getGradientColor(_bottomY, _bottomsMin, _bottomsMax, COLUMN_BOTTOM_MIN_COLOR, COLUMN_BOTTOM_MAX_COLOR)\n\n\n        \/\/ Plot the upper and lower columns for tops and bottoms.\n\n        _upperColumnBox.set_lefttop     (_x1, _topY)\n        _upperColumnBox.set_rightbottom (_x2, 0)\n        _upperColumnBox.set_bgcolor     (_topColor)\n\n        _lowerColumnBox.set_lefttop     (_x1, 0)\n        _lowerColumnBox.set_rightbottom (_x2, -_bottomY)\n        _lowerColumnBox.set_bgcolor     (_bottomColor)\n\n\n        \/\/ Plot the X-axis category label.\n\n        _openTime                   = openTimesByHourMap.get(key)\n        _closeTime                  = closeTimesByHourMap.get(key)\n        _isCategoryDefined          = not (na(_openTime) or na(_closeTime))\n\n        _categoryLabel.set_xy       (_center, 0)\n        _categoryLabel.set_text     (str.tostring(key))\n        _categoryLabel.set_tooltip  (_isCategoryDefined ? str.format(&quot;{0} to {1} ({2})&quot;, _openTime, _closeTime, getTimezone()) : &quot;Not Collected&quot;)\n\n\n        \/\/ Plot the data labels for tops and bottoms.\n\n        if not na(_top)\n            _upperDataLabel.set_xy          (_center, _topY)\n            _upperDataLabel.set_text        (str.tostring(math.round(_topY)))\n            _upperDataLabel.set_textcolor   (_topColor)\n            _upperDataLabel.set_tooltip     (str.format(&quot;{0} based on {1} sampled days&quot;, str.tostring(_topY, format.percent), _dataSum))\n\n        if not na(_bottom)\n            _lowerDataLabel.set_xy          (_center, -_bottomY)\n            _lowerDataLabel.set_text        (str.tostring(math.round(_bottomY)))\n            _lowerDataLabel.set_textcolor   (_bottomColor)\n            _lowerDataLabel.set_tooltip     (str.format(&quot;{0} based on {1} sampled days&quot;, str.tostring(_bottomY, format.percent), _dataSum))\n\n\n\/\/ @function Check if the day\/custom session matches the user-selected session type filter.\n\/\/ @returns  bool \nisValidSessionType(start, end) =&gt;\n    var float _open = na\n    bool _isValid   = na\n\n    if start\n        _open := open\n\n    if end\n        _isValid := switch sessionTypeInput\n            &quot;All&quot;   =&gt; not na(_open[1])\n            &quot;Up&quot;    =&gt; close[1] &gt; _open[1]\n            &quot;Down&quot;  =&gt; close[1] &lt; _open[1]\n\n    _isValid\n\n\n\/\/ @function Check if the current bar time is in the user-selected time range filter.\n\/\/ @returns  bool\nisInTimeRange() =&gt;\n    time &gt;= startDateInput and time &lt;= endDateInput\n\n\n\/\/ @function Produce the UNIX time of the current date at a specified time in the user-selected timezone.\n\/\/ @returns  (int) UNIX time\ngetTime(int h, int m) =&gt;\n    timestamp(getTimezone(), year, month, dayofmonth, h, m, second)\n    \n\n\/\/ @function Get the current day&#039;s session dates from a given session string.\n\/\/ @returns  ([int, int]) Start and end UNIX time\ngetSessionTimes(sessionString) =&gt;\n    [getTime(int(str.tonumber(str.substring(sessionString, 0, 2))), int(str.tonumber(str.substring(sessionString, 2, 4)))),\n     getTime(int(str.tonumber(str.substring(sessionString, 5, 7))), int(str.tonumber(str.substring(sessionString, 7))))]\n\n\n\/\/ @function Detect changes in the day\/custom session and if the current bar is in the session.\n\/\/ @returns  [bool, bool, bool]\nsessionChange() =&gt;\n    if customSessionInput\n        var int _startTime = na\n        var int _endTime = na\n        _isInSession = not na(time(timeframe.period, sessionInput, getTimezone()))\n        [_currentStartTime, _currentEndTime] = getSessionTimes(sessionInput)\n\n        \/\/ On overnight sessions (e.g., EURUSD), preserve original start and end times.\n        _startTime := time &gt;= _currentStartTime ? _currentStartTime : _startTime\n        _endTime := time &gt;= _currentEndTime ? _currentEndTime : _endTime\n\n        \/\/ Start on the first bar of the session.\n        _start = ta.change(_startTime) &gt; 0 and _isInSession\n\n        \/\/ End after the last bar of the session.\n        _end = ta.change(_endTime) &gt; 0 and _isInSession[1]\n\n        [_start, _end, _isInSession]\n    else\n        \/\/ Start and end on the day change.\n        _dayChange = timeframe.change(&quot;D&quot;)\n\n        [_dayChange, _dayChange, true]\n\n\/\/#endregion\n\n\n\/\/--------------------------------------------------------------------\n\/\/#region                         Logic\n\/\/--------------------------------------------------------------------\n\nif TIMEFRAMES.indexof(timeframe.period) == -1\n    runtime.error(&quot;The report can not compute data on the chart&#039;s timeframe. Please navigate to the 1-hour, 30-minute, or 15-minute timeframe.&quot;)\n\n\/\/@variable Is true when the current bar is inside the time range filter.\nisInRange = isInTimeRange()\n\n\/\/ Session variables from the day\/custom session.\n[sessionStart, sessionEnd, isInSession] = sessionChange()\n\n\/\/ @variable Is true when the day\/custom session closes per the session type filter.\nisValidType = isValidSessionType(sessionStart, sessionEnd)\n\n\n\/\/ Track the top and bottom of the day\/custom session.\n\nif isInRange\n    \n    \/\/ Reset the top and bottom on the first bar of a new day\/custom session.\n    \n    if sessionStart\n        top.price       := na\n        top.time        := na\n        bottom.price    := na\n        bottom.time     := na\n\n\n    \/\/ Track the top and bottom.\n\n    if na(top.price) or high &gt; top.price\n        top.price       := high\n        top.time        := time\n    \n    if na(bottom.price) or low &lt; bottom.price\n        bottom.price    := low\n        bottom.time     := time\n\n\n\/\/ Collect the top, bottom, and time data.\n\nif isInRange and barstate.isconfirmed\n    \/\/ @variable Is true on the first bar of the time range.\n    _isFirstBar = na(top.time[1]) or na(bottom.time[1])\n    \n\n    \/\/ Collect the top and bottom on matching type on a day\/custom session change.\n\n    if isValidType and not _isFirstBar\n        _topHour     = getHour(top.time[1])\n        _bottomHour  = getHour(bottom.time[1])\n\n        _topCount    = nz(topsByHourMap.get(_topHour)) +1\n        _bottomCount = nz(bottomsByHourMap.get(_bottomHour)) +1\n\n        topsByHourMap.put   (_topHour,    _topCount)\n        bottomsByHourMap.put(_bottomHour, _bottomCount)\n\n        log.info(&quot;\\n\u25b2 Top at {0} ({1}\/{4})\\n\u25bc Bottom at {2} ({3}\/{4})&quot;, _topHour, _topCount, _bottomHour, _bottomCount, topsByHourMap.values().sum())\n\n\n    \/\/ Collect the hourly opening and closing times\n    \/\/ On hourly time change, collect the open time and preceding close time.\n    \/\/ The times are be displayed in the tooltips of category labels.\n\n    _barHour     = getHour(time)\n    _prevBarHour = getHour(time[1])\n\n    if _prevBarHour != _barHour\n        openTimesByHourMap.put (_barHour,     str.format_time(time, &quot;HH:mm&quot;, getTimezone()))\n        closeTimesByHourMap.put(_prevBarHour, str.format_time(time_close[1], &quot;HH:mm&quot;, getTimezone()))\n\n\/\/#endregion\n\n\n\/\/--------------------------------------------------------------------\n\/\/#region                        Visuals\n\/\/--------------------------------------------------------------------\n\ndrawHourlyColumns(0)\ndrawHourlyColumns(1)\ndrawHourlyColumns(2)\ndrawHourlyColumns(3)\ndrawHourlyColumns(4)\ndrawHourlyColumns(5)\ndrawHourlyColumns(6)\ndrawHourlyColumns(7)\ndrawHourlyColumns(8)\ndrawHourlyColumns(9)\ndrawHourlyColumns(10)\ndrawHourlyColumns(11)\ndrawHourlyColumns(12)\ndrawHourlyColumns(13)\ndrawHourlyColumns(14)\ndrawHourlyColumns(15)\ndrawHourlyColumns(16)\ndrawHourlyColumns(17)\ndrawHourlyColumns(18)\ndrawHourlyColumns(19)\ndrawHourlyColumns(20)\ndrawHourlyColumns(21)\ndrawHourlyColumns(22)\ndrawHourlyColumns(23)\n\n\/\/#endregion<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_be36cfa = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/members.1uptick.com\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_be36cfa();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_be36cfa );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"tab-pane elementkit-tab-pane elementor-repeater-item-ac6bf32\" id=\"content-ac6bf3269d29b6064094\" role=\"tabpanel\" aria-labelledby=\"content-ac6bf3269d29b6064094-tab\">\n\t\t\t\t\t\t<div class=\"animated fadeIn\">\n\t\t\t\t\t\t\t\n\t\t<div class=\"widgetarea_warper widgetarea_warper_editable\" data-elementskit-widgetarea-key=\"da0252b\"  data-elementskit-widgetarea-index=\"ac6bf32\">\n\t\t\t<div class=\"widgetarea_warper_edit\" data-elementskit-widgetarea-key=\"da0252b\" data-elementskit-widgetarea-index=\"ac6bf32\">\n\t\t\t\t<i class=\"eicon-edit\" aria-hidden=\"true\"><\/i>\n\t\t\t\t<span>Edit Content<\/span>\n\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t<div class=\"ekit-widget-area-container\">\n\t\t\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"9867\" class=\"elementor elementor-9867\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-bdb2342 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"bdb2342\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-296b8e2\" data-id=\"296b8e2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7b21bd1 elementor-widget elementor-widget-elementskit-heading\" data-id=\"7b21bd1\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h4 class=\"ekit-heading--title elementskit-section-title\">\u0e01\u0e23\u0e32\u0e1f\u0e41\u0e19\u0e27\u0e23\u0e31\u0e1a\u0e41\u0e25\u0e30\u0e41\u0e19\u0e27\u0e15\u0e49\u0e32\u0e19<\/h4><h6 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\tSupport and Resistnace\n\t\t\t\t\t<\/h6><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f405d24 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"f405d24\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-1cfd36fe\" data-id=\"1cfd36fe\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-38efa70d elementor-widget elementor-widget-image\" data-id=\"38efa70d\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"609\" src=\"https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/sr-chart-1024x609.png\" class=\"attachment-large size-large wp-image-9873\" alt=\"\" srcset=\"https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/sr-chart-1024x609.png 1024w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/sr-chart-300x179.png 300w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/sr-chart-768x457.png 768w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/sr-chart-18x12.png 18w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/sr-chart.png 1383w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-37c6a1e1 elementor-widget elementor-widget-elementskit-heading\" data-id=\"37c6a1e1\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e23\u0e2b\u0e31\u0e2a\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<div class=\"ChatMessage_chatMessage__xkgHx\">\n<div class=\"ChatMessage_messageRow__DHlnq\">\n<div class=\"ChatMessage_messageWrapper__4Ugd6\">\n<div class=\"Message_rowWithFooter__FShU6\">\n<div class=\"Message_row__ug_UU\">\n<div class=\"Message_botMessageBubble__aYctV\">\n<div class=\"Markdown_markdownContainer__Tz3HQ\">\n<p>Pine Script<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"Message_botOptimisticFooter__FL0c_\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-43a83f5f elementor-widget elementor-widget-elementskit-heading\" data-id=\"43a83f5f\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e01\u0e32\u0e23\u0e41\u0e19\u0e30\u0e19\u0e33: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<div class=\"ChatMessage_chatMessage__xkgHx\">\n<div class=\"ChatMessage_messageRow__DHlnq\">\n<div class=\"ChatMessage_messageWrapper__4Ugd6\">\n<div class=\"Message_rowWithFooter__FShU6\">\n<div class=\"Message_row__ug_UU\">\n<div class=\"Message_botMessageBubble__aYctV\">\n<div class=\"Markdown_markdownContainer__Tz3HQ\">\n<p><span>\u0e1b\u0e0f\u0e34\u0e27\u0e31\u0e15\u0e34\u0e1b\u0e23\u0e30\u0e2a\u0e1a\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e1a\u0e19 TradingView! \u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e19\u0e35\u0e49\u0e17\u0e33\u0e07\u0e32\u0e19\u0e43\u0e19\u0e01\u0e23\u0e2d\u0e1a\u0e40\u0e27\u0e25\u0e32\u0e17\u0e35\u0e48\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19\u0e2a\u0e32\u0e21\u0e01\u0e23\u0e2d\u0e1a \u0e42\u0e14\u0e22\u0e43\u0e2b\u0e49\u0e21\u0e38\u0e21\u0e21\u0e2d\u0e07\u0e17\u0e35\u0e48\u0e04\u0e23\u0e2d\u0e1a\u0e04\u0e25\u0e38\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e02\u0e2d\u0e07\u0e15\u0e25\u0e32\u0e14 \u0e01\u0e32\u0e23\u0e23\u0e30\u0e1a\u0e38\u0e41\u0e19\u0e27\u0e15\u0e49\u0e32\u0e19\u0e41\u0e25\u0e30\u0e41\u0e19\u0e27\u0e23\u0e31\u0e1a\u0e1a\u0e19\u0e01\u0e23\u0e32\u0e1f \u0e41\u0e25\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e43\u0e19\u0e01\u0e32\u0e23\u0e15\u0e31\u0e14\u0e2a\u0e34\u0e19\u0e43\u0e08\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"Message_botOptimisticFooter__FL0c_\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c7a0df8 elementor-position-right elementor-vertical-align-top elementor-widget elementor-widget-image-box\" data-id=\"c7a0df8\" data-element_type=\"widget\" data-no-translation=\"\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>.elementor-element-c7a0df8{display:none !important}<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-10f4ac4a\" data-id=\"10f4ac4a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5a302feb elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"5a302feb\" data-element_type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-5a302feb\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-atom-dark\"\n            data-dark-theme=\"mdp-theme-atom-dark\"\n        >\n            \n                <pre class=\"line-numbers show-invisibles inline-color copy-to-clipboard language-diff-markup diff-highlight\"data-previewers=\"\"><code>\/\/ This Pine Script&trade; code is subject to the terms of the Mozilla Public License 2.0 at https:\/\/mozilla.org\/MPL\/2.0\/\n\/\/ @1uptick\n\n\/\/@version=5\nconst bool DEBUG = false\nindicator(&quot;1up Support &amp; Resistance&quot;, overlay = true, max_labels_count = 100, max_lines_count = 100, max_boxes_count = 100, max_bars_back = 305)\n\nconst int timeframeCount = 3\nconst float labelOffsetsY = 1.001\nconst int labelOffsetsXIndex = 30\nconst float epsilon = 0.001\nconst float retestEpsilon = 0.002\nconst int maxPivotsBackSR = 15\nconst int retestLabelEveryXBars = 4\nconst int maxTraverse = 200  \/\/ Affects bar history limit. Default value 200.\nconst int maxRetestLabels = 25\nconst int maxSupports = 3\nconst int maxResistances = 3\nconst float retestPriceDifferencePercentMax = 0.02\nconst bool calculateTimeSkipMS = false\nconst int debug_maxPivotLabels = 25\n\n\/\/ _____ INPUTS _____\nresistanceSupportCount = input.int(3, &quot;Support &amp; Resistance Count&quot;, options = [1, 2, 3], group = &quot;General Configuration&quot;)\npivotRange = input.int(15, &quot;Pivot Range&quot;, options = [5, 15, 30], tooltip = &quot;Increase for more general pivots, decrease for more private pivots.&quot;, group = &quot;General Configuration&quot;)\nstrength = input.int(1, &quot;Strength&quot;, options = [1, 2, 3, 4], tooltip = &quot;X many times price touched relative price area in order to be considered a support\/resistance zone.&quot;, group = &quot;General Configuration&quot;)\nexpandLines = input.bool(true,&quot;Expand Lines &amp; Zones&quot;, group = &quot;General Configuration&quot;)\n\nenableZones = input.bool(false, &quot;Enable Zones&quot;, group = &quot;Support &amp; Resistance Zones&quot;)\nzoneWidth = input.int(1, &quot;Zone Width&quot;, options = [1,2,3], group = &quot;Support &amp; Resistance Zones&quot;)\n\ntimeframe1Enabled = input.bool(true, title = &quot;&quot;, group = &quot;Timeframes&quot;, inline = &quot;timeframe1&quot;)\ntimeframe1 = input.timeframe(&quot;&quot;, title = &quot;&quot;, group = &quot;Timeframes&quot;, inline = &quot;timeframe1&quot;)\ntimeframe2Enabled = input.bool(false, title = &quot;&quot;, group = &quot;Timeframes&quot;, inline = &quot;timeframe2&quot;)\ntimeframe2 = input.timeframe(&quot;15&quot;, title = &quot;&quot;, group = &quot;Timeframes&quot;, inline = &quot;timeframe2&quot;)\ntimeframe3Enabled = input.bool(false, title = &quot;&quot;, group = &quot;Timeframes&quot;, inline = &quot;timeframe3&quot;)\ntimeframe3 = input.timeframe(&quot;30&quot;, title = &quot;&quot;, group = &quot;Timeframes&quot;, inline = &quot;timeframe3&quot;)\n\nshowBreaks = input.bool(true,&quot;Show Breaks&quot;, group = &quot;Breaks &amp; Retests&quot;, inline = &quot;ShowBR&quot;)\nshowRetests = input.bool(true,&quot;Show Retests&quot;, group = &quot;Breaks &amp; Retests&quot;, inline = &quot;ShowBR&quot;)\navoidFalseBreaks = input.bool(true,&quot;Avoid False Breaks&quot;, group = &quot;Breaks &amp; Retests&quot;)\nfalseBreakoutVolumeThreshold = input.int(30, &quot;Break Volume Threshold %&quot;, minval = 0, maxval = 100, group = &quot;Breaks &amp; Retests&quot;, tooltip = &quot;Only taken into account if Avoid False Breakouts is enabled.\\nHigher values mean it&#039;s less likely to be a break.&quot;)\ninverseBrokenLineColor = input.bool(false,&quot;Inverse Color After Broken&quot;, tooltip = &quot;Needs Show Breaks &amp; Expand Lines option enabled.&quot;, group = &quot;Breaks &amp; Retests&quot;)\n\nlineStyle = input.string(&quot;Solid&quot;, &quot;Line Style&quot;, [&quot;Solid&quot;, &quot;Dashed&quot;, &quot;Dotted&quot;], group = &quot;Style&quot;)\nlineWidth = input.int(2, &quot;Line Width&quot;, minval = 1, group = &quot;Style&quot;)\nsupportColor = input.color(#08998180, &quot;Support Color&quot;, group = &quot;Style&quot;, inline = &quot;RScolors&quot;)\nresistanceColor = input.color(#f2364580, &quot;Resistance Color&quot;, group = &quot;Style&quot;, inline = &quot;RScolors&quot;)\ntextColor = input.color(#ffffff80, &quot;Text Color&quot;, group = &quot;Style&quot;, inline = &quot;RScolors&quot;)\n\nenableRetestAlerts = input.bool(true, &quot;Enable Retest Alerts&quot;, tooltip = &quot;Needs Show Retests option enabled.&quot;, group = &quot;Alerts&quot;)\nenableBreakAlerts = input.bool(true, &quot;Enable Break Alerts&quot;, group = &quot;Alerts&quot;)\n\nmemoryOptimizatonEnabled = input.bool(false, &quot;Enable Memory Optimization&quot;, tooltip = &quot;Enable this option if you encounter memory errors.&quot;, group = &quot;Advanced&quot;)\n\/\/ _____ INPUTS END _____\n\n\/\/ _____ DEBUG OPTIONS _____\ndebug_labelPivots = not DEBUG ? &quot;None&quot; : input.string(&quot;None&quot;, title = &quot;[DBG] Label Pivots&quot;, group = &quot;DEBUG&quot;, options = [&quot;All&quot;, &quot;RS&quot;, &quot;None&quot;], tooltip = &quot;All -&gt; Debugs all pivot labels.\\nRS -&gt; Debugs RS pivot labels.\\nNone -&gt; Debugs none of the last R&amp;S pivots.&quot;)\ndebug_pivotLabelText = not DEBUG ? false : input.bool(false, title = &quot;[DBG] Pivot Label Text&quot;, group = &quot;DEBUG&quot;)\ndebug_showBrokenOnLabel = not DEBUG ? false : input.bool(false, &quot;[DBG] Show Broken Text On Label&quot;, group = &quot;DEBUG&quot;)\ndebug_removeDuplicateRS = not DEBUG ? true : input.bool(true, &quot;[DBG] Remove Duplicate RS&quot;, group = &quot;DEBUG&quot;)\ndebug_lastXResistances = not DEBUG ? 3 : input.int(3, &quot;[DBG] Show Last X Resistances&quot;, minval = 0, maxval = maxResistances, group = &quot;DEBUG&quot;)\ndebug_lastXSupports = not DEBUG ? 3 : input.int(3, &quot;[DBG] Show Last X Supports&quot;, minval = 0, maxval = maxSupports, group = &quot;DEBUG&quot;)\ndebug_enabledHistory = not DEBUG ? true : input.bool(true, &quot;[DBG] Enable History&quot;, group = &quot;DEBUG&quot;)\ndebug_maxHistoryRecords = not DEBUG ? 10 : input.int(10, &quot;[DBG] Max History Records&quot;, options =  [1, 2, 5, 10, 25], group = &quot;DEBUG&quot;)\n\/\/ _____ DEBUG OPTIONS END _____\n\ncreateRSLine (color) =&gt;\n    line.new(na, na, na, na, extend = expandLines ? extend.both : extend.none, xloc=xloc.bar_time, color = color, width = lineWidth, style = lineStyle == &quot;Dashed&quot; ? line.style_dashed : lineStyle == &quot;Dotted&quot; ? line.style_dotted : line.style_solid)\n\ncreateRSBox (color, xlocType) =&gt;\n    box.new(na, na, na, na, text_size = size.normal, xloc = xlocType, extend = extend.both, bgcolor = color, text_color = textColor, text_halign = expandLines ? text.align_right : text.align_center, border_color = #00000000)\n\ncreateRSLabel () =&gt;\n    label.new(na, na, &quot;&quot;, style = label.style_none, textcolor = textColor)\n\ncreateBreakLabel (RSType) =&gt;\n    label.new(na,na,&quot;B&quot;,style = RSType == &quot;Resistance&quot; ? label.style_label_up : label.style_label_down, color=color.blue, textcolor = color.white, xloc = xloc.bar_time, size = size.small)\n\ncreateRetestLabel (RSType) =&gt;\n    label.new(na,na,&quot;R&quot;,style = RSType == &quot;Resistance&quot; ? label.style_label_down : label.style_label_up, color = RSType == &quot;Resistance&quot; ? resistanceColor : supportColor, textcolor = color.white, xloc = xloc.bar_time, size = size.small)\n\nmoveLine(_line, _x, _y, _x2) =&gt;\n    line.set_xy1(_line, _x,  _y)\n    line.set_xy2(_line, _x2, _y)\n\nmoveBox (_box, _topLeftX, _topLeftY, _bottomRightX, _bottomRightY) =&gt;\n    box.set_lefttop(_box, _topLeftX, _topLeftY)\n    box.set_rightbottom(_box, _bottomRightX, _bottomRightY)\n\nmoveRSInfoBox (_box, _startPointX, _price, _endPointX) =&gt;\n    zoneWidthPercent = zoneWidth == 1 ? 0.05 : zoneWidth == 2 ? 0.06 : 0.075\n    topY = _price * (1.0 + (zoneWidthPercent \/ 2.0 \/ 100.0))\n    bottomY = _price * (1.0 - (zoneWidthPercent \/ 2.0 \/ 100.0))\n    moveBox(_box, _startPointX, topY, _endPointX, bottomY)\n\n\/\/ _____ TYPES _____\n\ntype RSInfo\n    bool isBroken = na\n    int brokenTime = na\n    string RSType = na\n    float price = na\n    line line = na\n    box box = na\n    label priceLabel = na\n    chart.point[] points = na\n    label[] debugPoints = na\n    label breakLabel = na\n    label[] retestLabels = na\n    line breakLine = na\n    box breakBox = na\n\nnewRSInfo (RSType) =&gt;\n    newRSInfo = RSInfo.new()\n    newRSInfo.RSType := RSType\n    newRSInfo.price := na\n    newRSInfo.isBroken := false\n    newRSInfo.brokenTime := na\n\n    newRSInfo.line := enableZones ? na : createRSLine(RSType == &quot;Resistance&quot; ? resistanceColor : supportColor)\n    newRSInfo.box := enableZones ? createRSBox(RSType == &quot;Resistance&quot; ? resistanceColor : supportColor, xloc.bar_time) : na\n    newRSInfo.priceLabel := enableZones ? na : createRSLabel()\n    newRSInfo.points := array.new&lt;chart.point&gt;(0)\n    newRSInfo.debugPoints := array.new&lt;label&gt;(0)\n    newRSInfo.retestLabels := array.new&lt;label&gt;(0)\n    newRSInfo.breakLabel := na\n    newRSInfo.breakLine := na\n    newRSInfo.breakBox := na\n    \n    newRSInfo\n\nhistRSInfo (RSInfo RSInfoF) =&gt;\n    RSType = RSInfoF.RSType\n    newRS = RSInfo.new()\n    newRS.RSType := RSType\n    newRS.price := RSInfoF.price\n\n    newRS.debugPoints := array.new&lt;label&gt;(0)\n    newRS.retestLabels := array.new&lt;label&gt;(0)\n    newRS.points := array.new&lt;chart.point&gt;(0)\n\n    histText = &quot;History | &quot; + str.tostring(newRS.price, format.mintick)\n\n    startTime = math.min(time, RSInfoF.points.get(strength - 1).time)\n    endTime = RSInfoF.isBroken ? RSInfoF.brokenTime : time\n\n    if enableZones\n        newRS.box := createRSBox(RSType == &quot;Resistance&quot; ? resistanceColor : supportColor, xloc.bar_time)\n        moveRSInfoBox(newRS.box, startTime, newRS.price, endTime)\n        box.set_extend(newRS.box, expandLines ? extend.both : extend.none)\n        box.set_text(newRS.box, histText)\n    else\n        newRS.line := line.copy(RSInfoF.line)\n        moveLine(newRS.line, startTime, newRS.price, endTime)\n        line.set_extend(newRS.line, expandLines ? extend.both : extend.none)\n\n        newRS.priceLabel := label.copy(RSInfoF.priceLabel)\n        label.set_text(newRS.priceLabel, histText)\n        label.set_xloc(newRS.priceLabel, (startTime + endTime) \/ 2, xloc.bar_time)\n    \n    if not na(newRS.breakLabel)\n        newRS.breakLabel := label.copy(RSInfoF.breakLabel)\n    \n    newRS\n\nsafeDeleteRSInfo (RSInfo RSInfoF) =&gt;\n    if not na(RSInfoF)\n        line.delete(RSInfoF.line)\n        box.delete(RSInfoF.box)\n        label.delete(RSInfoF.priceLabel)\n\n        RSInfoF.points.clear()\n\n        if RSInfoF.debugPoints.size() &gt; 0\n            for i = 0 to RSInfoF.debugPoints.size() - 1\n                label.delete(RSInfoF.debugPoints.get(i))\n            RSInfoF.debugPoints.clear()\n\n        if RSInfoF.retestLabels.size() &gt; 0\n            for i = 0 to RSInfoF.retestLabels.size() - 1\n                label.delete(RSInfoF.retestLabels.get(i))\n            RSInfoF.retestLabels.clear()\n        \n        label.delete(RSInfoF.breakLabel)\n        line.delete(RSInfoF.breakLine)\n        box.delete(RSInfoF.breakBox)\n\ntype timeframeInfo\n    int index = na\n    string timeframeStr = na\n    bool isEnabled = false\n\n    RSInfo[] resistances = na\n    RSInfo[] supports = na\n\n    float[] highPivots = na\n    int[] highTimes = na\n\n    float[] lowPivots = na\n    int[] lowTimes = na\n\nnewTimeframeInfo (index, timeframeStr, isEnabled) =&gt;\n    newTFInfo = timeframeInfo.new()\n    newTFInfo.index := index\n    newTFInfo.isEnabled := isEnabled\n    newTFInfo.timeframeStr := timeframeStr\n\n    newTFInfo.resistances := array.new&lt;RSInfo&gt;(debug_lastXResistances)\n    newTFInfo.supports := array.new&lt;RSInfo&gt;(debug_lastXSupports)\n    \n    newTFInfo.highPivots := array.new&lt;float&gt;()\n    newTFInfo.highTimes := array.new&lt;int&gt;()\n\n    newTFInfo.lowPivots := array.new&lt;float&gt;()\n    newTFInfo.lowTimes := array.new&lt;int&gt;()\n    newTFInfo\n\n\/\/ _____ TYPES END _____\n\n\/\/ _____ VARS _____\n\nvar timeframeInfo[] timeframeInfos = array.from(newTimeframeInfo(1, timeframe1, timeframe1Enabled), newTimeframeInfo(2, timeframe2, timeframe2Enabled), newTimeframeInfo(3, timeframe3, timeframe3Enabled))\nvar bool initRun = true\nvar int maxTimeskipMS = 0\n\nvar float[] allLowPivots = array.new&lt;float&gt;(0)\nvar float[] allHighPivots = array.new&lt;float&gt;(0)\nvar int[] allLowTimes = array.new&lt;int&gt;(0)\nvar int[] allHighTimes = array.new&lt;int&gt;(0)\n\nvar RSInfo[] history = array.new&lt;RSInfo&gt;(0)\n\nRSInfo[] curRSList = array.new&lt;RSInfo&gt;(0)\nRSInfo[] oldRSList = array.new&lt;RSInfo&gt;(0)\n\nint maxPivotsAllowed = memoryOptimizatonEnabled ? 10 : 15 \/\/ Affects memory limit. Default value 30.\n\n\/\/ _____ VARS END _____\n\ndoValuesTouch (float value1, float value2) =&gt;\n    if math.abs(value1 - value2) \/ ((value1 + value2) \/ 2.0) &lt;= epsilon\n        true\n    else\n        false\n\ndoValuesTouch (float value1, float value2, float customEpsilon) =&gt;\n    if math.abs(value1 - value2) \/ ((value1 + value2) \/ 2.0) &lt;= customEpsilon\n        true\n    else\n        false\n\nfindLatestRS (timeframeInfo timeframeInfoF, string RSType, pivots, times, bannedValues) =&gt;\n    RSInfo latestRSF = na\n    pivotsCount = pivots.size()\n    if pivotsCount &gt; 0\n        for i = 0 to pivotsCount - 1\n            if i &gt;= maxTraverse\n                break\n            \n            index = pivotsCount - i - 1\n            occurances = 0\n            invalidValue = false\n            pivotValue1 = pivots.get(index)\n            if bannedValues.size() &gt; 0\n                for a = 0 to bannedValues.size() - 1\n                    if doValuesTouch(pivotValue1, bannedValues.get(a))\n                        invalidValue := true\n                        break\n            \n            if invalidValue\n                continue\n            \n            for j = 0 to pivotsCount - 1\n                if j &gt;= maxTraverse\n                    break\n                \n                index2 = pivotsCount - j - 1\n                pivotValue2 = pivots.get(index2)\n                if doValuesTouch(pivotValue1, pivotValue2)\n                    occurances += 1\n                \n                if occurances &gt;= strength\n                    latestRSF := newRSInfo(RSType)\n                    latestRSF.price := pivotValue1\n                    break\n                \n                if math.abs(index - index2) &gt; maxPivotsBackSR * strength\n                    break\n                \n            if not na(latestRSF)\n                break\n            \n    if not na(latestRSF)\n        cnt = 0\n        if pivotsCount &gt; 0\n            for i = 0 to pivotsCount - 1\n                if i &gt;= maxTraverse\n                    break\n                \n                index = pivotsCount - i - 1\n                pivotValue = pivots.get(index)\n                if doValuesTouch(pivotValue, latestRSF.price)\n                    labelTime = times.get(index)\n                    latestRSF.points.push(chart.point.from_time(labelTime, pivotValue))\n                    cnt += 1\n                if cnt == strength\n                    break\n\n    if not (debug_labelPivots == &quot;None&quot;)\n        if not (debug_labelPivots == &quot;All&quot;)\n            if not na(latestRSF)\n                cnt = 0\n                if pivotsCount &gt; 0\n                    for i = 0 to pivotsCount - 1\n                        index = pivotsCount - i - 1\n                        pivotValue = pivots.get(index)\n                        if doValuesTouch(pivotValue, latestRSF.price)\n                            labelTime = times.get(index)\n                            latestRSF.debugPoints.push(RSType == &quot;Resistance&quot; ? label.new(labelTime,pivotValue,text=debug_pivotLabelText ? str.tostring(pivotValue) : &quot;&quot;,xloc=xloc.bar_time, color=resistanceColor, textcolor=color.white) : label.new(labelTime,pivotValue,text=debug_pivotLabelText ? str.tostring(pivotValue) : &quot;&quot;,xloc=xloc.bar_time, color=supportColor,style = label.style_label_up, textcolor=color.white))\n                            cnt += 1\n                        if cnt == strength\n                            break\n        else\n            if not na(latestRSF)\n                if pivotsCount &gt; 0\n                    for i = 0 to pivotsCount - 1\n                        index = pivotsCount - i - 1\n                        pivotValue = pivots.get(index)\n                        labelTime = times.get(index)\n                        latestRSF.debugPoints.push(RSType == &quot;Resistance&quot; ? label.new(labelTime,pivotValue,text=debug_pivotLabelText ? str.tostring(pivotValue) : &quot;&quot;,xloc=xloc.bar_time, color=resistanceColor, textcolor=color.white) : label.new(labelTime,pivotValue,text=debug_pivotLabelText ? str.tostring(pivotValue) : &quot;&quot;,xloc=xloc.bar_time, color=supportColor,style = label.style_label_up, textcolor=color.white))\n                        if latestRSF.debugPoints.size() &gt; debug_maxPivotLabels\n                            break\n    latestRSF\n\nfindLatestNthRS (timeframeInfo timeframeInfoF, string RSType, pivots, times, n) =&gt;\n    float[] bannedValues = array.new&lt;float&gt;()\n    foundRS = 0\n    RSInfo foundLatestRS = na\n    while foundRS &lt; n\n        foundLatestRS := findLatestRS(timeframeInfoF, RSType, pivots, times, bannedValues)\n        if not na(foundLatestRS)\n            foundRS += 1\n            bannedValues.push(foundLatestRS.price)\n        else\n            break\n    foundLatestRS\n\nisTimeframeLower (timeframe1F, timeframe2F) =&gt;\n    timeframe.in_seconds(timeframe1F) &lt; timeframe.in_seconds(timeframe2F)\n\ngetMinTimeframe (timeframe1F, timeframe2F) =&gt;\n    if isTimeframeLower(timeframe1F, timeframe2F)\n        timeframe1F\n    else\n        timeframe2F\n\ngetMaxTimeframe (timeframe1F, timeframe2F) =&gt;\n    if isTimeframeLower(timeframe1F, timeframe2F)\n        timeframe2F\n    else\n        timeframe1F\n\ngetFirstBreak (RSInfo rsInfo) =&gt;\n    if na(rsInfo)\n        [na, na]\n    \n    curIndex = 0\n    float foundBreakLevel = na\n    int foundBreakTime = na\n    while true\n        if curIndex &gt;= maxTraverse\n            break\n        isBarBreak = rsInfo.RSType == &quot;Resistance&quot; ? (close[curIndex + 1] &lt;= rsInfo.price and close[curIndex] &gt; rsInfo.price) : (close[curIndex + 1] &gt;= rsInfo.price and close[curIndex] &lt; rsInfo.price)\n        if isBarBreak\n            isTrueBreakout = true\n            if avoidFalseBreaks\n                shortTerm = 5\n                longTerm = 15\n                \n                shortSum = 0.0\n                longSum = 0.0\n                \n                for i = 0 to shortTerm\n                    shortSum += volume[curIndex + i]\n                \n                for i = 0 to longTerm\n                    longSum += volume[curIndex + i]\n                \n                shortVolumeAvg = shortSum \/ shortTerm\n                longVolumeAvg = longSum \/ longTerm\n\n                volumeRatio = ((shortVolumeAvg - longVolumeAvg) \/ longVolumeAvg) * 100.0\n                isTrueBreakout := (volumeRatio &gt;= falseBreakoutVolumeThreshold)\n\n            if isTrueBreakout\n                foundBreakLevel := rsInfo.RSType == &quot;Resistance&quot; ? low[curIndex] : high[curIndex]\n                foundBreakTime := time[curIndex]\n            \n        curIndex += 1\n        if time[curIndex] &lt;= rsInfo.points.get(strength - 1).time\n            break\n    [foundBreakLevel, foundBreakTime]\n\ngetRetests (RSInfo rsInfo) =&gt;\n    if na(rsInfo)\n        [na,na]\n    \n    curIndex = 0\n    lastRetestIndex = -999\n    int[] retestTimes = array.new&lt;int&gt;()\n    float[] retestLevels = array.new&lt;float&gt;()\n\n    while true\n        if curIndex &gt;= maxTraverse\n            break\n        if retestLevels.size() == maxRetestLabels\n            break\n        if rsInfo.isBroken and time[curIndex] &gt;= rsInfo.brokenTime\n            curIndex += 1\n            continue\n\n        differencePercent = 100.0 * math.abs(rsInfo.price - close[curIndex]) \/ ((rsInfo.price + close[curIndex]) \/ 2)\n        isRetest = (rsInfo.RSType == &quot;Resistance&quot; ? (doValuesTouch(rsInfo.price, close[curIndex], retestEpsilon) or doValuesTouch(rsInfo.price, high[curIndex], retestEpsilon) or high[curIndex] &gt; rsInfo.price) : (doValuesTouch(rsInfo.price, close[curIndex], retestEpsilon) or doValuesTouch(rsInfo.price, low[curIndex], retestEpsilon) or low[curIndex] &lt; rsInfo.price)) and differencePercent &lt; retestPriceDifferencePercentMax\n        if isRetest and curIndex - lastRetestIndex &gt;= retestLabelEveryXBars\n            retestLevels.push(rsInfo.RSType == &quot;Resistance&quot; ? high[curIndex] : low[curIndex])\n            retestTimes.push(time[curIndex])\n            lastRetestIndex := curIndex\n        curIndex += 1\n        if time[curIndex] &lt;= rsInfo.points.get(strength - 1).time\n            break\n    [retestLevels, retestTimes]\n\nformatTimeframeString (formatTimeframe) =&gt;\n    timeframeF = formatTimeframe == &quot;&quot; ? timeframe.period : formatTimeframe\n    \n    if str.contains(timeframeF, &quot;D&quot;) or str.contains(timeframeF, &quot;W&quot;) or str.contains(timeframeF, &quot;S&quot;) or str.contains(timeframeF, &quot;M&quot;)\n        timeframeF\n    else\n        seconds = timeframe.in_seconds(timeframeF)\n        if seconds &gt;= 3600\n            hourCount = int(seconds \/ 3600)\n            str.tostring(hourCount) + &quot; Hour&quot; + (hourCount &gt; 1 ? &quot;s&quot; : &quot;&quot;)\n        else\n            timeframeF + &quot; Min&quot;\n\ngetPivot (pivotType) =&gt;\n    pivot = (pivotType == &quot;high&quot; ? ta.pivothigh(high, pivotRange, pivotRange) : ta.pivotlow(low, pivotRange, pivotRange))\n    pivot\n\nhandleRSInfo (timeframeInfo timeframeInfoF, RSInfo RSInfoF, int index, string RSType) =&gt;\n    if not na(RSInfoF)\n        if not na(timeframeInfoF)\n            curRSList.push(RSInfoF)\n        \n        [foundBreakLevel, foundBreakTime] = getFirstBreak(RSInfoF)\n        \n        RSInfoF.isBroken := na(foundBreakLevel) ? false : true\n        RSInfoF.brokenTime := na(foundBreakLevel) ? na : foundBreakTime\n\n        if not na(foundBreakLevel)\n            if showBreaks\n                if na(RSInfoF.breakLabel)\n                    RSInfoF.breakLabel := createBreakLabel(RSInfoF.RSType)\n                label.set_xy(RSInfoF.breakLabel, foundBreakTime, foundBreakLevel * (RSInfoF.RSType == &quot;Resistance&quot; ? (1.0 \/ labelOffsetsY) : labelOffsetsY))\n            \n            if expandLines\n                if na(RSInfoF.breakLine) and enableZones == false\n                    RSInfoF.breakLine := createRSLine(color.black)\n                \n                if na(RSInfoF.breakBox) and enableZones == true\n                    RSInfoF.breakBox := createRSBox(color.black, xloc.bar_time)\n\n                if not enableZones\n                    line.set_extend(RSInfoF.breakLine, extend.right)\n                else\n                    box.set_extend(RSInfoF.breakBox, extend.right)\n                \n                if inverseBrokenLineColor and showBreaks\n                    if not enableZones\n                        line.set_color(RSInfoF.breakLine, RSInfoF.RSType == &quot;Resistance&quot; ? supportColor : resistanceColor)\n                    else    \n                        box.set_bgcolor(RSInfoF.breakBox, RSInfoF.RSType == &quot;Resistance&quot; ? supportColor : resistanceColor)\n                else\n                    if not enableZones\n                        line.set_color(RSInfoF.breakLine, RSInfoF.RSType == &quot;Resistance&quot; ? resistanceColor : supportColor)\n                    else\n                        box.set_bgcolor(RSInfoF.breakBox, RSInfoF.RSType == &quot;Resistance&quot; ? resistanceColor : supportColor)\n\n        if showRetests\n            [retestLevels, retestTimes] = getRetests(RSInfoF)\n\n            if not na(retestLevels) and retestLevels.size() &gt; 0\n                for i = 0 to retestLevels.size() - 1\n                    newRetestLabel = createRetestLabel(RSInfoF.RSType)\n                    label.set_xy(newRetestLabel, retestTimes.get(i), retestLevels.get(i) * (RSInfoF.RSType == &quot;Support&quot; ? (1.0 \/ labelOffsetsY) : labelOffsetsY))\n                    RSInfoF.retestLabels.push(newRetestLabel)\n\n        \/\/timeSkipOffset = maxTimeskipMS \/ 4\n        timeSkipOffset = 0\n        if enableZones\n            zoneEndX = time + timeSkipOffset + timeframe.in_seconds(timeframe.period) * 1000 * labelOffsetsXIndex \n            startTime = math.min(time, RSInfoF.points.get(strength - 1).time)\n            moveRSInfoBox(RSInfoF.box, startTime, RSInfoF.price, na(foundBreakTime) ? zoneEndX : foundBreakTime)\n            moveRSInfoBox(RSInfoF.breakBox, foundBreakTime, RSInfoF.price, zoneEndX)\n        else\n            endTime = time + timeSkipOffset + timeframe.in_seconds(timeframe.period) * 1000\n            startTime = math.min(time, RSInfoF.points.get(strength - 1).time)\n            moveLine(RSInfoF.line, startTime, RSInfoF.price, na(foundBreakTime) ? endTime : foundBreakTime)\n            moveLine(RSInfoF.breakLine, foundBreakTime, RSInfoF.price, endTime)\n            \/\/log.info(str.tostring(RSInfoF.price) + &quot; | &quot; + str.tostring(RSInfoF.points.get(strength - 1).time) + &quot; = &quot;  + str.tostring(line.get_x1(RSInfoF.line)) + &quot; | &quot; + str.tostring(endTime) + &quot; = &quot; + str.tostring(line.get_x2(RSInfoF.line)))\n        \n        if expandLines\n            if not enableZones\n                line.set_extend(RSInfoF.line, (na(foundBreakTime)) ? extend.both : extend.left)\n            else    \n                box.set_extend(RSInfoF.box, (na(foundBreakTime)) ? extend.both : extend.left)\n        else\n            if not enableZones\n                line.set_extend(RSInfoF.line, na(foundBreakTime) ? extend.right : extend.none)\n            else\n                box.set_extend(RSInfoF.box, na(foundBreakTime) ? extend.right : extend.none)\n\n        \/\/labelTitleOld = formatTimeframeString(timeframeInfoF.timeframeStr) + &quot; &quot; + RSInfoF.RSType + &quot; &quot; + str.tostring(index + 1) + &quot; (&quot; + str.tostring(RSInfoF.price,format.mintick) + &quot;)&quot; + (RSInfoF.isBroken ? &quot; [Broken]&quot; : &quot;&quot;)\n        labelTitle = formatTimeframeString(timeframeInfoF.timeframeStr) + &quot; | &quot; + str.tostring(RSInfoF.price,format.mintick) + ((debug_showBrokenOnLabel and RSInfoF.isBroken)  ? &quot; [B]&quot; : &quot;&quot;)\n        \n        if not enableZones\n            label.set_text(RSInfoF.priceLabel, enableZones ? &quot;&quot; : labelTitle)\n            label.set_y(RSInfoF.priceLabel, RSInfoF.price)\n        else\n            box.set_text(RSInfoF.box, (RSInfoF.isBroken and expandLines) ? &quot;&quot; : labelTitle)\n            box.set_text(RSInfoF.breakBox, labelTitle)\n        \n        if expandLines or not RSInfoF.isBroken\n            if not enableZones\n                label.set_xloc(RSInfoF.priceLabel, bar_index + labelOffsetsXIndex, xloc.bar_index)\n            else\n                box.set_text_halign(RSInfoF.breakBox, text.align_right)\n                box.set_text_halign(RSInfoF.box, text.align_right)\n        else\n            if not enableZones\n                label.set_xloc(RSInfoF.priceLabel, (RSInfoF.points.get(strength - 1).time + RSInfoF.brokenTime) \/ 2, xloc.bar_time)\n            else\n                box.set_text_halign(RSInfoF.box, text.align_center)\n                box.set_text_halign(RSInfoF.breakBox, text.align_center)\n    else\n        log.error(&quot;Couldn&#039;t find timeframe &quot; + str.tostring(timeframeInfoF.index) + &quot; &quot; + str.tostring(index + 1) + &quot;th &quot; + RSType + &quot; . Try decreasing pivot range in the settings.&quot;)\n\nhandleTimeframe (timeframeIndex, lowPivots, highPivots, lowTimes, highTimes) =&gt;\n    timeframeInfoF = timeframeInfos.get(timeframeIndex - 1)\n    \n    timeframeInfoF.lowPivots.clear()\n    timeframeInfoF.highPivots.clear()\n    timeframeInfoF.lowTimes.clear()\n    timeframeInfoF.highTimes.clear()\n\n    timeframeInfoF.lowPivots := lowPivots\n    timeframeInfoF.highPivots := highPivots\n    timeframeInfoF.lowTimes := lowTimes\n    timeframeInfoF.highTimes := highTimes\n\ngetHigherTFData (timeframeStr) =&gt;\n    request.security(syminfo.tickerid, getMaxTimeframe(timeframe.period, timeframeStr), [allLowPivots, allHighPivots, allLowTimes, allHighTimes])\n\npushHighPivots (timeframeInfoF, highPivotF, timeF) =&gt;\n    if not na(highPivotF)\n        timeframeInfoF.highPivots.push(highPivotF)\n        timeframeInfoF.highTimes.push(timeF)\n\npushLowPivots (timeframeInfoF, lowPivotF, timeF) =&gt;\n    if not na(lowPivotF)\n        timeframeInfoF.lowPivots.push(lowPivotF)\n        timeframeInfoF.lowTimes.push(timeF)\n\nhandleTimeframeIfLower (timeframeInfo timeframeInfoF, highs, lows, int[] timesF) =&gt;\n    if timeframeInfoF.isEnabled and isTimeframeLower(timeframeInfoF.timeframeStr, timeframe.period)\n        if highs.size() &gt; 0\n            for i = 0 to highs.size() - 1\n                timeF = timesF.get(i)\n                pushHighPivots(timeframeInfoF, highs.get(i), timeF)\n        if lows.size() &gt; 0\n            for i = 0 to lows.size() - 1\n                timeF = timesF.get(i)\n                pushLowPivots(timeframeInfoF, lows.get(i), timeF)\n\ngetLowerTFData (timeframeStr) =&gt;\n    lowPivots = isTimeframeLower(timeframeStr, timeframe.period) ? request.security_lower_tf(syminfo.tickerid, getMinTimeframe(timeframeStr, timeframe.period), ta.pivotlow(low, pivotRange, pivotRange)) : na\n    highPivots = isTimeframeLower(timeframeStr, timeframe.period) ? request.security_lower_tf(syminfo.tickerid, getMinTimeframe(timeframeStr, timeframe.period), ta.pivothigh(high, pivotRange, pivotRange)) : na\n    times = isTimeframeLower(timeframeStr, timeframe.period) ? request.security_lower_tf(syminfo.tickerid, getMinTimeframe(timeframeStr, timeframe.period), time[pivotRange]) : na\n    [lowPivots,highPivots,times,times]\n\ngetTFData (timeframeStr) =&gt;\n    if isTimeframeLower(timeframeStr, timeframe.period)\n        getLowerTFData(timeframeStr)\n    else\n        getHigherTFData(timeframeStr)\n\ncheckIfRSAreSame (RSInfo rsInfo1, RSInfo rsInfo2) =&gt;\n    if na(rsInfo1) or na(rsInfo2)\n        false\n    else if rsInfo1.RSType != rsInfo2.RSType\n        false\n    else if rsInfo1.price != rsInfo2.price\n        false\n    else\n        true\n\ncheckIfArrHasRS (RSInfo[] arr, RSInfo rsInfoF) =&gt;\n    if na(arr) or na(rsInfoF)\n        true\n    else if arr.size() == 0\n        false\n    else\n        foundRS = false\n        for i = 0 to arr.size() - 1\n            arrRS = arr.get(i)\n            if checkIfRSAreSame(arrRS, rsInfoF)\n                foundRS := true\n                break\n        if foundRS\n            true\n        else\n            false\n\nclearTimeframeRS (timeframeInfoF) =&gt;\n    oldRetestsCount = 0\n    oldBreaksCount = 0\n\n    if timeframeInfoF.resistances.size() &gt; 0\n        for j = 0 to timeframeInfoF.resistances.size() - 1\n            RSInfo RSInfoF = timeframeInfoF.resistances.get(j)\n            if not na(RSInfoF)\n                if debug_enabledHistory\n                    if checkIfArrHasRS(oldRSList, RSInfoF) == false\n                        oldRSList.push(RSInfoF)\n\n                oldRetestsCount += RSInfoF.retestLabels.size()\n                oldBreaksCount += RSInfoF.isBroken ? 1 : 0\n    \n    if timeframeInfoF.supports.size() &gt; 0\n        for j = 0 to timeframeInfoF.supports.size() - 1\n            RSInfo RSInfoF = timeframeInfoF.supports.get(j)\n            if not na(RSInfoF)\n                if debug_enabledHistory\n                    if checkIfArrHasRS(history, RSInfoF) == false\n                        oldRSList.push(RSInfoF)\n                \n                oldRetestsCount += RSInfoF.retestLabels.size()\n                oldBreaksCount += RSInfoF.isBroken ? 1 : 0\n    \n    timeframeInfoF.resistances.clear()\n    timeframeInfoF.supports.clear()\n    [oldRetestsCount, oldBreaksCount]\n\nfindTimeframeRS (timeframeInfoF, RSType, arr, count, pivots, times) =&gt;\n    curRetestsCount = 0\n    curBreaksCount = 0\n\n    if count &gt; 0\n        for j = 0 to count - 1\n            foundRS = findLatestNthRS(timeframeInfoF, RSType, pivots, times, j + 1)\n            if not na(foundRS)\n                notDuplicate = true\n                for a = 0 to timeframeInfos.size() - 1\n                    aInfo = timeframeInfos.get(a)\n                    if na(aInfo) or aInfo.isEnabled == false\n                        continue\n                    otherTimeframeArray = (RSType == &quot;Resistance&quot; ? aInfo.resistances : aInfo.supports)\n                    if otherTimeframeArray.size() &gt; 0\n                        for b = 0 to otherTimeframeArray.size() - 1\n                            if checkIfRSAreSame(foundRS, otherTimeframeArray.get(b))\n                                notDuplicate := false\n                                break\n                    if notDuplicate == false\n                        break\n                \n                if notDuplicate or not debug_removeDuplicateRS\n                    arr.push(foundRS)\n        \n        if arr.size() &gt; 0\n            for j = 0 to arr.size() - 1\n                curRS = arr.get(j)\n                if not na(curRS)\n                    handleRSInfo(timeframeInfoF, curRS, j, RSType)\n                    curRetestsCount += curRS.retestLabels.size()\n                    curBreaksCount += curRS.isBroken ? 1 : 0\n    [curRetestsCount, curBreaksCount]\n    \nlowPivot = getPivot(&quot;low&quot;)\nhighPivot = getPivot(&quot;high&quot;)\n\nif not na(lowPivot)\n    allLowPivots.push(lowPivot)\n    allLowTimes.push(time[pivotRange])\n    if allLowPivots.size() &gt; maxPivotsAllowed\n        allLowPivots.remove(0)\n        allLowTimes.remove(0)\n        \n\nif not na(highPivot)\n    allHighPivots.push(highPivot)\n    allHighTimes.push(time[pivotRange])\n    if allHighPivots.size() &gt; maxPivotsAllowed\n        allHighPivots.remove(0)\n        allHighTimes.remove(0)\n\nif calculateTimeSkipMS\n    if last_bar_index - bar_index &lt; 350 and time - time[1] &gt; timeframe.in_seconds(timeframe.period) * 1000\n        maxTimeskipMS := math.max(maxTimeskipMS, time - time[1])\n\n[lowPivotsTF1, highPivotsTF1, lowTimesTF1, highTimesTF1] = getTFData(timeframe1)\nhandleTimeframeIfLower(timeframeInfos.get(0), highPivotsTF1, lowPivotsTF1, highTimesTF1)\n\n[lowPivotsTF2, highPivotsTF2, lowTimesTF2, highTimesTF2] = getTFData(timeframe2)\nhandleTimeframeIfLower(timeframeInfos.get(1), highPivotsTF2, lowPivotsTF2, highTimesTF2)\n\n[lowPivotsTF3, highPivotsTF3, lowTimesTF3, highTimesTF3] = getTFData(timeframe3)\nhandleTimeframeIfLower(timeframeInfos.get(2), highPivotsTF3, lowPivotsTF3, highTimesTF3)\n\n\/\/plot(nz(na,timeframeInfos.get(0).highPivots.size() &gt; 0 ? timeframeInfos.get(0).highPivots.get(timeframeInfos.get(0).highPivots.size() - 1) : 0), color = color.blue, title = &quot;High Pivots&quot;)\n\/\/plot(nz(na,timeframeInfos.get(0).lowPivots.size() &gt; 0 ? timeframeInfos.get(0).lowPivots.get(timeframeInfos.get(0).lowPivots.size() - 1) : 0), color = color.fuchsia, title = &quot;Low Pivots&quot;)\n\nif barstate.islast\n    \n    if timeframe1Enabled and not isTimeframeLower(timeframe1, timeframe.period)\n        handleTimeframe(1, lowPivotsTF1, highPivotsTF1, lowTimesTF1, highTimesTF1)\n\n    if timeframe2Enabled and not isTimeframeLower(timeframe2, timeframe.period)\n        handleTimeframe(2, lowPivotsTF2, highPivotsTF2, lowTimesTF2, highTimesTF2)\n    \n    if timeframe3Enabled and not isTimeframeLower(timeframe3, timeframe.period)\n        handleTimeframe(3, lowPivotsTF3, highPivotsTF3, lowTimesTF3, highTimesTF3)\n\n    int enabledTimeframeCount = 0\n    for i = 0 to timeframeCount - 1\n        timeframeInfo curInfo = timeframeInfos.get(i)\n        if curInfo.isEnabled\n            enabledTimeframeCount += 1\n    \n    int oldRetestsCount = 0\n    int curRetestsCount = 0\n\n    int oldBreaksCount = 0\n    int curBreaksCount = 0\n\n    for i = 0 to timeframeCount - 1\n        timeframeInfo curInfo = timeframeInfos.get(i)\n        if not curInfo.isEnabled\n            continue\n\n        [oldRetests, oldBreaks] = clearTimeframeRS(curInfo)\n        oldRetestsCount += oldRetests\n        oldBreaksCount += oldBreaks\n\n        resistanceCount = math.min(DEBUG ? debug_lastXResistances : resistanceSupportCount, maxResistances - (enabledTimeframeCount &gt; 1 ? 1 : 0))\n        resistanceCount := math.max(resistanceCount, 0)\n\n        supportCount = math.min(DEBUG ? debug_lastXSupports : resistanceSupportCount, maxSupports - (enabledTimeframeCount &gt; 1 ? 1 : 0))\n        supportCount := math.max(supportCount, 0)\n\n        [curRetests1, curBreaks1] = findTimeframeRS(curInfo, &quot;Resistance&quot;, curInfo.resistances, resistanceCount, curInfo.highPivots, curInfo.highTimes)\n        [curRetests2, curBreaks2] = findTimeframeRS(curInfo, &quot;Support&quot;, curInfo.supports, supportCount, curInfo.lowPivots, curInfo.lowTimes)\n        curRetestsCount += curRetests1 + curRetests2\n        curBreaksCount += curBreaks1 + curBreaks2\n    \n    if debug_enabledHistory\n        historyIndexesToDelete = array.new&lt;int&gt;(0)\n        if history.size() &gt; 0\n            for i = 0 to history.size() - 1\n                if checkIfArrHasRS(curRSList, history.get(i))\n                    historyIndexesToDelete.push(i)\n            \n            if historyIndexesToDelete.size() &gt; 0\n                for i = 0 to historyIndexesToDelete.size() - 1\n                    deleteIndex = historyIndexesToDelete.get(historyIndexesToDelete.size() - i - 1)\n                    safeDeleteRSInfo(history.get(deleteIndex))\n                    history.remove(deleteIndex)\n        \n        if oldRSList.size() &gt; 0\n            for i = 0 to oldRSList.size() - 1\n                curRS = oldRSList.get(i)\n                if checkIfArrHasRS(curRSList, curRS) == false\n                    history.push(histRSInfo(curRS))\n                    if history.size() &gt; debug_maxHistoryRecords\n                        safeDeleteRSInfo(history.get(0))\n                        history.remove(0)\n\n    \n    if oldRSList.size() &gt; 0\n        for i = 0 to oldRSList.size() - 1\n            safeDeleteRSInfo(oldRSList.get(i))\n    \n    curRSList.clear()\n    oldRSList.clear()\n\n    if DEBUG\n        log.info(&quot;History Size : &quot; + str.tostring(history.size()))\n        log.info(&quot;Label Count : &quot; + str.tostring(label.all.size()))\n        log.info(&quot;Line Count : &quot; + str.tostring(line.all.size()))\n        log.info(&quot;Box Count : &quot; + str.tostring(box.all.size()))\n\n    if enableRetestAlerts and curRetestsCount &gt; oldRetestsCount and initRun == false\n        alert(&quot;New Retests Occured.&quot;)\n    \n    if enableBreakAlerts and curBreaksCount &gt; oldBreaksCount and initRun == false\n        alert(&quot;New Breaks Occured.&quot;)\n    \n    initRun := false<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_5a302feb = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/members.1uptick.com\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_5a302feb();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_5a302feb );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"tab-pane elementkit-tab-pane elementor-repeater-item-7ff668a\" id=\"content-7ff668a69d29b6064094\" role=\"tabpanel\" aria-labelledby=\"content-7ff668a69d29b6064094-tab\">\n\t\t\t\t\t\t<div class=\"animated fadeIn\">\n\t\t\t\t\t\t\t\n\t\t<div class=\"widgetarea_warper widgetarea_warper_editable\" data-elementskit-widgetarea-key=\"da0252b\"  data-elementskit-widgetarea-index=\"7ff668a\">\n\t\t\t<div class=\"widgetarea_warper_edit\" data-elementskit-widgetarea-key=\"da0252b\" data-elementskit-widgetarea-index=\"7ff668a\">\n\t\t\t\t<i class=\"eicon-edit\" aria-hidden=\"true\"><\/i>\n\t\t\t\t<span>Edit Content<\/span>\n\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t<div class=\"ekit-widget-area-container\">\n\t\t\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"10041\" class=\"elementor elementor-10041\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-10ee054 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"10ee054\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-14e38d63\" data-id=\"14e38d63\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-43ac88ca elementor-widget elementor-widget-elementskit-heading\" data-id=\"43ac88ca\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h4 class=\"ekit-heading--title elementskit-section-title\">\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19 CFTC COT \u0e23\u0e32\u0e22\u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c<\/h4><h6 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\tCOT CFTC Analysis Tool\n\t\t\t\t\t<\/h6><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-72ee841 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"72ee841\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-5165d0b4\" data-id=\"5165d0b4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6f2061a8 elementor-widget elementor-widget-image\" data-id=\"6f2061a8\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"648\" src=\"https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/pine-cftc-1024x648.png\" class=\"attachment-large size-large wp-image-10057\" alt=\"\" srcset=\"https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/pine-cftc-1024x648.png 1024w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/pine-cftc-300x190.png 300w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/pine-cftc-768x486.png 768w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/pine-cftc-18x12.png 18w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/pine-cftc.png 1435w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-795170c7 elementor-widget elementor-widget-elementskit-heading\" data-id=\"795170c7\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e23\u0e2b\u0e31\u0e2a\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<div class=\"ChatMessage_chatMessage__xkgHx\">\n<div class=\"ChatMessage_messageRow__DHlnq\">\n<div class=\"ChatMessage_messageWrapper__4Ugd6\">\n<div class=\"Message_rowWithFooter__FShU6\">\n<div class=\"Message_row__ug_UU\">\n<div class=\"Message_botMessageBubble__aYctV\">\n<div class=\"Markdown_markdownContainer__Tz3HQ\">\n<p>Pine Script<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"Message_botOptimisticFooter__FL0c_\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4216e5 elementor-widget elementor-widget-elementskit-heading\" data-id=\"b4216e5\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e01\u0e32\u0e23\u0e41\u0e19\u0e30\u0e19\u0e33: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<div class=\"ChatMessage_chatMessage__xkgHx\">\n<div class=\"ChatMessage_messageRow__DHlnq\">\n<div class=\"ChatMessage_messageWrapper__4Ugd6\">\n<div class=\"Message_rowWithFooter__FShU6\">\n<div class=\"Message_row__ug_UU\">\n<div class=\"Message_botMessageBubble__aYctV\">\n<div class=\"Markdown_markdownContainer__Tz3HQ\">\n<p><span>\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e19\u0e35\u0e49\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25 Commitments of Traders (COT) \u0e08\u0e32\u0e01 U.S. Commodity Futures Commission (CFTC) \u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e40\u0e17\u0e23\u0e14\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e30\u0e19\u0e31\u0e01\u0e25\u0e07\u0e17\u0e38\u0e19\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e40\u0e02\u0e49\u0e32\u0e43\u0e08\u0e15\u0e25\u0e32\u0e14\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e25\u0e36\u0e01\u0e0b\u0e36\u0e49\u0e07\u0e22\u0e34\u0e48\u0e07\u0e02\u0e36\u0e49\u0e19 \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e1b\u0e23\u0e30\u0e42\u0e22\u0e0a\u0e19\u0e4c\u0e08\u0e32\u0e01\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e19\u0e31\u0e01\u0e40\u0e01\u0e47\u0e07\u0e01\u0e33\u0e44\u0e23\u0e23\u0e32\u0e22\u0e43\u0e2b\u0e0d\u0e48 \u0e2a\u0e16\u0e32\u0e1a\u0e31\u0e19\u0e01\u0e32\u0e23\u0e04\u0e49\u0e32 \u0e41\u0e25\u0e30\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e44\u0e14\u0e49\u0e20\u0e32\u0e1e\u0e23\u0e27\u0e21\u0e02\u0e2d\u0e07\u0e15\u0e25\u0e32\u0e14\u0e17\u0e35\u0e48\u0e04\u0e23\u0e2d\u0e1a\u0e04\u0e25\u0e38\u0e21<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"Message_botOptimisticFooter__FL0c_\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-63aa23d elementor-widget elementor-widget-elementskit-heading\" data-id=\"63aa23d\" data-element_type=\"widget\" data-no-translation=\"\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>.elementor-element-63aa23d{display:none !important}<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-952b1ed elementor-widget elementor-widget-heading\" data-id=\"952b1ed\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">\u0e1c\u0e25\u0e34\u0e15\u0e20\u0e31\u0e13\u0e11\u0e4c\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07: <\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4840d58 elementor-widget elementor-widget-text-editor\" data-id=\"4840d58\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<script id=\"infogram_0_5e43a986-7723-4491-8209-c8fd13f4d450\" title=\"CFTC COT\" src=\"https:\/\/e.infogram.com\/js\/dist\/embed.js?Jrv\" type=\"text\/javascript\"><\/script>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-18b7d465\" data-id=\"18b7d465\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5e542870 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"5e542870\" data-element_type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-5e542870\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-atom-dark\"\n            data-dark-theme=\"mdp-theme-atom-dark\"\n        >\n            \n                <pre class=\"line-numbers show-invisibles inline-color copy-to-clipboard language-diff-markup diff-highlight\"data-previewers=\"\"><code>\/\/ This source code is subject to the terms of the Mozilla Public License 2.0 at https:\/\/mozilla.org\/MPL\/2.0\/\n\/\/ @1uptick\n\n\/\/@version=5\nindicator(&#039;COT CFTC All&#039;, shorttitle=&#039;COT CFTCs&pi;&#039;, precision=0, overlay = false)  \nimport PineCoders\/Time\/3\n\ncol_up =color.rgb(166, 220, 168)\ncol_down = color.rgb(195, 114, 114)\ncol_neutral = color.gray\ncolorup_strong = input(#a6dca8ce) \ncolorup_week = input(#a6dca884)\ncolordown_strong = input(#b66a6a) \ncolordown_week = input(#95555582)\n\nhline(50)\nhline(75, title = &quot;Buying High Line&quot;, color = color.rgb(166, 220, 168), linewidth = 2, linestyle = hline.style_dashed, display = display.none)\nhline(25, title = &quot;Selling Low Line&quot;, color = color.rgb(195, 114, 114), linewidth = 2, linestyle = hline.style_dashed, display = display.none)\nh65 = hline(70, color = color.rgb(255, 255, 255, 100), display = display.none)\nh100 = hline(100, color = color.rgb(255, 255, 255, 100), display = display.none)\nfill(h65, h100, color=color.rgb(108, 255, 82, 95))\nh35 = hline(30, color = color.rgb(255, 255, 255, 100), display = display.none)\nh0 = hline(0, color = color.rgb(255, 255, 255, 100), display = display.none)\nfill(h35, h0, color=color.rgb(255, 82, 82, 95))\n\nIndex_Length = input(26)\nIndex_Length1 = input(6)\ncustom_index(src, Index_Length) =&gt;\n    max = ta.highest(src, Index_Length)\n    min = ta.lowest(src, Index_Length)\n    willco_index = 100 * (src - min) \/ (max - min)\n    willco_index \n\n \ndo_oi_rescale = input.bool(true, title=&quot;Rescale Open Interest&quot;)\n\n\nqticker = syminfo.root == &quot;ZB&quot; ? &quot;020601&quot; : syminfo.root == &#039;DX&#039; ? &#039;098662&#039; : syminfo.root == &quot;ZN&quot; ? &quot;043602&quot; : syminfo.root == &quot;ZS&quot; ? &quot;005602&quot; : syminfo.root == &quot;ZM&quot; ? &quot;026603&quot; : syminfo.root == &quot;ZL&quot; ? &quot;007601&quot; : syminfo.root == &quot;ZC&quot; ? &quot;002602&quot; : syminfo.root == &quot;ZW&quot; ? &quot;001602&quot; : syminfo.root == &quot;KE&quot; ? &quot;001612&quot; : syminfo.root == &quot;HE&quot; ? &quot;054642&quot; : syminfo.root == &quot;LE&quot; ? &quot;057642&quot; : syminfo.root == &quot;GC&quot; ? &quot;088691&quot; : syminfo.root == &quot;SI&quot; ? &quot;084691&quot; : syminfo.root == &quot;HG&quot; ? &quot;085692&quot; : syminfo.root == &quot;CL&quot; ? &quot;067651&quot; : syminfo.root == &quot;HO&quot; ? &quot;022651&quot; : syminfo.root == &quot;RB&quot; ? &quot;111659&quot; : syminfo.root == &quot;NG&quot; ? &quot;023651&quot; : syminfo.root == &quot;6A&quot; ? &quot;232741&quot; : syminfo.root == &quot;6B&quot; ? &quot;096742&quot; : syminfo.root == &quot;6C&quot; ? &quot;090741&quot; : syminfo.root == &quot;6E&quot; ? &quot;099741&quot; : syminfo.root == &quot;6J&quot; ? &quot;097741&quot; : syminfo.root == &quot;6S&quot; ? &quot;092741&quot; : syminfo.root == &quot;SB&quot; ? &quot;080732&quot; : syminfo.root == &quot;KC&quot; ? &quot;083731&quot; : syminfo.root == &quot;CC&quot; ? &quot;073732&quot; : syminfo.root == &quot;CT&quot; ? &quot;033661&quot; : syminfo.root == &quot;ES&quot; ? &quot;13874A&quot; : syminfo.root == &quot;RTY&quot; ? &quot;239742&quot; : syminfo.root == &quot;YM&quot; ? &quot;12460P&quot; : syminfo.root == &quot;NQ&quot; ? &quot;209742&quot; : syminfo.root == &quot;PA&quot; ? &quot;075651&quot; : syminfo.root == &quot;PL&quot; ? &quot;076651&quot; : syminfo.root == &quot;AUP&quot; ? &quot;191693&quot; : syminfo.root == &quot;AUP&quot; ? &quot;191693&quot; : syminfo.root == &quot;HRC&quot; ? &quot;192651&quot; : syminfo.root == &quot;EH&quot; ? &quot;025651&quot; : syminfo.root == &quot;BB&quot; ? &quot;06765T&quot; : syminfo.root == &quot;ZR&quot; ? &quot;039601&quot; : syminfo.root == &quot;ZO&quot; ? &quot;004603&quot; : syminfo.root == &quot;DC&quot; ? &quot;052641&quot; : syminfo.root == &quot;OJ&quot; ? &quot;040701&quot; : syminfo.root == &quot;LBS&quot; ? &quot;058643&quot; : syminfo.root == &quot;GF&quot; ? &quot;061641&quot; : syminfo.root == &quot;SP&quot; ? &quot;138741&quot; : syminfo.root == &quot;DJIA&quot; ? &quot;12460P&quot; : syminfo.root == &quot;6N&quot; ? &quot;112741&quot; : syminfo.root == &quot;6L&quot; ? &quot;102741&quot; : syminfo.root == &quot;VX&quot; ? &quot;1170E1&quot; : syminfo.root == &quot;6M&quot; ? &quot;095741&quot; : syminfo.root == &quot;6R&quot; ? &quot;089741&quot; : syminfo.root == &quot;6Z&quot; ? &quot;122741&quot; : syminfo.root == &quot;ZT&quot; ? &quot;042601&quot; : syminfo.root == &quot;ZF&quot; ? &quot;044601&quot; : syminfo.root == &#039;BTC&#039; ? &#039;133741&#039; : syminfo.root == &#039;ETH&#039; ? &#039;146022&#039; : &quot;&quot;\n\n\nlegacy_cot = &#039;QUANDL:CFTC\/&#039; + qticker + (&#039;_F_L_ALL_OI|&#039;) \/\/percent of Open Interest Futures Only\nlegacy_cot1 = &#039;QUANDL:CFTC\/&#039; + qticker + (&#039;_F_L_ALL|&#039;) \/\/Futures Only legacy report\nlegacy_cot2 = &#039;QUANDL:CFTC\/&#039; + qticker + (&#039;_FO_L_ALL|&#039;) \/\/ Futures with Options \n\n\n\n\nnon_commercials_long = request.security(legacy_cot + &#039;1&#039;, &#039;W&#039;, close)\nnon_commercials_short = request.security(legacy_cot + &#039;2&#039;, &#039;W&#039;, close)\nnon_commercials_spread = request.security(legacy_cot + &#039;3&#039;, &#039;W&#039;, close)\nnon_commercials_net = non_commercials_long - non_commercials_short\nnon_commercials_spread_index = custom_index(non_commercials_spread, Index_Length) \n\ncommercials_long = request.security(legacy_cot + &#039;4&#039;, &#039;W&#039;, close)\ncommercials_short = request.security(legacy_cot + &#039;5&#039;, &#039;W&#039;, close)\ncommercials_net = commercials_long - commercials_short\n\nmore_oi_index = non_commercials_net &lt; commercials_net ? commercials_net : non_commercials_net\nmore_oi_index_col = non_commercials_net &lt; commercials_net ? color.rgb(255, 82, 82, 85) : non_commercials_net &gt; commercials_net ? color.rgb(33, 149, 243, 85) : na\n\n\nnon_reportable_long = request.security(legacy_cot + &#039;8&#039;, &#039;W&#039;, close)\nnon_reportable_short = request.security(legacy_cot + &#039;9&#039;, &#039;W&#039;, close)\nnon_reportable_net = non_reportable_long - non_reportable_short\n\n\n\/\/----------\n\nlspecs_long = request.security(legacy_cot1 + &#039;1&#039;, &#039;W&#039;, close)\nlspecs_short = request.security(legacy_cot1 + &#039;2&#039;, &#039;W&#039;, close)\nlspecs_net = lspecs_long - lspecs_short\n\ncomm_long = request.security(legacy_cot1 + &#039;4&#039;, &#039;W&#039;, close)\ncomm_short = request.security(legacy_cot1 + &#039;5&#039;, &#039;W&#039;, close)\ncomm_net = comm_long - comm_short\n\nmore_oi_commercials = non_commercials_net &lt; commercials_net ? comm_net : na\nmore_oi_largespecs = non_commercials_net &gt; commercials_net ? lspecs_net : na\n\nsspecs_long = request.security(legacy_cot1 + &#039;8&#039;, &#039;W&#039;, close)\nsspecs_short = request.security(legacy_cot1 + &#039;9&#039;, &#039;W&#039;, close)\nsspecs_net = sspecs_long - sspecs_short\n\n\/\/----------\n\nlspecs_long2 = request.security(legacy_cot2 + &#039;1&#039;, &#039;W&#039;, close)\nlspecs_short2 = request.security(legacy_cot2 + &#039;2&#039;, &#039;W&#039;, close)\nlspecs_net2 = (lspecs_long2 - lspecs_long) - (lspecs_short2 - lspecs_short)\nplot(lspecs_net2, title=&quot;Large Specs Options&quot;, color=color.blue, linewidth = 1, style=plot.style_line, display = display.none)\n\ncomm_long2 = request.security(legacy_cot2 + &#039;4&#039;, &#039;W&#039;, close)\ncomm_short2 = request.security(legacy_cot2 + &#039;5&#039;, &#039;W&#039;, close)\ncomm_net2 = (comm_long2 - comm_long) - (comm_short2 - comm_short)\nplot(comm_net2, title=&quot;Commercials Options&quot;, color=color.red, linewidth = 1, style=plot.style_line, display = display.none)\n\nsspecs_long2 = request.security(legacy_cot2 + &#039;8&#039;, &#039;W&#039;, close)\nsspecs_short2 = request.security(legacy_cot2 + &#039;9&#039;, &#039;W&#039;, close)\nsspecs_net2 = (sspecs_long2 - sspecs_long) - (sspecs_short2 - sspecs_short)\nplot(sspecs_net2, title=&quot;Small Specs Options&quot;, color=color.green, linewidth = 1, style=plot.style_line, display = display.none)\n\n\/\/----------\n\noi = request.security(legacy_cot1 + &#039;0&#039;, &#039;W&#039;, close)\n\nnormalized(xs, min_of, max_of, interval) =&gt;\n    maxi = ta.highest(max_of, interval)\n    mini = ta.lowest(min_of, interval)\n    (xs - mini) \/ (maxi - mini)\n    \nextreme(aas, bbs, interval) =&gt;\n    a1h = ta.highest(aas, interval)\n    a1l = ta.lowest(aas, interval)\n    b1h = ta.highest(bbs, interval)\n    b1l = ta.lowest(bbs, interval)\n    [math.max(a1h, b1h), math.min(a1l, b1l)]\n\nif do_oi_rescale\n    noi = normalized(oi, oi, oi, 260)\n    [sub_chart_max, sub_chart_min] = extreme(comm_net, lspecs_net, 260)\n    rescaled_oi = noi * (sub_chart_max - sub_chart_min) + sub_chart_min\n    oi := rescaled_oi\n\noi_momentum = input(26)\n\noi_minus_large = lspecs_net - oi\noi_plus_comm = comm_net + oi\noi_minus_large_mom = (oi_minus_large - oi_minus_large[oi_momentum ]) \noi_plus_comm_mom = (oi_plus_comm - oi_plus_comm[oi_momentum ]) \n\nplot(oi_minus_large_mom, title=&quot;LargeSpecs - OI&quot;, color=color.rgb(53, 77, 58, 80), style=plot.style_area, linewidth = 2, display = display.none)\nplot(oi_plus_comm_mom, title=&quot;Commercials + OI&quot;, color=color.rgb(67, 48, 48, 80), style=plot.style_area, linewidth = 2, display = display.none)\n\n\/\/----------------5% Detector for COT NET--------------------\n\nmax = ta.max(comm_net)\nmin = ta.min(comm_net)\npercentbull = (max \/ 100 * 5)\npercentbear = (min \/ 100 * 5)\n\nmaxmincol = comm_net == max or comm_net == min or comm_net &lt;= percentbull and comm_net &gt;= percentbear ? color.rgb(197, 170, 20) : color.red\n\n\n\n\n\n\n\n\/\/ Plotting the data with different colors\nplot(commercials_net, color=color.rgb(156, 17, 17), title=&quot;Commercials Net %OI&quot;, linewidth = 3, display = display.none)\nplot(ta.sma(commercials_net, input(8)), color=color.rgb(7, 5, 147), title=&quot;Commercials Net SMA %OI&quot;, display = display.none)\nplot(ta.sma(commercials_net, input(52)), color=color.rgb(12, 64, 162), title=&quot;Commercials Net SMA %OI&quot;, display = display.none)\nplot(commercials_long, color=color.blue, title=&quot;Commercials Long %OI&quot;, display = display.none)\nplot(ta.sma(commercials_long, input(8)), color=color.rgb(7, 5, 147), title=&quot;Commercials Long SMA %OI&quot;, display = display.none)\nplot(ta.sma(commercials_long, input(52)), color=color.rgb(12, 64, 162), title=&quot;Commercials Long SMA %OI&quot;, display = display.none)\nplot(commercials_short, color=color.rgb(219, 80, 25), title=&quot;Commercials Short %OI&quot;, display = display.none)\nplot(ta.sma(commercials_short, input(8)), color=color.rgb(7, 5, 147), title=&quot;Commercials Short SMA %OI&quot;, display = display.none)\nplot(ta.sma(commercials_short, input(52)), color=color.rgb(12, 64, 162), title=&quot;Commercials Short SMA %OI&quot;, display = display.none)\n\nplot(custom_index(commercials_long, Index_Length), color=color.blue, title=&quot;Willco Commercials Long %OI 26&quot;, display = display.none)\nplot(custom_index(-commercials_short, Index_Length), color=color.rgb(219, 80, 25), title=&quot;Willco Commercials Short %OI 26&quot;, display = display.none)\ncomnet_comnetpct = input(false, title=&#039;Commercials Net or Commercials Percent of OI&#039;, tooltip = &#039;Choose, if you want to use Commercials Net Positions instead of Commercials Net of Open Interest&#039;)\ncomNetIndex = comnet_comnetpct ? custom_index(comm_net, Index_Length) : custom_index(commercials_net, Index_Length)\ncomNetIndex2 = comnet_comnetpct ? custom_index(comm_net, Index_Length1) : custom_index(commercials_net, Index_Length1)\nplot(comNetIndex, color=maxmincol, linewidth = 3 , title=&quot;Willco Commercials Net %OI 26&quot;, display = display.none)\nplot(comNetIndex2, color=color.rgb(154, 22, 22), title=&quot;Willco Commercials Net %OI 6&quot;, display = display.none)\n\nplot(non_commercials_net, color=color.green, title=&quot;Non-Commercials Net %OI&quot;, display = display.none)\nplot(non_commercials_long, color=color.blue, title=&quot;Non-Commercials Long %OI&quot;, display = display.none)\nplot(non_commercials_short, color=color.red, title=&quot;Non-Commercials Short %OI&quot;, display = display.none)\nplot(non_commercials_spread, color=color.yellow, title=&quot;Non-Commercials Spread %OI&quot;, display = display.none)\nplot(non_commercials_spread_index, color=color.yellow, title=&quot;Non-Commercials Spread Index&quot;, display = display.none)\n\nplot(custom_index(more_oi_index, Index_Length), color=more_oi_index_col, linewidth = 2, title=&quot;Willco who has more %OI 26&quot;, style = plot.style_area, display = display.none)\n\nplot(non_reportable_net, color=color.purple, title=&quot;Non-Reportable Net %OI&quot;, display = display.none)\nplot(non_reportable_long, color=color.blue, title=&quot;Non-Reportable Long %OI&quot;, display = display.none)\nplot(non_reportable_short, color=color.red, title=&quot;Non-Reportable Short %OI&quot;, display = display.none)\n\nplot(custom_index(non_reportable_net, Index_Length), color=color.green, linewidth = 1, title=&quot;Willco Non Reportable %OI 26&quot;, style = plot.style_line, display = display.none)\n\n\/\/-----------\n\nplot(oi, color=color.gray, title=&quot;Open Interest&quot;, display = display.none)\nplot(comm_long, title = &quot;Commercials long&quot;,           color = colorup_week, style = plot.style_columns, display = display.none)\nplot(-comm_short, title = &quot;Commercials short&quot;,         color = colordown_week, style = plot.style_columns, display = display.none)\nplot(comm_net, title = &quot;Commercials net with color yellow if extrem minmax or 5% extrem Value&quot;,        color = maxmincol, linewidth =2)\nplot(more_oi_commercials, title = &quot;Commercials net if more OI&quot;,        color = color.rgb(200, 64, 64), linewidth = 3, style = plot.style_linebr, display = display.none)\nplot(lspecs_long, title = &quot;Large Speculators long&quot;,   color = colorup_week, style = plot.style_columns, display = display.none)\nplot(-lspecs_short, title = &quot;Large Speculators short&quot;, color = colordown_week, style = plot.style_columns, display = display.none)\nplot(lspecs_net, title = &quot;Large Speculators net&quot;,color = color.rgb(29, 65, 211))\nplot(more_oi_largespecs, title = &quot;Large Speculators net if more OI&quot;,color = color.rgb(14, 148, 220), linewidth = 3, style = plot.style_linebr)\nplot(sspecs_long, title = &quot;Small Speculators long&quot;,   color = colorup_week, style = plot.style_columns, display = display.none)\nplot(-sspecs_short, title = &quot;Small Speculators short&quot;, color = colordown_week, style = plot.style_columns, display = display.none)\nplot(sspecs_net, title = &quot;Small Speculators net&quot;,     color = color.rgb(35, 128, 34), display = display.none)\n\n\n\/\/-----------\n \nhline(0, color=color.rgb(160, 165, 179, 70), linestyle=hline.style_dotted, linewidth=1)\n\n\n\n\n\/\/----------------5% Detector for COT NET--------------------\n\n\np1 = plot(percentbull, title=&quot;+5%&quot;, color=color.rgb(208, 215, 208, 80), linewidth = 1, style= plot.style_area)\np2 = plot(percentbear, title=&quot;-5%&quot;, color=color.rgb(208, 215, 208, 80), linewidth = 1, style= plot.style_area)\n\n\n\n<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_5e542870 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/members.1uptick.com\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_5e542870();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_5e542870 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"tab-pane elementkit-tab-pane elementor-repeater-item-0002118\" id=\"content-000211869d29b6064094\" role=\"tabpanel\" aria-labelledby=\"content-000211869d29b6064094-tab\">\n\t\t\t\t\t\t<div class=\"animated fadeIn\">\n\t\t\t\t\t\t\t\n\t\t<div class=\"widgetarea_warper widgetarea_warper_editable\" data-elementskit-widgetarea-key=\"da0252b\"  data-elementskit-widgetarea-index=\"0002118\">\n\t\t\t<div class=\"widgetarea_warper_edit\" data-elementskit-widgetarea-key=\"da0252b\" data-elementskit-widgetarea-index=\"0002118\">\n\t\t\t\t<i class=\"eicon-edit\" aria-hidden=\"true\"><\/i>\n\t\t\t\t<span>Edit Content<\/span>\n\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t<div class=\"ekit-widget-area-container\">\n\t\t\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"9906\" class=\"elementor elementor-9906\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-67bf97b elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"67bf97b\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7363639\" data-id=\"7363639\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3485ef6a elementor-widget elementor-widget-elementskit-heading\" data-id=\"3485ef6a\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h4 class=\"ekit-heading--title elementskit-section-title\">\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e04\u0e25\u0e37\u0e48\u0e19\u0e40\u0e2d\u0e25\u0e40\u0e25\u0e35\u0e22\u0e15<\/h4><h6 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\tElliott Wave Detector\n\t\t\t\t\t<\/h6><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0e3c24c elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"0e3c24c\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-45859077\" data-id=\"45859077\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2137b4db elementor-widget elementor-widget-image\" data-id=\"2137b4db\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"619\" src=\"https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/wave-chart-1024x619.png\" class=\"attachment-large size-large wp-image-9912\" alt=\"\" srcset=\"https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/wave-chart-1024x619.png 1024w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/wave-chart-300x181.png 300w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/wave-chart-768x464.png 768w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/wave-chart-18x12.png 18w, https:\/\/members.1uptick.com\/wp-content\/uploads\/2023\/12\/wave-chart.png 1434w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6e46267a elementor-widget elementor-widget-elementskit-heading\" data-id=\"6e46267a\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e23\u0e2b\u0e31\u0e2a\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<div class=\"ChatMessage_chatMessage__xkgHx\">\n<div class=\"ChatMessage_messageRow__DHlnq\">\n<div class=\"ChatMessage_messageWrapper__4Ugd6\">\n<div class=\"Message_rowWithFooter__FShU6\">\n<div class=\"Message_row__ug_UU\">\n<div class=\"Message_botMessageBubble__aYctV\">\n<div class=\"Markdown_markdownContainer__Tz3HQ\">\n<p>Pine Script<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"Message_botOptimisticFooter__FL0c_\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-565a7df0 elementor-widget elementor-widget-elementskit-heading\" data-id=\"565a7df0\" data-element_type=\"widget\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" ><div class=\"ekit-heading elementskit-section-title-wraper text_left   ekit_heading_tablet-   ekit_heading_mobile-\"><h5 class=\"ekit-heading--subtitle elementskit-section-subtitle\">\n\t\t\t\t\t\t\u0e01\u0e32\u0e23\u0e41\u0e19\u0e30\u0e19\u0e33: \n\t\t\t\t\t<\/h5>\t\t\t\t<div class='ekit-heading__description'>\n\t\t\t\t\t<div class=\"ChatMessage_chatMessage__xkgHx\">\n<div class=\"ChatMessage_messageRow__DHlnq\">\n<div class=\"ChatMessage_messageWrapper__4Ugd6\">\n<div class=\"Message_rowWithFooter__FShU6\">\n<div class=\"Message_row__ug_UU\">\n<div class=\"Message_botMessageBubble__aYctV\">\n<div class=\"Markdown_markdownContainer__Tz3HQ\">\n<p><span>\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e41\u0e16\u0e1a\u0e17\u0e35\u0e48\u0e01\u0e33\u0e25\u0e31\u0e07\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e15\u0e31\u0e27\u0e41\u0e25\u0e30\u0e41\u0e01\u0e49\u0e44\u0e02\u0e02\u0e2d\u0e07 Elliott Wave \u0e1a\u0e19\u0e01\u0e23\u0e32\u0e1f\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34 \u0e2a\u0e32\u0e22\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e08\u0e30\u0e16\u0e39\u0e01\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e41\u0e25\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e15\u0e48\u0e2d\u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07 \u0e17\u0e33\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e27\u0e34\u0e27\u0e31\u0e12\u0e19\u0e32\u0e01\u0e32\u0e23\u0e02\u0e2d\u0e07\u0e2a\u0e32\u0e22\u0e17\u0e35\u0e48\u0e01\u0e49\u0e32\u0e27\u0e2b\u0e19\u0e49\u0e32\u0e2b\u0e23\u0e37\u0e2d\u0e41\u0e01\u0e49\u0e44\u0e02\u0e44\u0e14\u0e49 \u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a<\/span>\u0e41\u0e16\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e01\u0e49\u0e32\u0e27\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e15\u0e23\u0e27\u0e08\u0e1e\u0e1a\u0e22\u0e31\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e33\u0e19\u0e32\u0e22\u0e01\u0e32\u0e23\u0e01\u0e25\u0e31\u0e1a\u0e15\u0e31\u0e27\u0e02\u0e2d\u0e07 Fibonacci \u0e44\u0e14\u0e49<span>Fibonacci retracements)<\/span>.<span>\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e19\u0e35\u0e49\u0e22\u0e31\u0e07\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 \"\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\" \u0e20\u0e32\u0e22\u0e43\u0e15\u0e49\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e17\u0e23\u0e34\u0e01\u0e40\u0e01\u0e2d\u0e23\u0e4c\u0e15\u0e48\u0e32\u0e07\u0e46<\/span><\/p>\n<div class=\"ChatMessage_chatMessage__xkgHx\">\n<div class=\"ChatMessage_messageRow__DHlnq\">\n<div class=\"ChatMessage_messageWrapper__4Ugd6\">\n<div class=\"Message_rowWithFooter__FShU6\">\n<div class=\"Message_botOptimisticFooter__FL0c_\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"Message_botOptimisticFooter__FL0c_\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-797c3886 elementor-widget elementor-widget-elementskit-heading\" data-id=\"797c3886\" data-element_type=\"widget\" data-no-translation=\"\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>.elementor-element-797c3886{display:none !important}<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-597c13eb elementor-widget elementor-widget-elementskit-heading\" data-id=\"597c13eb\" data-element_type=\"widget\" data-no-translation=\"\" data-widget_type=\"elementskit-heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>.elementor-element-597c13eb{display:none !important}<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-139d9476\" data-id=\"139d9476\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-78ec6ea3 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"78ec6ea3\" data-element_type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-78ec6ea3\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-atom-dark\"\n            data-dark-theme=\"mdp-theme-atom-dark\"\n        >\n            \n                <pre class=\"line-numbers show-invisibles inline-color copy-to-clipboard language-diff-markup diff-highlight\"data-previewers=\"\"><code>\/\/ This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/\n\n\/\/@version=5\nindicator(&quot;1up Wave Detector&quot;, max_lines_count=500, max_labels_count=500, overlay=true, max_bars_back=5000)\n\/\/------------------------------------------------------------------------------\n\/\/Settings\n\/\/-----------------------------------------------------------------------------{\ni_hi  = input.string(&#039;high&#039;        , title=        &#039;&#039;          , group=&#039;source [high - low]&#039;, inline=&#039;hl&#039;, options=[&#039;high&#039;, &#039;close&#039;, &#039;max open\/close&#039;])\ni_lo  = input.string(&#039;low&#039;         , title=        &#039;&#039;          , group=&#039;source [high - low]&#039;, inline=&#039;hl&#039;, options=[&#039;low&#039; , &#039;close&#039;, &#039;min open\/close&#039;])\n\ns1    = input.bool  (true          , title=        &#039;&#039;          , group=&#039;ZigZag&#039;             , inline= &#039;1&#039;                                             )\nlen1  = input.int   ( 4            , title=        &#039;&nbsp;&nbsp;1 Length&#039;, group=&#039;ZigZag&#039;             , inline= &#039;1&#039;, minval =1                                  )\ncol1  = input.color (color.red   , title=        &#039;&#039;          , group=&#039;ZigZag&#039;             , inline= &#039;1&#039;                                             )\ns2    = input.bool  (true          , title=        &#039;&#039;          , group=&#039;ZigZag&#039;             , inline= &#039;2&#039;                                             )\nlen2  = input.int   ( 8            , title=        &#039;&nbsp;&nbsp;2 Length&#039;, group=&#039;ZigZag&#039;             , inline= &#039;2&#039;, minval =1                                  )\ncol2  = input.color (color.blue  , title=        &#039;&#039;          , group=&#039;ZigZag&#039;             , inline= &#039;2&#039;                                             )\ns3    = input.bool  (true          , title=        &#039;&#039;          , group=&#039;ZigZag&#039;             , inline= &#039;3&#039;                                             )                                           \nlen3  = input.int   (16            , title=        &#039;&nbsp;&nbsp;3 Length&#039;, group=&#039;ZigZag&#039;             , inline= &#039;3&#039;, minval =1                                  )\ncol3  = input.color (color.white , title=        &#039;&#039;          , group=&#039;ZigZag&#039;             , inline= &#039;3&#039;                                             )\n\n\ni_500 = input.float (0.500         , title=&#039;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level 1&#039;, group=&#039;Fibonacci values&#039;   ,              minval =0, maxval =1, step =0.01           )\ni_618 = input.float (0.618         , title=&#039;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level 2&#039;, group=&#039;Fibonacci values&#039;   ,              minval =0, maxval =1, step =0.01           )\ni_764 = input.float (0.764         , title=&#039;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level 3&#039;, group=&#039;Fibonacci values&#039;   ,              minval =0, maxval =1, step =0.01           )\ni_854 = input.float (0.854         , title=&#039;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level 4&#039;, group=&#039;Fibonacci values&#039;   ,              minval =0, maxval =1, step =0.01           )\n\nshZZ  = input.bool  (false         , title=         &#039;&#039;         , group=&#039;show ZZ&#039;            , inline=&#039;zz&#039;                                             )\n\n\/\/-----------------------------------------------------------------------------}\n\/\/User Defined Types\n\/\/-----------------------------------------------------------------------------{\ntype ZZ \n    int  [] d\n    int  [] x \n    float[] y \n    line [] l\n\ntype Ewave\n    line   l1\n    line   l2\n    line   l3  \n    line   l4\n    line   l5\n    label  b1\n    label  b2\n    label  b3\n    label  b4\n    label  b5\n    \/\/\n    bool   on\n    bool   br \/\/= na\n    \/\/\n    int    dir\n    \/\/\n    line   lA\n    line   lB\n    line   lC\n    label  bA\n    label  bB\n    label  bC\n    \/\/\n    bool next = false\n    \/\/\n    label  lb\n    box    bx\n\ntype fibL\n    line wave1_0_500 \n    line wave1_0_618 \n    line wave1_0_764 \n    line wave1_0_854 \n    line wave1_pole_ \n    linefill l_fill_ \n    bool     _break_ \/\/= na\n\n\/\/-----------------------------------------------------------------------------}\n\/\/Functions\n\/\/-----------------------------------------------------------------------------{\nhi = i_hi == &#039;high&#039; ? high : i_hi == &#039;close&#039; ? close : math.max(open, close)\nlo = i_lo == &#039;low&#039;  ? low  : i_hi == &#039;close&#039; ? close : math.min(open, close)\n\nin_out(aZZ, d, x1, y1, x2, y2, col) =&gt;\n    aZZ.d.unshift(d), aZZ.x.unshift(x2), aZZ.y.unshift(y2), aZZ.d.pop(), aZZ.x.pop(), aZZ.y.pop()\n    if shZZ\n        aZZ.l.unshift(line.new(x1, y1, x2, y2, color= col)), aZZ.l.pop().delete()\n\nmethod isSame(Ewave gEW, _1x, _2x, _3x, _4x) =&gt; \n    t1 = _1x == gEW.l1.get_x1() \n    t2 = _2x == gEW.l2.get_x1() \n    t3 = _3x == gEW.l3.get_x1()  \n    t4 = _4x == gEW.l4.get_x1()\n    t1 and t2 and t3 and t4\n\nmethod isSame2(Ewave gEW, _1x, _2x, _3x) =&gt; \n    t1 = _1x == gEW.l3.get_x2() \n    t2 = _2x == gEW.l4.get_x2()  \n    t3 = _3x == gEW.l5.get_x2()\n    t1 and t2 and t3 \n\nmethod dot(Ewave gEW) =&gt;\n    gEW.l1.set_style(line.style_dotted)\n    gEW.l2.set_style(line.style_dotted)\n    gEW.l3.set_style(line.style_dotted)\n    gEW.l4.set_style(line.style_dotted)\n    gEW.l5.set_style(line.style_dotted)\n    gEW.b1.set_textcolor    (color(na))\n    gEW.b2.set_textcolor    (color(na))\n    gEW.b3.set_textcolor    (color(na))\n    gEW.b4.set_textcolor    (color(na))\n    gEW.b5.set_textcolor    (color(na))\n    gEW.on := false\n\nmethod dash(Ewave gEW) =&gt;\n    gEW.lA.set_style(line.style_dashed)\n    gEW.lB.set_style(line.style_dashed)\n    gEW.lC.set_style(line.style_dashed)\n    gEW.bA.set_textcolor    (color(na))\n    gEW.bB.set_textcolor    (color(na))\n    gEW.bC.set_textcolor    (color(na))\n    gEW.bx.set_bgcolor      (color(na))\n    gEW.bx.set_border_color (color(na))\n\nmethod sol_dot(fibL nFibL, sol_dot, col) =&gt;\n    style = \n     sol_dot ==  &#039;dot&#039;  ? \n      line.style_dotted : \n     sol_dot ==  &#039;sol&#039;  ? \n      line.style_solid  :\n      line.style_dashed\n    nFibL.wave1_0_500.set_style(style)\n    nFibL.wave1_0_618.set_style(style)\n    nFibL.wave1_0_764.set_style(style)\n    nFibL.wave1_0_854.set_style(style)\n    nFibL.l_fill_.set_color(col)\n\nmethod set(fibL nFibL, int x1, int x2, float max_500, float max_618, float max_764, float max_854, float y2) =&gt;\n    nFibL.wave1_0_500.set_xy1(x1, max_500)\n    nFibL.wave1_0_500.set_xy2(x2, max_500)\n    nFibL.wave1_0_618.set_xy1(x1, max_618)\n    nFibL.wave1_0_618.set_xy2(x2, max_618)\n    nFibL.wave1_0_764.set_xy1(x1, max_764)\n    nFibL.wave1_0_764.set_xy2(x2, max_764)\n    nFibL.wave1_0_854.set_xy1(x1, max_854)\n    nFibL.wave1_0_854.set_xy2(x2, max_854)\n    nFibL.wave1_pole_.set_xy1(x1,     y2 )\n    nFibL.wave1_pole_.set_xy2(x1, max_854)\n    nFibL.l_fill_.get_line1().set_xy1(x1, max_764)\n    nFibL.l_fill_.get_line1().set_xy2(x2, max_764)\n    nFibL.l_fill_.get_line2().set_xy1(x1, max_854)\n    nFibL.l_fill_.get_line2().set_xy2(x2, max_854)\n\nmethod setNa(fibL nFibL) =&gt;\n    nFibL.wave1_0_500.set_xy1(na, na)\n    nFibL.wave1_0_500.set_xy2(na, na)\n    nFibL.wave1_0_618.set_xy1(na, na)\n    nFibL.wave1_0_618.set_xy2(na, na)\n    nFibL.wave1_0_764.set_xy1(na, na)\n    nFibL.wave1_0_764.set_xy2(na, na)\n    nFibL.wave1_0_854.set_xy1(na, na)\n    nFibL.wave1_0_854.set_xy2(na, na)\n    nFibL.wave1_pole_.set_xy1(na, na)\n    nFibL.wave1_pole_.set_xy2(na, na)\n    nFibL.l_fill_.set_color(color(na))\n\ndraw(enabled, left, col, n) =&gt;\n    \/\/\n    max_bars_back(time, 2000)\n    var int dir = na, var int x1= na, var float y1 = na, var int x2 = na, var float y2 = na, var Ewave gEW = na\n    var int last_0x = na    ,  var float last_0y = na    ,   var int last_6x = na   ,    var float last_6y = na\n    \/\/\n    if enabled\n        var fibL nFibL = fibL.new(\n           wave1_0_500 = line.new(na, na, na, na, color= color.new(col, 50), style= line.style_solid ),\n           wave1_0_618 = line.new(na, na, na, na, color= color.new(col, 38), style= line.style_solid ),\n           wave1_0_764 = line.new(na, na, na, na, color= color.new(col, 24), style= line.style_solid ),\n           wave1_0_854 = line.new(na, na, na, na, color= color.new(col, 15), style= line.style_solid ),\n           wave1_pole_ = line.new(na, na, na, na, color= color.new(col, 50), style= line.style_dashed),\n               l_fill_ = linefill.new(\n                         line.new(na, na, na, na, color= color(na))\n                       , line.new(na, na, na, na, color= color(na))\n                       ,                          color= color(na))\n                       ,                         _break_   =   na\n               )\n        \/\/\n        var  ZZ        aZZ   =   ZZ.new(array.new &lt; int   &gt; ()\n                                      , array.new &lt; int   &gt; ()\n                                      , array.new &lt; float &gt; ()\n                                      , array.new &lt; line  &gt; () )\n        var Ewave[]    aEW   =          array.new &lt; Ewave &gt; ()\n        \/\/\n        if barstate.isfirst\n            aEW.unshift(Ewave.new())\n            for i = 0 to 10\n                aZZ.d.unshift(0)\n                aZZ.x.unshift(0)\n                aZZ.y.unshift(0)\n                aZZ.l.unshift(shZZ ? line.new(na, na, na, na) : na)\n        \/\/\n        sz       = aZZ.d.size( )\n        x2      := bar_index -1\n        ph       = ta.pivothigh(hi, left, 1)\n        pl       = ta.pivotlow (lo, left, 1)\n        t        = n == 2 ? &#039;\\n\\n&#039; : n == 1 ? &#039;\\n&#039; : &#039;&#039;\n        \/\/\n        \/\/ when a new Pivot High is found\n        if not na(ph) \n            gEW := aEW.get   (0)\n            dir := aZZ.d.get (0) \n            x1  := aZZ.x.get (0) \n            y1  := aZZ.y.get (0) \n            y2  :=      nz(hi[1])\n            \/\/\n            if dir &lt;  1  \/\/ if previous point was a pl, add, and change direction ( 1)\n                in_out(aZZ,  1, x1, y1, x2, y2, col)\n            else\n                if dir ==  1 and ph &gt; y1 \n                    aZZ.x.set(0, x2), aZZ.y.set(0, y2)\n                    if shZZ\n                        aZZ.l.get(0).set_xy2(x2, y2)\n            \/\/\n            _6x = x2, _6y = y2\n            _5x = aZZ.x.get(1), _5y = aZZ.y.get(1)\n            _4x = aZZ.x.get(2), _4y = aZZ.y.get(2)\n            _3x = aZZ.x.get(3), _3y = aZZ.y.get(3)\n            _2x = aZZ.x.get(4), _2y = aZZ.y.get(4)\n            _1x = aZZ.x.get(5), _1y = aZZ.y.get(5)\n            \/\/\n            \/\/ &ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;[ 12345 ]&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;\n            _W5 = _6y - _5y\n            _W3 = _4y - _3y\n            _W1 = _2y - _1y\n            min = math.min(_W1, _W3, _W5)\n            isWave = \n             _W3 != min and\n             _6y  &gt; _4y and \n             _3y  &gt; _1y and \n             _5y  &gt; _2y\n            \/\/ \n            same = gEW.isSame(_1x, _2x, _3x, _4x)\n            if isWave\n                if same\n                    gEW.l5.set_xy2(_6x, _6y)\n                    gEW.b5.set_xy (_6x, _6y)\n                else\n                    tx = &#039;&#039;\n                    if _2x == aEW.get(0).b5.get_x() \n                        tx := &#039;(5) (1)&#039; \n                        aEW.get(0).b5.set_text(&#039;&#039;)\n                    else\n                        tx := &#039;(1)&#039;\n                    \/\/                \n                    wave = Ewave.new(\n                     l1  = line.new (_1x, _1y, _2x, _2y                      , color=col       , style= line.style_solid     ),\n                     l2  = line.new (_2x, _2y, _3x, _3y                      , color=col       , style= line.style_solid     ),\n                     l3  = line.new (_3x, _3y, _4x, _4y                      , color=col       , style= line.style_solid     ),\n                     l4  = line.new (_4x, _4y, _5x, _5y                      , color=col       , style= line.style_solid     ),\n                     l5  = line.new (_5x, _5y, _6x, _6y                      , color=col       , style= line.style_solid     ),\n                     b1  = label.new(_2x, _2y, text= tx    + t, textcolor=col, color= color(na), style=label.style_label_down),\n                     b2  = label.new(_3x, _3y, text= t + &#039;(2)&#039;, textcolor=col, color= color(na), style=label.style_label_up  ),\n                     b3  = label.new(_4x, _4y, text= &#039;(3)&#039; + t, textcolor=col, color= color(na), style=label.style_label_down),\n                     b4  = label.new(_5x, _5y, text= t + &#039;(4)&#039;, textcolor=col, color= color(na), style=label.style_label_up  ),\n                     b5  = label.new(_6x, _6y, text= &#039;(5)&#039; + t, textcolor=col, color= color(na), style=label.style_label_down),\n                     on  = true                                                                                               ,\n                     br  = false                                                                                              ,\n                     dir = 1\n                      )\n                    aEW.unshift(wave)\n                    nFibL._break_ := false   \n                    alert(&#039;New EW Motive Bullish Pattern found&#039;  , alert.freq_once_per_bar_close)                                                                                       \n            \/\/\n            if not isWave\n                if same and gEW.on == true\n                    gEW.dot() \n                    alert(&#039;Invalidated EW Motive Bullish Pattern&#039;, alert.freq_once_per_bar_close)                                                                                       \n            \/\/\n            \/\/ &ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;[ ABC ]&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;\n            getEW    = aEW.get(0)\n            last_0x := getEW.l1.get_x1(), last_0y := getEW.l1.get_y1()\n            last_6x := getEW.l5.get_x2(), last_6y := getEW.l5.get_y2()\n            diff     = math.abs(last_6y - last_0y)\n            \/\/\n            if getEW.dir == -1 \n                getX    = getEW.l5.get_x2()                \n                getY    = getEW.l5.get_y2() \n                isSame2 = getEW.isSame2  (_1x, _2x, _3x)\n                isValid =\n                   _3x == getX                  and \n                   _6y  &lt; getY + (diff * i_854) and\n                   _4y  &lt; getY + (diff * i_854) and\n                   _5y  &gt; getY\n                \/\/\n                if isValid\n                    width = _6x - _2x \/\/ &ndash;&ndash;&ndash;[ width (4) - (c) ]&ndash;&ndash;&ndash;\n                    if isSame2 and getEW.bA.get_x() &gt; _3x\n                        getEW.lC.set_xy1(_5x, _5y), getEW.lC.set_xy2(_6x, _6y), getEW.bC.set_xy(_6x, _6y), getEW.bx.set_lefttop(_6x, _6y), getEW.bx.set_right(_6x + width)\n                    else\n                        getEW.lA := line.new (_3x, _3y, _4x, _4y, color=col), getEW.bA := label.new(_4x, _4y, text= &#039;(a)&#039; + t, textcolor=col, color= color(na), style=label.style_label_down)\n                        getEW.lB := line.new (_4x, _4y, _5x, _5y, color=col), getEW.bB := label.new(_5x, _5y, text= t + &#039;(b)&#039;, textcolor=col, color= color(na), style=label.style_label_up  )\n                        getEW.lC := line.new (_5x, _5y, _6x, _6y, color=col), getEW.bC := label.new(_6x, _6y, text= &#039;(c)&#039; + t, textcolor=col, color= color(na), style=label.style_label_down)\n                        getEW.bx := box.new  (_6x, _6y, _6x + width, _4y, bgcolor=color.new(col, 93), border_color=color.new(col, 65))\n                        alert(&#039;New EW Corrective Bullish Pattern found&#039;  , alert.freq_once_per_bar_close)                                                                                       \n                else\n                    if isSame2 and getEW.bA.get_x() &gt; _3x\n                        getEW.dash()\n                        alert(&#039;Invalidated EW Corrective Bullish Pattern&#039;, alert.freq_once_per_bar_close)                                                                                       \n            \/\/\n            \/\/ &ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;[ new (1) ? ]&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;\n            if getEW.dir ==  1 \n                if _5x == getEW.bC.get_x() and \n                   _6y &gt;  getEW.b5.get_y() and\n                   getEW.next  == false\n                    getEW.next := true\n                    getEW.lb   := label.new(_6x, _6y, style=label.style_circle, color=color.new(col, 65), yloc=yloc.abovebar, size=size.tiny)\n                    alert(&#039;Possible new start of EW Motive Bullish Wave&#039;, alert.freq_once_per_bar_close)                                                                                       \n        \/\/\n        \/\/ when a new Pivot Low is found\n        if not na(pl) \n            gEW := aEW.get   (0)\n            dir := aZZ.d.get (0) \n            x1  := aZZ.x.get (0) \n            y1  := aZZ.y.get (0) \n            y2  :=      nz(lo[1])\n            \/\/\n            if dir &gt; -1  \/\/ if previous point was a ph, add, and change direction (-1)\n                in_out(aZZ, -1, x1, y1, x2, y2, col)\n            else\n                if dir == -1 and pl &lt; y1 \n                    aZZ.x.set(0, x2), aZZ.y.set(0, y2)\n                    if shZZ\n                        aZZ.l.get(0).set_xy2(x2, y2)\n            \/\/\n            _6x = x2, _6y = y2\n            _5x = aZZ.x.get(1), _5y = aZZ.y.get(1)\n            _4x = aZZ.x.get(2), _4y = aZZ.y.get(2)\n            _3x = aZZ.x.get(3), _3y = aZZ.y.get(3)\n            _2x = aZZ.x.get(4), _2y = aZZ.y.get(4)\n            _1x = aZZ.x.get(5), _1y = aZZ.y.get(5)\n            \/\/\n            \/\/ &ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;[ 12345 ]&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;\n            _W5 = _5y - _6y\n            _W3 = _3y - _4y\n            _W1 = _1y - _2y\n            min = math.min(_W1, _W3, _W5)\n            isWave = \n             _W3 != min and\n             _4y  &gt; _6y and \n             _1y  &gt; _3y and \n             _2y  &gt; _5y\n            \/\/ \n            same = isSame(gEW, _1x, _2x, _3x, _4x)\n            if isWave\n                if same\n                    gEW.l5.set_xy2(_6x, _6y)\n                    gEW.b5.set_xy (_6x, _6y)\n                else\n                    tx = &#039;&#039;\n                    if _2x == aEW.get(0).b5.get_x() \n                        tx := &#039;(5) (1)&#039; \n                        aEW.get(0).b5.set_text(&#039;&#039;)\n                    else\n                        tx := &#039;(1)&#039;\n                    \/\/\n                    wave = Ewave.new(\n                     l1  = line.new (_1x, _1y, _2x, _2y                      , color=col       , style= line.style_solid     ),\n                     l2  = line.new (_2x, _2y, _3x, _3y                      , color=col       , style= line.style_solid     ),\n                     l3  = line.new (_3x, _3y, _4x, _4y                      , color=col       , style= line.style_solid     ),\n                     l4  = line.new (_4x, _4y, _5x, _5y                      , color=col       , style= line.style_solid     ),\n                     l5  = line.new (_5x, _5y, _6x, _6y                      , color=col       , style= line.style_solid     ),\n                     b1  = label.new(_2x, _2y, text= t    + tx, textcolor=col, color= color(na), style=label.style_label_up  ),\n                     b2  = label.new(_3x, _3y, text= &#039;(2)&#039; + t, textcolor=col, color= color(na), style=label.style_label_down),\n                     b3  = label.new(_4x, _4y, text= t + &#039;(3)&#039;, textcolor=col, color= color(na), style=label.style_label_up  ),\n                     b4  = label.new(_5x, _5y, text= &#039;(4)&#039; + t, textcolor=col, color= color(na), style=label.style_label_down),\n                     b5  = label.new(_6x, _6y, text= t + &#039;(5)&#039;, textcolor=col, color= color(na), style=label.style_label_up  ),\n                     on  = true                                                                                               ,\n                     br  = false                                                                                              ,\n                     dir =-1\n                      )\n                    aEW.unshift(wave)\n                    nFibL._break_ := false \n                    alert(&#039;New EW Motive Bearish Pattern found&#039;  , alert.freq_once_per_bar_close)                                                                                                                                                            \n            \/\/        \n            if not isWave\n                if same and gEW.on == true\n                    gEW.dot()   \n                    alert(&#039;Invalidated EW Motive Bearish Pattern&#039;, alert.freq_once_per_bar_close)                                                                                       \n            \/\/\n            \/\/ &ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;[ ABC ]&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;\n            getEW    = aEW.get(0)\n            last_0x := getEW.l1.get_x1(), last_0y := getEW.l1.get_y1()\n            last_6x := getEW.l5.get_x2(), last_6y := getEW.l5.get_y2()\n            diff     = math.abs(last_6y - last_0y)\n            \/\/\n            if getEW.dir ==  1 \n                getX    = getEW.l5.get_x2()                \n                getY    = getEW.l5.get_y2() \n                isSame2 = getEW.isSame2  (_1x, _2x, _3x)\n                isValid =\n                   _3x == getX                  and \n                   _6y  &gt; getY - (diff * i_854) and\n                   _4y  &gt; getY - (diff * i_854) and\n                   _5y  &lt; getY\n                \/\/\n                if isValid\n                    width = _6x - _2x \/\/ &ndash;&ndash;&ndash;[ width (4) - (c) ]&ndash;&ndash;&ndash;\n                    if isSame2 and getEW.bA.get_x() &gt; _3x\n                        getEW.lC.set_xy1(_5x, _5y), getEW.lC.set_xy2(_6x, _6y), getEW.bC.set_xy(_6x, _6y), getEW.bx.set_lefttop(_6x, _6y), getEW.bx.set_right(_6x + width)\n                    else\n                        getEW.lA := line.new (_3x, _3y, _4x, _4y, color=col), getEW.bA := label.new(_4x, _4y, text= t + &#039;(a)&#039;, textcolor=col, color= color(na), style=label.style_label_up  )\n                        getEW.lB := line.new (_4x, _4y, _5x, _5y, color=col), getEW.bB := label.new(_5x, _5y, text= &#039;(b)&#039; + t, textcolor=col, color= color(na), style=label.style_label_down)\n                        getEW.lC := line.new (_5x, _5y, _6x, _6y, color=col), getEW.bC := label.new(_6x, _6y, text= t + &#039;(c)&#039;, textcolor=col, color= color(na), style=label.style_label_up  )\n                        getEW.bx := box.new  (_6x, _6y, _6x + width, _4y, bgcolor=color.new(col, 93), border_color=color.new(col, 65))\n                        alert(&#039;New EW Corrective Bearish Pattern found&#039;  , alert.freq_once_per_bar_close)                                                                                       \n                else\n                    if isSame2 and getEW.bA.get_x() &gt; _3x\n                        getEW.dash() \n                        alert(&#039;Invalidated EW Corrective Bullish Pattern&#039;, alert.freq_once_per_bar_close)                                                                                       \n            \/\/\n            \/\/ &ndash;&ndash;&ndash;[ check (only once) for a possible new (1) after an impulsive AND corrective wave ]&ndash;&ndash;&ndash;\n            if getEW.dir == -1 \n                if _5x == getEW.bC.get_x() and \n                   _6y &lt;  getEW.b5.get_y() and\n                   getEW.next  == false\n                    getEW.next := true\n                    getEW.lb   := label.new(_6x, _6y, style=label.style_circle, color=color.new(col, 65), yloc=yloc.belowbar, size=size.tiny)\n                    alert(&#039;Possible new start of EW Motive Bearish Wave&#039;, alert.freq_once_per_bar_close)                                                                                       \n        \/\/                    \n        \/\/ &ndash;&ndash;&ndash;[ check for break box ]&ndash;&ndash;&ndash;\n        if aEW.size() &gt; 0\n            gEW    := aEW.get(0)\n            if gEW.dir == 1 \n                if ta.crossunder(low , gEW.bx.get_bottom()) and bar_index &lt;= gEW.bx.get_right()\n                    label.new(bar_index, low , yloc= yloc.belowbar, style= label.style_xcross, color=color.red, size=size.tiny)\n            else\n                if ta.crossover (high, gEW.bx.get_top   ()) and bar_index &lt;= gEW.bx.get_right()\n                    label.new(bar_index, high, yloc= yloc.abovebar, style= label.style_xcross, color=color.red, size=size.tiny)       \n        \/\/\n        if barstate.islast\n            \/\/  &ndash;&ndash;&ndash;[ get last 2 EW&#039;s ]&ndash;&ndash;&ndash;\n            getEW    = aEW.get(0)\n            if aEW.size() &gt; 1\n                getEW1   = aEW.get(1)\n                last_0x := getEW.l1.get_x1(), last_0y := getEW.l1.get_y1()\n                last_6x := getEW.l5.get_x2(), last_6y := getEW.l5.get_y2()\n                \/\/\n                diff = math.abs(last_6y - last_0y) \/\/ &ndash;&ndash;&ndash;[ max\/min difference ]&ndash;&ndash;&ndash;\n                _500 = diff * i_500\n                _618 = diff * i_618\n                _764 = diff * i_764\n                _854 = diff * i_854\n                bull = getEW.dir == 1 \n                \/\/ &ndash;&ndash;&ndash;[ if EW is not valid or an ABC has developed -&gt; remove fibonacci lines ]&ndash;&ndash;&ndash;\n                if getEW.on == false or getEW.bC.get_x() &gt; getEW.b5.get_x()\n                    nFibL.setNa()\n                else\n                \/\/ &ndash;&ndash;&ndash;[ get.on == true ~ valid EW ]&ndash;&ndash;&ndash;\n                    max_500 = last_6y + ((bull ? -1 : 1) * _500)\n                    max_618 = last_6y + ((bull ? -1 : 1) * _618)\n                    max_764 = last_6y + ((bull ? -1 : 1) * _764)\n                    max_854 = last_6y + ((bull ? -1 : 1) * _854)\n                    \/\/\n                    nFibL.set(last_6x, bar_index + 10, max_500, max_618, max_764, max_854, last_6y)\n                \/\/ &ndash;&ndash;&ndash;[ if (2) label overlap with (C) label ]&ndash;&ndash;&ndash;\n                if  getEW.b2.get_x() == getEW1.bC.get_x()\n                    getEW.b1.set_textcolor(color(na))\n                    getEW.b2.set_textcolor(color(na))\n                    strB  = getEW1.bB.get_text() \n                    strC  = getEW1.bC.get_text()\n                    strB_ = str.replace(strB, &quot;(b)&quot;,  &quot;(b) (1)&quot;, 0)\n                    strC_ = str.replace(strC, &quot;(c)&quot;,  &quot;(c) (2)&quot;, 0)\n                    getEW1.bB.set_text(strB_)\n                    getEW1.bC.set_text(strC_)\n            \/\/        \n            \/\/ &ndash;&ndash;&ndash;[ check if fib limits are broken ]&ndash;&ndash;&ndash;\n            getP_854 = nFibL.wave1_0_854.get_y1()\n            for i = 0 to bar_index - nFibL.wave1_0_854.get_x1()\n                if getEW.dir == -1\n                    if high[i] &gt; getP_854\n                        nFibL._break_ := true\n                        break\n                else\n                    if low [i] &lt; getP_854\n                        nFibL._break_ := true\n                        break  \n            \/\/&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;&ndash;\n            switch nFibL._break_\n                true  =&gt; nFibL.sol_dot(&#039;dot&#039;, color.new(color.red , 95))\n                false =&gt; nFibL.sol_dot(&#039;sol&#039;, color.new(color.lime, 95))\n                =&gt; \n                    nFibL.wave1_0_500.set_xy1(na, na)\n                    nFibL.wave1_0_500.set_xy2(na, na)\n                    nFibL.wave1_0_618.set_xy1(na, na)\n                    nFibL.wave1_0_618.set_xy2(na, na)\n                    nFibL.wave1_0_764.set_xy1(na, na)\n                    nFibL.wave1_0_764.set_xy2(na, na)\n                    nFibL.wave1_0_854.set_xy1(na, na)\n                    nFibL.wave1_0_854.set_xy2(na, na)\n                    nFibL.wave1_pole_.set_xy1(na, na)\n                    nFibL.wave1_pole_.set_xy2(na, na)\n                    nFibL.l_fill_.set_color(color(na))\n\n        if aEW.size() &gt; 15 \n            pop = aEW.pop()\n            pop.l1.delete(), pop.b1.delete()\n            pop.l2.delete(), pop.b2.delete()\n            pop.l3.delete(), pop.b3.delete()\n            pop.l4.delete(), pop.b4.delete()\n            pop.l5.delete(), pop.b5.delete()\n            pop.lA.delete(), pop.bA.delete()\n            pop.lB.delete(), pop.bB.delete()\n            pop.lC.delete(), pop.bC.delete()\n            pop.lb.delete(), pop.bx.delete()\n        \/\/----------------------------------\n\n\/\/-----------------------------------------------------------------------------}\n\/\/Plots\n\/\/-----------------------------------------------------------------------------{\ndraw(s1, len1, col1, 0)\ndraw(s2, len2, col2, 1)\ndraw(s3, len3, col3, 2)\n\n\/\/-----------------------------------------------------------------------------}<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_78ec6ea3 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/members.1uptick.com\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_78ec6ea3();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_78ec6ea3 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n        <\/div>\n    <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>\u4ea4\u6613\u6642\u6bb5 (\u521d\u968e) \u6bcf\u65e5\u6700\u9ad8\/\u6700\u4f4e\u4f4d\u51fa\u73fe\u6642\u9593 (\u521d\u968e) \u5716\u8868\u963b\u529b\u3001\u652f\u6301 (\u521d\u968e) COT CFTC \u5831\u544a (\u521d [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-9684","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/members.1uptick.com\/th\/wp-json\/wp\/v2\/pages\/9684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/members.1uptick.com\/th\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/members.1uptick.com\/th\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/members.1uptick.com\/th\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/members.1uptick.com\/th\/wp-json\/wp\/v2\/comments?post=9684"}],"version-history":[{"count":4,"href":"https:\/\/members.1uptick.com\/th\/wp-json\/wp\/v2\/pages\/9684\/revisions"}],"predecessor-version":[{"id":12485,"href":"https:\/\/members.1uptick.com\/th\/wp-json\/wp\/v2\/pages\/9684\/revisions\/12485"}],"wp:attachment":[{"href":"https:\/\/members.1uptick.com\/th\/wp-json\/wp\/v2\/media?parent=9684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}