{"id":485,"date":"2025-07-24T22:23:37","date_gmt":"2025-07-24T19:23:37","guid":{"rendered":"https:\/\/sonotrader.net\/?p=485"},"modified":"2025-07-26T18:56:01","modified_gmt":"2025-07-26T15:56:01","slug":"%d9%85%d8%a4%d8%b4%d8%b1-algox","status":"publish","type":"post","link":"https:\/\/sonotrader.net\/?p=485","title":{"rendered":"\u0645\u0624\u0634\u0631 ALGoX"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"675\" src=\"https:\/\/sonotrader.net\/wp-content\/uploads\/2025\/07\/\u200f\u0644\u0642\u0637\u0629-\u0627\u0644\u0634\u0627\u0634\u0629-1447-01-29-\u0641\u064a-10.22.43-\u0645-1024x675.png\" alt=\"\" class=\"wp-image-487\" srcset=\"https:\/\/sonotrader.net\/wp-content\/uploads\/2025\/07\/\u200f\u0644\u0642\u0637\u0629-\u0627\u0644\u0634\u0627\u0634\u0629-1447-01-29-\u0641\u064a-10.22.43-\u0645-1024x675.png 1024w, https:\/\/sonotrader.net\/wp-content\/uploads\/2025\/07\/\u200f\u0644\u0642\u0637\u0629-\u0627\u0644\u0634\u0627\u0634\u0629-1447-01-29-\u0641\u064a-10.22.43-\u0645-300x198.png 300w, https:\/\/sonotrader.net\/wp-content\/uploads\/2025\/07\/\u200f\u0644\u0642\u0637\u0629-\u0627\u0644\u0634\u0627\u0634\u0629-1447-01-29-\u0641\u064a-10.22.43-\u0645-768x506.png 768w, https:\/\/sonotrader.net\/wp-content\/uploads\/2025\/07\/\u200f\u0644\u0642\u0637\u0629-\u0627\u0644\u0634\u0627\u0634\u0629-1447-01-29-\u0641\u064a-10.22.43-\u0645-1536x1012.png 1536w, https:\/\/sonotrader.net\/wp-content\/uploads\/2025\/07\/\u200f\u0644\u0642\u0637\u0629-\u0627\u0644\u0634\u0627\u0634\u0629-1447-01-29-\u0641\u064a-10.22.43-\u0645-2048x1349.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u0645\u0627 \u0647\u0648 \u0645\u0624\u0634\u0631 ALGoX\u061f<\/h1>\n\n\n\n<p>\u0647\u0648 \u0645\u0624\u0634\u0631 \u0645\u062e\u0635\u0635 \u0644\u0645\u0646\u0635\u0629 TradingView\u060c \u064a\u0647\u062f\u0641 \u0625\u0644\u0649 \u062a\u0648\u0644\u064a\u062f \u0625\u0634\u0627\u0631\u0627\u062a \u0628\u064a\u0639 \u0648\u0634\u0631\u0627\u0621 \u062f\u0642\u064a\u0642\u0629 \u0628\u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f \u0639\u0644\u0649 \u062a\u0642\u0627\u0637\u0639 \u0645\u062a\u0648\u0633\u0637\u0627\u062a \u0645\u062a\u062d\u0631\u0643\u0629 \u0645\u062d\u0633\u0651\u0646\u0629 \u0645\u062b\u0644 ALMA \u0648LSMA \u0648EMA \u0648WMA\u060c \u0645\u0639 \u0625\u0645\u0643\u0627\u0646\u064a\u0629 \u062a\u0641\u0639\u064a\u0644 \u0625\u0634\u0627\u0631\u0627\u062a \u0634\u0645\u0648\u0639 Heikin Ashi \u0648\u062a\u0644\u0648\u064a\u0646 \u0627\u0644\u0634\u0645\u0648\u0639 \u0644\u062a\u0648\u0636\u064a\u062d \u0627\u0644\u0627\u062a\u062c\u0627\u0647. \u064a\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u0645\u0624\u0634\u0631 \u0639\u0627\u062f\u0629 \u0641\u064a \u0627\u0644\u062a\u062f\u0627\u0648\u0644 \u0642\u0635\u064a\u0631 \u0627\u0644\u0645\u062f\u0649 \u0645\u062b\u0644 \u0627\u0644\u0633\u0643\u0627\u0644\u0628\u064a\u0646\u063a\u060c \u0644\u0643\u0646\u0647 \u0645\u0631\u0646 \u0648\u064a\u0635\u0644\u062d \u0623\u064a\u0636\u064b\u0627 \u0644\u0644\u0641\u0631\u064a\u0645\u0627\u062a \u0627\u0644\u0645\u062a\u0648\u0633\u0637\u0629 \u0648\u0627\u0644\u0637\u0648\u064a\u0644\u0629.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0643\u0648\u0646\u0627\u062a \u0627\u0644\u0645\u0624\u0634\u0631 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629:<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u0646\u0648\u0639 \u0627\u0644\u0645\u062a\u0648\u0633\u0637 \u0627\u0644\u0645\u062a\u062d\u0631\u0643 (MA Type):<\/strong>\n<ul class=\"wp-block-list\">\n<li>ALMA: \u0645\u062a\u0648\u0633\u0637 \u0645\u0648\u0632\u0648\u0646 \u0628\u0627\u0644\u0627\u0646\u062d\u0631\u0627\u0641 \u0627\u0644\u0642\u064a\u0627\u0633\u064a\u060c \u064a\u0641\u0644\u062a\u0631 \u0627\u0644\u0636\u062c\u064a\u062c \u0648\u064a\u0642\u0644\u0644 \u0627\u0644\u062a\u0623\u062e\u064a\u0631.<\/li>\n\n\n\n<li>EMA: \u0645\u062a\u0648\u0633\u0637 \u0623\u0633\u064a \u0633\u0631\u064a\u0639 \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629\u060c \u0645\u062b\u0627\u0644\u064a \u0644\u0644\u0623\u0633\u0648\u0627\u0642 \u0627\u0644\u0645\u062a\u0642\u0644\u0628\u0629.<\/li>\n\n\n\n<li>WMA: \u0645\u062a\u0648\u0633\u0637 \u0645\u0648\u0632\u0648\u0646 \u064a\u0639\u0637\u064a \u0623\u0648\u0644\u0648\u064a\u0629 \u0644\u0644\u0623\u0633\u0639\u0627\u0631 \u0627\u0644\u062d\u062f\u064a\u062b\u0629.<\/li>\n\n\n\n<li>LSMA: \u0645\u062a\u0648\u0633\u0637 \u064a\u0639\u062a\u0645\u062f \u0639\u0644\u0649 \u0627\u0644\u0627\u0646\u062d\u062f\u0627\u0631 \u0627\u0644\u062e\u0637\u064a\u060c \u062c\u064a\u062f \u0644\u0631\u0635\u062f \u0627\u0644\u0632\u062e\u0645.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u0627\u0644\u0641\u062a\u0631\u0629 \u0627\u0644\u0632\u0645\u0646\u064a\u0629 \u0644\u0644\u0645\u062a\u0648\u0633\u0637 (MA Period):<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u062a\u062d\u062f\u062f \u0645\u062f\u0649 \u0633\u0631\u0639\u0629 \u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u0627\u0644\u0645\u0624\u0634\u0631. \u0627\u0644\u0642\u064a\u0645 \u0627\u0644\u0635\u063a\u064a\u0631\u0629 \u062a\u0639\u0637\u064a \u0625\u0634\u0627\u0631\u0627\u062a \u0623\u0633\u0631\u0639\u060c \u0648\u0644\u0643\u0646\u0647\u0627 \u0623\u0643\u062b\u0631 \u0639\u0631\u0636\u0629 \u0644\u0644\u0625\u0634\u0627\u0631\u0627\u062a \u0627\u0644\u0643\u0627\u0630\u0628\u0629.<\/li>\n\n\n\n<li>\u0627\u0644\u0642\u064a\u0645 \u0627\u0644\u0623\u0643\u0628\u0631 \u062a\u0632\u064a\u062f \u0645\u0646 \u062a\u0623\u062e\u064a\u0631 \u0627\u0644\u0625\u0634\u0627\u0631\u0629 \u0648\u0644\u0643\u0646 \u062a\u0639\u0637\u064a \u0645\u0648\u062b\u0648\u0642\u064a\u0629 \u0623\u0643\u0628\u0631.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u0627\u0644\u0625\u0632\u0627\u062d\u0629 \u0648\u0627\u0644\u0627\u0646\u062d\u0631\u0627\u0641 (Offset &amp; Sigma) \u2013 \u062e\u0627\u0635 \u0628\u0640 ALMA:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Offset: \u064a\u062a\u062d\u0643\u0645 \u0628\u0645\u0648\u0642\u0639 \u0627\u0644\u0645\u062a\u0648\u0633\u0637 \u062f\u0627\u062e\u0644 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a. \u0627\u0644\u0642\u064a\u0645 \u0627\u0644\u0623\u0642\u0631\u0628 \u0625\u0644\u0649 1 \u062a\u062c\u0639\u0644 \u0627\u0644\u0625\u0634\u0627\u0631\u0629 \u0623\u0643\u062b\u0631 \u062a\u0623\u062e\u0631\u064b\u0627 \u0648\u0633\u0644\u0627\u0633\u0629.<\/li>\n\n\n\n<li>Sigma: \u064a\u062a\u062d\u0643\u0645 \u0628\u062f\u0631\u062c\u0629 \u0627\u0644\u062a\u0646\u0639\u064a\u0645 (Smoothness). \u0627\u0644\u0642\u064a\u0645 \u0627\u0644\u0623\u0639\u0644\u0649 \u062a\u0639\u0646\u064a \u062e\u0637\u0648\u0637 \u0623\u0643\u062b\u0631 \u0633\u0644\u0627\u0633\u0629.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u0627\u0644\u062e\u064a\u0627\u0631\u0627\u062a \u0627\u0644\u0625\u0636\u0627\u0641\u064a\u0629:<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u062a\u0641\u0639\u064a\u0644 \u0625\u0634\u0627\u0631\u0627\u062a \u0627\u0644\u0634\u0631\u0627\u0621 \u0648\u0627\u0644\u0628\u064a\u0639 (Buy\/Sell Signals).<\/li>\n\n\n\n<li>\u062a\u0644\u0648\u064a\u0646 \u0627\u0644\u0634\u0645\u0648\u0639 \u062d\u0633\u0628 \u0627\u0644\u0627\u062a\u062c\u0627\u0647 (Coloured Bars).<\/li>\n\n\n\n<li>\u062a\u0641\u0639\u064a\u0644 \u0625\u0634\u0627\u0631\u0627\u062a Heikin Ashi \u0644\u0645\u0632\u064a\u062f \u0645\u0646 \u0627\u0644\u0646\u0642\u0627\u0621 \u0627\u0644\u0628\u0635\u0631\u064a \u0639\u0644\u0649 \u0627\u0644\u0641\u0631\u064a\u0645\u0627\u062a \u0627\u0644\u0623\u0639\u0644\u0649.<\/li>\n\n\n\n<li>\u0625\u0634\u0627\u0631\u0627\u062a \u0628\u062f\u064a\u0644\u0629 (Alternate Signals) \u0644\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0627\u0646\u0639\u0643\u0627\u0633\u0627\u062a \u0627\u0644\u0645\u0628\u0643\u0631\u0629.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u0643\u064a\u0641\u064a\u0629 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 ALGoX:<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u0627\u0644\u0633\u0643\u0627\u0644\u0628\u064a\u0646\u063a (1m \u2013 5m):<\/strong><br>\u064a\u062a\u0645 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0633\u0631\u064a\u0639\u0629 \u062c\u062f\u064b\u0627\u060c \u0648\u062a\u064f\u0641\u0636\u0644 \u0645\u0639 \u0627\u0644\u0623\u0633\u0648\u0627\u0642 \u0630\u0627\u062a \u0627\u0644\u062d\u0631\u0643\u0629 \u0627\u0644\u0646\u0634\u0637\u0629 \u0643\u0640 \u0627\u0644\u0630\u0647\u0628 \u0648\u0627\u0644\u0640 SPX500.\n<ul class=\"wp-block-list\">\n<li>\u064a\u0641\u0636\u0644 ALMA \u0623\u0648 EMA \u0628\u0641\u062a\u0631\u0629 10\u201314.<\/li>\n\n\n\n<li>\u062a\u0641\u0639\u064a\u0644 \u0627\u0644\u0625\u0634\u0627\u0631\u0627\u062a \u0627\u0644\u0628\u062f\u064a\u0644\u0629 \u0648\u062a\u0644\u0648\u064a\u0646 \u0627\u0644\u0634\u0645\u0648\u0639 \u0636\u0631\u0648\u0631\u064a \u0644\u0644\u062a\u0641\u0627\u0639\u0644 \u0627\u0644\u0633\u0631\u064a\u0639.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u0627\u0644\u062a\u062f\u0627\u0648\u0644 \u0627\u0644\u064a\u0648\u0645\u064a (15m \u2013 1h):<\/strong><br>\u064a\u0645\u0643\u0646 \u0632\u064a\u0627\u062f\u0629 \u0641\u062a\u0631\u0629 \u0627\u0644\u0645\u062a\u0648\u0633\u0637 \u0644\u0640 20\u201350.\n<ul class=\"wp-block-list\">\n<li>\u062a\u0641\u0639\u064a\u0644 Heikin Ashi \u0627\u062e\u062a\u064a\u0627\u0631\u064a \u062d\u0633\u0628 \u0646\u0645\u0637\u0643.<\/li>\n\n\n\n<li>\u062f\u0645\u062c \u0627\u0644\u0645\u0624\u0634\u0631 \u0645\u0639 \u0645\u0633\u062a\u0648\u064a\u0627\u062a \u062f\u0639\u0645 \u0648\u0645\u0642\u0627\u0648\u0645\u0629 \u064a\u0639\u0637\u064a \u0625\u0634\u0627\u0631\u0627\u062a \u0623\u062f\u0642.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u0627\u0644\u062a\u062f\u0627\u0648\u0644 \u0645\u062a\u0648\u0633\u0637 \u2013 \u0637\u0648\u064a\u0644 \u0627\u0644\u0645\u062f\u0649 (4h \u2013 Daily):<\/strong><br>\u062a\u0633\u062a\u062e\u062f\u0645 \u0641\u062a\u0631\u0627\u062a \u0623\u0637\u0648\u0644 \u0645\u062b\u0644 100\u2013200 \u0645\u0639 EMA \u0623\u0648 ALMA.\n<ul class=\"wp-block-list\">\n<li>\u064a\u0641\u0636\u0644 \u062a\u0641\u0639\u064a\u0644 \u0634\u0645\u0648\u0639 Heikin Ashi \u0644\u062a\u062d\u0633\u064a\u0646 \u062a\u0635\u0641\u064a\u0629 \u0627\u0644\u0625\u0634\u0627\u0631\u0627\u062a.<\/li>\n\n\n\n<li>\u0627\u0644\u0645\u0624\u0634\u0631 \u064a\u0643\u0648\u0646 \u0645\u0631\u062c\u0639\u064a\u064b\u0627 \u0648\u0644\u064a\u0633 \u062a\u0646\u0641\u064a\u0630 \u0645\u0628\u0627\u0634\u0631.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u062c\u062f\u0648\u0644 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0645\u0642\u062a\u0631\u062d\u0629 \u062d\u0633\u0628 \u0627\u0644\u0633\u0648\u0642 \u0648\u0627\u0644\u0641\u0631\u064a\u0645:<\/h2>\n\n\n\n<figure class=\"wp-block-table alignwide\"><table class=\"has-fixed-layout\"><thead><tr><th>\u0627\u0644\u0623\u0635\u0644<\/th><th>\u0627\u0644\u0641\u0631\u064a\u0645 \u0627\u0644\u0632\u0645\u0646\u064a<\/th><th>\u0646\u0648\u0639 MA<\/th><th>\u0641\u062a\u0631\u0629 MA<\/th><th>Offset (ALMA)<\/th><th>Sigma (ALMA)<\/th><th>Heikin Ashi<\/th><th>Alternate Signals<\/th><th>\u0645\u0644\u0627\u062d\u0638\u0627\u062a<\/th><\/tr><\/thead><tbody><tr><td>\u0627\u0644\u0630\u0647\u0628 (XAUUSD)<\/td><td>1 \u062f\u0642\u064a\u0642\u0629<\/td><td>ALMA<\/td><td>10<\/td><td>0.85<\/td><td>6<\/td><td>\u0644\u0627<\/td><td>\u0646\u0639\u0645<\/td><td>\u0645\u0646\u0627\u0633\u0628 \u0644\u0644\u0633\u0643\u0627\u0644\u0628\u064a\u0646\u063a \u0627\u0644\u0633\u0631\u064a\u0639<\/td><\/tr><tr><td>SPX500<\/td><td>1 \u062f\u0642\u064a\u0642\u0629<\/td><td>ALMA<\/td><td>14<\/td><td>0.85<\/td><td>6<\/td><td>\u0644\u0627<\/td><td>\u0646\u0639\u0645<\/td><td>\u0633\u0643\u0627\u0644\u0628 \u0633\u0631\u064a\u0639 \u0648\u062d\u0627\u062f<\/td><\/tr><tr><td>\u0627\u0644\u0639\u0645\u0644\u0627\u062a \u0627\u0644\u0631\u0642\u0645\u064a\u0629 (BTC\/ETH)<\/td><td>1 \u062f\u0642\u064a\u0642\u0629<\/td><td>EMA<\/td><td>9<\/td><td>\u2014<\/td><td>\u2014<\/td><td>\u0644\u0627<\/td><td>\u0646\u0639\u0645<\/td><td>\u062a\u0642\u0644\u0628\u0627\u062a \u0639\u0627\u0644\u064a\u0629<\/td><\/tr><tr><td>\u0627\u0644\u0641\u0648\u0631\u0643\u0633 (EURUSD)<\/td><td>5 \u062f\u0642\u0627\u0626\u0642<\/td><td>ALMA<\/td><td>14<\/td><td>0.85<\/td><td>6<\/td><td>\u0644\u0627<\/td><td>\u0646\u0639\u0645<\/td><td>\u0623\u0643\u062b\u0631 \u0627\u0633\u062a\u0642\u0631\u0627\u0631\u064b\u0627<\/td><\/tr><tr><td>\u0627\u0644\u0630\u0647\u0628<\/td><td>15 \u062f\u0642\u064a\u0642\u0629<\/td><td>ALMA<\/td><td>20<\/td><td>0.85<\/td><td>6<\/td><td>\u0646\u0639\u0645<\/td><td>\u0644\u0627<\/td><td>\u062a\u062f\u0627\u0648\u0644 \u064a\u0648\u0645\u064a \u0645\u062a\u0648\u0633\u0637<\/td><\/tr><tr><td>SPX500<\/td><td>1 \u0633\u0627\u0639\u0629<\/td><td>ALMA<\/td><td>50<\/td><td>0.90<\/td><td>6<\/td><td>\u0646\u0639\u0645<\/td><td>\u0644\u0627<\/td><td>\u062a\u0631\u0646\u062f\u0627\u062a \u0645\u0648\u062b\u0648\u0642\u0629<\/td><\/tr><tr><td>\u0627\u0644\u0641\u0648\u0631\u0643\u0633<\/td><td>4 \u0633\u0627\u0639\u0627\u062a<\/td><td>EMA<\/td><td>100<\/td><td>\u2014<\/td><td>\u2014<\/td><td>\u0646\u0639\u0645<\/td><td>\u0644\u0627<\/td><td>\u062a\u062d\u0644\u064a\u0644 \u0627\u0644\u0627\u062a\u062c\u0627\u0647 \u0627\u0644\u0639\u0627\u0645<\/td><\/tr><tr><td>\u0627\u0644\u0639\u0645\u0644\u0627\u062a \u0627\u0644\u0631\u0642\u0645\u064a\u0629<\/td><td>\u064a\u0648\u0645\u064a<\/td><td>EMA<\/td><td>200<\/td><td>\u2014<\/td><td>\u2014<\/td><td>\u0646\u0639\u0645<\/td><td>\u0644\u0627<\/td><td>\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u062a\u0631\u0646\u062f \u0637\u0648\u064a\u0644 \u0627\u0644\u0645\u062f\u0649<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u0646\u0635\u0627\u0626\u062d \u0645\u0647\u0645\u0629 \u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0645\u0624\u0634\u0631 ALGoX \u0628\u0641\u0639\u0627\u0644\u064a\u0629:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0644\u0627 \u062a\u0633\u062a\u062e\u062f\u0645 ALGoX \u0628\u0634\u0643\u0644 \u0645\u0646\u0641\u0635\u0644\u061b \u0623\u0636\u0641 \u0645\u0624\u0634\u0631\u0627\u062a \u062f\u0627\u0639\u0645\u0629 \u0645\u062b\u0644 RSI \u0623\u0648 MACD.<\/li>\n\n\n\n<li>\u0631\u0627\u0642\u0628 \u0627\u0644\u0623\u062e\u0628\u0627\u0631 \u0627\u0644\u0627\u0642\u062a\u0635\u0627\u062f\u064a\u0629 \u0644\u0623\u0646\u0647\u0627 \u0642\u062f \u062a\u062e\u0644\u0642 \u0625\u0634\u0627\u0631\u0627\u062a \u0643\u0627\u0630\u0628\u0629.<\/li>\n\n\n\n<li>\u0631\u0627\u0642\u0628 \u0627\u0644\u0641\u0631\u064a\u0645 \u0627\u0644\u0623\u0639\u0644\u0649 (\u0645\u062b\u0644 15m \u0639\u0646\u062f \u0627\u0633\u062a\u062e\u062f\u0627\u0645 1m) \u0644\u062a\u0623\u0643\u064a\u062f \u0627\u0644\u0627\u062a\u062c\u0627\u0647 \u0627\u0644\u0639\u0627\u0645.<\/li>\n\n\n\n<li>\u0644\u0627 \u062a\u064f\u0628\u0627\u0644\u063a \u0641\u064a \u0627\u0644\u062f\u062e\u0648\u0644 \u0641\u064a \u0643\u0644 \u0625\u0634\u0627\u0631\u0629\u061b \u0627\u0644\u062c\u0648\u062f\u0629 \u0623\u0647\u0645 \u0645\u0646 \u0627\u0644\u0643\u0645\u064a\u0629.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u0627\u0644\u062e\u0644\u0627\u0635\u0629:<\/h2>\n\n\n\n<p>\u064a\u064f\u0639\u062f \u0645\u0624\u0634\u0631 ALGoX \u0623\u062f\u0627\u0629 \u0645\u0631\u0646\u0629 \u0648\u0641\u0639\u0627\u0644\u0629 \u0644\u0644\u0633\u0643\u0627\u0644\u0628\u064a\u0646\u063a \u0648\u0627\u0644\u062a\u062f\u0627\u0648\u0644 \u0627\u0644\u0633\u0631\u064a\u0639 \u0625\u0630\u0627 \u062a\u0645 \u0636\u0628\u0637\u0647 \u0628\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0645\u0646\u0627\u0633\u0628\u0629 \u0644\u0643\u0644 \u0633\u0648\u0642 \u0648\u0641\u0631\u064a\u0645. \u064a\u064f\u0646\u0635\u062d \u0628\u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f \u0639\u0644\u064a\u0647 \u0643\u0645\u0633\u0627\u0639\u062f \u0630\u0643\u064a \u0644\u062a\u062d\u062f\u064a\u062f \u0628\u062f\u0627\u064a\u0629 \u0627\u0644\u0627\u062a\u062c\u0627\u0647\u060c \u0628\u0634\u0631\u0637 \u0648\u062c\u0648\u062f \u062e\u0637\u0629 \u0625\u062f\u0627\u0631\u0629 \u0645\u062e\u0627\u0637\u0631 \u062f\u0642\u064a\u0642\u0629 \u0648\u0639\u062f\u0645 \u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f \u0639\u0644\u064a\u0647 \u0643\u0625\u0634\u0627\u0631\u0629 \u062f\u062e\u0648\u0644 \u0648\u062e\u0631\u0648\u062c \u0648\u062d\u064a\u062f\u0629.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>\u0627\u0644\u0646\u0633\u062e\u0629 \u0627\u0644\u0645\u0637\u0648\u0631\u0629 \u0644\u0627\u064a\u0639\u064a\u062f \u0627\u0644\u0631\u0633\u0645<\/strong><\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-4aa96cba-1517-4d8c-8f48-fd5687623772\" href=\"https:\/\/sonotrader.net\/wp-content\/uploads\/2025\/07\/ALGOX-V6.1.24-NONREPAINT.txt\">ALGOX V6.1.24 NONREPAINT<\/a><a href=\"https:\/\/sonotrader.net\/wp-content\/uploads\/2025\/07\/ALGOX-V6.1.24-NONREPAINT.txt\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-4aa96cba-1517-4d8c-8f48-fd5687623772\">\u062a\u0646\u0632\u064a\u0644<\/a><\/div>\n\n\n\n<p>\u0627\u0630\u0627 \u0648\u0627\u062c\u0647\u062a\u0643 \u0645\u0634\u0627\u0643\u0644 \u0628\u0627\u0644\u0645\u0644\u0641 \u0627\u0646\u0633\u062e \u0627\u0644\u0643\u0648\u062f \u0627\u0644\u062a\u0627\u0644\u064a :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/@version=5\nVERSION  = ' V6.1.24'\nstrategy('ALGOX', shorttitle = 'ALGOX V6.1.24 NONREPAINT', overlay = true, explicit_plot_zorder = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, initial_capital = 20, default_qty_value = 20, calc_on_every_tick = false, process_orders_on_close = true) \n\nG_SCRIPT01   = '\u25a0 ' + 'SAIYAN OCC'\n\/\/#region \u2014\u2014\u2014\u2014 &lt;\u2193\u2193\u2193 G_SCRIPT01 \u2193\u2193\u2193> {\n\n\/\/ === INPUTS ===\nres                       = input.timeframe('1',  'TIMEFRAME', group =\"NON REPAINT\")\nuseRes                    = input(true,            'Use Alternate Signals')\nintRes                    = input(8,               'Multiplier for Alernate Signals')\nbasisType                 = input.string('ALMA',   'MA Type: ', options=&#91;'TEMA', 'HullMA', 'ALMA'])\nbasisLen                  = input.int(2,           'MA Period', minval=1)\noffsetSigma               = input.int(5,           'Offset for LSMA \/ Sigma for ALMA', minval=0)\noffsetALMA                = input.float(0.85,      'Offset for ALMA', minval=0, step=0.01)\nscolor                    = input(false,           'Show coloured Bars to indicate Trend?')\ndelayOffset               = input.int(0,           'Delay Open\/Close MA', minval=0, step=1,\n                  tooltip = 'Forces Non-Repainting')\ntradeType                 = input.string('BOTH',   'What trades should be taken : ',\n                  options = &#91;'LONG', 'SHORT', 'BOTH', 'NONE'])\n\/\/=== \/INPUTS ===\nh                         = input(false,           'Signals for Heikin Ashi Candles')\n\/\/INDICATOR SETTINGS\nswing_length              = input.int(10,          'Swing High\/Low Length', group = 'Settings', minval = 1, maxval = 50)\nhistory_of_demand_to_keep = input.int(20,          'History To Keep', minval = 5, maxval = 50)\nbox_width                 = input.float(2.5,       'Supply\/Demand Box Width', group = 'Settings', minval = 1, maxval = 10, step = 0.5)\n\n\/\/INDICATOR VISUAL SETTINGS\nshow_zigzag               = input.bool(false,      'Show Zig Zag', group = 'Visual Settings', inline = '1')\nshow_price_action_labels  = input.bool(false,      'Show Price Action Labels', group = 'Visual Settings', inline = '2')\n\nsupply_color              = input.color(#00000000, 'Supply', group = 'Visual Settings', inline = '3')\nsupply_outline_color      = input.color(#00000000, 'Outline', group = 'Visual Settings', inline = '3')\n\ndemand_color              = input.color(#00000000, 'Demand', group = 'Visual Settings', inline = '4')\ndemand_outline_color      = input.color(#00000000, 'Outline', group = 'Visual Settings', inline = '4')\n\nbos_label_color           = input.color(#00000000, 'BOS Label', group = 'Visual Settings', inline = '5')\npoi_label_color           = input.color(#00000000, 'POI Label', group = 'Visual Settings', inline = '7')\npoi_border_color          = input.color(#00000000, 'POI border', group = 'Visual Settings', inline = '7')\nswing_type_color          = input.color(#00000000, 'Price Action Label', group = 'Visual Settings', inline = '8')\nzigzag_color              = input.color(#00000000, 'Zig Zag', group = 'Visual Settings', inline = '9')\n\n\/\/END SETTINGS\n\n\n\/\/      FUNCTION TO ADD NEW AND REMOVE LAST IN ARRAY\nf_array_add_pop(array, new_value_to_add) =>\n    array.unshift(array, new_value_to_add)\n    array.pop(array)\n\n\/\/      FUNCTION SWING H &amp; L LABELS\nf_sh_sl_labels(array, swing_type) =>\n\n    var string label_text = na\n    if swing_type == 1\n        if array.get(array, 0) >= array.get(array, 1)\n            label_text := 'HH'\n        else\n            label_text := 'LH'\n        label.new(\n          bar_index - swing_length,\n          array.get(array,0),\n          text = label_text,\n          style = label.style_label_down,\n          textcolor = swing_type_color,\n          color = swing_type_color,\n          size = size.tiny)\n    \n    else if swing_type == -1\n        if array.get(array, 0) >= array.get(array, 1)\n            label_text := 'HL'\n        else\n            label_text := 'LL'\n        label.new(\n          bar_index - swing_length,\n          array.get(array,0),\n          text = label_text,\n          style = label.style_label_up,\n          textcolor = swing_type_color,\n          color = swing_type_color,\n          size = size.tiny)\n\n\/\/      FUNCTION MAKE SURE SUPPLY ISNT OVERLAPPING\nf_check_overlapping(new_poi, box_array, atrValue) =>\n\n    atr_threshold = atrValue * 2\n    okay_to_draw = true\n\n    for i = 0 to array.size(box_array) - 1\n        top = box.get_top(array.get(box_array, i))\n        bottom = box.get_bottom(array.get(box_array, i))\n        poi = (top + bottom) \/ 2\n\n        upper_boundary = poi + atr_threshold\n        lower_boundary = poi - atr_threshold\n\n        if new_poi >= lower_boundary and new_poi &lt;= upper_boundary\n            okay_to_draw := false\n            break\n        else \n            okay_to_draw := true\n    okay_to_draw\n\n\n\/\/      FUNCTION TO DRAW SUPPLY OR DEMAND ZONE\nf_supply_demand(value_array, bn_array, box_array, label_array, box_type, atrValue) =>\n    atr_buffer = atrValue * (box_width \/ 10)\n    box_left   = array.get(bn_array, 0)\n    box_right  = bar_index\n    var float box_top = 0.00\n    var float box_bottom = 0.00\n    var float poi = 0.00\n    if box_type == 1\n        box_top := array.get(value_array, 0)\n        box_bottom := box_top - atr_buffer\n        poi := (box_top + box_bottom) \/ 2\n    else if box_type == -1\n        box_bottom := array.get(value_array, 0)\n        box_top := box_bottom + atr_buffer\n        poi := (box_top + box_bottom) \/ 2\n    okay_to_draw = f_check_overlapping(poi, box_array, atrValue)\n    \/\/ okay_to_draw = true\n    \/\/delete oldest box, and then create a new box and add it to the array\n    if box_type == 1 and okay_to_draw\n        box.delete( array.get(box_array, array.size(box_array) - 1) )\n        f_array_add_pop(box_array, box.new( left = box_left, top = box_top, right = box_right, bottom = box_bottom, border_color = supply_outline_color,\n             bgcolor = supply_color, extend = extend.right, text = 'SUPPLY', text_halign = text.align_center, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))\n        \n        box.delete( array.get(label_array, array.size(label_array) - 1) )\n        f_array_add_pop(label_array, box.new( left = box_left, top = poi, right = box_right, bottom = poi, border_color = poi_border_color,\n             bgcolor = poi_border_color, extend = extend.right, text = 'POI', text_halign = text.align_left, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))\n    else if box_type == -1 and okay_to_draw\n        box.delete( array.get(box_array, array.size(box_array) - 1) )\n        f_array_add_pop(box_array, box.new( left = box_left, top = box_top, right = box_right, bottom = box_bottom, border_color = demand_outline_color,\n             bgcolor = demand_color, extend = extend.right,  text = 'DEMAND', text_halign = text.align_center, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))\n        \n        box.delete( array.get(label_array, array.size(label_array) - 1) )\n        f_array_add_pop(label_array, box.new( left = box_left, top = poi, right = box_right, bottom = poi, border_color = poi_border_color,\n             bgcolor = poi_border_color, extend = extend.right,  text = 'POI', text_halign = text.align_left, text_valign = text.align_center, text_color = poi_label_color, text_size = size.small, xloc = xloc.bar_index))\n\n\n\/\/      FUNCTION TO CHANGE SUPPLY\/DEMAND TO A BOS IF BROKEN\nf_sd_to_bos(box_array, bos_array, label_array, zone_type) =>\n\n    if zone_type == 1\n        for i = 0 to array.size(box_array) - 1\n            level_to_break = box.get_top(array.get(box_array,i))\n            \/\/ if ta.crossover(close, level_to_break)\n            if close >= level_to_break\n                copied_box = box.copy(array.get(box_array,i))\n                f_array_add_pop(bos_array, copied_box)\n                mid = (box.get_top(array.get(box_array,i)) + box.get_bottom(array.get(box_array,i))) \/ 2\n                box.set_top(array.get(bos_array,0), mid)\n                box.set_bottom(array.get(bos_array,0), mid)\n                box.set_extend( array.get(bos_array,0), extend.none)\n                box.set_right( array.get(bos_array,0), bar_index)\n                box.set_text( array.get(bos_array,0), 'BOS' )\n                box.set_text_color( array.get(bos_array,0), bos_label_color)\n                box.set_text_size( array.get(bos_array,0), size.small)\n                box.set_text_halign( array.get(bos_array,0), text.align_center)\n                box.set_text_valign( array.get(bos_array,0), text.align_center)\n                box.delete(array.get(box_array, i))\n                box.delete(array.get(label_array, i))\n\n\n    if zone_type == -1\n        for i = 0 to array.size(box_array) - 1\n            level_to_break = box.get_bottom(array.get(box_array,i))\n            \/\/ if ta.crossunder(close, level_to_break)\n            if close &lt;= level_to_break\n                copied_box = box.copy(array.get(box_array,i))\n                f_array_add_pop(bos_array, copied_box)\n                mid = (box.get_top(array.get(box_array,i)) + box.get_bottom(array.get(box_array,i))) \/ 2\n                box.set_top(array.get(bos_array,0), mid)\n                box.set_bottom(array.get(bos_array,0), mid)\n                box.set_extend( array.get(bos_array,0), extend.none)\n                box.set_right( array.get(bos_array,0), bar_index)\n                box.set_text( array.get(bos_array,0), 'BOS' )\n                box.set_text_color( array.get(bos_array,0), bos_label_color)\n                box.set_text_size( array.get(bos_array,0), size.small)\n                box.set_text_halign( array.get(bos_array,0), text.align_center)\n                box.set_text_valign( array.get(bos_array,0), text.align_center)\n                box.delete(array.get(box_array, i))\n                box.delete(array.get(label_array, i))\n\n\n\n\/\/      FUNCTION MANAGE CURRENT BOXES BY CHANGING ENDPOINT\nf_extend_box_endpoint(box_array) =>\n\n    for i = 0 to array.size(box_array) - 1\n        box.set_right(array.get(box_array, i), bar_index + 100)\n\n\n\/\/\n\/\/END FUNCTIONS\n\/\/  \n\n\n\/\/\n\/\/CALCULATIONS\n\/\/\nstratRes = timeframe.ismonthly  ? str.tostring(timeframe.multiplier * intRes, '###M') :\n           timeframe.isweekly   ? str.tostring(timeframe.multiplier * intRes, '###W') :\n           timeframe.isdaily    ? str.tostring(timeframe.multiplier * intRes, '###D') :\n           timeframe.isintraday ? str.tostring(timeframe.multiplier * intRes, '####') :\n           '60'\nsrc      = h ? request.security(ticker.heikinashi(syminfo.tickerid),\n           timeframe.period, close, lookahead = barmerge.lookahead_off) : close\n\n\/\/      CALCULATE ATR \natrValue = ta.atr(50)\n\n\/\/      CALCULATE SWING HIGHS &amp; SWING LOWS\nswing_high = ta.pivothigh(high, swing_length, swing_length)\nswing_low  = ta.pivotlow(low,   swing_length, swing_length)\n\n\/\/      ARRAYS FOR SWING H\/L &amp; BN \nvar swing_high_values  = array.new_float(5,0.00)\nvar swing_low_values   = array.new_float(5,0.00)\n\nvar swing_high_bns     = array.new_int(5,0)\nvar swing_low_bns      = array.new_int(5,0)\n\n\/\/      ARRAYS FOR SUPPLY \/ DEMAND\nvar current_supply_box = array.new_box(history_of_demand_to_keep, na)\nvar current_demand_box = array.new_box(history_of_demand_to_keep, na)\n\n\/\/      ARRAYS FOR SUPPLY \/ DEMAND POI LABELS\nvar current_supply_poi = array.new_box(history_of_demand_to_keep, na)\nvar current_demand_poi = array.new_box(history_of_demand_to_keep, na)\n\n\/\/      ARRAYS FOR BOS\nvar supply_bos         = array.new_box(5, na)\nvar demand_bos         = array.new_box(5, na)\n\/\/\n\/\/END CALCULATIONS\n\/\/\n\n\/\/      NEW SWING HIGH\nif not na(swing_high)\n\n    \/\/MANAGE SWING HIGH VALUES\n    f_array_add_pop(swing_high_values, swing_high)\n    f_array_add_pop(swing_high_bns, bar_index&#91;swing_length])\n    if show_price_action_labels\n        f_sh_sl_labels(swing_high_values, 1)\n\n    f_supply_demand(swing_high_values, swing_high_bns, current_supply_box, current_supply_poi, 1, atrValue)\n\n\/\/      NEW SWING LOW\nelse if not na(swing_low)\n\n    \/\/MANAGE SWING LOW VALUES\n    f_array_add_pop(swing_low_values, swing_low)\n    f_array_add_pop(swing_low_bns, bar_index&#91;swing_length])\n    if show_price_action_labels\n        f_sh_sl_labels(swing_low_values, -1)\n    \n    f_supply_demand(swing_low_values, swing_low_bns, current_demand_box, current_demand_poi, -1, atrValue)\n\n\nf_sd_to_bos(current_supply_box, supply_bos, current_supply_poi, 1)\nf_sd_to_bos(current_demand_box, demand_bos, current_demand_poi, -1)\n\nf_extend_box_endpoint(current_supply_box)\nf_extend_box_endpoint(current_demand_box)\n\n\/\/ if barstate.islast\n    \/\/ label.new(x = bar_index + 10, y = close&#91;1], text = str.tostring( array.size(current_supply_poi) ))\n\/\/     label.new(x = bar_index + 20, y = close&#91;1], text = str.tostring( box.get_bottom( array.get(current_supply_box, 0))))\n\/\/     label.new(x = bar_index + 30, y = close&#91;1], text = str.tostring( box.get_bottom( array.get(current_supply_box, 1))))\n\/\/     label.new(x = bar_index + 40, y = close&#91;1], text = str.tostring( box.get_bottom( array.get(current_supply_box, 2))))\n\/\/     label.new(x = bar_index + 50, y = close&#91;1], text = str.tostring( box.get_bottom( array.get(current_supply_box, 3))))\n\/\/     label.new(x = bar_index + 60, y = close&#91;1], text = str.tostring( box.get_bottom( array.get(current_supply_box, 4))))\n\n\/\/ Get user input\n\nchannelBal     = input.bool(false, \"Channel Balance\", group = \"CHART\")\n\n\n\n\/\/ \/\/ Functions\n\/\/ supertrend(_src, factor, atrLen) =>\n    \/\/ atr = ta.atr(atrLen)\n    \/\/ upperBand = _src + factor * atr\n    \/\/ lowerBand = _src - factor * atr\n    \/\/ prevLowerBand = nz(lowerBand&#91;1])\n    \/\/ prevUpperBand = nz(upperBand&#91;1])\n    \/\/ lowerBand := lowerBand > prevLowerBand or close&#91;1] &lt; prevLowerBand ? lowerBand : prevLowerBand\n    \/\/ upperBand := upperBand &lt; prevUpperBand or close&#91;1] > prevUpperBand ? upperBand : prevUpperBand\n    \/\/ int direction = na\n    \/\/ float superTrend = na\n    \/\/ prevSuperTrend = superTrend&#91;1]\n    \/\/ if na(atr&#91;1])\n        \/\/ direction := 1\n    \/\/ else if prevSuperTrend == prevUpperBand\n        \/\/ direction := close > upperBand ? -1 : 1\n    \/\/ else\n        \/\/ direction := close &lt; lowerBand ? 1 : -1\n    \/\/ superTrend := direction == -1 ? lowerBand : upperBand\n    \/\/ &#91;superTrend, direction]\nlr_slope(_src, _len) =>\n    x = 0.0, y = 0.0, x2 = 0.0, xy = 0.0\n    for i = 0 to _len - 1\n        val = _src&#91;i]\n        per = i + 1\n        x += per\n        y += val\n        x2 += per * per\n        xy += val * per\n    _slp = (_len * xy - x * y) \/ (_len * x2 - x * x)\n    _avg = y \/ _len\n    _int = _avg - _slp * x \/ _len + _slp\n    &#91;_slp, _avg, _int]\nlr_dev(_src, _len, _slp, _avg, _int) =>\n    upDev = 0.0, dnDev = 0.0\n    val = _int\n    for j = 0 to _len - 1\n        price = high&#91;j] - val\n        if price > upDev\n            upDev := price\n        price := val - low&#91;j]\n        if price > dnDev\n            dnDev := price\n        price := _src&#91;j]\n        val += _slp\n    &#91;upDev, dnDev]\n\n\n\/\/ \/\/ Get Components\n\/\/ ocAvg       = math.avg(open, close)\n\/\/ sma1        = ta.sma(close, 5)\n\/\/ sma2        = ta.sma(close, 6)\n\/\/ sma3        = ta.sma(close, 7)\n\/\/ sma4        = ta.sma(close, 8)\n\/\/ sma5        = ta.sma(close, 9)\n\/\/ sma6        = ta.sma(close, 10)\n\/\/ sma7        = ta.sma(close, 11)\n\/\/ sma8        = ta.sma(close, 12)\n\/\/ sma9        = ta.sma(close, 13)\n\/\/ sma10       = ta.sma(close, 14)\n\/\/ sma11       = ta.sma(close, 15)\n\/\/ sma12       = ta.sma(close, 16)\n\/\/ sma13       = ta.sma(close, 17)\n\/\/ sma14       = ta.sma(close, 18)\n\/\/ sma15       = ta.sma(close, 19)\n\/\/ sma16       = ta.sma(close, 20)\n\/\/ psar        = ta.sar(0.02, 0.02, 0.2)\n&#91;_, upperKC1, lowerKC1] = ta.kc(close, 80, 10.5)\n&#91;_, upperKC2, lowerKC2] = ta.kc(close, 80, 9.5)\n&#91;_, upperKC3, lowerKC3] = ta.kc(close, 80, 8)\n&#91;_, upperKC4, lowerKC4] = ta.kc(close, 80, 3)\n\nbarsL          = 10\nbarsR          = 10\npivotHigh      = fixnan(ta.pivothigh(barsL, barsR)&#91;1])\npivotLow       = fixnan(ta.pivotlow(barsL, barsR)&#91;1])\nsource         = close, period = 150\n&#91;s, a, i]      = lr_slope(source, period)\n&#91;upDev, dnDev] = lr_dev(source, period, s, a, i)\n\n\/\/ \/\/ Colors\n\/\/ green       = #00d9ff, green2   = #00d9ff\n\/\/ red         = #ff0090, red2     = #ff0090\n\n\/\/ \/\/ Plots\n\/\/ k1 = plot(ta.ema(upperKC1, 50), \"k1\", na,             editable = false)\n\/\/ k2 = plot(ta.ema(upperKC2, 50), \"k2\", na,             editable = false)\n\/\/ k3 = plot(ta.ema(upperKC3, 50), \"k3\", na,             editable = false)\n\/\/ k4 = plot(ta.ema(upperKC4, 50), \"k4\", na,             editable = false)\n\/\/ k5 = plot(ta.ema(lowerKC4, 50), \"k5\", na,             editable = false)\n\/\/ k6 = plot(ta.ema(lowerKC3, 50), \"k6\", na,             editable = false)\n\/\/ k7 = plot(ta.ema(lowerKC2, 50), \"k7\", na,             editable = false)\n\/\/ k8 = plot(ta.ema(lowerKC1, 50), \"k8\", na,             editable = false)\n\/\/ fill(k1, k2, channelBal ? color.new(red2,   40) : na, editable = false)\n\/\/ fill(k2, k3, channelBal ? color.new(red2,   65) : na, editable = false)\n\/\/ fill(k3, k4, channelBal ? color.new(red2,   90) : na, editable = false)\n\/\/ fill(k5, k6, channelBal ? color.new(green2, 90) : na, editable = false)\n\/\/ fill(k6, k7, channelBal ? color.new(green2, 65) : na, editable = false)\n\/\/ fill(k7, k8, channelBal ? color.new(green2, 40) : na, editable = false)\n\ny1 = low  - (ta.atr(30) * 2), y1B = low  - ta.atr(30)\ny2 = high + (ta.atr(30) * 2), y2B = high + ta.atr(30)\nx1 = bar_index - period + 1, _y1 = i + s * (period - 1), x2 = bar_index, _y2 = i\n\n\/\/Functions\n\/\/Line Style function\nget_line_style(style) =>\n    out = switch style\n        '???'  => line.style_solid\n        '----' => line.style_dashed\n        '    ' => line.style_dotted\n\n\/\/Function to get order block coordinates\nget_coordinates(condition, top, btm, ob_val)=>\n    var ob_top  = array.new_float(0)\n    var ob_btm  = array.new_float(0)\n    var ob_avg  = array.new_float(0)\n    var ob_left = array.new_int(0)\n\n    float ob = na\n\n    \/\/Append coordinates to arrays\n    if condition\n        avg = math.avg(top, btm)\n        \n        array.unshift(ob_top, top)\n        array.unshift(ob_btm, btm)\n        array.unshift(ob_avg, avg)\n\n        \n        ob := ob_val\n    \n    &#91;ob_top, ob_btm, ob_avg, ob_left, ob]\n\n\/\/Function to remove mitigated order blocks from coordinate arrays\nremove_mitigated(ob_top, ob_btm, ob_left, ob_avg, target, bull)=>\n    mitigated = false\n    target_array = bull ? ob_btm : ob_top\n\n    for element in target_array\n        idx = array.indexof(target_array, element)\n\n        if (bull ? target &lt; element : target > element)\n            mitigated := true\n\n            array.remove(ob_top, idx)\n            array.remove(ob_btm, idx)\n            array.remove(ob_avg, idx)\n            array.remove(ob_left, idx)\n    \n    mitigated\n\n\/\/Function to set order blocks\nset_order_blocks(ob_top, ob_btm, ob_left, ob_avg, ext_last, bg_css, border_css, lvl_css)=>\n    var ob_box = array.new_box(0)\n    var ob_lvl = array.new_line(0)\n\n\/\/Global elements \nvar os = 0\nvar target_bull = 0.\nvar target_bear = 0.\n\n\/\/ \/\/ Constants colours that include fully non-transparent option.\n\/\/ green100   = #008000FF\n\/\/ lime100    = #00FF00FF\n\/\/ red100     = #FF0000FF\n\/\/ blue100    = #0000FFFF\n\/\/ aqua100    = #00FFFFFF\n\/\/ darkred100 = #8B0000FF\n\/\/ gray100    = #808080FF\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/ Create non-repainting security function\nrp_security(_symbol, _res, _src) =>\n    request.security(_symbol, _res, _src&#91;barstate.isrealtime ? 1 : 0])\n\nhtfHigh = rp_security(syminfo.tickerid, res, high)\nhtfLow  = rp_security(syminfo.tickerid, res, low)\n\n\/\/ Main Indicator\n\/\/ Functions\nsmoothrng(x, t, m) =>\n    wper = t * 2 - 1\n    avrng = ta.ema(math.abs(x - x&#91;1]), t)\n    smoothrng = ta.ema(avrng, wper) * m\nrngfilt(x, r) =>\n    rngfilt = x\n    rngfilt := x > nz(rngfilt&#91;1]) ? x - r &lt; nz(rngfilt&#91;1]) ? nz(rngfilt&#91;1]) : x - r : x + r > nz(rngfilt&#91;1]) ? nz(rngfilt&#91;1]) : x + r\npercWidth(len, perc) => (ta.highest(len) - ta.lowest(len)) * perc \/ 100\nsecurityNoRep(sym, res, src) => request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_off)\nswingPoints(prd) =>\n    pivHi = ta.pivothigh(prd, prd)\n    pivLo = ta.pivotlow (prd, prd)\n    last_pivHi = ta.valuewhen(pivHi, pivHi, 1)\n    last_pivLo = ta.valuewhen(pivLo, pivLo, 1)\n    hh = pivHi and pivHi > last_pivHi ? pivHi : na\n    lh = pivHi and pivHi &lt; last_pivHi ? pivHi : na\n    hl = pivLo and pivLo > last_pivLo ? pivLo : na\n    ll = pivLo and pivLo &lt; last_pivLo ? pivLo : na\n    &#91;hh, lh, hl, ll]\nf_chartTfInMinutes() =>\n    float _resInMinutes = timeframe.multiplier * (\n      timeframe.isseconds ? 1                   :\n      timeframe.isminutes ? 1.                  :\n      timeframe.isdaily   ? 60. * 24            :\n      timeframe.isweekly  ? 60. * 24 * 7        :\n      timeframe.ismonthly ? 60. * 24 * 30.4375  : na)\nf_kc(src, len, sensitivity) =>\n    basis = ta.sma(src, len)\n    span  = ta.atr(len)\n    &#91;basis + span * sensitivity, basis - span * sensitivity]\nwavetrend(src, chlLen, avgLen) =>\n    esa = ta.ema(src, chlLen)\n    d = ta.ema(math.abs(src - esa), chlLen)\n    ci = (src - esa) \/ (0.015 * d)\n    wt1 = ta.ema(ci, avgLen)\n    wt2 = ta.sma(wt1, 3)\n    &#91;wt1, wt2]\nf_top_fractal(_src) => _src&#91;4] &lt; _src&#91;2] and _src&#91;3] &lt; _src&#91;2] and _src&#91;2] > _src&#91;1] and _src&#91;2] > _src&#91;0]\nf_bot_fractal(_src) => _src&#91;4] > _src&#91;2] and _src&#91;3] > _src&#91;2] and _src&#91;2] &lt; _src&#91;1] and _src&#91;2] &lt; _src&#91;0]\ntop_fractal    = f_top_fractal(src)\nbot_fractal    = f_bot_fractal(src)\nf_fractalize (_src) => top_fractal ? 1 : bot_fractal ? -1 : 0\nf_findDivs(src, topLimit, botLimit) =>\n    fractalTop = f_fractalize(src) > 0 and src&#91;2] >= topLimit ? src&#91;2] : na\n    fractalBot = f_fractalize(src) &lt; 0 and src&#91;2] &lt;= botLimit ? src&#91;2] : na\n    highPrev   = ta.valuewhen(fractalTop, src&#91;2], 0)&#91;2]\n    highPrice  = ta.valuewhen(fractalTop, high&#91;2], 0)&#91;2]\n    lowPrev    = ta.valuewhen(fractalBot, src&#91;2], 0)&#91;2]\n    lowPrice   = ta.valuewhen(fractalBot, low&#91;2], 0)&#91;2]\n    bearSignal = fractalTop and high&#91;1] > highPrice and src&#91;1] &lt; highPrev\n    bullSignal = fractalBot and low&#91;1] &lt; lowPrice and src&#91;1] > lowPrev\n    &#91;bearSignal, bullSignal]\n    \/\/ Get user input\nenableSR   = input(false          , \"SR On\/Off\", group=\"SR\")\ncolorSup   = input(#00000000        , \"Support Color\", group=\"SR\")\ncolorRes   = input(#00000000        , \"Resistance Color\", group=\"SR\")\nstrengthSR = input.int(2          , \"S\/R Strength\", 1, group=\"SR\")\nlineStyle  = input.string(\"Dotted\", \"Line Style\", &#91;\"Solid\", \"Dotted\", \"Dashed\"], group=\"SR\")\nlineWidth  = input.int(2          , \"S\/R Line Width\", 1, group=\"SR\")\nuseZones   = input(true           , \"Zones On\/Off\", group=\"SR\")\nuseHLZones = input(true           , \"High Low Zones On\/Off\", group=\"SR\")\nzoneWidth  = input.int(2          , \"Zone Width %\", 0,\n   tooltip = \"it's calculated using % of the distance between highest\/lowest in last 300 bars\", group=\"SR\")\nexpandSR   = input(true           , \"Expand SR\")\n\/\/ Get components\nrb         = 10\nprd        = 284\nChannelW   = 10\nlabel_loc  = 55\nstyle      = lineStyle == \"Solid\"  ? line.style_solid  :\n             lineStyle == \"Dotted\" ? line.style_dotted : line.style_dashed\nph         = ta.pivothigh(rb, rb)\npl         = ta.pivotlow (rb, rb)\nsr_levels  = array.new_float(21, na)\nprdhighest = ta.highest(prd)\nprdlowest  = ta.lowest(prd)\ncwidth     = percWidth(prd, ChannelW)\nzonePerc   = percWidth(300, zoneWidth)\naas        = array.new_bool(41, true)\nu1         = 0.0, u1 := nz(u1&#91;1])\nd1         = 0.0, d1 := nz(d1&#91;1])\nhighestph  = 0.0, highestph := highestph&#91;1]\nlowestpl   = 0.0, lowestpl := lowestpl&#91;1]\n\nvar sr_levs   = array.new_float(21, na)\nlabel hlabel  = na, label.delete(hlabel&#91;1])\nlabel llabel  = na, label.delete(llabel&#91;1])\nvar sr_lines  = array.new_line(21, na)\nvar sr_linesH = array.new_line(21, na)\nvar sr_linesL = array.new_line(21, na)\nvar sr_linesF = array.new_linefill(21, na)\nvar sr_labels = array.new_label(21, na)\nif ph or pl\n    for x = 0 to array.size(sr_levels) - 1\n        array.set(sr_levels, x, na)\n    highestph := prdlowest\n    lowestpl := prdhighest\n    countpp = 0\n    for x = 0 to prd\n        if na(close&#91;x])\n            break\n        if not na(ph&#91;x]) or not na(pl&#91;x])\n            highestph := math.max(highestph, nz(ph&#91;x], prdlowest), nz(pl&#91;x], prdlowest))\n            lowestpl := math.min(lowestpl, nz(ph&#91;x], prdhighest), nz(pl&#91;x], prdhighest))\n            countpp += 1\n            if countpp > 40\n                break\n            if array.get(aas, countpp)\n                upl = (ph&#91;x] ? high&#91;x + rb] : low&#91;x + rb]) + cwidth\n                dnl = (ph&#91;x] ? high&#91;x + rb] : low&#91;x + rb]) - cwidth\n                u1 := countpp == 1 ? upl : u1\n                d1 := countpp == 1 ? dnl : d1\n                tmp = array.new_bool(41, true)\n                cnt = 0\n                tpoint = 0\n                for xx = 0 to prd\n                    if na(close&#91;xx])\n                        break\n                    if not na(ph&#91;xx]) or not na(pl&#91;xx])\n                        chg = false\n                        cnt += 1\n                        if cnt > 40\n                            break\n                        if array.get(aas, cnt)\n                            if not na(ph&#91;xx])\n                                if high&#91;xx + rb] &lt;= upl and high&#91;xx + rb] >= dnl\n                                    tpoint += 1\n                                    chg := true\n                            if not na(pl&#91;xx])\n                                if low&#91;xx + rb] &lt;= upl and low&#91;xx + rb] >= dnl\n                                    tpoint += 1\n                                    chg := true\n                        if chg and cnt &lt; 41\n                            array.set(tmp, cnt, false)\n                if tpoint >= strengthSR\n                    for g = 0 to 40 by 1\n                        if not array.get(tmp, g)\n                            array.set(aas, g, false)\n                    if ph&#91;x] and countpp &lt; 21\n                        array.set(sr_levels, countpp, high&#91;x + rb])\n                    if pl&#91;x] and countpp &lt; 21\n                        array.set(sr_levels, countpp, low&#91;x + rb])\n\/\/ Plot\nvar line highest_      = na, line.delete(highest_)\nvar line lowest_       = na, line.delete(lowest_)\nvar line highest_fill1 = na, line.delete(highest_fill1)\nvar line highest_fill2 = na, line.delete(highest_fill2)\nvar line lowest_fill1  = na, line.delete(lowest_fill1)\nvar line lowest_fill2  = na, line.delete(lowest_fill2)\nhi_col = close >= highestph ? colorSup : colorRes\nlo_col = close >= lowestpl  ? colorSup : colorRes\nif enableSR\n    highest_ := line.new(bar_index - 311, highestph, bar_index, highestph, xloc.bar_index, expandSR ? extend.both : extend.right, hi_col, style, lineWidth)\n    lowest_  := line.new(bar_index - 311, lowestpl , bar_index, lowestpl , xloc.bar_index, expandSR ? extend.both : extend.right, lo_col, style, lineWidth)\n    if useHLZones\n        highest_fill1 := line.new(bar_index - 311, highestph + zonePerc, bar_index, highestph + zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na)\n        highest_fill2 := line.new(bar_index - 311, highestph - zonePerc, bar_index, highestph - zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na)\n        lowest_fill1  := line.new(bar_index - 311, lowestpl + zonePerc , bar_index, lowestpl + zonePerc , xloc.bar_index, expandSR ? extend.both : extend.right, na)\n        lowest_fill2  := line.new(bar_index - 311, lowestpl - zonePerc , bar_index, lowestpl - zonePerc , xloc.bar_index, expandSR ? extend.both : extend.right, na)\n        linefill.new(highest_fill1, highest_fill2, hi_col)\n        linefill.new(lowest_fill1 , lowest_fill2 , lo_col)\nif ph or pl\n    for x = 0 to array.size(sr_lines) - 1\n        array.set(sr_levs, x, array.get(sr_levels, x))\nfor x = 0 to array.size(sr_lines) - 1\n    line.delete(array.get(sr_lines, x))\n    line.delete(array.get(sr_linesH, x))\n    line.delete(array.get(sr_linesL, x))\n    linefill.delete(array.get(sr_linesF, x))\n    if array.get(sr_levs, x) and enableSR\n        line_col = close >= array.get(sr_levs, x) ? colorSup : colorRes\n        array.set(sr_lines, x, line.new(bar_index - 355, array.get(sr_levs, x), bar_index, array.get(sr_levs, x), xloc.bar_index, expandSR ? extend.both : extend.right, line_col, style, lineWidth))\n        if useZones\n            array.set(sr_linesH, x, line.new(bar_index - 355, array.get(sr_levs, x) + zonePerc, bar_index, array.get(sr_levs, x) + zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na))\n            array.set(sr_linesL, x, line.new(bar_index - 355, array.get(sr_levs, x) - zonePerc, bar_index, array.get(sr_levs, x) - zonePerc, xloc.bar_index, expandSR ? extend.both : extend.right, na))\n            array.set(sr_linesF, x, linefill.new(array.get(sr_linesH, x), array.get(sr_linesL, x), line_col))\nfor x = 0 to array.size(sr_labels) - 1\n    label.delete(array.get(sr_labels, x))\n    if array.get(sr_levs, x) and enableSR\n        lab_loc = close >= array.get(sr_levs, x) ? label.style_label_up : label.style_label_down\n        lab_col = close >= array.get(sr_levs, x) ? colorSup             : colorRes\n        array.set(sr_labels, x, label.new(bar_index + label_loc, array.get(sr_levs, x), str.tostring(math.round_to_mintick(array.get(sr_levs, x))), color=lab_col , textcolor=#000000, style=lab_loc))\nhlabel := enableSR ? label.new(bar_index + label_loc + math.round(math.sign(label_loc)) * 20, highestph, \"High Level : \" + str.tostring(highestph), color=hi_col, textcolor=#000000, style=label.style_label_down) : na\nllabel := enableSR ? label.new(bar_index + label_loc + math.round(math.sign(label_loc)) * 20, lowestpl , \"Low  Level : \" + str.tostring(lowestpl) , color=lo_col, textcolor=#000000, style=label.style_label_up  ) : na\n\n\n\/\/ Get components\nrsi       = ta.rsi(close, 28)\n\/\/rsiOb     = rsi > 78 and rsi > ta.ema(rsi, 10)\n\/\/rsiOs     = rsi &lt; 27 and rsi &lt; ta.ema(rsi, 10)\nrsiOb     = rsi > 65 and rsi > ta.ema(rsi, 10)\nrsiOs     = rsi &lt; 35 and rsi &lt; ta.ema(rsi, 10)\ndHigh     = securityNoRep(syminfo.tickerid, \"D\", high &#91;1])\ndLow      = securityNoRep(syminfo.tickerid, \"D\", low  &#91;1])\ndClose    = securityNoRep(syminfo.tickerid, \"D\", close&#91;1])\nema = ta.ema(close, 144)\nemaBull = close > ema\nequal_tf(res) => str.tonumber(res) == f_chartTfInMinutes() and not timeframe.isseconds\nhigher_tf(res) => str.tonumber(res) > f_chartTfInMinutes() or timeframe.isseconds\ntoo_small_tf(res) => (timeframe.isweekly and res==\"1\") or (timeframe.ismonthly and str.tonumber(res) &lt; 10)\nsecurityNoRep1(sym, res, src) =>\n    bool bull_ = na\n    bull_ := equal_tf(res) ? src : bull_\n    bull_ := higher_tf(res) ? request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_off) : bull_\n    bull_array = request.security_lower_tf(syminfo.tickerid, higher_tf(res) ? str.tostring(f_chartTfInMinutes()) + (timeframe.isseconds ? \"S\" : \"\") : too_small_tf(res) ? (timeframe.isweekly ? \"3\" : \"10\") : res, src)\n    if array.size(bull_array) > 1 and not equal_tf(res) and not higher_tf(res)\n        bull_ := array.pop(bull_array)\n    array.clear(bull_array)\n    bull_\n\/\/ TF1Bull   = securityNoRep1(syminfo.tickerid, \"1\"   , emaBull)\n\/\/ TF3Bull   = securityNoRep1(syminfo.tickerid, \"3\"   , emaBull)\n\/\/ TF5Bull   = securityNoRep1(syminfo.tickerid, \"5\"   , emaBull)\n\/\/ TF15Bull  = securityNoRep1(syminfo.tickerid, \"15\"  , emaBull)\n\/\/ TF30Bull  = securityNoRep1(syminfo.tickerid, \"30\"  , emaBull)\n\/\/ TF60Bull  = securityNoRep1(syminfo.tickerid, \"60\"  , emaBull)\n\/\/ TF120Bull = securityNoRep1(syminfo.tickerid, \"120\" , emaBull)\n\/\/ TF240Bull = securityNoRep1(syminfo.tickerid, \"240\" , emaBull)\n\/\/ TF480Bull = securityNoRep1(syminfo.tickerid, \"480\" , emaBull)\n\/\/ TFDBull   = securityNoRep1(syminfo.tickerid, \"1440\", emaBull)\n\/\/ &#91;wt1, wt2] = wavetrend(close, 5, 10)\n\/\/ &#91;wtDivBear1, wtDivBull1] = f_findDivs(wt2, 15, -40)\n\/\/ &#91;wtDivBear2, wtDivBull2] = f_findDivs(wt2, 45, -65)\n\/\/ wtDivBull = wtDivBull1 or wtDivBull2\n\/\/ wtDivBear = wtDivBear1 or wtDivBear2\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/ === BASE FUNCTIONS ===\n\/\/ Returns MA input selection variant, default to SMA if blank or typo.\nvariant(type, src, len, offSig, offALMA) =>\n    v1    = ta.sma(src, len)  \/\/ Simple\n    v2    = ta.ema(src, len)  \/\/ Exponential\n    v3    = 2 * v2 - ta.ema(v2, len)  \/\/ Double Exponential\n    v4    = 3 * (v2 - ta.ema(v2, len)) + ta.ema(ta.ema(v2, len), len)  \/\/ Triple Exponential\n    v5    = ta.wma(src, len)  \/\/ Weighted\n    v6    = ta.vwma(src, len)  \/\/ Volume Weighted\n    v7    = 0.0\n    sma_1 = ta.sma(src, len)  \/\/ Smoothed\n    v7   := na(v7&#91;1]) ? sma_1 : (v7&#91;1] * (len - 1) + src) \/ len\n    v8    = ta.wma(2 * ta.wma(src, len \/ 2) - ta.wma(src, len), math.round(math.sqrt(len)))  \/\/ Hull\n    v9    = ta.linreg(src, len, offSig)  \/\/ Least Squares\n    v10   = ta.alma(src, len, offALMA, offSig)  \/\/ Arnaud Legoux\n    v11   = ta.sma(v1, len)  \/\/ Triangular (extreme smooth)\n    \/\/ SuperSmoother filter\n    \/\/   2013  John F. Ehlers\n    a1    = math.exp(-1.414 * 3.14159 \/ len)\n    b1    = 2 * a1 * math.cos(1.414 * 3.14159 \/ len)\n    c2    = b1\n    c3    = -a1 * a1\n    c1    = 1 - c2 - c3\n    v12   = 0.0\n    v12  := c1 * (src + nz(src&#91;1])) \/ 2 + c2 * nz(v12&#91;1]) + c3 * nz(v12&#91;2])\n    type == 'EMA' ? v2 : type == 'DEMA' ? v3 : type == 'TEMA' ? v4 : type == 'WMA' ? v5 : type == 'VWMA' ? v6 : type == 'SMMA' ? v7 : type == 'HullMA' ? v8 : type == 'LSMA' ? v9 : type == 'ALMA' ? v10 : type == 'TMA' ? v11 : type == 'SSMA' ? v12 : v1\n\n\/\/ security wrapper for repeat calls\nreso(exp, use, res) =>\n    security_1 = request.security(syminfo.tickerid, res, exp, gaps = barmerge.gaps_off, lookahead = barmerge.lookahead_off)\n    use ? security_1 : exp\n\n\/\/ === \/BASE FUNCTIONS ===\n\/\/ === SERIES SETUP ===\ncloseSeries = variant(basisType, close&#91;delayOffset], basisLen, offsetSigma, offsetALMA)\nopenSeries  = variant(basisType, open&#91;delayOffset],  basisLen, offsetSigma, offsetALMA)\n\/\/ === \/SERIES ===\n\n\/\/ Get Alternate resolution Series if selected.\ncloseSeriesAlt = reso(closeSeries, useRes, stratRes)\nopenSeriesAlt  = reso(openSeries, useRes, stratRes)\n\/\/\n\/\/ \/\/ === ALERT conditions\n\/\/ xlong     = ta.crossover(closeSeriesAlt, openSeriesAlt)\n\/\/ xshort    = ta.crossunder(closeSeriesAlt, openSeriesAlt)\n\/\/ \/\/ longCond  = xlong  \/\/ alternative: longCond&#91;1]? false : (xlong or xlong&#91;1]) and close>closeSeriesAlt and close>=open\n\/\/ \/\/ shortCond = xshort  \/\/ alternative: shortCond&#91;1]? false : (xshort or xshort&#91;1]) and close&lt;closeSeriesAlt and close&lt;=open\n\/\/ \/\/ \/\/ === \/ALERT conditions.\n\/\/ buy       = ta.crossover(closeSeriesAlt, openSeriesAlt)\n\/\/ sell      = ta.crossunder(closeSeriesAlt, openSeriesAlt)\n\n\/\/ plotshape(buy,  title = \"Buy\",  text = 'Buy',  style = shape.labelup,   location = location.belowbar, color= #00DBFF, textcolor = #FFFFFF, transp = 0, size = size.tiny)\n\/\/ plotshape(sell, title = \"Sell\", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= #E91E63, textcolor = #FFFFFF, transp = 0, size = size.tiny)\n\n\/\/ plotcandle(\n  \/\/ open, high, low, close,\n  \/\/ title     = 'plotcandle',\n  \/\/ color     = close > open ? color.rgb(120, 9, 139) : color.rgb(69, 155, 225),\n  \/\/ wickcolor = close > open ? color.rgb(120, 9, 139) : color.rgb(69, 155, 225))\n\n\n\/\/ \/\/ === STRATEGY ===\n\/\/ \/\/ stop loss\n\/\/ slPoints = input.int(defval=0, title = 'Initial Stop Loss Points (zero to disable)', minval=0)\n\/\/ tpPoints = input.int(defval=0, title = 'Initial Target Profit Points (zero for disable)', minval=0)\n\/\/ \/\/ Include bar limiting algorithm\n\/\/ ebar     = input.int(defval=4000, title = 'Number of Bars for Back Testing', minval=0)\n\/\/ dummy    = input    (false, title = '- SET to ZERO for Daily or Longer Timeframes')\n\/\/ \/\/\n\/\/ \/\/ Calculate how many mars since last bar\n\/\/ tdays    = (timenow - time) \/ 60000.0  \/\/ number of minutes since last bar\n\/\/ tdays   := timeframe.ismonthly ? tdays \/ 1440.0 \/ 5.0 \/ 4.3 \/ timeframe.multiplier :\n           \/\/ timeframe.isweekly  ? tdays \/ 1440.0 \/ 5.0 \/ timeframe.multiplier       :\n           \/\/ timeframe.isdaily   ? tdays \/ 1440.0 \/ timeframe.multiplier             :\n           \/\/ tdays \/ timeframe.multiplier  \/\/ number of bars since last bar\n\/\/ \/\/\n\/\/ \/\/set up exit parameters\n\/\/ TP = tpPoints > 0 ? tpPoints : na\n\/\/ SL = slPoints > 0 ? slPoints : na\n\n\/\/ \/\/ === \/STRATEGY ===\n\/\/ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/ \/\/ to automate put this in trendinview message:     {{strategy.order.alert_message}}\n\/\/ i_alert_txt_entry_long  = input.text_area(defval = \"\", title = \"Long Entry Message\",  group = \"Alerts\")\n\/\/ i_alert_txt_entry_short = input.text_area(defval = \"\", title = \"Short Entry Message\", group = \"Alerts\")\n\n\/\/ \/\/ Entries and Exits with TP\/SL\n\/\/ if buy\n    \/\/ \/\/strategy.close(\"Short\" , alert_message = i_alert_txt_exit_short)\n    \/\/ strategy.entry(\"Long\" , strategy.long , alert_message = i_alert_txt_entry_long)\n    \/\/ alert(message = \"Long position\")\n\n\/\/ if sell\n    \/\/ \/\/strategy.close(\"Long\" , alert_message = i_alert_txt_exit_long)\n    \/\/ strategy.entry(\"Short\" , strategy.short, alert_message = i_alert_txt_entry_short)\n    \/\/ alert(message = \"SHort position\")\n\n\n\/\/#endregion }\n\/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 &lt;\u2191\u2191\u2191 G_SCRIPT01 \u2191\u2191\u2191>\n\n\/\/&lt;triggers>\nlxTrigger    = false\nsxTrigger    = false\nleTrigger    = ta.crossover (closeSeriesAlt, openSeriesAlt)\nseTrigger    = ta.crossunder(closeSeriesAlt, openSeriesAlt)\n\nG_RISK       = '\u25a0 ' + 'Risk Management'\n\/\/#region \u2014\u2014\u2014\u2014 &lt;\u2193\u2193\u2193 G_RISK \u2193\u2193\u2193> {\n\n\/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 &lt;constant_declarations>\n\/\/Tooltip\nT_LVL        = '(%) Exit Level'\nT_QTY        = '(%) Adjust trade exit volume'\nT_MSG        = 'Paste JSON message for your bot'\n\n\/\/Webhook Message\nO_LEMSG      = 'Long'\nO_LXMSGSL    = 'Long SL'\nO_LXMSGTP1   = 'Long TP1'\nO_LXMSGTP2   = 'Long TP2'\nO_LXMSGTP3   = 'Long TP3'\nO_LXMSG      = 'Long Exit'\nO_SEMSG      = 'Short'\nO_SXMSGSL    = 'Short SL'\nO_SXMSGA     = 'Short TP1'\nO_SXMSGB     = 'Short TP2'\nO_SXMSGC     = 'Short TP3'\nO_SXMSGX     = 'Short Exit'\n\n\/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 &lt;input>          |           |                               |                        Line length guide |\ni_lxLvlTP1   = input.float      (0.5,         'Level TP1'                     , group = G_RISK,\n     tooltip =                   T_LVL)\ni_lxQtyTP1   = input.float      (80,        'Qty   TP1'                     , group = G_RISK,\n     tooltip =                   T_QTY)\ni_lxLvlTP2   = input.float      (1.0,       'Level TP2'                     , group = G_RISK,\n     tooltip =                   T_LVL)\ni_lxQtyTP2   = input.float      (10,        'Qty   TP2'                     , group = G_RISK,\n     tooltip =                   T_QTY)\ni_lxLvlTP3   = input.float      (4,         'Level TP3'                     , group = G_RISK,\n     tooltip =                   T_LVL)\ni_lxQtyTP3   = input.float      (10,        'Qty   TP3'                     , group = G_RISK,\n     tooltip =                   T_QTY)\ni_lxLvlSL    = input.float      (0.5,       'Stop Loss'                     , group = G_RISK,\n     tooltip =                   T_LVL)\ni_sxLvlTP1   = i_lxLvlTP1\ni_sxQtyTP1   = i_lxQtyTP1\ni_sxLvlTP2   = i_lxLvlTP2\ni_sxQtyTP2   = i_lxQtyTP2\ni_sxLvlTP3   = i_lxLvlTP3\ni_sxQtyTP3   = i_lxQtyTP3\ni_sxLvlSL    = i_lxLvlSL\n\nG_MSG        = '\u25a0 ' + 'Webhook Message'\ni_leMsg      = input.string     (O_LEMSG   ,'long'                         , group = G_MSG, tooltip = T_MSG)\ni_lxMsgSL    = input.string     (O_LXMSGSL ,'Long SL'                      , group = G_MSG, tooltip = T_MSG)\ni_lxMsgTP1   = input.string     (O_LXMSGTP1,'Long TP1'                     , group = G_MSG, tooltip = T_MSG)\ni_lxMsgTP2   = input.string     (O_LXMSGTP2,'Long TP2'                     , group = G_MSG, tooltip = T_MSG)\ni_lxMsgTP3   = input.string     (O_LXMSGTP3,'Long TP3'                     , group = G_MSG, tooltip = T_MSG)\ni_lxMsg      = input.string     (O_LXMSG   ,'Long Exit'                    , group = G_MSG, tooltip = T_MSG)\ni_seMsg      = input.string     (O_SEMSG   ,'Short'                        , group = G_MSG, tooltip = T_MSG)\ni_sxMsgSL    = input.string     (O_SXMSGSL ,'Short SL'                     , group = G_MSG, tooltip = T_MSG)\ni_sxMsgTP1   = input.string     (O_SXMSGA  ,'Short TP1'                    , group = G_MSG, tooltip = T_MSG)\ni_sxMsgTP2   = input.string     (O_SXMSGB  ,'Short TP2'                    , group = G_MSG, tooltip = T_MSG)\ni_sxMsgTP3   = input.string     (O_SXMSGC  ,'Short TP3'                    , group = G_MSG, tooltip = T_MSG)\ni_sxMsg      = input.string     (O_SXMSGX  ,'Short Exit'                   , group = G_MSG, tooltip = T_MSG)\ni_src        = close\n\nG_DISPLAY    = 'Display'\n\/\/&lt;display>\ni_alertOn    = input.bool       (true,      'Alert Labels On\/Off'          , group = G_DISPLAY)\ni_barColOn   = input.bool       (true,      'Bar Color On\/Off'             , group = G_DISPLAY)\n\n\/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 &lt;function_declarations>\n\/\/ @function        Calculate the Take Profit line, and the crossover or crossunder\nf_tp(_condition, _conditionValue, _leTrigger, _seTrigger, _src, _lxLvlTP, _sxLvlTP)=>\n    var float _tpLine = 0.0\n    _topLvl     = _src + (_src * (_lxLvlTP \/ 100))\n    _botLvl     = _src - (_src * (_sxLvlTP \/ 100))\n    _tpLine    := _condition&#91;1] !=  _conditionValue and _leTrigger ? _topLvl :\n                  _condition&#91;1] != -_conditionValue and _seTrigger ? _botLvl :\n                  nz(_tpLine&#91;1])\n    &#91;_tpLine]\n\n\/\/ @function        Similar to \"ta.crossover\" or \"ta.crossunder\"\nf_cross(_scr1, _scr2, _over)=>\n    _cross   = _over ? _scr1 > _scr2 and _scr1&#91;1] &lt; _scr2&#91;1] :\n                       _scr1 &lt; _scr2 and _scr1&#91;1] > _scr2&#91;1]\n\n\/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 &lt;calculations>\n\/\/&lt;set initial values>\nvar float condition = 0.0\nvar float slLine    = 0.0\nvar float entryLine = 0.0\n\n\/\/&lt;entry &amp; exit orders>\nentryLine   := leTrigger and condition&#91;1] &lt;=  0.0 ? close :\n               seTrigger and condition&#91;1] >=  0.0 ? close : nz(entryLine&#91;1])\n\/\/&lt;SL>\nslTopLvl    = i_src + (i_src * (i_lxLvlSL \/ 100))\nslBotLvl    = i_src - (i_src * (i_sxLvlSL \/ 100))\nslLine     := condition&#91;1] &lt;=  0.0 and leTrigger ? slBotLvl :\n              condition&#91;1] >=  0.0 and seTrigger ? slTopLvl : nz(slLine&#91;1])\nslLong      = f_cross(low,  slLine, false)\nslShort     = f_cross(high, slLine, true )\n\/\/&lt;TP1, TP2 &amp; TP3>\n&#91;tp3Line]    = f_tp(condition, 1.2,leTrigger, seTrigger, i_src, i_lxLvlTP3, i_sxLvlTP3)\n&#91;tp2Line]    = f_tp(condition, 1.1,leTrigger, seTrigger, i_src, i_lxLvlTP2, i_sxLvlTP2)\n&#91;tp1Line]    = f_tp(condition, 1.0,leTrigger, seTrigger, i_src, i_lxLvlTP1, i_sxLvlTP1)\ntp3Long      = f_cross(high, tp3Line, true )\ntp3Short     = f_cross(low,  tp3Line, false)\ntp2Long      = f_cross(high, tp2Line, true )\ntp2Short     = f_cross(low,  tp2Line, false)\ntp1Long      = f_cross(high, tp1Line, true )\ntp1Short     = f_cross(low,  tp1Line, false)\n\nswitch\n    leTrigger and condition&#91;1] &lt;=  0.0 => condition :=  1.0\n    seTrigger and condition&#91;1] >=  0.0 => condition := -1.0\n    tp3Long   and condition&#91;1] ==  1.2 => condition :=  1.3\n    tp3Short  and condition&#91;1] == -1.2 => condition := -1.3\n    tp2Long   and condition&#91;1] ==  1.1 => condition :=  1.2\n    tp2Short  and condition&#91;1] == -1.1 => condition := -1.2\n    tp1Long   and condition&#91;1] ==  1.0 => condition :=  1.1\n    tp1Short  and condition&#91;1] == -1.0 => condition := -1.1\n    slLong    and condition&#91;1] >=  1.0 => condition :=  0.0\n    slShort   and condition&#91;1] &lt;= -1.0 => condition :=  0.0\n    lxTrigger and condition&#91;1] >=  1.0 => condition :=  0.0\n    sxTrigger and condition&#91;1] &lt;= -1.0 => condition :=  0.0\n\nlongE        = leTrigger and condition&#91;1] &lt;=  0.0 and condition ==  1.0\nshortE       = seTrigger and condition&#91;1] >=  0.0 and condition == -1.0\nlongX        = lxTrigger and condition&#91;1] >=  1.0 and condition ==  0.0\nshortX       = sxTrigger and condition&#91;1] &lt;= -1.0 and condition ==  0.0\nlongSL       = slLong    and condition&#91;1] >=  1.0 and condition ==  0.0\nshortSL      = slShort   and condition&#91;1] &lt;= -1.0 and condition ==  0.0\nlongTP3      = tp3Long   and condition&#91;1] ==  1.2 and condition ==  1.3\nshortTP3     = tp3Short  and condition&#91;1] == -1.2 and condition == -1.3\nlongTP2      = tp2Long   and condition&#91;1] ==  1.1 and condition ==  1.2\nshortTP2     = tp2Short  and condition&#91;1] == -1.1 and condition == -1.2\nlongTP1      = tp1Long   and condition&#91;1] ==  1.0 and condition ==  1.1\nshortTP1     = tp1Short  and condition&#91;1] == -1.0 and condition == -1.1\n\n\/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 &lt;strategy_calls> {\n\/\/&lt;long orders>\nif strategy.position_size &lt;= 0 and longE and barstate.isconfirmed\n    strategy.entry(\n      'Long',\n      strategy.long,\n      alert_message    = i_leMsg,\n      comment          = 'LE')\nif strategy.position_size > 0 and condition ==  1.0\n    strategy.exit(\n      id               = 'LXTP1',\n      from_entry       = 'Long',\n      qty_percent      = i_lxQtyTP1,\n      limit            = tp1Line,\n      stop             = slLine,\n      comment_profit   = 'LXTP1',\n      comment_loss     = 'SL',\n      alert_profit     = i_lxMsgTP1,\n      alert_loss       = i_lxMsgSL)\nif strategy.position_size > 0 and condition ==  1.1\n    strategy.exit(\n      id               = 'LXTP2',\n      from_entry       = 'Long',\n      qty_percent      = i_lxQtyTP2,\n      limit            = tp2Line,\n      stop             = slLine,\n      comment_profit   = 'LXTP2',\n      comment_loss     = 'SL',\n      alert_profit     = i_lxMsgTP2,\n      alert_loss       = i_lxMsgSL)\nif strategy.position_size > 0 and condition ==  1.2\n    strategy.exit(\n      id               = 'LXTP3',\n      from_entry       = 'Long',\n      qty_percent      = i_lxQtyTP3,\n      limit            = tp3Line,\n      stop             = slLine,\n      comment_profit   = 'LXTP3',\n      comment_loss     = 'SL',\n      alert_profit     = i_lxMsgTP3,\n      alert_loss       = i_lxMsgSL)\nif longX\n    strategy.close(\n      'Long',\n      alert_message    = i_lxMsg,\n      comment          = 'LX')\n\/\/&lt;short orders>\nif strategy.position_size >= 0 and shortE and barstate.isconfirmed\n    strategy.entry(\n      'Short',\n      strategy.short,\n      alert_message    = i_leMsg,\n      comment          = 'SE')\nif strategy.position_size &lt; 0 and condition == -1.0\n    strategy.exit(\n      id               = 'SXTP1',\n      from_entry       = 'Short',\n      qty_percent      = i_sxQtyTP1,\n      limit            = tp1Line,\n      stop             = slLine,\n      comment_profit   = 'SXTP1',\n      comment_loss     = 'SL',\n      alert_profit     = i_sxMsgTP1,\n      alert_loss       = i_sxMsgSL)\nif strategy.position_size &lt; 0 and condition == -1.1\n    strategy.exit(\n      id               = 'SXTP2',\n      from_entry       = 'Short',\n      qty_percent      = i_sxQtyTP2,\n      limit            = tp2Line,\n      stop             = slLine,\n      comment_profit   = 'SXTP2',\n      comment_loss     = 'SL',\n      alert_profit     = i_sxMsgTP2,\n      alert_loss       = i_sxMsgSL)\nif strategy.position_size &lt; 0 and condition == -1.2\n    strategy.exit(\n      id               = 'SXTP3',\n      from_entry       = 'Short',\n      qty_percent      = i_sxQtyTP3,\n      limit            = tp3Line,\n      stop             = slLine,\n      comment_profit   = 'SXTP3',\n      comment_loss     = 'SL',\n      alert_profit     = i_sxMsgTP3,\n      alert_loss       = i_sxMsgSL)\nif shortX\n    strategy.close(\n      'Short',\n      alert_message    = i_sxMsg,\n      comment          = 'SX')\n\n\/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 &lt;visuals>\nc_tp         = leTrigger or seTrigger ? na :\n               condition == 0.0       ? na : color.green\nc_entry      = leTrigger or seTrigger ? na :\n               condition == 0.0       ? na : color.blue\nc_sl         = leTrigger or seTrigger ? na :\n               condition == 0.0       ? na : color.red\np_tp1Line    = plot (\n  condition ==  1.0 or\n  condition == -1.0 ? tp1Line : na,\n  title      = \"TP Line 1\",\n  color      = c_tp,\n  linewidth  = 1,\n  style      = plot.style_linebr)\np_tp2Line    = plot (\n  condition ==  1.0 or\n  condition == -1.0 or\n  condition ==  1.1 or\n  condition == -1.1 ? tp2Line : na,\n  title      = \"TP Line 2\",\n  color      = c_tp,\n  linewidth  = 1,\n  style      = plot.style_linebr)\np_tp3Line    = plot (\n  condition ==  1.0 or\n  condition == -1.0 or\n  condition ==  1.1 or\n  condition == -1.1 or\n  condition ==  1.2 or\n  condition == -1.2 ? tp3Line : na,\n  title      = \"TP Line 3\",\n  color      = c_tp,\n  linewidth  = 1,\n  style      = plot.style_linebr)\np_entryLine  = plot (\n  condition >=  1.0 or\n  condition &lt;= -1.0 ? entryLine : na,\n  title      = \"Entry Line\",\n  color      = c_entry,\n  linewidth  = 1,\n  style      = plot.style_linebr)\np_slLine     = plot (\n  condition ==  1.0 or\n  condition == -1.0 or\n  condition ==  1.1 or\n  condition == -1.1 or\n  condition ==  1.2 or\n  condition == -1.2 ? slLine : na,\n  title      = \"SL Line\",\n  color      = c_sl,\n  linewidth  = 1,\n  style      = plot.style_linebr)\nfill(\n  p_tp3Line, p_entryLine,\n  color      = leTrigger or seTrigger ? na :color.new(color.green, 90))\nfill(\n  p_entryLine, p_slLine,\n  color      = leTrigger or seTrigger ? na :color.new(color.red, 90))\n\n\/\/&lt;alerts labels>\nplotshape(\n  i_alertOn and longE,\n  title      = 'Long',\n  text       = 'Long',\n  textcolor  = color.white,\n  color      = color.green,\n  style      = shape.labelup,\n  size       = size.tiny,\n  location   = location.belowbar)\nplotshape(\n  i_alertOn and shortE,\n  title      = 'Short',\n  text       = 'Short',\n  textcolor  = color.white,\n  color      = color.red,\n  style      = shape.labeldown,\n  size       = size.tiny,\n  location   = location.abovebar)\nplotshape(\n  i_alertOn and (longX or shortX) ? close : na,\n  title      = 'Close',\n  text       = 'Close',\n  textcolor  = color.white,\n  color      = color.gray,\n  style      = shape.square,\n  size       = size.tiny,\n  location   = location.absolute)\nl_tp         = i_alertOn and (longTP1 or shortTP1) ? close : na\nplotshape(\n  l_tp,\n  title      = \"TP1 Cross\",\n  text       = \"TP1\",\n  textcolor  = color.white,\n  color      = color.olive,\n  style      = shape.square,\n  size       = size.tiny,\n  location   = location.abovebar)\nplotshape(\n  i_alertOn and (longTP2 or shortTP2) ? close : na,\n  title      = \"TP2 Cross\",\n  text       = \"TP2\",\n  textcolor  = color.white,\n  color      = color.olive,\n  style      = shape.square,\n  size       = size.tiny,\n  location   = location.abovebar)\nplotshape(\n  i_alertOn and (longTP3 or shortTP3) ? close : na,\n  title      = \"TP3 Cross\",\n  text       = \"TP3\",\n  textcolor  = color.white,\n  color      = color.olive,\n  style      = shape.square,\n  size       = size.tiny,\n  location   = location.abovebar)\nplotshape(\n  i_alertOn and (longSL or shortSL) ? close : na,\n  title      = \"SL Cross\",\n  text       = \"SL\",\n  textcolor  = color.white,\n  color      = color.maroon,\n  style      = shape.square,\n  size       = size.tiny,\n  location   = location.abovebar)\n\n\/\/&lt;debug>\nplot(\n  na,\n  title      = \"\u2500\u2500\u2500 &lt;debug> \u2500\u2500\u2500\",\n  editable   = false,\n  display    = display.data_window)\nplot(\n  condition,\n  title      = \"condition\",\n  editable   = false,\n  display    = display.data_window)\nplot(\n  strategy.position_size * 100,\n  title      = \".position_size\",\n  editable   = false,\n  display    = display.data_window)\n\/\/#endregion }\n\/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 &lt;\u2191\u2191\u2191 G_RISK \u2191\u2191\u2191>\n\n\/\/#region \u2014\u2014\u2014\u2014 &lt;\u2193\u2193\u2193 G_SCRIPT02 \u2193\u2193\u2193> {\n\/\/ @function        Queues a new element in an array and de-queues its first element.\nf_qDq(_array, _val) =>\n    array.push(_array, _val)\n    _return = array.shift(_array)\n    _return\n\nvar line&#91;]  a_slLine     = array.new_line(1)\nvar line&#91;]  a_entryLine  = array.new_line(1)\nvar line&#91;]  a_tp3Line    = array.new_line(1)\nvar line&#91;]  a_tp2Line    = array.new_line(1)\nvar line&#91;]  a_tp1Line    = array.new_line(1)\nvar label&#91;] a_slLabel    = array.new_label(1)\nvar label&#91;] a_tp3label   = array.new_label(1)\nvar label&#91;] a_tp2label   = array.new_label(1)\nvar label&#91;] a_tp1label   = array.new_label(1)\nvar label&#91;] a_entryLabel = array.new_label(1)\n\nnewEntry     = longE or shortE\nentryIndex   = 1\nentryIndex  := newEntry ? bar_index : nz(entryIndex&#91;1])\nlasTrade     = bar_index >= entryIndex\nl_right      = 10\n\nline.delete(\n  f_qDq(a_slLine,\n  line.new(\n   entryIndex,\n   slLine,\n   last_bar_index + l_right,\n   slLine,\n   style = line.style_dotted,\n   color = c_sl)))\nline.delete(\n  f_qDq(a_entryLine,\n  line.new(\n   entryIndex,\n   entryLine,\n   last_bar_index + l_right,\n   entryLine,\n   style = line.style_dotted,\n   color = color.blue)))\nline.delete(\n  f_qDq(a_tp3Line,\n  line.new(\n   entryIndex,\n   tp3Line,\n   last_bar_index + l_right,\n   tp3Line,\n   style = line.style_dotted,\n   color = c_tp)))\nline.delete(\n  f_qDq(a_tp2Line,\n  line.new(\n   entryIndex,\n   tp2Line,\n   last_bar_index + l_right,\n   tp2Line,\n   style = line.style_dotted,\n   color = c_tp)))\nline.delete(\n  f_qDq(a_tp1Line,\n  line.new(\n   entryIndex,\n   tp1Line,\n   last_bar_index + l_right,\n   tp1Line,\n   style = line.style_dotted,\n   color = c_tp)))\n\nlabel.delete(\n  f_qDq(a_slLabel,\n  label.new(\n   last_bar_index + l_right,\n   slLine,\n   'SL: ' + str.tostring(slLine, '##.#####'),\n   style = label.style_label_left,\n   textcolor  = color.white,\n   color = c_sl)))\nlabel.delete(\n  f_qDq(a_entryLabel,\n  label.new(\n   last_bar_index + l_right,\n   entryLine,\n   'Entry: ' + str.tostring(entryLine, '##.#####'),\n   style = label.style_label_left,\n   textcolor  = color.white,\n   color = color.blue)))\nlabel.delete(\n  f_qDq(a_tp3label,\n  label.new(\n   last_bar_index + l_right,\n   tp3Line,\n   'TP3: ' + str.tostring(tp3Line, '##.#####'),\n   style = label.style_label_left,\n   textcolor  = color.white,\n   color = c_tp)))\nlabel.delete(\n  f_qDq(a_tp2label,\n  label.new(\n   last_bar_index + l_right,\n   tp2Line,\n   'TP2: ' + str.tostring(tp2Line, '##.#####'),\n   style = label.style_label_left,\n   textcolor  = color.white,\n   color = c_tp)))\nlabel.delete(\n  f_qDq(a_tp1label,\n  label.new(\n   last_bar_index + l_right,\n   tp1Line,\n   'TP1: ' + str.tostring(tp1Line, '##.#####'),\n   style = label.style_label_left,\n   textcolor  = color.white,\n   color = c_tp)))\n\n\/\/#endregion }\n\/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 &lt;\u2191\u2191\u2191 G_SCRIPT02 \u2191\u2191\u2191>\n\n\/\/#region \u2014\u2014\u2014\u2014 &lt;\u2193\u2193\u2193 G_SCRIPT03 \u2193\u2193\u2193> {\nc_barCol = close > open ? color.rgb(120, 9, 139) : color.rgb(69, 155, 225)\nbarcolor(\n  i_barColOn ? c_barCol : na)\n\n\/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 &lt;alerts>\n\/\/&lt;any_alert_function_call>\nif longE\n    alert(message = 'Long Entry',  freq = alert.freq_once_per_bar_close)\nif longTP1\n    alert(message = 'Long TP1',  freq = alert.freq_once_per_bar)\nif longTP2\n    alert(message = 'Long TP2',  freq = alert.freq_once_per_bar)\nif longTP3\n    alert(message = 'Long TP3',  freq = alert.freq_once_per_bar)\nif longSL\n    alert(message = 'Long SL',  freq = alert.freq_once_per_bar)\nif longX\n    alert(message = 'Long Exit',   freq = alert.freq_once_per_bar_close)\n\nif shortE\n    alert(message = 'Short Entry', freq = alert.freq_once_per_bar_close)\nif shortTP1\n    alert(message = 'Short TP1', freq = alert.freq_once_per_bar)\nif shortTP2\n    alert(message = 'Short TP2', freq = alert.freq_once_per_bar)\nif shortTP3\n    alert(message = 'Short TP3', freq = alert.freq_once_per_bar)\nif shortSL\n    alert(message = 'Short SL', freq = alert.freq_once_per_bar)\nif shortX\n    alert(message = 'Short Exit',  freq = alert.freq_once_per_bar_close)\n\/\/#endregion }\n\/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 &lt;\u2191\u2191\u2191 G_SCRIPT03 \u2191\u2191\u2191><\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>\u0634\u0631\u062d \u0627\u0636\u0627\u0641\u0629 \u0627\u0644\u0645\u0624\u0634\u0631 \u0628\u0627\u0644\u062a\u0631\u064a\u062f\u0646\u0642 \u0641\u064a\u0648 <br><br><a href=\"https:\/\/vt.tiktok.com\/ZSHpjfpaWJ6Vs-HSHrQ\/\">https:\/\/vt.tiktok.com\/ZSHpjfpaWJ6Vs-HSHrQ\/<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0627 \u0647\u0648 \u0645\u0624\u0634\u0631 ALGoX\u061f \u0647\u0648 \u0645\u0624\u0634\u0631 \u0645\u062e\u0635\u0635 \u0644\u0645\u0646\u0635\u0629 TradingView\u060c \u064a\u0647\u062f\u0641 \u0625\u0644\u0649 \u062a\u0648\u0644\u064a\u062f \u0625\u0634\u0627\u0631\u0627\u062a \u0628\u064a\u0639 \u0648\u0634\u0631\u0627\u0621 \u062f\u0642\u064a\u0642\u0629 \u0628\u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f \u0639\u0644\u0649 \u062a\u0642\u0627\u0637\u0639 \u0645\u062a\u0648\u0633\u0637\u0627\u062a \u0645\u062a\u062d\u0631\u0643\u0629 \u0645\u062d\u0633\u0651\u0646\u0629 \u0645\u062b\u0644 ALMA \u0648LSMA \u0648EMA \u0648WMA\u060c \u0645\u0639 \u0625\u0645\u0643\u0627\u0646\u064a\u0629 \u062a\u0641\u0639\u064a\u0644 \u0625\u0634\u0627\u0631\u0627\u062a \u0634\u0645\u0648\u0639 Heikin Ashi \u0648\u062a\u0644\u0648\u064a\u0646 \u0627\u0644\u0634\u0645\u0648\u0639 \u0644\u062a\u0648\u0636\u064a\u062d \u0627\u0644\u0627\u062a\u062c\u0627\u0647. \u064a\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u0645\u0624\u0634\u0631 \u0639\u0627\u062f\u0629 \u0641\u064a \u0627\u0644\u062a\u062f\u0627\u0648\u0644 \u0642\u0635\u064a\u0631 \u0627\u0644\u0645\u062f\u0649 \u0645\u062b\u0644 \u0627\u0644\u0633\u0643\u0627\u0644\u0628\u064a\u0646\u063a\u060c \u0644\u0643\u0646\u0647 \u0645\u0631\u0646 \u0648\u064a\u0635\u0644\u062d \u0623\u064a\u0636\u064b\u0627 \u0644\u0644\u0641\u0631\u064a\u0645\u0627\u062a \u0627\u0644\u0645\u062a\u0648\u0633\u0637\u0629 \u0648\u0627\u0644\u0637\u0648\u064a\u0644\u0629. \u0645\u0643\u0648\u0646\u0627\u062a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-485","post","type-post","status-publish","format-standard","hentry","category-blog"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/sonotrader.net\/index.php?rest_route=\/wp\/v2\/posts\/485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sonotrader.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sonotrader.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sonotrader.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sonotrader.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=485"}],"version-history":[{"count":6,"href":"https:\/\/sonotrader.net\/index.php?rest_route=\/wp\/v2\/posts\/485\/revisions"}],"predecessor-version":[{"id":499,"href":"https:\/\/sonotrader.net\/index.php?rest_route=\/wp\/v2\/posts\/485\/revisions\/499"}],"wp:attachment":[{"href":"https:\/\/sonotrader.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sonotrader.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sonotrader.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}