{"id":22275,"date":"2026-04-10T20:24:44","date_gmt":"2026-04-10T20:24:44","guid":{"rendered":"https:\/\/umang.pk\/2026\/04\/10\/python-%d9%85%db%8c%da%ba-%d9%be%d9%88%d8%b2%db%8c%d8%b4%d9%86%d9%86%da%af-%d9%be%d8%b1-%d9%85%d8%a8%d9%86%db%8c-%d8%ae%d8%a7%d9%85-%d8%ad%da%a9%d9%85%d8%aa-%d8%b9%d9%85%d9%84%db%8c-%da%a9%db%8c%d8%b3\/"},"modified":"2026-04-10T20:24:45","modified_gmt":"2026-04-10T20:24:45","slug":"python-%d9%85%db%8c%da%ba-%d9%be%d9%88%d8%b2%db%8c%d8%b4%d9%86%d9%86%da%af-%d9%be%d8%b1-%d9%85%d8%a8%d9%86%db%8c-%d8%ae%d8%a7%d9%85-%d8%ad%da%a9%d9%85%d8%aa-%d8%b9%d9%85%d9%84%db%8c-%da%a9%db%8c%d8%b3","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/04\/10\/python-%d9%85%db%8c%da%ba-%d9%be%d9%88%d8%b2%db%8c%d8%b4%d9%86%d9%86%da%af-%d9%be%d8%b1-%d9%85%d8%a8%d9%86%db%8c-%d8%ae%d8%a7%d9%85-%d8%ad%da%a9%d9%85%d8%aa-%d8%b9%d9%85%d9%84%db%8c-%da%a9%db%8c%d8%b3\/","title":{"rendered":"Python \u0645\u06cc\u06ba \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u067e\u0631 \u0645\u0628\u0646\u06cc \u062e\u0627\u0645 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc \u062c\u0627\u0626\u06d2\u06d4 [Full Handbook]"},"content":{"rendered":"\n<div id=\"\">\n<p>\u06a9\u0645\u0648\u0688\u0679\u06cc\u0632 \u0679\u0631\u06cc\u0688\u0646\u06af \u0645\u06cc\u06ba \u06a9\u0645\u0679\u0645\u0646\u0679 \u0622\u0641 \u0679\u0631\u06cc\u0688\u0631\u0632 (COT) \u0688\u06cc\u0679\u0627 \u06a9\u0627 \u0628\u06c1\u062a \u062d\u0648\u0627\u0644\u06c1 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u062c\u0628 \u0644\u0648\u06af \u067e\u0631\u06c1\u062c\u0648\u0645 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af\u060c \u0642\u06cc\u0627\u0633 \u0622\u0631\u0627\u0626\u06cc \u067e\u0631 \u0645\u0628\u0646\u06cc \u062c\u0630\u0628\u0627\u062a \u06cc\u0627 \u0627\u0644\u0679 \u0631\u0633\u06a9 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0628\u0627\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0628\u0627\u062a \u0686\u06cc\u062a \u062e\u06cc\u0627\u0644 \u06a9\u06cc \u0633\u0637\u062d \u067e\u0631 \u0631\u06c1\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0634\u0627\u0630 \u0648 \u0646\u0627\u062f\u0631 \u06c1\u06cc \u0627\u06cc\u0633\u06d2 \u0627\u0635\u0648\u0644 \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u0627 \u0639\u0645\u0644\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062a\u062c\u0631\u0628\u06c1 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0627\u0633 \u0645\u0646\u0635\u0648\u0628\u06d2 \u06a9\u0627 \u0646\u0642\u0637\u06c1 \u0622\u063a\u0627\u0632 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u06cc\u06c1 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u062a\u06be\u0627 \u06a9\u06c1 \u06a9\u06cc\u0627 \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0645\u0628\u06c1\u0645 \u0645\u0627\u0631\u06a9\u06cc\u0679 \u0631\u06cc\u0688\u0646\u06af \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0641\u06cc\u062f \u0686\u06cc\u0632 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0646\u0641\u06cc\u0633 \u0645\u06cc\u06a9\u0631\u0648 \u0628\u06cc\u0627\u0646\u06cc\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u0627 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u062c\u0633\u06d2 \u0622\u067e \u06a9\u0648\u0688 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062c\u0627\u0646\u0686 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u067e\u0646\u06d2 \u0622\u067e \u06a9\u0648 \u0686\u06cc\u0644\u0646\u062c \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u0645\u0642\u0635\u062f \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u062e\u06cc\u0627\u0644 \u06cc\u06c1 \u062a\u06be\u0627 \u06a9\u06c1 \u0627\u06cc\u06a9 \u0645\u0639\u0642\u0648\u0644 \u0645\u0641\u0631\u0648\u0636\u06d2 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0622\u063a\u0627\u0632 \u06a9\u0631\u06cc\u06ba\u060c \u0642\u062f\u0645 \u0628\u06c1 \u0642\u062f\u0645 \u0633\u06af\u0646\u0644 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0648\u0631 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06a9\u06c1 \u0688\u06cc\u0679\u0627 \u0634\u0627\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u06cc\u0627 \u0628\u0686\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06c1\u0645 \u0646\u06d2 \u062a\u0627\u0631\u06cc\u062e\u06cc \u0648\u06cc\u0633\u0679 \u0679\u06cc\u06a9\u0633\u0627\u0633 \u0627\u0646\u0679\u0631\u0645\u06cc\u0688\u06cc\u0679 (WTI) \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06cc \u0642\u06cc\u0645\u062a\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be FinancialModelingPrep \u0633\u06d2 \u062a\u0627\u062c\u0631\u0648\u06ba \u06a9\u06d2 \u0639\u0632\u0645 \u06a9\u0627 \u0688\u06cc\u0679\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627\u06d4 \u067e\u06c1\u0644\u0627 \u062e\u06cc\u0627\u0644 \u0633\u0627\u062f\u06c1 \u062a\u06be\u0627\u06d4 \u0642\u06cc\u0627\u0633 \u0622\u0631\u0627\u0626\u06cc \u067e\u0631 \u0645\u0628\u0646\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u0645\u06cc\u06ba \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u06c1\u0645\u06cc\u06ba \u06cc\u06c1 \u0628\u06be\u06cc \u0628\u062a\u0627 \u0633\u06a9\u062a\u06cc \u06c1\u06cc\u06ba \u06a9\u06c1 \u062e\u0627\u0645 \u062a\u06cc\u0644 \u0622\u06af\u06d2 \u06a9\u06cc\u0627 \u06a9\u0631\u06d2 \u06af\u0627\u06d4 \u0644\u06cc\u06a9\u0646 \u062c\u06cc\u0633\u06d2 \u062c\u06cc\u0633\u06d2 \u062a\u0639\u0645\u06cc\u0631 \u062a\u0631\u0642\u06cc \u06a9\u0631\u062a\u06cc \u06af\u0626\u06cc\u060c \u0627\u0646 \u062e\u06cc\u0627\u0644\u0627\u062a \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u0648\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0646 \u06a9\u0648 \u06a9\u0645 \u06a9\u0631\u0646\u0627\u060c \u0641\u0644\u0679\u0631 \u06a9\u0631\u0646\u0627 \u0627\u0648\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u0627 \u067e\u0691\u0627\u06d4<\/p>\n<p>\u0644\u06c1\u0630\u0627 \u06cc\u06c1 \u0645\u0636\u0645\u0648\u0646 \u0627\u0646 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc\u0648\u06ba \u067e\u0631 \u0635\u0627\u0641 \u0646\u0638\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0646\u06c1\u0648\u06ba \u0646\u06d2 \u067e\u06c1\u0644\u06cc \u06a9\u0648\u0634\u0634 \u0645\u06cc\u06ba \u06a9\u0627\u0645 \u06a9\u06cc\u0627\u06d4 \u06cc\u06c1 \u0648\u06c1\u0627\u06ba \u067e\u06c1\u0646\u0686\u0646\u06d2 \u06a9\u0627 \u067e\u0648\u0631\u0627 \u0639\u0645\u0644 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-prerequisites\"><strong>\u0634\u0631\u0637\u06cc\u06ba<\/strong><\/h2>\n<p>\u0627\u0633 \u0645\u0636\u0645\u0648\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 Python \u0627\u0648\u0631 pandas \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0628\u0646\u06cc\u0627\u062f\u06cc \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06cc\u06ba\u060c \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06c1\u0645 \u0688\u06cc\u0679\u0627 \u0641\u0631\u06cc\u0645\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0688\u06cc\u0679\u0627 \u06c1\u06cc\u0631\u0627 \u067e\u06be\u06cc\u0631\u06cc \u0627\u0648\u0631 \u062a\u062c\u0632\u06cc\u06c1 \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u06d4 \u0622\u067e \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u0645\u0627\u062d\u0648\u0644 \u0645\u06cc\u06ba \u062f\u0631\u062c \u0630\u06cc\u0644 \u067e\u06cc\u06a9\u06cc\u062c\u0632 \u06a9\u0648 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u0627 \u06c1\u0648\u06af\u0627\u06d4 <code>requests<\/code>\u060c <code>numpy<\/code>\u060c <code>pandas<\/code>\u0627\u0648\u0631 <code>matplotlib<\/code>.<\/p>\n<p>COT \u0627\u0648\u0631 WTI \u062f\u0648\u0646\u0648\u06ba \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u06a9\u06d2 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u06a9\u0648 FinancialModelingPrep API \u06a9\u0644\u06cc\u062f \u06a9\u06cc \u0628\u06be\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06af\u06cc\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u06a9\u0627\u0624\u0646\u0679 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e FinancialModelingPrep \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 \u067e\u0631 \u0645\u0641\u062a \u0627\u06a9\u0627\u0624\u0646\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u062c\u0633\u0679\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u062e\u0631 \u0645\u06cc\u06ba\u060c \u0679\u0631\u06cc\u0688\u0631 \u06a9\u0645\u0679\u0645\u0646\u0679 \u0631\u067e\u0648\u0631\u0679 \u06a9\u06cc\u0627 \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u063a\u06cc\u0631 \u062a\u062c\u0627\u0631\u062a\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u06cc \u0646\u0645\u0627\u0626\u0646\u062f\u06af\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0639\u0627\u0645 \u0641\u06c1\u0645 \u0633\u06af\u0646\u0644\u0632 \u06a9\u06cc \u0633\u0627\u062e\u062a \u06a9\u06d2 \u067e\u06cc\u0686\u06be\u06d2 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0622\u067e \u06a9\u06cc \u0645\u062f\u062f \u06a9\u0631\u06d2 \u06af\u06cc\u060c \u062d\u0627\u0644\u0627\u0646\u06a9\u06c1 \u06a9\u0648\u0688 \u0633\u06d2 \u06c1\u06cc \u0642\u062f\u0631 \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u0645\u0636\u0645\u0648\u0646 \u0645\u06cc\u06ba \u0645\u0627\u0644\u06cc\u0627\u062a\u06cc \u0645\u0646\u0688\u06cc\u0648\u06ba \u0627\u0648\u0631 \u062a\u062c\u0627\u0631\u062a\u06cc \u062a\u0635\u0648\u0631\u0627\u062a \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06a9\u0686\u06be \u0628\u0646\u06cc\u0627\u062f\u06cc \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0628\u06be\u06cc \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0644\u0645\u0628\u06cc \u0627\u0648\u0631 \u0645\u062e\u062a\u0635\u0631 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af\u060c \u06a9\u06be\u0644\u06cc \u062f\u0644\u0686\u0633\u067e\u06cc\u060c \u0627\u0648\u0631 \u0642\u06cc\u0627\u0633 \u0622\u0631\u0627\u0626\u06cc \u067e\u0631 \u0645\u0628\u0646\u06cc \u062c\u0630\u0628\u0627\u062a \u062c\u06cc\u0633\u06cc \u0627\u0635\u0637\u0644\u0627\u062d\u0627\u062a \u0633\u06d2 \u0646\u0627\u0648\u0627\u0642\u0641 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u063a\u0648\u0637\u06c1 \u0644\u06af\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0646 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0633\u06cc\u06a9\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u06a9\u0686\u06be \u0648\u0642\u062a \u06af\u0632\u0627\u0631\u0646\u0627 \u0627\u0686\u06be\u0627 \u062e\u06cc\u0627\u0644 \u06c1\u0648\u06af\u0627\u06d4<\/p>\n<h2 id=\"heading-the-initial-idea-use-positioning-extremes-to-define-market-regimes\">\u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u062e\u06cc\u0627\u0644: \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u06cc \u0627\u0646\u062a\u06c1\u0627\u0624\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0645\u0627\u0631\u06a9\u06cc\u0679 \u06a9\u06d2 \u0646\u0638\u0627\u0645 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u062e\u06cc\u0627\u0644 \u06a9\u0627 \u067e\u06c1\u0644\u0627 \u0648\u0631\u0698\u0646 \u062a\u062c\u0627\u0631\u062a\u06cc \u0627\u0635\u0648\u0644 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u062e\u0627\u0645 \u062a\u06cc\u0644 \u0645\u06cc\u06ba \u0642\u06cc\u0627\u0633 \u0622\u0631\u0627\u0626\u06cc \u067e\u0631 \u0645\u0628\u0646\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u060c \u062a\u0648 \u0627\u0633 \u06a9\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0645\u0636\u0645\u0631\u0627\u062a \u06c1\u0648\u06ba \u06af\u06d2 \u0627\u0633 \u067e\u0631 \u0645\u0646\u062d\u0635\u0631 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06af\u06d2 \u06a9\u06cc\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0627\u06cc\u0633\u06cc \u0645\u0627\u0631\u06a9\u06cc\u0679 \u062c\u0648 \u0628\u06c1\u062a \u0644\u0645\u0628\u06cc \u06c1\u06d2 \u0644\u06cc\u06a9\u0646 \u067e\u06be\u0631 \u0628\u06be\u06cc \u0628\u0691\u06be\u062a\u06cc \u06c1\u0648\u0626\u06cc \u0628\u06be\u06cc\u0691 \u06c1\u06d2 \u0627\u0633 \u0645\u0627\u0631\u06a9\u06cc\u0679 \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u06c1\u06d2 \u062c\u0648 \u0628\u06c1\u062a \u0644\u0645\u0628\u06cc \u06c1\u06d2 \u0644\u06cc\u06a9\u0646 \u0622\u0631\u0627\u0645 \u06a9\u0631\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631 \u0631\u06c1\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1\u06cc \u0645\u0646\u0637\u0642 \u0646\u06cc\u0686\u06d2 \u06a9\u06d2 \u0631\u062c\u062d\u0627\u0646\u0627\u062a \u067e\u0631 \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0644\u06c1\u0670\u0630\u0627 &quot;\u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u0644\u0645\u0628\u06cc \u0639\u0645\u0631\u06cc\u06ba \u0645\u062e\u062a\u0635\u0631 \u06c1\u06cc\u06ba&#8221; \u06cc\u0627 &quot;\u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u0634\u0627\u0631\u0679\u0633 \u062e\u0631\u06cc\u062f\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba&#8221; \u062c\u06cc\u0633\u06d2 \u062f\u0648 \u0679\u0648\u06a9 \u0627\u0634\u0627\u0631\u0648\u06ba \u067e\u0631 \u0645\u062c\u0628\u0648\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u06c1\u0645 \u0646\u06d2 \u0645\u0627\u0631\u06a9\u06cc\u0679 \u06a9\u0648 \u06a9\u0626\u06cc \u0646\u0638\u0627\u0645\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u06a9\u06d2 \u0622\u063a\u0627\u0632 \u06a9\u06cc\u0627\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u062c\u0648 \u062f\u0648 \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u06d2 \u0648\u06c1 \u0622\u0633\u0627\u0646 \u062a\u06be\u06d2: \u067e\u06c1\u0644\u0627\u060c \u062d\u0627\u0644\u06cc\u06c1 \u062a\u0627\u0631\u06cc\u062e \u06a9\u06d2 \u0645\u0642\u0627\u0628\u0644\u06d2 \u0645\u06cc\u06ba \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u0627 \u06a9\u062a\u0646\u0627 \u0634\u062f\u06cc\u062f \u0645\u0648\u0627\u0632\u0646\u06c1 \u06c1\u06d2\u06d4 \u062f\u0648\u0633\u0631\u0627\u060c \u0686\u0627\u06c1\u06d2 \u0648\u06c1 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u0627\u0628 \u0628\u06be\u06cc \u0628\u0646\u0627\u0626\u06cc \u062c\u0627 \u0631\u06c1\u06cc \u06c1\u06d2 \u06cc\u0627 \u0631\u06cc\u0648\u0631\u0633 \u06c1\u0648\u0646\u0627 \u0634\u0631\u0648\u0639 \u06c1\u0648 \u0631\u06c1\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u0646\u06d2 \u0645\u062c\u06be\u06d2 \u0686\u0627\u0631 \u0645\u0645\u06a9\u0646\u06c1 \u0631\u06cc\u0627\u0633\u062a\u06cc\u06ba \u062f\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0627\u0636\u0627\u0641\u06c1<\/p>\n<\/li>\n<li>\n<p>\u067e\u0631 \u0627\u0645\u06cc\u062f \u0622\u0631\u0627\u0645<\/p>\n<\/li>\n<li>\n<p>\u0646\u06cc\u0686\u06d2 \u06a9\u06cc \u0637\u0631\u0641 \u0631\u062c\u062d\u0627\u0646 \u06a9\u06cc \u062a\u0634\u06a9\u06cc\u0644<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06be\u0648\u0644\u0646\u0627<\/p>\n<\/li>\n<\/ul>\n<p>\u06cc\u06c1 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0645\u06cc\u06ba \u06a9\u0648\u062f\u0646\u06d2 \u0633\u06d2 \u0628\u06c1\u062a\u0631 \u0646\u0642\u0637\u06c1 \u0622\u063a\u0627\u0632 \u06a9\u06cc \u0637\u0631\u062d \u0645\u062d\u0633\u0648\u0633 \u06c1\u0648\u0627\u06d4 \u06cc\u06c1 \u06c1\u0645\u06cc\u06ba \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 COT \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0645\u0627\u0631\u06a9\u06cc\u0679 \u06a9\u06cc \u0631\u06cc\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06d2 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u067e\u06be\u0631 \u06cc\u06c1 \u062c\u0627\u0646\u0686\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0627\u0646 \u0631\u06cc\u0627\u0633\u062a\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0648\u0626\u06cc \u0627\u06cc\u06a9 \u06a9\u0627\u0631\u0622\u0645\u062f \u0642\u06cc\u0645\u062a \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0627 \u0628\u0627\u0639\u062b \u0628\u0646\u06cc\u06d4<\/p>\n<p>\u0627\u0633 \u0645\u0631\u062d\u0644\u06d2 \u067e\u0631 \u06cc\u06c1 \u0645\u0639\u0644\u0648\u0645 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627 \u06a9\u06c1 \u0627\u0646 \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0648\u0646 \u0633\u06cc \u062d\u06a9\u0648\u0645\u062a \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06c1\u06d2 \u06af\u06cc\u06d4 \u0646\u0642\u0637\u06c1 \u0627\u06cc\u06a9 \u0627\u06cc\u0633\u0627 \u0688\u06be\u0627\u0646\u0686\u06c1 \u0628\u0646\u0627\u0646\u0627 \u062a\u06be\u0627 \u062c\u0633 \u06a9\u0627 \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u062a\u062c\u0631\u0628\u06c1 \u06a9\u06cc\u0627 \u062c\u0627\u0633\u06a9\u06d2\u06d4<\/p>\n<h2 id=\"heading-importing-packages\">\u067e\u06cc\u06a9\u062c \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u06cc\u06ba<\/h2>\n<p>\u0622\u0626\u06cc\u06d2 \u067e\u06cc\u06a9\u06cc\u062c \u06a9\u06cc \u062f\u0631\u0622\u0645\u062f\u0627\u062a \u06a9\u0648 \u06a9\u0645 \u0633\u06d2 \u06a9\u0645 \u0627\u0648\u0631 \u0633\u0627\u062f\u06c1 \u0631\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-python\">import requests\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nplt.rcParams[\"figure.figsize\"] = (14,6)\nplt.style.use(\"ggplot\")\n\napi_key = \"YOUR FMP API KEY\"\nbase_url = \"https:\/\/financialmodelingprep.com\/stable\" \n<\/code><\/pre>\n<p>\u06cc\u06c1\u0627\u06ba \u06a9\u0686\u06be \u0628\u06be\u06cc \u067e\u0633\u0646\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u067e\u0646\u06cc FMP API \u06a9\u0644\u06cc\u062f \u06a9\u0648 \u0627\u067e\u0646\u06cc \u0627\u0635\u0644 FMP API \u06a9\u0644\u06cc\u062f \u0633\u06d2 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u06a9\u0627\u0624\u0646\u0679 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062a\u0648\u060c \u0622\u067e FMP \u0688\u0648\u06cc\u0644\u067e\u0631 \u0627\u06a9\u0627\u0624\u0646\u0679 \u06a9\u06be\u0648\u0644 \u06a9\u0631 \u0627\u06a9\u0627\u0624\u0646\u0679 \u062d\u0627\u0635\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-pulling-the-data-cot-wti-crude-prices-using-fmp-apis\">\u0688\u06cc\u0679\u0627 \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba: FMP API \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 COT + WTI \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06cc \u0642\u06cc\u0645\u062a\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u0633 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u0648 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648 \u0688\u06cc\u0679\u0627 \u0633\u06cc\u0679 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u062a\u06be\u06cc\u06d4 \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u06c1\u0645\u06cc\u06ba \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 COT \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u062a\u06be\u06cc\u06d4 \u062f\u0648\u0633\u0631\u0627\u060c \u06c1\u0645\u06cc\u06ba \u062a\u0627\u0631\u06cc\u062e\u06cc WTI \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06cc \u0642\u06cc\u0645\u062a\u0648\u06ba \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u062a\u06be\u06cc\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06d2 \u0635\u062d\u06cc\u062d \u0645\u0639\u0627\u06c1\u062f\u0648\u06ba \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 COT \u0645\u0627\u0631\u06a9\u06cc\u0679\u0648\u06ba \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0634\u0631\u0648\u0639\u0627\u062a \u06a9\u06cc\u06d4<\/p>\n<pre><code class=\"language-python\">url = f\"{base_url}\/commitment-of-traders-list?apikey={api_key}\"\nr = requests.get(url)\ncot_list = pd.DataFrame(r.json())\n\ncrude_candidates = cot_list[\n    cot_list.astype(str)\n    .apply(lambda col: col.str.contains(\"crude\", case=False, na=False))\n    .any(axis=1)\n]\n\ncrude_candidates\n<\/code><\/pre>\n<p>\u06cc\u06c1 COT \u062f\u0646\u06cc\u0627 \u0633\u06d2 \u062e\u0627\u0645 \u062a\u06cc\u0644 \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642 \u0645\u0639\u0627\u06c1\u062f\u0648\u06ba \u06a9\u06cc \u0641\u0644\u0679\u0631 \u0634\u062f\u06c1 \u0641\u06c1\u0631\u0633\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u0648\u0642\u062a \u0645\u06cc\u06ba \u0646\u06d2 \u062c\u0648 \u06a9\u0644\u06cc\u062f\u06cc \u0645\u0639\u0627\u06c1\u062f\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u0648\u06c1 CL \u062a\u06be\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">cot_symbol = \"CL\"\nstart_date = \"2010-01-01\"\nend_date = \"2026-03-20\"\n\nurl = f\"{base_url}\/commitment-of-traders-report?symbol={cot_symbol}&from={start_date}&to={end_date}&apikey={api_key}\"\nr = requests.get(url)\n\ncot_df = pd.DataFrame(r.json())\ncot_df[\"date\"] = pd.to_datetime(cot_df[\"date\"])\ncot_df = cot_df.sort_values(\"date\").drop_duplicates(subset=\"date\").reset_index(drop=True)\ncot_df = cot_df.rename(columns={\"date\": \"cot_date\"})\n\ncot_df.head()\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 COT \u0631\u06cc\u06a9\u0627\u0631\u0688 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852682_582_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 COT \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u0627 \u0688\u06cc\u0679\u0627\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0622\u067e \u06a9\u0648 \u0628\u0639\u062f \u0645\u06cc\u06ba \u062c\u0646 \u0627\u06c1\u0645 \u0641\u06cc\u0644\u0688\u0632 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06af\u06cc \u0648\u06c1 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p><code>date<\/code><\/p>\n<\/li>\n<li>\n<p><code>openInterestAll<\/code><\/p>\n<\/li>\n<li>\n<p><code>noncommPositionsLongAll<\/code><\/p>\n<\/li>\n<li>\n<p><code>noncommPositionsShortAll<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u06af\u0644\u0627\u060c \u06c1\u0645 \u0646\u06d2 FMP \u0633\u06d2 \u06a9\u0645\u0648\u0688\u0679\u06cc \u067e\u0631\u0627\u0626\u0633 \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 WTI \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u06a9\u0627 \u0688\u06cc\u0679\u0627 \u062f\u0631\u0622\u0645\u062f \u06a9\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">price_symbol = \"CLUSD\"\nstart_date = \"2010-01-01\"\nend_date = \"2026-03-20\"\n\nurl = f\"{base_url}\/historical-price-eod\/full?symbol={price_symbol}&from={start_date}&to={end_date}&apikey={api_key}\"\nr = requests.get(url)\n\nprice_df = pd.DataFrame(r.json())\nprice_df[\"date\"] = pd.to_datetime(price_df[\"date\"])\nprice_df = price_df.sort_values(\"date\").drop_duplicates(subset=\"date\").reset_index(drop=True)\n\nprice_df\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852682_103_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u0688\u0628\u0644\u06cc\u0648 \u0679\u06cc \u0622\u0626\u06cc \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u06a9\u0627 \u0688\u06cc\u0679\u0627\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0686\u0648\u0646\u06a9\u06c1 COT \u0688\u06cc\u0679\u0627\u0633\u06cc\u0679 \u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 \u06c1\u06d2\u060c \u0645\u06cc\u06ba \u0646\u06d2 \u062c\u0645\u0639\u06c1 \u06a9\u06cc \u0628\u0646\u062f \u0642\u06cc\u0645\u062a\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0642\u06cc\u0645\u062a\u0648\u06ba \u06a9\u06cc \u0633\u06cc\u0631\u06cc\u0632 \u06a9\u0648 \u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 \u0628\u0627\u0631\u0632 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u062f\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">price_df[\"date\"] = pd.to_datetime(price_df[\"date\"])\nprice_df = price_df.sort_values(\"date\").drop_duplicates(subset=\"date\").reset_index(drop=True)\n\nweekly_price = price_df.set_index(\"date\").resample(\"W-FRI\").agg({\n    \"symbol\": \"last\",\n    \"open\": \"first\",\n    \"high\": \"max\",\n    \"low\": \"min\",\n    \"close\": \"last\",\n    \"volume\": \"sum\",\n    \"vwap\": \"mean\"\n}).dropna().reset_index()\n\nweekly_price[\"weekly_return\"] = weekly_price[\"close\"].pct_change()\nweekly_price = weekly_price.rename(columns={\"date\": \"price_date\"})\n\nweekly_price\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0645\u0631\u062d\u0644\u06c1 \u0627\u06c1\u0645 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u062f\u0648\u0646\u0648\u06ba \u0688\u06cc\u0679\u0627 \u0633\u06cc\u0679 \u0627\u06cc\u06a9 \u06c1\u06cc \u0679\u0627\u0626\u0645 \u0627\u0633\u06a9\u06cc\u0644 \u067e\u0631 \u06c1\u0648\u0646\u06d2 \u0686\u0627\u06c1\u0626\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0631\u0648\u0632\u0627\u0646\u06c1 \u0642\u06cc\u0645\u062a\u06cc\u06ba \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0628\u06a9\u06c1 COT \u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0633\u06af\u0646\u0644 \u06a9\u06cc \u0633\u06cc\u062f\u06be \u0628\u06c1\u062a \u062c\u0644\u062f \u062e\u0631\u0627\u0628 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u06af\u06cc\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852682_517_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"WTI \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u06a9\u0627 \u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 \u0688\u06cc\u0679\u0627\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0622\u062e\u0631 \u0645\u06cc\u06ba\u060c \u06c1\u0631 COT \u0645\u0634\u0627\u06c1\u062f\u06d2 \u06a9\u0648 \u0627\u06af\u0644\u06d2 \u06c1\u0641\u062a\u06d2 \u06a9\u06d2 WTI \u067e\u0631\u0627\u0626\u0633 \u0628\u0627\u0631 \u0645\u06cc\u06ba \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-python\">merged_df = pd.merge_asof(\n    cot_df.sort_values(\"cot_date\"),\n    weekly_price.sort_values(\"price_date\"),\n    left_on=\"cot_date\",\n    right_on=\"price_date\",\n    direction=\"forward\"\n)\n\nmerged_df[[\"cot_date\", \"price_date\", \"close\", \"weekly_return\", \"openInterestAll\", \"noncommPositionsLongAll\", \"noncommPositionsShortAll\"]]\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852682_802_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"COT \u0627\u0648\u0631 \u0642\u06cc\u0645\u062a \u06a9\u06d2 \u0688\u06cc\u0679\u0627 \u06a9\u0627 \u0627\u0646\u0636\u0645\u0627\u0645\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0622\u0624\u0679 \u067e\u0679 \u0627\u06cc\u06a9 \u0635\u0627\u0641 \u0648\u0631\u06a9\u0646\u06af \u0679\u06cc\u0628\u0644 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba:<\/p>\n<p>\u06cc\u06c1 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u06a9\u0645\u0644 \u0628\u06cc\u0633 \u0688\u06cc\u0679\u0627\u0633\u06cc\u0679 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0648 \u0644\u0627\u06af\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u06af\u0644\u0627 \u0645\u0631\u062d\u0644\u06c1 \u062e\u0627\u0645 \u0645\u0642\u0627\u0645 \u06a9\u06d2 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0645\u0632\u06cc\u062f \u0645\u0641\u06cc\u062f \u0686\u06cc\u0632 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-turning-raw-cot-data-into-usable-features\">\u062e\u0627\u0645 COT \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u0633 \u0648\u0642\u062a \u062e\u0627\u0645 \u0688\u06cc\u0679\u0627 \u062a\u06cc\u0627\u0631 \u062a\u06be\u0627\u060c \u0644\u06cc\u06a9\u0646 \u067e\u06be\u0631 \u0628\u06be\u06cc \u0633\u06af\u0646\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0641\u06cc\u062f \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627\u06d4 COT \u0631\u067e\u0648\u0631\u0679 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u0646\u0645\u0628\u0631\u0632 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0635\u0631\u0641 \u0648\u06c1\u06cc \u0646\u0645\u0628\u0631\u0632 \u0622\u067e \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u0686\u06be \u0646\u06c1\u06cc\u06ba \u0628\u062a\u0627\u062a\u06d2 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0648\u06c1 \u0648\u0642\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0633\u0627\u062a\u06be \u06a9\u0633\u06cc \u0686\u06cc\u0632 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u0646\u06c1 \u06c1\u0648\u06ba\u06d4<\/p>\n<p>\u0644\u06c1\u0630\u0627 \u0627\u06af\u0644\u0627 \u0645\u0631\u062d\u0644\u06c1 \u06a9\u0686\u06be \u0627\u06cc\u0633\u06cc \u0641\u0639\u0627\u0644\u06cc\u062a \u0628\u0646\u0627\u0646\u0627 \u062a\u06be\u0627 \u062c\u0648 \u06c1\u0645\u06cc\u06ba \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0639\u0646\u06cc \u062e\u06cc\u0632 \u0627\u0646\u062f\u0627\u0632 \u0645\u06cc\u06ba \u0628\u06cc\u0627\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06d2 \u06af\u06cc\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u062e\u0627\u0644\u0635\u062a\u0627\u064b \u063a\u06cc\u0631 \u062a\u062c\u0627\u0631\u062a\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646 \u0645\u06cc\u06ba \u0634\u0631\u0648\u0639\u0627\u062a \u06a9\u06cc\u06d4 \u06cc\u06c1 \u0635\u0631\u0641 \u063a\u06cc\u0631 \u062a\u062c\u0627\u0631\u062a\u06cc \u0634\u0627\u0631\u0679 \u0633\u06cc\u0644\u0646\u06af \u0627\u0648\u0631 \u0646\u0627\u0646 \u06a9\u0645\u0631\u0634\u0644 \u0634\u0627\u0631\u0679 \u0633\u06cc\u0644\u0646\u06af \u0645\u06cc\u06ba \u0641\u0631\u0642 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-python\">merged_df[\"net_position\"] = merged_df[\"noncommPositionsLongAll\"] - merged_df[\"noncommPositionsShortAll\"]\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u06cc\u06a9 \u062e\u0627\u0645 \u0642\u06cc\u0627\u0633 \u0622\u0631\u0627\u0626\u06cc \u067e\u0631 \u0645\u0628\u0646\u06cc \u062a\u0639\u0635\u0628 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062b\u0628\u062a \u0642\u062f\u0631 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u063a\u06cc\u0631 \u062a\u062c\u0627\u0631\u062a\u06cc \u062a\u0627\u062c\u0631 \u062e\u0627\u0644\u0635 \u0637\u0648\u06cc\u0644 \u06c1\u06cc\u06ba\u06d4 \u0645\u0646\u0641\u06cc \u0642\u062f\u0631 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u062e\u0627\u0644\u0635 \u06a9\u0645\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0627\u06c1\u0645\u060c \u062e\u0627\u0645 \u0646\u06cc\u0679 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u06d2 \u0645\u0633\u0627\u0626\u0644 \u06c1\u06cc\u06ba. \u0648\u0642\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0633\u0627\u062a\u06be \u0645\u0627\u0631\u06a9\u06cc\u0679 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u0628\u062f\u0644\u062a\u06d2 \u0631\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u062c\u0648 \u0642\u062f\u0631\u06cc\u06ba \u0627\u06cc\u06a9 \u0645\u062f\u062a \u0645\u06cc\u06ba \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0639\u0644\u0648\u0645 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba \u0627\u0646 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u062f\u0648\u0633\u0631\u06d2 \u062f\u0648\u0631 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u062c\u06cc\u0633\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u0648 \u0633\u06a9\u062a\u0627\u06d4 \u0627\u0633 \u0645\u0633\u0626\u0644\u06d2 \u06a9\u0648 \u062d\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06c1\u0645 \u0646\u06d2 \u06a9\u06be\u0644\u06d2 \u0645\u0641\u0627\u062f \u067e\u0631 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0628\u0646\u0627\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">merged_df[\"net_position_ratio\"] = merged_df[\"net_position\"] \/ merged_df[\"openInterestAll\"]\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0633\u06af\u0646\u0644 \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0641\u06cc\u062f \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u0637\u0644\u0642 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0645\u06cc\u06ba \u0627\u0628 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u0648 \u0645\u062c\u0645\u0648\u0639\u06cc \u0645\u0627\u0631\u06a9\u06cc\u0679 \u06a9\u06d2 \u062d\u0635\u06c1 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062f\u06cc\u06a9\u06be \u0631\u06c1\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0627\u06af\u0644\u0627\u060c \u06c1\u0645\u06cc\u06ba \u06cc\u06c1 \u062c\u0627\u0646\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u0627\u0628\u06be\u06cc \u0628\u06be\u06cc \u0628\u0646\u0627\u0626\u06cc \u062c\u0627 \u0631\u06c1\u06cc \u06c1\u06d2 \u06cc\u0627 \u06a9\u06be\u0648\u0644\u0646\u0627 \u0634\u0631\u0648\u0639 \u06c1\u0648 \u0631\u06c1\u06cc \u06c1\u06d2\u06d4 \u0627\u06cc\u0633\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06c1\u0645 \u0646\u06d2 \u0631\u06cc\u0627\u0633\u062a \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0641\u06cc\u0635\u062f \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">merged_df[\"net_position_ratio_change\"] = merged_df[\"net_position_ratio\"].diff()\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u06c1\u0645 \u062a\u06be\u0627 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06cc \u0633\u0645\u062a \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u0648 \u062c\u0648\u0691\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u0644\u0645\u0628\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646 \u062c\u0648 \u0627\u0628 \u0628\u06be\u06cc \u0628\u0691\u06be \u0631\u06c1\u06cc \u06c1\u06d2 \u0627\u06cc\u06a9 \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u0644\u0645\u0628\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646 \u062c\u06cc\u0633\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u06a9\u0645\u06cc \u0622\u0646\u0627 \u0634\u0631\u0648\u0639 \u06c1\u0648 \u06af\u0626\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u062e\u0631\u06cc \u062e\u0635\u0648\u0635\u06cc\u062a \u0633\u0628 \u0633\u06d2 \u0627\u06c1\u0645 \u062e\u0635\u0648\u0635\u06cc\u062a \u06c1\u06d2: \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u062a\u0646\u0627\u0633\u0628 \u06a9\u0627 \u0631\u0648\u0644\u0646\u06af \u0641\u06cc\u0635\u062f\u06d4 \u0645\u06cc\u06ba \u0646\u06d2 104 \u06c1\u0641\u062a\u06d2 \u06a9\u06cc \u0645\u062f\u062a \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u06d4<\/p>\n<pre><code class=\"language-python\">def rolling_percentile(x):\n    return pd.Series(x).rank(pct=True).iloc[-1]\n\nmerged_df[\"position_percentile_104\"] = merged_df[\"net_position_ratio\"].rolling(104).apply(rolling_percentile)\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0622\u067e \u06a9\u0648 \u0628\u062a\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06af\u0632\u0634\u062a\u06c1 \u062f\u0648 \u0633\u0627\u0644\u0648\u06ba \u06a9\u06d2 \u0645\u0642\u0627\u0628\u0644\u06d2 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f\u06c1 \u067e\u0648\u0632\u06cc\u0634\u0646 \u06a9\u0633 \u0642\u062f\u0631 \u0634\u062f\u06cc\u062f \u06c1\u06d2\u06d4 0.80 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0642\u062f\u0631 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0645\u0627\u0631\u06a9\u06cc\u0679 \u062d\u0627\u0644\u06cc\u06c1 \u062a\u0627\u0631\u06cc\u062e \u06a9\u06d2 \u0645\u0642\u0627\u0628\u0644\u06d2 \u0645\u06cc\u06ba \u062a\u06cc\u0632\u06cc \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u06d2 \u0679\u0627\u067e 20% \u0645\u06cc\u06ba \u06c1\u06d2\u06d4 0.20 \u0633\u06d2 \u0646\u06cc\u0686\u06d2 \u06a9\u06cc \u0642\u062f\u0631 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0645\u0627\u0631\u06a9\u06cc\u0679 \u0646\u06cc\u0686\u06d2 20\u066a \u0645\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u0686\u0627\u0631\u0648\u06ba \u0641\u0646\u06a9\u0634\u0646\u0632 \u06a9\u0648 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0645\u06cc\u06ba \u0646\u06d2 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">merged_df[[\"cot_date\",\"price_date\",\"net_position\",\"net_position_ratio\",\"net_position_ratio_change\",\"position_percentile_104\"]]\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852682_42_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u062d\u062a\u0645\u06cc \u0627\u0646\u0636\u0645\u0627\u0645_df\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u067e\u06c1\u0644\u06cc \u0686\u0646\u062f \u0633\u0637\u0631\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 <code>net_position_ratio_change<\/code> \u062a\u06be\u0627 <code>NaN<\/code>\u0627\u0633 \u06a9\u06cc \u062a\u0648\u0642\u0639 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u067e\u06c1\u0644\u06cc \u0642\u0637\u0627\u0631 \u0645\u06cc\u06ba \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0648\u0626\u06cc \u067e\u0686\u06be\u0644\u06d2 \u06c1\u0641\u062a\u06d2 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 \u067e\u06c1\u0644\u06cc 103 \u0644\u0627\u0626\u0646\u06cc\u06ba <code>position_percentile_104<\/code> \u0628\u06be\u06cc <code>NaN<\/code> \u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0631\u0648\u0644\u0646\u06af \u067e\u06cc\u0631\u06cc\u0688 \u0645\u06cc\u06ba \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 104 \u06c1\u0641\u062a\u0648\u06ba \u06a9\u0627 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0679\u06be\u06cc\u06a9 \u062a\u06be\u0627\u06d4 \u0627\u06c1\u0645 \u0628\u0627\u062a \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0628 \u06c1\u0645\u0627\u0631\u06d2 \u067e\u0627\u0633 \u0627\u067e\u0646\u06d2 \u0688\u06cc\u0679\u0627\u0633\u06cc\u0679 \u0645\u06cc\u06ba \u0686\u0627\u0631 \u0679\u06a9\u0691\u06d2 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p>\u062e\u0627\u0645 \u0627\u0646\u062f\u0627\u0632\u06d2 \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af<\/p>\n<\/li>\n<li>\n<p>\u0645\u0639\u0645\u0648\u0644 \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af<\/p>\n<\/li>\n<li>\n<p>\u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u0627\u06cc\u06a9 \u0631\u0648\u0644\u0646\u06af \u067e\u06cc\u0645\u0627\u0646\u06c1 \u06a9\u06c1 \u0648\u06c1 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u062a\u0646\u06cc \u0634\u062f\u06cc\u062f \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u06cc\u06c1 \u0648\u06c1 \u0646\u0642\u0637\u06c1 \u062a\u06be\u0627 \u062c\u06c1\u0627\u06ba COT \u0688\u06cc\u0679\u0627 \u0688\u06cc\u0679\u0627 \u0628\u0646\u0646\u0627 \u0634\u0631\u0648\u0639 \u06c1\u0648\u0627 \u062c\u0633\u06d2 \u0635\u0631\u0641 \u062a\u0627\u062c\u0631 \u0639\u06c1\u062f\u0648\u06ba \u06a9\u06cc \u0645\u06cc\u0632 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u06cc\u06a9 \u0631\u062c\u06cc\u0645 \u0645\u0627\u0688\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-building-the-first-version-of-the-regime-model\">\u062d\u06a9\u0648\u0645\u062a\u06cc \u0645\u0627\u0688\u0644 \u06a9\u06d2 \u067e\u06c1\u0644\u06d2 \u0648\u0631\u0698\u0646 \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631<\/h2>\n<p>\u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u06d2 \u062a\u06cc\u0627\u0631 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0627\u06af\u0644\u0627 \u0645\u0631\u062d\u0644\u06c1 \u0627\u0646\u06c1\u06cc\u06ba \u062d\u0642\u06cc\u0642\u06cc \u0645\u0627\u0631\u06a9\u06cc\u0679 \u06a9\u06d2 \u062d\u0627\u0644\u0627\u062a \u0645\u06cc\u06ba \u062a\u0631\u062c\u0645\u06c1 \u06a9\u0631\u0646\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0645\u0631\u06a9\u0632\u06cc \u062e\u06cc\u0627\u0644 \u0633\u0627\u062f\u06c1 \u062a\u06be\u0627\u06d4 \u0627\u067e\u0646\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u063a\u0644\u0648 \u06a9\u0631\u0646\u0627 \u06a9\u0627\u0641\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0645\u0627\u0631\u06a9\u06cc\u0679 \u0627\u06cc\u06a9 \u0637\u0648\u06cc\u0644 \u0639\u0631\u0635\u06d2 \u062a\u06a9 \u0628\u06c1\u062a \u0644\u0645\u0628\u06cc \u06cc\u0627 \u0628\u06c1\u062a \u0645\u062e\u062a\u0635\u0631 \u06c1\u0648\u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4 \u0632\u06cc\u0627\u062f\u06c1 \u0627\u06c1\u0645 \u0628\u0627\u062a\u060c \u062c\u0628 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u06c1\u0648 \u062a\u0648 \u06a9\u06cc\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u061f \u06a9\u06cc\u0627 \u0622\u067e \u0627\u0628 \u0628\u06be\u06cc \u0627\u0633\u06d2 \u0628\u0646\u0627 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 \u06cc\u06c1 \u06af\u06be\u0648\u0645\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u061f<\/p>\n<p>\u062a\u0648 \u0645\u06cc\u06ba \u0646\u06d2 \u062f\u0648 \u062c\u06c1\u062a\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0646 \u062f\u0648 \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2\u060c \u06c1\u0645 \u0646\u06d2 \u0686\u0627\u0631 \u062d\u06a9\u0648\u0645\u062a\u0648\u06ba \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u06cc\u06d4<\/p>\n<pre><code class=\"language-python\">merged_df[\"regime\"] = \"neutral\"\n\nmerged_df.loc[(merged_df[\"position_percentile_104\"] > 0.8) & (merged_df[\"net_position_ratio_change\"] > 0), \"regime\"] = \"bullish_buildup\"\nmerged_df.loc[(merged_df[\"position_percentile_104\"] > 0.8) & (merged_df[\"net_position_ratio_change\"] < 0), \"regime\"] = \"bullish_unwind\"\nmerged_df.loc[(merged_df[\"position_percentile_104\"] < 0.2) &#038; (merged_df[\"net_position_ratio_change\"] < 0), \"regime\"] = \"bearish_buildup\"\nmerged_df.loc[(merged_df[\"position_percentile_104\"] < 0.2) &#038; (merged_df[\"net_position_ratio_change\"] > 0), \"regime\"] = \"bearish_unwind\"\n<\/code><\/pre>\n<p>\u06cc\u06c1\u0627\u06ba \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u0627 \u06a9\u06cc\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p><strong>\u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0627\u0636\u0627\u0641\u06c1<\/strong>: \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0628\u06c1\u062a \u067e\u0631\u0627\u0645\u06cc\u062f \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0628 \u0628\u06be\u06cc \u0645\u0636\u0628\u0648\u0637 \u0633\u06d2 \u0645\u0636\u0628\u0648\u0637\u06cc \u06a9\u06cc \u0637\u0631\u0641 \u062c\u0627 \u0631\u06c1\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u067e\u0631 \u0627\u0645\u06cc\u062f \u0622\u0631\u0627\u0645<\/strong>: \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u0628\u06c1\u062a \u062a\u06cc\u0632 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u062a\u06cc\u0632\u06cc \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u0644\u06af\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0646\u06cc\u0686\u06d2 \u06a9\u06cc \u0637\u0631\u0641 \u0631\u062c\u062d\u0627\u0646 \u06a9\u06cc \u062a\u0634\u06a9\u06cc\u0644<\/strong>: \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0628\u06c1\u062a \u0645\u0646\u062f\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0628\u06c1\u062a \u0645\u0646\u062f\u06cc \u0631\u06c1\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u06a9\u06be\u0648\u0644\u0646\u0627<\/strong>: \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u0628\u06c1\u062a \u0645\u0646\u062f\u06cc \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u06a9\u0645\u0632\u0648\u0631\u06cc \u06a9\u0645 \u06c1\u0648\u0646\u06d2 \u0644\u06af\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u0686\u06cc\u0632 \u062c\u0648 \u0627\u0646 \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u0634\u0631\u0627\u0626\u0637 \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u06a9\u0648 \u067e\u0648\u0631\u0627 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>neutral<\/code> \u0628\u0627\u0644\u0679\u06cc<\/p>\n<p>\u062d\u06a9\u0648\u0645\u062a\u06cc\u06ba \u062a\u0641\u0648\u06cc\u0636 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u06c1\u0645 \u0646\u06d2 \u062c\u0627\u0646\u0686\u0627 \u06a9\u06c1 \u06c1\u0631 \u062d\u06a9\u0648\u0645\u062a \u0645\u06cc\u06ba \u06a9\u062a\u0646\u06d2 \u0645\u0634\u0627\u06c1\u062f\u0627\u062a \u0622\u0626\u06d2\u06d4<\/p>\n<pre><code class=\"language-python\">print(merged_df[\"regime\"].value_counts())\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852682_582_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u062d\u06a9\u0648\u0645\u062a\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u0622\u0624\u0679 \u067e\u0679 \u0627\u06c1\u0645 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0622\u067e \u06a9\u0648 \u0628\u062a\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u06d2 \u06cc\u0627 \u0628\u06c1\u062a \u06a9\u0645\u06d4 \u0627\u0633 \u0645\u0639\u0627\u0645\u0644\u06d2 \u0645\u06cc\u06ba\u060c \u0646\u06cc\u0648\u0679\u0631\u0644\u0632 \u0627\u0628 \u0628\u06be\u06cc \u0633\u0628 \u0633\u06d2 \u0628\u0691\u0627 \u06af\u0631\u0648\u067e \u062a\u06be\u0627\u060c \u062c\u0633 \u06a9\u06cc \u062a\u0648\u0642\u0639 \u062a\u06be\u06cc\u06d4 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0631\u06cc\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u06d4 \u0686\u0627\u0631 \u062d\u06a9\u0648\u0645\u062a\u06cc \u0628\u0627\u0644\u0679\u06cc\u0627\u06ba \u0686\u06be\u0648\u0679\u06cc \u062a\u06be\u06cc\u06ba \u0644\u06cc\u06a9\u0646 \u067e\u06be\u0631 \u0628\u06be\u06cc \u0645\u0646\u0627\u0633\u0628 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u062c\u0627\u0646\u0686\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0641\u06cc \u0645\u0634\u0627\u06c1\u062f\u0627\u062a \u062a\u06be\u06d2\u06d4<\/p>\n<p>\u06c1\u0645 \u0646\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u0634\u062f\u06c1 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06d2 \u0646\u0645\u0648\u0646\u06d2 \u06a9\u0648 \u0628\u06be\u06cc \u062f\u06cc\u06a9\u06be\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">merged_df[[\"cot_date\",\"price_date\",\"net_position_ratio\",\"net_position_ratio_change\",\"position_percentile_104\",\"regime\"]].tail(10)\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852682_838_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"merged_df + regime\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0627\u0633 \u0645\u0642\u0627\u0645 \u067e\u0631\u060c \u062e\u0627\u0645 COT \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0631\u062c\u06cc\u0645 \u0645\u0627\u0688\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u062a\u06be\u0627\u06d4 \u0627\u06af\u0644\u0627 \u0633\u0648\u0627\u0644 \u06cc\u06c1 \u062a\u06be\u0627 \u06a9\u06c1 \u06a9\u06cc\u0627 \u0627\u0646 \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u062d\u06a9\u0648\u0645\u062a \u062f\u0631\u062d\u0642\u06cc\u0642\u062a \u06a9\u0627\u0631\u0622\u0645\u062f \u0642\u06cc\u0645\u062a\u0648\u06ba \u06a9\u06cc \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0627 \u0628\u0627\u0639\u062b \u0628\u0646\u06cc\u06d4<\/p>\n<h2 id=\"heading-first-test-what-happens-after-each-regime\">\u067e\u06c1\u0644\u0627 \u0627\u0645\u062a\u062d\u0627\u0646: \u06c1\u0631 \u062d\u06a9\u0648\u0645\u062a \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u06cc\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u061f<\/h2>\n<p>\u0627\u0633 \u0648\u0642\u062a\u060c \u0645\u06cc\u0631\u06d2 \u067e\u0627\u0633 \u0627\u06cc\u06a9 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u062a\u06be\u0627 \u0644\u06cc\u06a9\u0646 \u06a9\u0648\u0626\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0646\u06c1\u06cc\u06ba \u062a\u06be\u06cc\u06d4 \u0627\u0646 \u0631\u06cc\u0627\u0633\u062a\u0648\u06ba \u06a9\u06cc \u062a\u062c\u0627\u0631\u062a \u06a9\u06cc \u0637\u0631\u0641 \u0631\u062c\u0648\u0639 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0645\u06cc\u06ba \u062c\u0627\u0646\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u062a\u06be\u0627 \u06a9\u06c1 \u06c1\u0631 \u0631\u06cc\u0627\u0633\u062a \u06a9\u06d2 \u0628\u0639\u062f \u062e\u0627\u0645 \u062a\u06cc\u0644 \u062f\u0631\u062d\u0642\u06cc\u0642\u062a \u06a9\u06cc\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0644\u06c1\u0630\u0627\u060c \u0627\u06af\u0644\u0627 \u0645\u0631\u062d\u0644\u06c1 \u0686\u0627\u0631 \u0627\u0646\u0639\u0642\u0627\u062f \u06a9\u06d2 \u0627\u062f\u0648\u0627\u0631 \u0645\u06cc\u06ba \u062a\u0645\u0627\u0645 \u062d\u06a9\u0648\u0645\u062a\u0648\u06ba \u06a9\u06d2 \u0628\u0639\u062f \u0641\u0627\u0631\u0648\u0631\u0688 \u0631\u06cc\u0679\u0631\u0646 \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0631\u0646\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<ul>\n<li>\n<p>1 \u06c1\u0641\u062a\u06c1<\/p>\n<\/li>\n<li>\n<p>2 \u06c1\u0641\u062a\u06d2<\/p>\n<\/li>\n<li>\n<p>4 \u06c1\u0641\u062a\u06d2<\/p>\n<\/li>\n<li>\n<p>8 \u06c1\u0641\u062a\u06d2<\/p>\n<\/li>\n<\/ul>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u0627\u067e\u0646\u06cc \u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0633\u06cc\u0631\u06cc\u0632 \u0645\u06cc\u06ba \u0641\u0627\u0631\u0648\u0631\u0688 \u0631\u06cc\u0679\u0631\u0646 \u06a9\u0627\u0644\u0645 \u0628\u0646\u0627 \u06a9\u0631 \u0634\u0631\u0648\u0639 \u06a9\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">merged_df[\"fwd_return_1w\"] = merged_df[\"close\"].shift(-1) \/ merged_df[\"close\"] - 1\nmerged_df[\"fwd_return_2w\"] = merged_df[\"close\"].shift(-2) \/ merged_df[\"close\"] - 1\nmerged_df[\"fwd_return_4w\"] = merged_df[\"close\"].shift(-4) \/ merged_df[\"close\"] - 1\nmerged_df[\"fwd_return_8w\"] = merged_df[\"close\"].shift(-8) \/ merged_df[\"close\"] - 1\n\nmerged_df[[\"cot_date\",\"price_date\",\"close\",\"regime\",\"fwd_return_1w\",\"fwd_return_2w\",\"fwd_return_4w\",\"fwd_return_8w\"]].tail(12)\n<\/code><\/pre>\n<p>\u06c1\u0631 \u06a9\u0627\u0644\u0645 \u0627\u06cc\u06a9 \u0622\u0633\u0627\u0646 \u0633\u0648\u0627\u0644 \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0627\u0633 \u06c1\u0641\u062a\u06d2 \u062e\u0627\u0645 \u062a\u06cc\u0644 \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u0646\u0638\u0627\u0645 \u0645\u06cc\u06ba \u06c1\u06d2\u060c \u062a\u0648 \u0627\u06af\u0644\u06d2 1\u060c 2\u060c 4 \u06cc\u0627 8 \u06c1\u0641\u062a\u0648\u06ba \u0645\u06cc\u06ba \u06a9\u06cc\u0627 \u06c1\u0648\u06af\u0627\u061f<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_241_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0633\u06cc\u0631\u06cc\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u0627\u067e\u0633\u06cc \u06a9\u0627\u0644\u0645 \u06a9\u0648 \u0622\u06af\u06d2 \u0628\u06be\u06cc\u062c\u06cc\u06ba\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0622\u062e\u0631\u06cc \u0686\u0646\u062f \u0642\u0637\u0627\u0631\u0648\u06ba \u0645\u06cc\u06ba NaN \u0642\u062f\u0631\u06cc\u06ba \u062a\u06be\u06cc\u06ba\u060c \u062c\u0648 \u06a9\u06c1 \u0645\u0639\u0645\u0648\u0644 \u06a9\u06cc \u0628\u0627\u062a \u06c1\u06d2\u06d4 \u0686\u0648\u0646\u06a9\u06c1 \u0688\u06cc\u0679\u0627 \u0633\u06cc\u0679 \u06a9\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u0648\u0626\u06cc \u0645\u0633\u062a\u0642\u0628\u0644 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u06a9\u0627 \u0688\u06cc\u0679\u0627 \u062f\u0633\u062a\u06cc\u0627\u0628 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0633\u0628 \u0633\u06d2 \u0644\u0645\u0628\u0627 \u0627\u0641\u0642 \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0622\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0644\u0627\u060c \u06c1\u0645 \u0646\u06d2 \u0646\u0638\u0627\u0645 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u06af\u0631\u0648\u067e \u06a9\u06cc\u0627 \u0627\u0648\u0631 \u06a9\u0686\u06be \u062e\u0644\u0627\u0635\u06c1 \u06a9\u06d2 \u0627\u0639\u062f\u0627\u062f\u0648\u0634\u0645\u0627\u0631 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u06cc\u0627\u06d4<\/p>\n<ul>\n<li>\n<p>\u0634\u0645\u0627\u0631<\/p>\n<\/li>\n<li>\n<p>\u0627\u0648\u0633\u0637 \u0622\u06af\u06d2 \u06a9\u06cc \u0648\u0627\u067e\u0633\u06cc\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u0688\u06cc\u0646 \u0641\u0627\u0631\u0648\u0631\u0688 \u0631\u06cc\u0679\u0631\u0646<\/p>\n<\/li>\n<li>\n<p>\u06c1\u0679 \u06a9\u06cc \u0634\u0631\u062d<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"language-python\">regime_summary = merged_df.groupby(\"regime\").agg(\n    count=(\"regime\", \"size\"),\n    avg_1w=(\"fwd_return_1w\", \"mean\"),\n    median_1w=(\"fwd_return_1w\", \"median\"),\n    hit_rate_1w=(\"fwd_return_1w\", lambda x: (x > 0).mean()),\n    avg_2w=(\"fwd_return_2w\", \"mean\"),\n    median_2w=(\"fwd_return_2w\", \"median\"),\n    hit_rate_2w=(\"fwd_return_2w\", lambda x: (x > 0).mean()),\n    avg_4w=(\"fwd_return_4w\", \"mean\"),\n    median_4w=(\"fwd_return_4w\", \"median\"),\n    hit_rate_4w=(\"fwd_return_4w\", lambda x: (x > 0).mean()),\n    avg_8w=(\"fwd_return_8w\", \"mean\"),\n    median_8w=(\"fwd_return_8w\", \"median\"),\n    hit_rate_8w=(\"fwd_return_8w\", lambda x: (x > 0).mean())\n).reset_index()\n\nregime_summary\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_902_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u0646\u0638\u0627\u0645 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u06af\u0631\u0648\u067e \u06a9\u0631\u062f\u06c1 \u0688\u06cc\u0679\u0627\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u062c\u062f\u0648\u0644 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u06a9\u0627 \u06c1\u0645\u0627\u0631\u0627 \u067e\u06c1\u0644\u0627 \u062d\u0642\u06cc\u0642\u06cc \u0627\u0645\u062a\u062d\u0627\u0646 \u062a\u06be\u0627 \u0627\u0648\u0631 \u0627\u0633 \u0646\u06d2 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06c1\u0645\u0627\u0631\u06d2 \u06a9\u0686\u06be \u0627\u0635\u0644 \u062e\u06cc\u0627\u0644\u0627\u062a \u06a9\u0648 \u0645\u0633\u062a\u0631\u062f \u06a9\u0631 \u062f\u06cc\u0627\u06d4<\/p>\n<p>\u062e\u0627\u0645 \u062d\u06a9\u0648\u0645\u062a \u06a9\u06d2 \u0645\u0627\u0688\u0644 \u06a9\u06d2 \u0646\u062a\u0627\u0626\u062c \u0627\u0686\u06be\u06d2 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u06d2\u06d4 \u0627\u0635\u0644 \u0645\u06cc\u06ba\u060c \u06cc\u06c1 \u0645\u06cc\u0631\u06d2 \u062e\u06cc\u0627\u0644 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u0645\u0632\u0648\u0631 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0686\u0646\u062f \u0686\u06cc\u0632\u06cc\u06ba \u062c\u0648 \u0646\u0645\u0627\u06cc\u0627\u06ba \u06c1\u06cc\u06ba \u0648\u06c1 \u06cc\u06c1 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p><code>neutral<\/code>    \u0627\u06a9\u062b\u0631 \u062d\u06a9\u0648\u0645\u062a \u06a9\u06cc \u0628\u0627\u0644\u0679\u06cc\u0648\u06ba \u0633\u06d2 \u0628\u06c1\u062a\u0631 \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0627 \u0645\u0638\u0627\u06c1\u0631\u06c1 \u06a9\u06cc\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p><code>bullish_buildup<\/code>    \u0622\u067e \u06a9\u0645\u0632\u0648\u0631 \u0646\u0638\u0631 \u0622\u062a\u06d2 \u0631\u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>bearish_buildup<\/code>    \u06a9\u0645\u0632\u0648\u0631 \u0628\u06be\u06cc \u0644\u06af \u0631\u06c1\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p><code>bearish_unwind<\/code>    \u06cc\u06c1 \u067e\u06c1\u0644\u06cc \u0646\u0638\u0631 \u0645\u06cc\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0636\u0628\u0648\u0637 \u0644\u06af \u0631\u06c1\u0627 \u062a\u06be\u0627\u060c \u0644\u06cc\u06a9\u0646 \u0627\u0633 \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0686\u06be \u0628\u0691\u06d2 \u0627\u0644\u0679\u0627 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0627\u06c1\u0631 \u0633\u06d2 \u0622\u0626\u06d2 \u062a\u06be\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>bullish_unwind<\/code>    \u0628\u06c1\u062a \u0633\u06d2 \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0645\u06cc\u06ba \u06cc\u06c1 \u0648\u0627\u062d\u062f \u062d\u06a9\u0648\u0645\u062a \u062a\u06be\u06cc \u062c\u0648 \u06a9\u0633\u06cc \u062d\u062f \u062a\u06a9 \u0645\u0633\u062a\u062d\u06a9\u0645 \u0646\u0638\u0631 \u0622\u062a\u06cc \u062a\u06be\u06cc\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0633 \u0646\u06d2 \u0645\u0646\u0635\u0648\u0628\u06d2 \u06a9\u0627 \u0631\u062e \u0628\u062f\u0644 \u062f\u06cc\u0627\u06d4<\/p>\n<p>\u0627\u0628 \u062a\u06a9 \u06a9\u0627 \u0645\u0646\u0635\u0648\u0628\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u0686\u0627\u0631 \u0631\u062c\u06cc\u0645 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0642\u0627\u0626\u0645 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u0627\u0648\u0631 \u0631\u06cc\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u062a\u062c\u0627\u0631\u062a\u06cc \u0642\u0648\u0627\u0646\u06cc\u0646 \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4 \u0645\u0633\u062a\u0642\u0628\u0644 \u06a9\u06cc \u0648\u0627\u067e\u0633\u06cc\u0648\u06ba \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u06cc\u06c1 \u0627\u0628 \u06a9\u0648\u0626\u06cc \u0645\u0639\u0646\u06cc \u0646\u06c1\u06cc\u06ba \u0631\u06a9\u06be\u062a\u0627. \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u062d\u06a9\u0648\u0645\u062a\u0648\u06ba \u0646\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0627\u06c1\u0645\u06cc\u062a \u0646\u06c1\u06cc\u06ba \u062f\u06cc\u06d4<\/p>\n<p>\u0644\u06c1\u0670\u0630\u0627\u060c \u0627\u0646 \u0686\u0627\u0631\u0648\u06ba \u06a9\u0627 \u062a\u0639\u0627\u0642\u0628 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u06cc\u06a9 \u0627\u06cc\u0633\u06d2 \u0646\u0638\u0627\u0645 \u067e\u0631 \u062a\u0648\u062c\u06c1 \u0645\u0631\u06a9\u0648\u0632 \u06a9\u0631\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u06cc \u062c\u0648 \u0627\u0628 \u0628\u06be\u06cc \u0627\u0645\u06cc\u062f \u0627\u0641\u0632\u0627 \u0644\u06af \u0631\u06c1\u0627 \u062a\u06be\u0627\u06d4 <strong>\u0627\u067e\u0646\u06d2 \u0636\u062f\u06cc \u062a\u0646\u0627\u0624 \u06a9\u0648 \u0622\u0631\u0627\u0645 \u062f\u06cc\u06ba\u06d4<\/strong><\/p>\n<p>\u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0645\u06cc\u06ba \u062a\u0642\u0633\u06cc\u0645 \u067e\u0631 \u0627\u06cc\u06a9 \u0628\u0635\u0631\u06cc \u0646\u0638\u0631 \u0688\u0627\u0644\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u062a\u06be\u0627 \u0627\u0648\u0631 \u06cc\u06c1 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u062a\u06be\u0627 \u06a9\u06c1 \u06a9\u06cc\u0627 \u0630\u0631\u0627\u0626\u0639 \u06a9\u0648\u0626\u06cc \u0627\u06c1\u0645 \u0686\u06cc\u0632 \u0686\u06be\u067e\u0627 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-looking-at-the-regimes-more-closely\">\u062d\u06a9\u0648\u0645\u062a \u06a9\u0648 \u0642\u0631\u06cc\u0628 \u0633\u06d2 \u062f\u06cc\u06a9\u06be\u06cc\u06ba<\/h2>\n<p>\u062e\u0644\u0627\u0635\u06c1 \u0679\u06cc\u0628\u0644 \u0645\u062c\u06be\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0628\u062a\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0645\u0642\u0627\u0645\u06cc \u0646\u0638\u0627\u0645 \u06a9\u06d2 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u06a9\u0645\u0632\u0648\u0631 \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u0645\u06cc\u06ba \u067e\u06be\u0631 \u0628\u06be\u06cc \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0686\u06cc\u0632 \u06a9\u0648 \u062d\u0630\u0641 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0631\u0648\u06cc\u06d2 \u06a9\u0648 \u0628\u0635\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 \u0686\u0627\u0631\u0679 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0622\u063a\u0627\u0632 \u06a9\u06cc\u0627 \u062c\u0633 \u0645\u06cc\u06ba WTI \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u0648 \u0642\u06cc\u0627\u0633 \u0622\u0631\u0627\u0626\u06cc \u067e\u0631 \u0645\u0628\u0646\u06cc \u062e\u0627\u0644\u0635 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u062a\u0646\u0627\u0633\u0628 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0631\u06a9\u06be\u0627 \u06af\u06cc\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">plt.plot(merged_df[\"price_date\"], merged_df[\"close\"], label=\"wti close\")\nplt.plot(merged_df[\"price_date\"], merged_df[\"net_position_ratio\"] * 100, label=\"net position ratio x 100\")\nplt.title(\"WTI crude oil price vs speculative net positioning\")\nplt.xlabel(\"date\")\nplt.ylabel(\"value\")\nplt.legend()\nplt.show()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_384_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u0688\u0628\u0644\u06cc\u0648 \u0679\u06cc \u0622\u0626\u06cc \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u0627\u0648\u0631 \u0642\u06cc\u0627\u0633 \u0622\u0631\u0627\u0626\u06cc \u067e\u0631 \u0645\u0628\u0646\u06cc \u0646\u06cc\u0679 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0627\u0633 \u0686\u0627\u0631\u0679 \u06a9\u0627 \u0645\u0642\u0635\u062f \u0627\u06cc\u06a9 \u06c1\u06cc \u067e\u06cc\u0645\u0627\u0646\u06d2 \u067e\u0631 \u062f\u0648 \u0633\u06cc\u0631\u06cc\u0632 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u0646\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u0627 \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u062a\u06cc\u0632 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u062e\u0627\u0645 \u062a\u06cc\u0644 \u0645\u06cc\u06ba \u0628\u0691\u06cc \u062d\u0631\u06a9\u062a\u06cc\u06ba \u0627\u0633 \u0648\u0642\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba \u062c\u0628 \u0642\u06cc\u0627\u0633 \u0622\u0631\u0627\u0626\u06cc \u067e\u0631 \u0645\u0628\u0646\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u067e\u06be\u06cc\u0644\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0645\u06cc\u06ba \u0646\u06d2 \u062e\u0648\u062f 104 \u06c1\u0641\u062a\u06d2 \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644\u0632 \u06a9\u0627 \u06af\u0631\u0627\u0641 \u0628\u0646\u0627\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">plt.plot(merged_df[\"price_date\"], merged_df[\"position_percentile_104\"])\nplt.axhline(0.8, linestyle=\"--\", color=\"b\")\nplt.axhline(0.2, linestyle=\"--\", color=\"b\")\nplt.title(\"104-week positioning percentile\")\nplt.xlabel(\"date\")\nplt.ylabel(\"percentile\")\nplt.show()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_768_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"104 \u06c1\u0641\u062a\u06c1 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u0627 \u0641\u06cc\u0635\u062f\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0627\u0633 \u0633\u06d2 \u062d\u06a9\u0648\u0645\u062a \u06a9\u06cc \u0645\u0646\u0637\u0642 \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u0627 \u0622\u0633\u0627\u0646 \u06c1\u0648 \u06af\u06cc\u0627\u06d4 \u062c\u0628 \u0628\u06be\u06cc \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644 0.80 \u0633\u06d2 \u0627\u0648\u067e\u0631 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0645\u0627\u0631\u06a9\u06cc\u0679 \u062a\u06cc\u0632\u06cc \u06a9\u06d2 \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u0639\u0644\u0627\u0642\u06d2 \u0645\u06cc\u06ba \u062f\u0627\u062e\u0644 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u062c\u0628 \u0628\u06be\u06cc \u06cc\u06c1 0.20 \u0633\u06d2 \u0646\u06cc\u0686\u06d2 \u0622\u062a\u0627 \u06c1\u06d2\u060c \u0645\u0627\u0631\u06a9\u06cc\u0679 \u0645\u0646\u062f\u06cc \u06a9\u06d2 \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u0632\u0648\u0646 \u0645\u06cc\u06ba \u062f\u0627\u062e\u0644 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u06be\u0631 \u06c1\u0645 \u0646\u06d2 \u062f\u06cc\u06a9\u06be\u0627 \u06a9\u06c1 \u06c1\u0631 \u062f\u0648\u0631 \u062d\u06a9\u0648\u0645\u062a \u0645\u06cc\u06ba \u06a9\u062a\u0646\u06d2 \u0645\u0634\u0627\u06c1\u062f\u0627\u062a \u062f\u0631\u062d\u0642\u06cc\u0642\u062a \u0622\u0626\u06d2\u06d4<\/p>\n<pre><code class=\"language-python\">regime_counts = merged_df[\"regime\"].value_counts()\n\nplt.bar(regime_counts.index, regime_counts.values)\nplt.title(\"Regime counts\")\nplt.xlabel(\"regime\")\nplt.ylabel(\"count\")\nplt.xticks(rotation=30)\nplt.show()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_643_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u062d\u06a9\u0648\u0645\u062a\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u062d\u06a9\u0648\u0645\u062a\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u0645\u0639\u0642\u0648\u0644 \u0645\u0639\u0644\u0648\u0645 \u06c1\u0648\u062a\u06cc \u062a\u06be\u06cc\u06d4 \u0646\u06cc\u0648\u0679\u0631\u0644 \u0627\u0628 \u0628\u06be\u06cc \u0633\u0628 \u0633\u06d2 \u0628\u0691\u06cc \u0628\u0627\u0644\u0679\u06cc \u062a\u06be\u06cc \u0627\u0648\u0631 \u0641\u0648\u0631 \u0633\u06af\u0646\u0644 \u0631\u062c\u06cc\u0645 \u0645\u06cc\u06ba \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0648\u06cc\u0631\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u062c\u0627\u0646\u0686 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0641\u06cc \u0645\u0634\u0627\u06c1\u062f\u0627\u062a \u062a\u06be\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u06c1\u0645 \u0646\u06d2 \u06c1\u0631 \u062d\u06a9\u0648\u0645\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0648\u0633\u0637\u0627\u064b 4 \u06c1\u0641\u062a\u06d2 \u06a9\u06d2 \u0645\u0639\u0631\u0648\u0641 \u0645\u0646\u0627\u0641\u0639 \u06a9\u06cc \u0645\u0646\u0635\u0648\u0628\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u06cc\u06d4<\/p>\n<pre><code class=\"language-python\">avg_4w = regime_summary.set_index(\"regime\")[\"avg_4w\"].sort_values()\n\nplt.bar(avg_4w.index, avg_4w.values)\nplt.title(\"Average 4-week forward return by regime\")\nplt.xlabel(\"regime\")\nplt.ylabel(\"average return\")\nplt.xticks(rotation=30)\nplt.show()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_356_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u062d\u06a9\u0648\u0645\u062a \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0627\u0648\u0633\u0637\u0627\u064b 4 \u06c1\u0641\u062a\u06d2 \u06a9\u06cc \u067e\u06cc\u0634\u06af\u06cc \u0648\u0627\u067e\u0633\u06cc\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u067e\u06c1\u0644\u0627 \u0645\u0636\u0628\u0648\u0637 \u0627\u0634\u0627\u0631\u06c1 \u062a\u06be\u0627 \u06a9\u06c1 \u0627\u0635\u0644 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0628\u06c1\u062a \u0648\u0633\u06cc\u0639 \u062a\u06be\u0627\u06d4 \u062f\u0648\u0646\u0648\u06ba \u062c\u0645\u0639 \u062d\u06a9\u0648\u0645\u062a\u06cc\u06ba \u06a9\u0645\u0632\u0648\u0631 \u062f\u06a9\u06be\u0627\u0626\u06cc \u062f\u06cc\u06ba\u06d4 <code>bullish_unwind<\/code> \u06cc\u06c1 \u062a\u06be\u0648\u0691\u0627 \u0633\u0627 \u0645\u062b\u0628\u062a \u062a\u06be\u0627\u060c \u0644\u06cc\u06a9\u0646 \u0632\u06cc\u0627\u062f\u06c1 \u0646\u06c1\u06cc\u06ba. <code>bearish_unwind<\/code> \u06cc\u06c1 \u0627\u0648\u0633\u0637\u0627\u064b \u0633\u0628 \u0633\u06d2 \u0645\u0636\u0628\u0648\u0637 \u0644\u06af \u0631\u06c1\u0627 \u062a\u06be\u0627\u060c \u062c\u0648 \u06a9\u06c1 \u062f\u0644\u0686\u0633\u067e \u062a\u06be\u0627\u060c \u0644\u06cc\u06a9\u0646 \u0645\u062c\u06be\u06d2 \u067e\u06be\u0631 \u0628\u06be\u06cc \u062a\u0642\u0633\u06cc\u0645 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0646\u062a\u0627\u0626\u062c \u067e\u0631 \u0628\u06be\u0631\u0648\u0633\u06c1 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627\u06d4<\/p>\n<p>\u062a\u0648 \u0627\u06af\u0644\u0627\u060c \u06c1\u0645 \u0646\u06d2 4 \u06c1\u0641\u062a\u06d2 \u06a9\u06cc \u06c1\u0679 \u0631\u06cc\u0679 \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">hit_4w = regime_summary.set_index(\"regime\")[\"hit_rate_4w\"].sort_values()\n\nplt.bar(hit_4w.index, hit_4w.values)\nplt.title(\"4-week hit rate by regime\")\nplt.xlabel(\"regime\")\nplt.ylabel(\"hit rate\")\nplt.xticks(rotation=30)\nplt.show()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_631_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"4-\u06c1\u0641\u062a\u0648\u06ba \u06a9\u06cc \u06c1\u0679 \u0631\u06cc\u0679 \u0628\u0630\u0631\u06cc\u0639\u06c1 \u062d\u06a9\u0648\u0645\u062a\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06c1\u0679 \u0631\u06cc\u0679 \u0646\u06d2 \u0628\u06be\u06cc \u0627\u06cc\u0633\u06cc \u06c1\u06cc \u06a9\u06c1\u0627\u0646\u06cc \u0633\u0646\u0627\u0626\u06cc\u06d4 <code>bullish_unwind<\/code> \u06cc\u06c1 \u0628\u06c1\u062a\u0631 \u062d\u06a9\u0648\u0645\u062a\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u062a\u06be\u06cc\u060c \u0644\u06cc\u06a9\u0646 \u067e\u06be\u0631 \u0628\u06be\u06cc \u0627\u062a\u0646\u06cc \u0637\u0627\u0642\u062a\u0648\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u06c1 \u0627\u0633\u06d2 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u06c1\u0646\u06d2 \u06a9\u0627 \u062c\u0648\u0627\u0632 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631 \u0633\u06a9\u06d2\u06d4 <code>neutral<\/code> \u06cc\u06c1 \u0627\u0628 \u0628\u06be\u06cc \u0628\u06c1\u062a \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u0627 \u062a\u06be\u0627\u060c \u06cc\u0639\u0646\u06cc \u0631\u062c\u06cc\u0645 \u0641\u0644\u0679\u0631 \u0627\u0628\u06be\u06cc \u062a\u06a9 \u0635\u0627\u0641 \u06a9\u0646\u0627\u0631\u0648\u06ba \u06a9\u0648 \u067e\u06cc\u062f\u0627 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0631\u06c1\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0627\u0633 \u0648\u0642\u062a \u0645\u06cc\u06ba \u06cc\u06c1 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u062a\u06be\u0627 \u06a9\u06c1 \u0622\u06cc\u0627 \u0627\u0648\u0633\u0637 \u06a9\u0686\u06be \u0628\u0691\u06cc \u0686\u0627\u0644\u0648\u06ba \u0633\u06d2 \u0645\u062a\u0632\u0644\u0632\u0644 \u06c1\u0648 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0644\u06c1\u0630\u0627\u060c \u0645\u06cc\u06ba \u0646\u06d2 \u06c1\u0631 \u0633\u0633\u0679\u0645 \u06a9\u06d2 \u0644\u06cc\u06d2 4 \u06c1\u0641\u062a\u06d2 \u06a9\u06cc \u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0627 \u0645\u0646\u0635\u0648\u0628\u06c1 \u0628\u0646\u0627\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">plot_df = merged_df[[\"regime\", \"fwd_return_4w\"]].dropna()\n\nplot_df.boxplot(column=\"fwd_return_4w\", by=\"regime\", grid=False)\nplt.title(\"4-week forward return distribution by regime\")\nplt.suptitle(\"\")\nplt.xlabel(\"regime\")\nplt.ylabel(\"4-week forward return\")\nplt.xticks(rotation=30)\nplt.show()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_361_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u0633\u0633\u0679\u0645 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 4 \u06c1\u0641\u062a\u06d2 \u06a9\u06d2 \u0645\u0639\u0631\u0648\u0641 \u0645\u0646\u0627\u0641\u0639 \u06a9\u06cc \u062a\u0642\u0633\u06cc\u0645\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0627\u0633 \u0686\u0627\u0631\u0679 \u0646\u06d2 \u0645\u0633\u0626\u0644\u06c1 \u06a9\u0648 \u0628\u06c1\u062a \u0648\u0627\u0636\u062d \u06a9\u0631 \u062f\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><code>bearish_unwind<\/code>    \u06cc\u06c1 \u0627\u0648\u0633\u0637\u0627\u064b \u0645\u0636\u0628\u0648\u0637 \u0644\u06af \u0631\u06c1\u0627 \u062a\u06be\u0627\u060c \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u0637\u0627\u0642\u062a \u0628\u06c1\u062a \u0628\u0691\u06cc \u0627\u0644\u0679\u0627 \u0635\u0644\u0627\u062d\u06cc\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0686\u06be \u0628\u06cc\u0631\u0648\u0646\u06cc \u0644\u0648\u06af\u0648\u06ba \u0633\u06d2 \u0622\u0626\u06cc\u06d4 \u06cc\u06c1 \u0627\u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0645 \u0645\u062c\u0628\u0648\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><code>bullish_buildup<\/code>    \u0627\u0648\u0631 <code>bearish_buildup<\/code> \u06cc\u06c1 \u0633\u0645\u0631\u06cc \u0679\u06cc\u0628\u0644\u0632 \u0627\u0648\u0631 \u0688\u0633\u0679\u0631\u06cc \u0628\u06cc\u0648\u0634\u0646 \u062f\u0648\u0646\u0648\u06ba \u0645\u06cc\u06ba \u06a9\u0645\u0632\u0648\u0631 \u062a\u06be\u0627\u06d4<\/p>\n<p><code>bullish_unwind<\/code>    \u06cc\u06c1 \u0648\u0627\u062d\u062f \u062d\u06a9\u0648\u0645\u062a \u062a\u06be\u06cc \u062c\u0648 \u06a9\u0633\u06cc \u062d\u062f \u062a\u06a9 \u0645\u0633\u062a\u062d\u06a9\u0645 \u062f\u06a9\u06be\u0627\u0626\u06cc \u062f\u06cc\u062a\u06cc \u062a\u06be\u06cc \u0627\u0648\u0631 \u0686\u0646\u062f \u0644\u0648\u06af\u0648\u06ba \u06a9\u06d2 \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u0645\u0634\u0627\u06c1\u062f\u0627\u062a \u067e\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u0627\u0646\u062d\u0635\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06cc \u062a\u06be\u06cc\u06d4<\/p>\n<p>\u062a\u0648 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u06cc \u0633\u0645\u062a \u0628\u062f\u0644 \u06af\u0626\u06cc\u06d4<\/p>\n<p>\u0627\u0628 \u062a\u06a9 \u06a9\u0627 \u062e\u06cc\u0627\u0644 \u067e\u0648\u0631\u06d2 \u0631\u062c\u06cc\u0645 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u06a9\u0648 \u062c\u0627\u0646\u0686\u0646\u0627 \u0627\u0648\u0631 \u0634\u0627\u06cc\u062f \u0645\u062a\u0639\u062f\u062f \u0631\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u0686\u0627\u0631\u0679 \u06a9\u06d2 \u0628\u0639\u062f \u0627\u0628 \u06cc\u06c1 \u06a9\u0648\u0626\u06cc \u0645\u0639\u0646\u06cc \u0646\u06c1\u06cc\u06ba \u0631\u06a9\u06be\u062a\u0627\u06d4 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u06cc\u06c1 \u0628\u062a\u0627 \u06a9\u0631 \u0622\u067e \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0645 \u06a9\u0631 \u0686\u06a9\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u0648 \u06a9\u06cc\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p>\u0644\u06c1\u0670\u0630\u0627 \u0686\u0627\u0631\u0648\u06ba \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9\u0633 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u067e\u0646\u06cc \u062a\u0648\u062c\u06c1 \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u062a\u06a9 \u0645\u062d\u062f\u0648\u062f \u06a9\u0631 \u062f\u06cc: \u0688\u06cc-\u0627\u06cc\u06a9\u0633\u0627\u0626\u0632\u0646\u06af\u06d4<\/p>\n<p>\u0627\u0633 \u0645\u0648\u0642\u0639 \u067e\u0631\u060c <code>bullish_unwind<\/code> \u06cc\u06c1 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0627\u06cc\u06a9 \u0642\u0627\u0628\u0644 \u0630\u06a9\u0631 \u0627\u0648\u0631 \u0628\u0691\u06cc \u062d\u06a9\u0648\u0645\u062a \u062a\u06be\u06cc\u06d4 \u062a\u0639\u0645\u06cc\u0631\u0627\u062a\u06cc \u0646\u0638\u0627\u0645 \u06a9\u0645\u0632\u0648\u0631 \u062a\u06be\u0627 <code>bearish_unwind<\/code> \u06cc\u06c1 \u06a9\u0645 \u0642\u0627\u0626\u0644 \u062a\u06be\u0627 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0633 \u06a9\u06cc \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0637\u0627\u0642\u062a \u0686\u0646\u062f \u0628\u0691\u06cc \u0686\u0627\u0644\u0648\u06ba \u0633\u06d2 \u0622\u0626\u06cc \u062a\u06be\u06cc\u06d4<\/p>\n<p>\u062a\u0648 \u062a\u0648\u062c\u06c1 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u06a9\u0633\u06cc \u0627\u0648\u0631 \u0686\u06cc\u0632 \u06a9\u06cc \u0637\u0631\u0641 \u0645\u0628\u0630\u0648\u0644 \u06c1\u0648 \u0631\u06c1\u06cc \u062a\u06be\u06cc\u06d4 <code>bullish_unwind<\/code>.<\/p>\n<p>\u0628\u06c1\u0631 \u062d\u0627\u0644\u060c \u0645\u06cc\u06ba \u0646\u06d2 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0645\u0631\u0627\u062d\u0644 \u0645\u06cc\u06ba \u062f\u0648 \u0627\u0636\u0627\u0641\u06cc unwind-based \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u0631\u06a9\u06be\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u0637\u0631\u062d\u060c \u067e\u06c1\u0644\u0627 \u0628\u06cc\u06a9 \u0679\u06cc\u0633\u0679 \u06cc\u06c1 \u062f\u06a9\u06be\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627: <code>bullish_unwind<\/code> \u06a9\u06cc\u0627 \u06cc\u06c1 \u0639\u0645\u0644\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0628\u06c1\u062a\u0631 \u06c1\u06d2\u060c \u06cc\u0627 \u06a9\u06cc\u0627 \u0648\u0633\u06cc\u0639 \u062a\u0631 \u0631\u06cc\u0644\u06cc\u0632 \u0645\u0646\u0637\u0642 \u0645\u062c\u0645\u0648\u0639\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0628\u06c1\u062a\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u061f<\/p>\n<pre><code class=\"language-python\">merged_df[\"long_bullish_unwind\"] = (merged_df[\"regime\"] == \"bullish_unwind\").astype(int)\nmerged_df[\"long_bearish_unwind\"] = (merged_df[\"regime\"] == \"bearish_unwind\").astype(int)\nmerged_df[\"long_any_unwind\"] = merged_df[\"regime\"].isin([\"bullish_unwind\", \"bearish_unwind\"]).astype(int)\n\nprint(\"number of trades:n\", merged_df[[\"long_bullish_unwind\", \"long_bearish_unwind\", \"long_any_unwind\"]].sum())\nmerged_df[[\"cot_date\",\"price_date\",\"regime\",\"long_bullish_unwind\",\"long_bearish_unwind\",\"long_any_unwind\"]].tail()\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u062a\u06cc\u0646 \u0633\u0627\u062f\u06c1 \u0628\u0627\u0626\u0646\u0631\u06cc \u0633\u06af\u0646\u0644 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p><code>long_bullish_unwind<\/code>    \u06cc\u06c1 \u0635\u0631\u0641 1 \u06c1\u06d2 \u062c\u0628 \u062d\u06a9\u0648\u0645\u062a \u0645\u0636\u0628\u0648\u0637_\u0631\u06cc\u0644\u06cc\u0632 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>long_bearish_unwind<\/code>    \u06cc\u06c1 \u0635\u0631\u0641 1 \u06c1\u06d2 \u062c\u0628 \u062d\u06a9\u0648\u0645\u062a \u06af\u0631\u0646\u06d2 \u06a9\u06d2 \u0631\u062c\u062d\u0627\u0646 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>long_any_unwind<\/code>    1 \u0627\u06af\u0631 \u0631\u06cc\u0644\u06cc\u0632 \u0645\u0648\u0688 \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0648\u0626\u06cc \u0627\u06cc\u06a9 \u0645\u0648\u062c\u0648\u062f \u06c1\u0648\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0622\u0624\u0679 \u067e\u0679 \u06c1\u0631 \u0633\u06af\u0646\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u06af\u0646\u0644 \u06a9\u06d2 \u0648\u0627\u0642\u0639\u0627\u062a \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u0628\u06be\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u0627\u06c1\u0645 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u06af\u0644\u0627 \u0645\u0631\u062d\u0644\u06c1 \u0645\u0646\u0627\u0633\u0628 \u0628\u06cc\u06a9 \u0679\u06cc\u0633\u0679\u0646\u06af \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0633\u06af\u0646\u0644 \u062a\u0635\u0648\u0631\u0627\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062f\u0644\u0686\u0633\u067e \u0644\u06af \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0627\u06af\u0631 \u06cc\u06c1 \u0634\u0627\u0630 \u0648 \u0646\u0627\u062f\u0631 \u06c1\u06cc \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u062c\u0627\u0646\u0686\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06c1\u062a \u06a9\u0686\u06be \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_576_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u0633\u06af\u0646\u0644 \u06a9\u06d2 \u0648\u0627\u0642\u0639\u0627\u062a \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0644\u06c1\u0630\u0627\u060c \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u06cc \u062a\u06c1\u06c1 \u0645\u06cc\u06ba \u062c\u0627\u0646\u0627\u060c Bullish_unwind \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0627\u06c1\u0645 \u0631\u0627\u0633\u062a\u06c1 \u062a\u06be\u0627\u06d4 \u062f\u06cc\u06af\u0631 \u062f\u0648 \u06a9\u0648 \u0627\u0628\u06be\u06cc \u062a\u06a9 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0627 \u06af\u06cc\u0627 \u062a\u06be\u0627\u060c \u0644\u06cc\u06a9\u0646 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u062a\u06be\u0627 \u06a9\u06c1 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06a9\u06d2 \u0628\u0639\u062f \u062a\u062c\u0627\u0631\u062a \u06a9\u062a\u0646\u06cc \u06a9\u0645\u0632\u0648\u0631 \u06cc\u0627 \u0645\u0636\u0628\u0648\u0637 \u06c1\u0648 \u06af\u0626\u06cc\u06d4<\/p>\n<h2 id=\"heading-building-the-first-trade-rules\">\u0627\u067e\u0646\u06d2 \u067e\u06c1\u0644\u06d2 \u062a\u062c\u0627\u0631\u062a\u06cc \u0642\u0648\u0627\u0646\u06cc\u0646 \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631<\/h2>\n<p>\u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u062a\u06cc\u0646 \u0631\u06cc\u0644\u06cc\u0632 \u067e\u0631 \u0645\u0628\u0646\u06cc \u0633\u06af\u0646\u0644 \u0645\u0648\u062c\u0648\u062f \u062a\u06be\u06d2\u060c \u0627\u06af\u0644\u0627 \u0645\u0631\u062d\u0644\u06c1 \u0627\u0646\u06c1\u06cc\u06ba \u062d\u0642\u06cc\u0642\u06cc \u062a\u062c\u0627\u0631\u062a \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u0628\u06cc\u06a9 \u0679\u06cc\u0633\u0679 \u06a9\u0648 \u0633\u0627\u062f\u06c1 \u0631\u06a9\u06be\u0627\u06d4<\/p>\n<ul>\n<li>\n<p>\u0635\u0631\u0641 \u0637\u0648\u06cc\u0644 \u0645\u062f\u062a\u06cc<\/p>\n<\/li>\n<li>\n<p>\u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0645\u062f\u062a 4 \u06c1\u0641\u062a\u06d2<\/p>\n<\/li>\n<li>\n<p>\u063a\u06cc\u0631 \u0646\u0642\u0644\u06cc \u0644\u06cc\u0646 \u062f\u06cc\u0646<\/p>\n<\/li>\n<\/ul>\n<p>\u06cc\u06c1 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2 \u06a9\u06c1 \u062d\u0635\u06d2 \u0627\u0648\u0648\u0631\u0644\u06cc\u067e \u0646\u06c1 \u06c1\u0648\u06ba\u06d4 \u0627\u06af\u0631 \u062a\u062c\u0627\u0631\u062a \u0641\u06cc \u0627\u0644\u062d\u0627\u0644 \u0641\u0639\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u06a9\u0648\u0626\u06cc \u0646\u06cc\u0627 \u0633\u06af\u0646\u0644 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u0633\u06d2 \u0686\u06be\u0648\u0691 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u0646\u06d2 \u0645\u06cc\u0631\u06cc \u062a\u062c\u0627\u0631\u062a\u06cc \u0641\u06c1\u0631\u0633\u062a \u06a9\u0648 \u0635\u0627\u0641 \u0631\u06a9\u06be\u0627 \u0627\u0648\u0631 \u0645\u062c\u06be\u06d2 \u0627\u0648\u0648\u0631 \u0644\u06cc\u067e\u0646\u06af \u067e\u0648\u0632\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u0627\u0633\u0679\u06cc\u06a9 \u06a9\u0631\u06a9\u06d2 \u0627\u067e\u0646\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u0648 \u067e\u06be\u0648\u0644\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9 \u062f\u06cc\u0627\u06d4<\/p>\n<p>\u06cc\u06c1 \u0628\u06cc\u06a9 \u0679\u06cc\u0633\u0679\u0646\u06af \u0641\u0646\u06a9\u0634\u0646 \u06c1\u06d2 \u062c\u0648 \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-python\">def run_fixed_hold_backtest(df, signal_col, hold_weeks=4):\n    trades = []\n    i = 0\n\n    while i < len(df) - hold_weeks:\n        if df.iloc[i][signal_col] == 1:\n            entry_date = df.iloc[i][\"price_date\"]\n            exit_date = df.iloc[i + hold_weeks][\"price_date\"]\n            entry_price = df.iloc[i][\"close\"]\n            exit_price = df.iloc[i + hold_weeks][\"close\"]\n            trade_return = exit_price \/ entry_price - 1\n\n            trades.append({\n                \"signal\": signal_col,\n                \"entry_index\": i,\n                \"exit_index\": i + hold_weeks,\n                \"entry_date\": entry_date,\n                \"exit_date\": exit_date,\n                \"entry_price\": entry_price,\n                \"exit_price\": exit_price,\n                \"trade_return\": trade_return\n            })\n\n            i += hold_weeks\n        else:\n            i += 1\n\n    return pd.DataFrame(trades)\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0641\u06cc\u0686\u0631 \u0688\u06cc\u0679\u0627 \u0633\u06cc\u0679 \u06a9\u0648 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0633\u06af\u0646\u0644\u0632 \u0641\u0639\u0627\u0644 \u06c1\u06cc\u06ba\u060c \u0645\u0648\u062c\u0648\u062f\u06c1 \u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 \u0628\u0627\u0631 \u0645\u06cc\u06ba \u062f\u0627\u062e\u0644 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 4 \u06c1\u0641\u062a\u0648\u06ba \u06a9\u06d2 \u0628\u0639\u062f \u0628\u0627\u06c1\u0631 \u0646\u06a9\u0644\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u062a\u062c\u0627\u0631\u062a\u06cc \u0646\u062a\u0627\u0626\u062c \u06a9\u0648 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u067e\u06be\u0631 \u06c1\u0645 \u0646\u06d2 \u0627\u0633\u06d2 \u062a\u06cc\u0646\u0648\u06ba \u0631\u06cc\u0644\u06cc\u0632 \u067e\u0631 \u0645\u0628\u0646\u06cc \u0633\u06af\u0646\u0644\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0686\u0644\u0627\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">bullish_unwind_trades = run_fixed_hold_backtest(merged_df, \"long_bullish_unwind\", hold_weeks=4)\nbearish_unwind_trades = run_fixed_hold_backtest(merged_df, \"long_bearish_unwind\", hold_weeks=4)\nany_unwind_trades = run_fixed_hold_backtest(merged_df, \"long_any_unwind\", hold_weeks=4)\n<\/code><\/pre>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u06c1\u0645 \u0646\u06d2 \u0686\u06cc\u06a9 \u06a9\u06cc\u0627 \u06a9\u06c1 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u06a9\u062a\u0646\u06d2 \u0644\u06cc\u0646 \u062f\u06cc\u0646 \u06c1\u0648\u0626\u06d2\u06d4<\/p>\n<pre><code class=\"language-python\">print(\"executed bullish_unwind trades:\", len(bullish_unwind_trades))\nprint(\"executed bearish_unwind trades:\", len(bearish_unwind_trades))\nprint(\"executed any_unwind trades:\", len(any_unwind_trades))\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_643_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u0639\u0645\u0644\u062f\u0631\u0622\u0645\u062f \u0679\u0631\u0627\u0646\u0632\u06cc\u06a9\u0634\u0646\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u067e\u0686\u06be\u0644\u06d2 \u062d\u0635\u06d2 \u0633\u06d2 \u062e\u0627\u0645 \u0633\u06af\u0646\u0644 \u06a9\u06cc \u06af\u0646\u062a\u06cc \u0633\u06d2 \u06a9\u0645 \u062a\u06be\u06cc\u06d4 \u06cc\u06c1 \u0645\u062a\u0648\u0642\u0639 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0648\u0648\u0631 \u0644\u06cc\u067e\u0646\u06af \u0633\u06af\u0646\u0644\u0632 \u06a9\u0648 \u0686\u06be\u0648\u0691 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u06c1\u0645 \u0646\u06d2 \u062a\u062c\u0627\u0631\u062a\u06cc \u0646\u062a\u0627\u0626\u062c \u06a9\u0627 \u062e\u0644\u0627\u0635\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0686\u06be\u0648\u0679\u0627 \u0645\u062f\u062f\u06af\u0627\u0631 \u0641\u0646\u06a9\u0634\u0646 \u0628\u0646\u0627\u06cc\u0627 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u062a\u06cc\u0646\u0648\u06ba \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc\u0648\u06ba \u067e\u0631 \u0644\u0627\u06af\u0648 \u06a9\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">def summarize_trades(trades):\n    return pd.Series({\n        \"trades\": len(trades),\n        \"win_rate\": (trades[\"trade_return\"] > 0).mean(),\n        \"avg_trade_return\": trades[\"trade_return\"].mean(),\n        \"median_trade_return\": trades[\"trade_return\"].median(),\n        \"cumulative_return\": (1 + trades[\"trade_return\"]).prod() - 1\n    })\n\ntrade_summary = pd.DataFrame({\n    \"bullish_unwind\": summarize_trades(bullish_unwind_trades),\n    \"bearish_unwind\": summarize_trades(bearish_unwind_trades),\n    \"any_unwind\": summarize_trades(any_unwind_trades)\n}).T\n\ntrade_summary\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_571_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u0628\u06cc\u06a9 \u0679\u06cc\u0633\u0679 \u06a9\u06d2 \u0646\u062a\u0627\u0626\u062c\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u06c1\u0645\u0627\u0631\u0627 \u067e\u06c1\u0644\u0627 \u0645\u062c\u0645\u0648\u0639\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u0627 \u0646\u062a\u06cc\u062c\u06c1 \u062a\u06be\u0627 \u0627\u0648\u0631 \u06c1\u0645 \u0646\u06d2 \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u0648 \u0628\u06c1\u062a \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0635\u0627\u0641 \u06a9\u06cc\u0627\u06d4<\/p>\n<p><code>bullish_unwind<\/code>    \u06cc\u06c1 \u0627\u0628 \u0628\u06be\u06cc \u062a\u06cc\u0646\u0648\u06ba \u0645\u06cc\u06ba \u0628\u06c1\u062a\u0631\u06cc\u0646 \u062a\u06be\u0627\u06d4 \u06cc\u06c1 \u0627\u0628\u06be\u06cc \u062a\u06a9 \u0627\u062a\u0646\u0627 \u0645\u0636\u0628\u0648\u0637 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627\u060c \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u06cc\u0642\u06cc\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062f\u0648\u0633\u0631\u06d2 \u062f\u0648 \u0633\u06d2 \u0628\u06c1\u062a\u0631 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0686\u0646\u062f \u0686\u06cc\u0632\u06cc\u06ba \u062c\u0648 \u0646\u0645\u0627\u06cc\u0627\u06ba \u06c1\u06cc\u06ba \u0648\u06c1 \u06cc\u06c1 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p><code>bullish_unwind<\/code>    \u062c\u06cc\u062a \u06a9\u06cc \u0628\u06c1\u062a\u0631\u06cc\u0646 \u0634\u0631\u062d \u062a\u06be\u06cc\u06d4<\/p>\n<\/li>\n<li>\n<p><code>bullish_unwind<\/code>    \u0627\u0633 \u0646\u06d2 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0627\u0648\u0633\u0637 \u0627\u0648\u0631 \u062f\u0631\u0645\u06cc\u0627\u0646\u06cc \u0679\u0631\u0627\u0646\u0632\u06cc\u06a9\u0634\u0646 \u0631\u06cc\u0679\u0631\u0646 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u06a9\u06cc\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p><code>bearish_unwind<\/code>    \u0627\u0648\u0631 <code>any_unwind<\/code> \u062f\u0648\u0646\u0648\u06ba \u0646\u06d2 \u0645\u062c\u0645\u0648\u0639\u06cc \u0628\u0646\u06cc\u0627\u062f\u0648\u06ba \u067e\u0631 \u062e\u0631\u0627\u0628 \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0627 \u0645\u0638\u0627\u06c1\u0631\u06c1 \u06a9\u06cc\u0627\u06d4<\/p>\n<\/li>\n<li>\n<p>\u062f\u0648 \u0688\u06cc \u0627\u0633\u06a9\u06cc\u0644\u06cc\u0634\u0646 \u062d\u06a9\u0648\u0645\u062a\u0648\u06ba \u06a9\u0648 \u0645\u0644\u0627\u0646\u06d2 \u0633\u06d2 \u06a9\u0648\u0626\u06cc \u0641\u0627\u0626\u062f\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0627 \u0627\u0648\u0631 \u0635\u0631\u0641 \u0645\u0636\u0628\u0648\u0637 \u062d\u06a9\u0648\u0645\u062a \u06a9\u0648 \u06a9\u0645\u0632\u0648\u0631 \u06a9\u0631 \u062f\u06cc\u0627\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0645\u06cc\u06ba \u06cc\u06c1 \u0628\u06be\u06cc \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u062a\u06be\u0627 \u06a9\u06c1 \u0627\u0646 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc\u0648\u06ba \u0646\u06d2 \u0648\u0642\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0633 \u0637\u0631\u062d \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0627 \u0645\u0638\u0627\u06c1\u0631\u06c1 \u06a9\u06cc\u0627\u060c \u0646\u06c1 \u0635\u0631\u0641 \u062e\u0644\u0627\u0635\u06c1 \u062c\u062f\u0648\u0644\u0648\u06ba \u0645\u06cc\u06ba\u06d4 \u0644\u06c1\u0630\u0627 \u0645\u06cc\u06ba \u0646\u06d2 \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u06d2 \u0644\u0626\u06d2 \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 \u0627\u062b\u0627\u062b\u06c1 \u0648\u06a9\u0631 \u0634\u0627\u0645\u0644 \u06a9\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">\nbullish_unwind_trades[\"equity_curve\"] = (1 + bullish_unwind_trades[\"trade_return\"]).cumprod()\nbearish_unwind_trades[\"equity_curve\"] = (1 + bearish_unwind_trades[\"trade_return\"]).cumprod()\nany_unwind_trades[\"equity_curve\"] = (1 + any_unwind_trades[\"trade_return\"]).cumprod()\n\nplt.plot(bullish_unwind_trades[\"exit_date\"], bullish_unwind_trades[\"equity_curve\"], label=\"bullish unwind\")\nplt.plot(bearish_unwind_trades[\"exit_date\"], bearish_unwind_trades[\"equity_curve\"], label=\"bearish unwind\")\nplt.plot(any_unwind_trades[\"exit_date\"], any_unwind_trades[\"equity_curve\"], label=\"any unwind\")\nplt.title(\"Equity curves for 4-week unwind strategies\")\nplt.xlabel(\"date\")\nplt.ylabel(\"equity multiple\")\nplt.legend()\nplt.show()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_435_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u0627\u062b\u0627\u062b\u06c1 \u06a9\u0627 \u0648\u06a9\u0631 4 \u06c1\u0641\u062a\u06d2 \u06a9\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u0648 \u06a9\u06be\u0648\u0644\u0646\u0627\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0627\u0633 \u0686\u0627\u0631\u0679 \u0646\u06d2 \u0627\u0633\u06cc \u0646\u0642\u0637\u06c1 \u06a9\u0648 \u0627\u0648\u0631 \u0628\u06be\u06cc \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u062f\u06a9\u06be\u0627\u06cc\u0627\u06d4 <code>bullish_unwind<\/code> \u06cc\u06c1 \u0627\u0628 \u0628\u06be\u06cc \u0645\u0637\u0644\u0642 \u0634\u0631\u0627\u0626\u0637 \u0645\u06cc\u06ba \u06a9\u0645\u0632\u0648\u0631 \u062a\u06be\u0627\u060c \u0644\u06cc\u06a9\u0646 \u0627\u0633 \u0646\u06d2 \u062f\u0648\u0633\u0631\u06d2 \u062f\u0648 \u06a9\u06d2 \u0645\u0642\u0627\u0628\u0644\u06d2 \u0645\u06cc\u06ba \u0628\u06c1\u062a \u0628\u06c1\u062a\u0631 \u0631\u06a9\u06be\u0627\u06d4 <code>bearish_unwind<\/code> \u06cc\u06c1 \u062d\u06a9\u0648\u0645\u062a\u06cc \u0646\u0638\u0631\u06cc\u06d2 \u06a9\u0648 \u062d\u0642\u06cc\u0642\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0639\u0645\u0644 \u06a9\u0648 \u0632\u0646\u062f\u06c1 \u0631\u06a9\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0646\u0627\u06a9\u0627\u0645 \u0631\u06c1\u0627\u06d4 <code>any_unwind<\/code> \u06cc\u06c1 \u0628\u062f\u062a\u0631 \u062a\u06be\u0627 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0645\u062c\u06be\u06d2 \u062f\u0648\u0646\u0648\u06ba \u06a9\u06cc \u06a9\u0645\u0632\u0648\u0631\u06cc\u0627\u06ba \u0648\u0631\u0627\u062b\u062a \u0645\u06cc\u06ba \u0645\u0644\u06cc \u062a\u06be\u06cc\u06ba\u06d4<\/p>\n<p>\u0644\u06c1\u0630\u0627\u060c \u0627\u0633 \u0645\u0631\u062d\u0644\u06d2 \u06a9\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645 \u062a\u06a9\u060c \u062a\u0635\u0648\u06cc\u0631 \u0628\u06c1\u062a \u0648\u0627\u0636\u062d \u06c1\u06d2.<\/p>\n<p>\u0648\u0633\u06cc\u0639 \u062a\u0631 unwinding \u062e\u06cc\u0627\u0644 \u0645\u062c\u0645\u0648\u0639\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u0633\u06d2 \u06a9\u0627\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627. <code>bearish_unwind<\/code> \u06cc\u06c1 \u0628\u06cc\u06a9 \u0679\u06cc\u0633\u0679\u0646\u06af \u06a9\u0648 \u0635\u0627\u0641 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06be\u0691\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0627\u06d4 <code>any_unwind<\/code> \u06cc\u06c1 \u0627\u0648\u0631 \u0628\u06be\u06cc \u0628\u0631\u0627 \u062a\u06be\u0627\u06d4 \u0627\u0628 \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u062d\u06a9\u0648\u0645\u062a \u0628\u0627\u0642\u06cc \u0631\u06c1 \u06af\u0626\u06cc \u06c1\u06d2 \u062c\u0633 \u067e\u0631 \u0622\u06af\u06d2 \u0628\u0691\u06be\u0646\u0627 \u06c1\u06d2\u06d4 <code>bullish unwind<\/code>.<\/p>\n<p>\u0644\u06cc\u06a9\u0646 \u06cc\u06c1\u0627\u06ba \u062a\u06a9 \u06a9\u06c1 \u0648\u06c1 \u0646\u062a\u0627\u0626\u062c \u0627\u0628\u06be\u06cc \u062a\u06a9 \u0627\u062a\u0646\u06d2 \u0645\u0636\u0628\u0648\u0637 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u06d2\u06d4 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0645\u062a\u0628\u0627\u062f\u0644 \u0633\u06d2 \u0628\u06c1\u062a\u0631 \u062a\u06be\u06cc\u060c \u0644\u06cc\u06a9\u0646 \u0648\u06c1\u0627\u06ba \u0631\u06a9\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0641\u06cc \u0627\u0686\u06be\u06cc \u0646\u06c1\u06cc\u06ba \u062a\u06be\u06cc\u06d4 \u062f\u0631\u062d\u0642\u06cc\u0642\u062a\u060c \u06c1\u0645 \u0646\u06d2 \u0627\u0628\u06be\u06cc \u062a\u06a9 \u06a9\u0648\u0626\u06cc \u0645\u0646\u0627\u0641\u0639 \u0646\u06c1\u06cc\u06ba \u06a9\u0645\u0627\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0644\u0627 \u0645\u0631\u062d\u0644\u06c1 \u0627\u0633 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u062e\u0631\u06cc\u062f\u0646\u06d2 \u0627\u0648\u0631 \u06c1\u0648\u0644\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06be\u0627 \u06a9\u06c1 \u0622\u06cc\u0627 \u0648\u0627\u0642\u0639\u06cc \u06a9\u0648\u0626\u06cc \u0645\u0641\u06cc\u062f \u0686\u06cc\u0632 \u0634\u0627\u0645\u0644 \u06a9\u06cc \u06af\u0626\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-comparing-bullish-unwind-against-buy-and-hold\">\u063a\u06cc\u0631 \u0645\u0646\u0642\u0637\u0639 \u0637\u0627\u0642\u062a \u0627\u0648\u0631 \u062e\u0631\u06cc\u062f\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0646\u0639\u0642\u0627\u062f \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1<\/h2>\n<p>\u0627\u0633 \u0645\u0648\u0642\u0639 \u067e\u0631\u060c <code>bullish_unwind<\/code> \u0627\u0633 \u0646\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u062d\u06a9\u0648\u0645\u062a \u067e\u0631 \u0645\u0628\u0646\u06cc \u062f\u06cc\u06af\u0631 \u0627\u0642\u0633\u0627\u0645 \u06a9\u0648 \u0634\u06a9\u0633\u062a \u062f\u06cc \u06c1\u06d2\u06d4 \u0644\u06cc\u06a9\u0646 \u0627\u0633 \u06a9\u0627 \u0627\u067e\u0646\u06d2 \u0622\u067e \u0645\u06cc\u06ba \u0627\u0628\u06be\u06cc \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0637\u0644\u0628 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627\u06d4<\/p>\n<p>\u06a9\u0645\u0632\u0648\u0631 \u0645\u062a\u0628\u0627\u062f\u0644 \u06a9\u06d2 \u0645\u0642\u0627\u0628\u0644\u06d2 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0645\u06c1\u0630\u0628 \u0645\u0639\u0644\u0648\u0645 \u06c1\u0648 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u067e\u06be\u0631 \u0628\u06be\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0679\u06cc\u0633\u0679\u0648\u06ba \u0645\u06cc\u06ba \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4 \u06a9\u06cc\u0627 \u06cc\u06c1 \u062e\u0627\u0645 \u062a\u06cc\u0644 \u0631\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u0628\u06c1\u062a\u0631 \u0646\u062a\u06cc\u062c\u06c1 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u061f<\/p>\n<p>\u062a\u0648 \u0627\u06af\u0644\u0627 \u0645\u0631\u062d\u0644\u06c1 \u0627\u0635\u0644 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u0646\u0627 \u062a\u06be\u0627\u06d4 <code>bullish_unwind<\/code> \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 \u062e\u0631\u06cc\u062f \u0627\u0648\u0631 \u06c1\u0648\u0644\u0688 \u0628\u06cc\u0646\u0686 \u0645\u0627\u0631\u06a9 \u06a9\u06d2 \u062e\u0644\u0627\u0641 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 WTI \u067e\u0631\u0627\u0626\u0633 \u0633\u06cc\u0631\u06cc\u0632 \u0633\u06d2 \u062e\u0631\u06cc\u062f \u0648 \u06c1\u0648\u0644\u0688 \u06a9\u0631\u06cc\u0648 \u0628\u0646\u0627 \u06a9\u0631 \u0634\u0631\u0648\u0639 \u06a9\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">buy_hold_df = weekly_price.copy()\nbuy_hold_df = buy_hold_df.sort_values(\"price_date\").reset_index(drop=True)\nbuy_hold_df[\"buy_hold_curve\"] = buy_hold_df[\"close\"] \/ buy_hold_df[\"close\"].iloc[0]\n\nbuy_hold_df[[\"price_date\", \"close\", \"buy_hold_curve\"]].tail()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_100_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u0688\u06cc\u0679\u0627 \u06a9\u06cc \u062e\u0631\u06cc\u062f\u0627\u0631\u06cc\/\u0631\u0679\u06cc\u0646\u0634\u0646\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u067e\u06be\u0631 \u0645\u06cc\u06ba \u0646\u06d2 \u062e\u0627\u0645\u0648\u06ba \u06a9\u0648 \u062e\u0631\u06cc\u062f\u0646\u06d2 \u0627\u0648\u0631 \u067e\u06a9\u0691\u0646\u06d2 \u06a9\u0627 \u0645\u0646\u0635\u0648\u0628\u06c1 \u0628\u0646\u0627\u06cc\u0627\u06d4 <code>bullish_unwind<\/code> \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc\u06d4<\/p>\n<pre><code class=\"language-python\">plt.plot(buy_hold_df[\"price_date\"], buy_hold_df[\"buy_hold_curve\"], label=\"buy and hold wti\", linewidth=2, alpha=0.5)\nplt.plot(bullish_unwind_trades[\"exit_date\"], bullish_unwind_trades[\"equity_curve\"], label=\"bullish unwind strategy\", color=\"b\")\nplt.title(\"Bullish unwind strategy vs buy and hold crude oil\")\nplt.xlabel(\"date\")\nplt.ylabel(\"equity multiple\")\nplt.legend()\nplt.show()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_460_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u0637\u0627\u0642\u062a \u0645\u06cc\u06ba \u062a\u062e\u0641\u06cc\u0641 \u06a9\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0627\u0648\u0631 \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06cc \u062e\u0631\u06cc\u062f\u0627\u0631\u06cc \u0627\u0648\u0631 \u0627\u0646\u0639\u0642\u0627\u062f\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0686\u0627\u0631\u0679 \u0645\u0641\u06cc\u062f \u062a\u06be\u0627 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0633 \u0646\u06d2 \u062e\u0627\u0645 \u0633\u06af\u0646\u0644 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0635\u062d\u06cc\u062d \u0645\u0633\u0626\u0644\u06c1 \u062f\u06a9\u06be\u0627\u06cc\u0627\u06d4 <code>bullish_unwind<\/code> \u062e\u0631\u06cc\u062f\u0648 \u0627\u0648\u0631 \u06c1\u0648\u0644\u0688 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u0644\u06cc\u06a9\u0679\u06cc\u0648\u0679\u06cc \u062a\u06be\u06cc\u060c \u0644\u06cc\u06a9\u0646 \u0627\u0633 \u0633\u0644\u06cc\u06a9\u0679\u06cc\u0648\u0679\u06cc \u0646\u06d2 \u062d\u0642\u06cc\u0642\u06cc \u0641\u0627\u0626\u062f\u06c1 \u067e\u06cc\u062f\u0627 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627\u06d4 \u0627\u0633 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0645\u06cc\u06ba \u06a9\u0686\u06be \u062d\u062f \u062a\u06a9 \u0627\u0636\u0627\u0641\u06c1 \u06c1\u0648\u0627\u060c \u0644\u06cc\u06a9\u0646 \u0645\u062c\u0645\u0648\u0639\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06cc\u06c1 \u0627\u0628 \u0628\u06be\u06cc \u0622\u0633\u0627\u0646 \u0645\u0639\u06cc\u0627\u0631\u0627\u062a \u0633\u06d2 \u067e\u06cc\u0686\u06be\u06d2 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0648 \u0648\u0627\u0636\u062d \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06c1\u0645 \u0646\u06d2 \u0627\u067e\u0646\u06d2 \u0646\u0645\u0648\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062c\u0645\u0648\u0639\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062e\u0631\u06cc\u062f \u0627\u0648\u0631 \u06c1\u0648\u0644\u0688 \u0631\u06cc\u0679\u0631\u0646 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u06cc\u0627 \u0627\u0648\u0631 \u067e\u06be\u0631 \u062f\u0648\u0646\u0648\u06ba \u0646\u062a\u0627\u0626\u062c \u06a9\u0648 \u0627\u06cc\u06a9 \u0686\u06be\u0648\u0679\u06cc \u0633\u06cc \u0633\u0645\u0631\u06cc \u0679\u06cc\u0628\u0644 \u0645\u06cc\u06ba \u067e\u06cc\u0634 \u06a9\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">buy_hold_return = buy_hold_df[\"buy_hold_curve\"].iloc[-1] - 1\n\ncomparison_summary = pd.DataFrame({\n    \"strategy\": [\"bullish_unwind\", \"buy_and_hold\"],\n    \"trades\": [len(bullish_unwind_trades), np.nan],\n    \"win_rate\": [(bullish_unwind_trades[\"trade_return\"] > 0).mean(), np.nan],\n    \"avg_trade_return\": [bullish_unwind_trades[\"trade_return\"].mean(), np.nan],\n    \"cumulative_return\": [\n        (1 + bullish_unwind_trades[\"trade_return\"]).prod() - 1,\n        buy_hold_return\n    ]\n})\n\ncomparison_summary\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_482_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0628\u0645\u0642\u0627\u0628\u0644\u06c1 b\/h \u0645\u0648\u0627\u0632\u0646\u06c1 \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u0645\u0636\u0645\u0648\u0646 \u06a9\u0627 \u0627\u0635\u0644 \u0645\u0648\u0691 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u062a\u06a9 \u06a9\u06c1 \u0627\u06af\u0631 \u06cc\u06c1 \u06c1\u06d2 <code>bullish_unwind<\/code> \u0627\u06af\u0631\u0686\u06c1 \u0648\u06c1 \u062d\u06a9\u0648\u0645\u062a \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0627\u0628 \u062a\u06a9 \u06a9\u06d2 \u0628\u06c1\u062a\u0631\u06cc\u0646 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631 \u062a\u06be\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u067e\u06be\u0631 \u0628\u06be\u06cc \u0627\u0633 \u0646\u06d2 \u062e\u0631\u06cc\u062f\u0648 \u0627\u0648\u0631 \u067e\u06a9\u0691\u0646\u06d2 \u06a9\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u0648 \u06a9\u0645 \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0627 \u0645\u0638\u0627\u06c1\u0631\u06c1 \u06a9\u06cc\u0627\u06d4 \u0627\u0633 \u0633\u06d2 \u0646\u062a\u06cc\u062c\u06c1 \u0628\u06c1\u062a \u0648\u0627\u0636\u062d \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u062e\u0627\u0645 \u0633\u06af\u0646\u0644 \u0627\u0628\u06be\u06cc \u0627\u062a\u0646\u0627 \u0645\u0636\u0628\u0648\u0637 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0627\u0633 \u0644\u06cc\u06d2 \u0627\u0628 \u062d\u06a9\u0648\u0645\u062a\u0648\u06ba \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0627 \u0645\u0639\u0627\u0645\u0644\u06c1 \u0646\u06c1\u06cc\u06ba \u0631\u06c1\u0627\u06d4 \u0648\u06c1 \u062d\u0635\u06c1 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u062d\u0644 \u06c1\u0648 \u0686\u06a9\u0627 \u06c1\u06d2\u06d4 \u0627\u0628 \u0627\u0635\u0644 \u0633\u0648\u0627\u0644 \u06cc\u06c1 \u062a\u06be\u0627 \u06a9\u06c1 \u06a9\u06cc\u0627 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u0648 \u0627\u0648\u0648\u0631 \u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u0646\u06af \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 Bullish_unwind \u0633\u06cc\u0679 \u0627\u067e \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0627\u06af\u0644\u06d2 \u0645\u0631\u062d\u0644\u06d2 \u06a9\u06cc \u0637\u0631\u0641 \u0644\u06d2 \u06af\u06cc\u0627\u06d4 \u0622\u067e \u06a9\u0648 \u0628\u0633 \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 \u0679\u0631\u06cc\u0646\u0688 \u0641\u0644\u0679\u0631 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-adding-a-trend-filter\">\u0679\u0631\u06cc\u0646\u0688 \u0641\u0644\u0679\u0631 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u0633 \u0645\u0642\u0627\u0645 \u067e\u0631\u060c \u06a9\u0644\u06cc\u062f\u06cc \u0627\u0634\u0627\u0631\u0648\u06ba \u06a9\u0648 \u0645\u062d\u062f\u0648\u062f \u06a9\u0631 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2: <code>bullish_unwind<\/code>\u0644\u06cc\u06a9\u0646 \u062e\u0627\u0645 \u0648\u0631\u0698\u0646 \u0627\u0628 \u0628\u06be\u06cc \u06a9\u0627\u0641\u06cc \u0627\u0686\u06be\u0627 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627\u06d4 \u062e\u0631\u06cc\u062f\u0648 \u0627\u0648\u0631 \u06c1\u0648\u0644\u0688 \u06a9\u06cc \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u062e\u0631\u0627\u0628 \u0631\u06c1\u06cc \u06c1\u06d2\u060c \u062c\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0633\u06af\u0646\u0644\u0632 \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0644\u0627 \u062e\u06cc\u0627\u0644 \u0633\u0627\u062f\u06c1 \u062a\u06be\u0627\u06d4 \u062a\u0645\u0627\u0645 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0631\u06cc\u0644\u06cc\u0641 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u062c\u06cc\u0633\u0627 \u0633\u0644\u0648\u06a9 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0627\u06af\u0631 \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06cc \u0642\u06cc\u0645\u062a\u06cc\u06ba \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0645\u0646\u062f\u06cc \u06a9\u06d2 \u0631\u062c\u062d\u0627\u0646 \u0645\u06cc\u06ba \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0642\u06cc\u0627\u0633 \u0622\u0631\u0627\u0626\u06cc \u067e\u0631 \u0645\u0628\u0646\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u06be\u0648\u0644\u0646\u0627 \u0634\u0631\u0648\u0639 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 \u0637\u0648\u06cc\u0644 \u0645\u062f\u062a\u06cc \u0633\u06af\u0646\u0644 \u0644\u06cc\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u0648 \u0633\u06a9\u062a\u0627\u06d4 \u062a\u0648 \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u06cc\u06a9 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0641\u0644\u0679\u0631 \u0634\u0627\u0645\u0644 \u06a9\u06cc\u0627\u06d4 <code>bullish_unwind<\/code> \u062a\u062c\u0627\u0631\u062a \u0627\u0633 \u0648\u0642\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u062c\u0628 WTI \u0627\u067e\u0646\u06cc 26 \u06c1\u0641\u062a\u06d2 \u06a9\u06cc \u062d\u0631\u06a9\u062a \u067e\u0630\u06cc\u0631\u06cc \u0627\u0648\u0633\u0637 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06c1\u0648\u06d4<\/p>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u06cc\u06a9 \u0645\u062a\u062d\u0631\u06a9 \u0627\u0648\u0633\u0637 \u0627\u0648\u0631 \u0628\u0627\u0626\u0646\u0631\u06cc \u0631\u062c\u062d\u0627\u0646 \u06a9\u0627 \u062c\u06be\u0646\u0688\u0627 \u0628\u0646\u0627\u06cc\u0627\u06d4 \u067e\u06be\u0631 \u06c1\u0645 \u0646\u06d2 \u0627\u0633 \u0641\u0644\u0679\u0631 \u06a9\u0648 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0641\u0644\u0679\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u0648\u0691 \u062f\u06cc\u0627\u06d4 <code>bullish_unwind<\/code> \u0637\u0627\u0642\u062a<\/p>\n<pre><code class=\"language-python\">merged_df[\"ma_26\"] = merged_df[\"close\"].rolling(26).mean()\nmerged_df[\"above_ma_26\"] = (merged_df[\"close\"] > merged_df[\"ma_26\"]).astype(int)\nmerged_df[\"long_bullish_unwind_tf\"] = ((merged_df[\"regime\"] == \"bullish_unwind\") & (merged_df[\"above_ma_26\"] == 1)).astype(int)\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u0635\u0644 \u0633\u06af\u0646\u0644 \u06a9\u0627 \u0641\u0644\u0679\u0631 \u0634\u062f\u06c1 \u0648\u0631\u0698\u0646 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0622\u0624\u0679 \u067e\u0679 \u0679\u0631\u06cc\u0646\u0688 \u0641\u0644\u0679\u0631 \u0644\u06af\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u0628\u0627\u0642\u06cc \u0631\u06c1 \u062c\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u062a\u062c\u0627\u0631\u062a\u06cc \u0645\u0648\u0627\u0642\u0639 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0648 \u0628\u06be\u06cc \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u062a\u0648\u0642\u0639 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2\u060c \u062a\u0639\u062f\u0627\u062f \u06a9\u0645 \u06c1\u0648\u062a\u06cc \u06c1\u06d2. \u0627\u0633 \u0633\u06d2 \u06a9\u0648\u0626\u06cc \u0641\u0631\u0642 \u0646\u06c1\u06cc\u06ba \u067e\u0691\u062a\u0627 \u06a9\u06c1 \u0628\u0627\u0642\u06cc \u0633\u0648\u062f\u06d2 \u0628\u06c1\u062a\u0631 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0644\u0627\u060c \u06c1\u0645 \u0646\u06d2 \u0641\u0644\u0679\u0631 \u0634\u062f\u06c1 \u0633\u06af\u0646\u0644\u0632 \u067e\u0631 \u0648\u06c1\u06cc \u0686\u0627\u0631 \u06c1\u0641\u062a\u0648\u06ba \u06a9\u0627 \u063a\u06cc\u0631 \u0641\u0627\u0644\u062a\u0648 \u0628\u06cc\u06a9 \u0679\u06cc\u0633\u0679 \u0686\u0644\u0627\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">bullish_unwind_tf_trades = run_fixed_hold_backtest(\n    merged_df,\n    \"long_bullish_unwind_tf\",\n    hold_weeks=4\n)\n\nfiltered_summary = pd.DataFrame({\n    \"bullish_unwind\": summarize_trades(bullish_unwind_trades),\n    \"bullish_unwind_tf\": summarize_trades(bullish_unwind_tf_trades)\n}).T\n\nfiltered_summary\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_588_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u0627\u0635\u0644 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0627\u0648\u0631 \u0628\u06c1\u062a\u0631 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u0627\u0633 \u0639\u0645\u0644 \u0645\u06cc\u06ba \u067e\u06c1\u0644\u06cc \u0628\u0691\u06cc \u0628\u06c1\u062a\u0631\u06cc \u062a\u06be\u06cc\u06d4<\/p>\n<p>\u0641\u0644\u0679\u0631 \u0634\u062f\u06c1 \u0648\u0631\u0698\u0646 \u062a\u06be\u0648\u0691\u0627 \u0633\u0627 \u0628\u06c1\u062a\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u0633 \u0646\u06d2 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u06cc \u067e\u0631\u0648\u0641\u0627\u0626\u0644 \u06a9\u0648 \u0645\u0639\u0646\u06cc \u062e\u06cc\u0632 \u0627\u0646\u062f\u0627\u0632 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u062f\u06cc\u0627\u06d4<\/p>\n<p>\u0628\u0627\u0644\u06a9\u0644 \u0648\u06c1\u06cc \u062c\u0648 \u0645\u06cc\u06ba \u0641\u0644\u0679\u0631 \u0645\u06cc\u06ba \u0686\u0627\u06c1\u062a\u0627 \u062a\u06be\u0627\u06d4 \u0627\u0633 \u0646\u06d2 \u0633\u06af\u0646\u0644 \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u0644\u06cc\u06a9\u0679\u06cc\u0648 \u0628\u0646\u0627 \u062f\u06cc\u0627\u060c \u0628\u0644\u06a9\u06c1 \u0632\u06cc\u0627\u062f\u06c1 \u0648\u0627\u0636\u062d \u0628\u06be\u06cc\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u062e\u0627\u0645 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9\u0648\u06cc\u0679\u06cc \u0645\u0646\u062d\u0646\u06cc \u062e\u0637\u0648\u0637 \u0634\u0627\u0645\u0644 \u06a9\u06cc\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u06cc\u06a9 \u0641\u0644\u0679\u0631 \u0634\u062f\u06c1 \u0648\u0631\u0698\u0646\u060c \u0627\u0648\u0631 \u0627\u062e\u062a\u0644\u0627\u0641\u0627\u062a \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062e\u0631\u06cc\u062f\u0648 \u0627\u0648\u0631 \u067e\u06a9\u0691\u0648\u06d4<\/p>\n<pre><code class=\"language-python\">bullish_unwind_tf_trades[\"equity_curve\"] = (1 + bullish_unwind_tf_trades[\"trade_return\"]).cumprod()\n\nplt.plot(bullish_unwind_trades[\"exit_date\"], bullish_unwind_trades[\"equity_curve\"], label=\"bullish unwind\")\nplt.plot(bullish_unwind_tf_trades[\"exit_date\"], bullish_unwind_tf_trades[\"equity_curve\"], label=\"bullish unwind + trend filter\")\nplt.plot(buy_hold_df[\"price_date\"], buy_hold_df[\"buy_hold_curve\"], label=\"buy and hold wti\")\nplt.title(\"Bullish unwind strategy with and without trend filter\")\nplt.xlabel(\"date\")\nplt.ylabel(\"equity multiple\")\nplt.legend()\nplt.show()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_61_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u0631\u062c\u062d\u0627\u0646 \u0641\u0644\u0679\u0631\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u062a\u062e\u0641\u06cc\u0641 \u06a9\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u0686\u0627\u0631\u0679 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u062c\u0628 \u062e\u0627\u0645 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0628\u0691\u06be \u06af\u0626\u06cc\u060c \u0641\u0644\u0679\u0631 \u0634\u062f\u06c1 \u0648\u0631\u0698\u0646 \u0645\u06a9\u0645\u0644 \u0646\u0645\u0648\u0646\u06d2 \u06a9\u06d2 \u0645\u0642\u0627\u0628\u0644\u06d2 \u0645\u06cc\u06ba \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0633\u062a\u062d\u06a9\u0645 \u0627\u0648\u0631 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0636\u0628\u0648\u0637 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u062a\u0648 \u06cc\u06c1 \u0648\u06c1 \u0646\u0642\u0637\u06c1 \u062a\u06be\u0627 \u062c\u06c1\u0627\u06ba \u0633\u06d2 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u0644\u06af\u06cc\u06d4 \u0633\u06af\u0646\u0644 \u0627\u0628 \u0646\u06c1\u06cc\u06ba \u0631\u06c1\u0627 \u06c1\u06d2 \"\u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u062a\u06cc\u0632\u06cc \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u06be\u0648\u0644\u0646\u0627 \u0634\u0631\u0648\u0639 \u06c1\u0648 \u0631\u06c1\u06cc \u06c1\u06d2\u06d4\" \u06a9\u06c1: <strong>\u062e\u0627\u0645 \u062a\u06cc\u0644 \u0627\u0628 \u0628\u06be\u06cc \u0648\u0633\u06cc\u0639 \u062a\u0631 \u0627\u067e \u0679\u0631\u06cc\u0646\u0688 \u0645\u06cc\u06ba \u06c1\u06d2 \u062c\u0628\u06a9\u06c1 \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u062a\u06cc\u0632\u06cc \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u06be\u0648\u0644\u0646\u0627 \u0634\u0631\u0648\u0639 \u06c1\u0648 \u0631\u06c1\u06cc \u06c1\u06d2\u06d4<\/strong><\/p>\n<p>\u06cc\u06c1 \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0645\u062e\u0635\u0648\u0635 \u0627\u0648\u0631 \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0648\u062b\u0631 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0627\u06af\u0644\u0627 \u0633\u0648\u0627\u0644 \u06cc\u06c1 \u062a\u06be\u0627 \u06a9\u06c1 \u06a9\u06cc\u0627 \u06cc\u06c1 \u0628\u06c1\u062a\u0631 \u0648\u0631\u0698\u0646 \u062f\u0631\u062d\u0642\u06cc\u0642\u062a \u0645\u0633\u062a\u062d\u06a9\u0645 \u062a\u06be\u0627\u060c \u06cc\u0627 \u06cc\u06c1 \u0627\u06cc\u06a9 \u062e\u0648\u0634 \u0642\u0633\u0645\u062a \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u06cc \u0648\u062c\u06c1 \u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-stress-testing-the-setup\">\u062a\u0646\u0627\u0624 \u06a9\u0627 \u0679\u06cc\u0633\u0679 \u0645\u0631\u062a\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0679\u0631\u06cc\u0646\u0688 \u0641\u0644\u0679\u0631 \u0646\u06d2 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u0628\u06be\u06cc\u060c \u0645\u06cc\u06ba \u0627\u0633 \u0648\u0631\u0698\u0646 \u06a9\u0648 \u062d\u062a\u0645\u06cc \u0646\u06c1\u06cc\u06ba \u0633\u0645\u062c\u06be\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u062a\u06be\u0627 \u06cc\u06c1 \u062f\u06cc\u06a9\u06be\u06d2 \u0628\u063a\u06cc\u0631 \u06a9\u06c1 \u06cc\u06c1 \u06a9\u062a\u0646\u0627 \u0646\u0627\u0632\u06a9 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0633\u06cc\u0679 \u0627\u067e \u0637\u0627\u0642\u062a\u0648\u0631 \u0645\u0639\u0644\u0648\u0645 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u06d2 \u0627\u06cc\u06a9 \u062f\u0631\u0633\u062a \u0627\u0645\u062a\u0632\u0627\u062c \u0646\u06d2 \u06a9\u0627\u0645 \u06a9\u06cc\u0627\u06d4 \u0644\u06c1\u0630\u0627 \u0627\u06af\u0644\u0627 \u0645\u0631\u062d\u0644\u06c1 \u0627\u0631\u062f \u06af\u0631\u062f \u06a9\u06cc \u0645\u062e\u062a\u0644\u0641 \u062d\u0627\u0644\u062a\u0648\u06ba \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631\u0646\u0627 \u062a\u06be\u0627 \u0627\u0648\u0631 \u06cc\u06c1 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u062a\u06be\u0627 \u06a9\u06c1 \u0622\u06cc\u0627 \u0646\u062a\u0627\u0626\u062c \u0627\u0628 \u0628\u06be\u06cc \u0628\u0631\u0642\u0631\u0627\u0631 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u0628\u0646\u06cc\u0627\u062f\u06cc \u062e\u06cc\u0627\u0644 \u0648\u06c1\u06cc \u0631\u06a9\u06be\u0627\u06d4<\/p>\n<ul>\n<li>\n<p>\u067e\u0631 \u0627\u0645\u06cc\u062f \u0622\u0631\u0627\u0645<\/p>\n<\/li>\n<li>\n<p>\u0635\u0631\u0641 \u0637\u0648\u06cc\u0644 \u0645\u062f\u062a\u06cc<\/p>\n<\/li>\n<li>\n<p>\u0679\u0631\u06cc\u0646\u0688 \u0641\u0644\u0679\u0631 \u062c\u0627\u0631\u06cc \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u067e\u06be\u0631 \u0645\u06cc\u06ba \u0646\u06d2 \u062a\u06cc\u0646 \u0686\u06cc\u0632\u0648\u06ba \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u0627:<\/p>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0645\u06cc\u06ba \u0646\u06d2 \u0645\u062e\u062a\u0644\u0641 \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644 \u06a9\u0627\u0644\u0645\u0632 \u0627\u0648\u0631 \u062a\u06be\u0631\u06cc\u0634\u0648\u0644\u0688 \u0644\u06cc\u0648\u0644\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0631\u06cc\u0644\u06cc\u06a9\u0633\u06cc\u0634\u0646 \u0633\u06af\u0646\u0644 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u062f\u062f\u06af\u0627\u0631 \u0641\u0646\u06a9\u0634\u0646 \u0628\u0646\u0627\u06cc\u0627\u060c \u0627\u0648\u0631 \u067e\u06be\u0631 52 \u06c1\u0641\u062a\u06d2 \u06a9\u06cc \u0645\u062e\u062a\u0635\u0631 \u0645\u062f\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062f\u0648\u0633\u0631\u06cc \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644 \u0633\u06cc\u0631\u06cc\u0632 \u0628\u0646\u0627\u0626\u06cc\u06d4<\/p>\n<pre><code class=\"language-python\">def add_bullish_unwind_signal(df, percentile_col, high_threshold, signal_name):\n    df[signal_name] = (\n        (df[percentile_col] > high_threshold) &\n        (df[\"net_position_ratio_change\"] < 0) &#038;\n        (df[\"above_ma_26\"] == 1)\n    ).astype(int)\n    \ndef rolling_percentile(x):\n    return pd.Series(x).rank(pct=True).iloc[-1]\n\nmerged_df[\"position_percentile_52\"] = merged_df[\"net_position_ratio\"].rolling(52).apply(rolling_percentile)\n<\/code><\/pre>\n<p>\u0627\u0633 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631\u060c \u06c1\u0645 \u0646\u06d2 \u0686\u0627\u0631 \u0633\u06af\u0646\u0644 \u06a9\u06cc \u0634\u06a9\u0644\u06cc\u06ba \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p>80\u0648\u06cc\u06ba \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644 \u06a9\u06cc \u062d\u062f \u06a9\u06d2 \u0633\u0627\u062a\u06be 104 \u0648\u0627\u06ba \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644<\/p>\n<\/li>\n<li>\n<p>85\u0648\u06cc\u06ba \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644 \u06a9\u06cc \u062d\u062f \u06a9\u06d2 \u0633\u0627\u062a\u06be 104 \u0648\u0627\u06ba \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644<\/p>\n<\/li>\n<li>\n<p>80\u0648\u06cc\u06ba \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644 \u06a9\u06cc \u062d\u062f \u06a9\u06d2 \u0633\u0627\u062a\u06be 52 \u06c1\u0641\u062a\u06d2 \u06a9\u0627 \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644<\/p>\n<\/li>\n<li>\n<p>85\u0648\u06cc\u06ba \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644 \u062a\u06be\u0631\u06cc\u0634\u0648\u0644\u0688 \u06a9\u06d2 \u0633\u0627\u062a\u06be 52 \u06c1\u0641\u062a\u06d2 \u06a9\u0627 \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"language-python\">add_bullish_unwind_signal(merged_df, \"position_percentile_104\", 0.80, \"sig_104_80\")\nadd_bullish_unwind_signal(merged_df, \"position_percentile_104\", 0.85, \"sig_104_85\")\nadd_bullish_unwind_signal(merged_df, \"position_percentile_52\", 0.80, \"sig_52_80\")\nadd_bullish_unwind_signal(merged_df, \"position_percentile_52\", 0.85, \"sig_52_85\")\n<\/code><\/pre>\n<p>\u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u06c1\u0645 \u0646\u06d2 \u062a\u06cc\u0646 \u0627\u0646\u0639\u0642\u0627\u062f \u06a9\u06d2 \u0627\u062f\u0648\u0627\u0631 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u06c1\u06cc \u0628\u06cc\u06a9 \u0679\u06cc\u0633\u0679 \u0686\u0644\u0627\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">results = []\n\nfor signal_col in [\"sig_104_80\", \"sig_104_85\", \"sig_52_80\", \"sig_52_85\"]:\n    for hold_weeks in [2, 4, 8]:\n        trades = run_fixed_hold_backtest(merged_df, signal_col, hold_weeks=hold_weeks)\n\n        if len(trades) == 0:\n            continue\n\n        results.append({\n            \"signal\": signal_col,\n            \"hold_weeks\": hold_weeks,\n            \"trades\": len(trades),\n            \"win_rate\": (trades[\"trade_return\"] > 0).mean(),\n            \"avg_trade_return\": trades[\"trade_return\"].mean(),\n            \"median_trade_return\": trades[\"trade_return\"].median(),\n            \"cumulative_return\": (1 + trades[\"trade_return\"]).prod() - 1\n        })\n\nstress_test = pd.DataFrame(results)\nstress_test\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_360_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u062a\u06cc\u0646 \u0627\u0646\u0639\u0642\u0627\u062f \u06a9\u06d2 \u0627\u062f\u0648\u0627\u0631 \u0645\u06cc\u06ba \u0628\u06cc\u06a9 \u0679\u06cc\u0633\u0679\u0646\u06af\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u0646\u062a\u06cc\u062c\u06c1 \u067e\u0648\u0631\u06d2 \u0645\u0636\u0645\u0648\u0646 \u06a9\u06d2 \u0627\u06c1\u0645 \u062a\u0631\u06cc\u0646 \u062d\u0635\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u062a\u06be\u0627\u06d4 \u06c1\u0645 \u0646\u06d2 \u062f\u06a9\u06be\u0627\u06cc\u0627 \u06a9\u06c1 \u0622\u06cc\u0627 \u0628\u06c1\u062a\u0631 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0639\u0645\u0644\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0645\u0633\u062a\u062d\u06a9\u0645 \u06c1\u06d2\u060c \u06cc\u0627 \u06cc\u06c1 \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u062a\u0646\u06af \u0648\u0631\u0698\u0646 \u0645\u06cc\u06ba \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0686\u0646\u062f \u0686\u06cc\u0632\u06cc\u06ba \u0641\u0648\u0631\u0627\u064b \u0633\u0627\u0645\u0646\u06d2 \u0622 \u06af\u0626\u06cc\u06ba\u06d4<\/p>\n<p>\u06a9\u06c1 <strong>\u06c1\u0641\u062a\u06c1 104\/80 \u0641\u06cc\u0635\u062f<\/strong> \u0648\u0631\u0698\u0646 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0645\u0636\u0628\u0648\u0637 \u062a\u0631\u06cc\u0646 \u062e\u0627\u0646\u062f\u0627\u0646 \u062a\u06be\u0627\u06d4 \u06cc\u06c1 \u062a\u06cc\u0646\u0648\u06ba \u0627\u0646\u0639\u0642\u0627\u062f \u06a9\u06d2 \u0627\u062f\u0648\u0627\u0631 \u0645\u06cc\u06ba \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06c1\u0627\u06d4<\/p>\n<ul>\n<li>\n<p>2 \u06c1\u0641\u062a\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u0648\u06a9\u06cc\u06ba: \u0645\u062c\u0645\u0648\u0639\u06cc \u0648\u0627\u067e\u0633\u06cc\u06d4 <strong>38.16%<\/strong><\/p>\n<\/li>\n<li>\n<p>4 \u06c1\u0641\u062a\u06d2 \u06c1\u0648\u0644\u0688 \u06a9\u0631\u06cc\u06ba: \u0645\u062c\u0645\u0648\u0639\u06cc \u0648\u0627\u067e\u0633\u06cc\u06d4 <strong>45.95%<\/strong><\/p>\n<\/li>\n<li>\n<p>8 \u06c1\u0641\u062a\u06d2 \u06c1\u0648\u0644\u0688 \u06a9\u0631\u06cc\u06ba: \u0645\u062c\u0645\u0648\u0639\u06cc \u0648\u0627\u067e\u0633\u06cc\u06d4 <strong>19.02%<\/strong><\/p>\n<\/li>\n<\/ul>\n<p>\u0648\u06c1 \u0645\u0633\u062a\u0642\u0644 \u0645\u0632\u0627\u062c\u06cc \u0627\u06c1\u0645 \u062a\u06be\u06cc\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u062a\u06be\u0627 \u06a9\u06c1 \u06c1\u0648\u0644\u0688 \u067e\u06cc\u0631\u06cc\u0688 \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0644\u0645\u062d\u06d2 \u0633\u06af\u0646\u0644 \u0646\u06c1\u06cc\u06ba \u0679\u0648\u0679\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u06a9\u06c1 <strong>4 \u06c1\u0641\u062a\u0648\u06ba \u062a\u06a9 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0627<\/strong> \u0645\u062c\u0645\u0648\u0639\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06cc\u06c1 \u0628\u06c1\u062a\u0631\u06cc\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u0646\u06a9\u0644\u0627\u06d4 \u06cc\u06c1 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06c1\u06d2:<\/p>\n<p>\u06a9\u06c1 <strong>8 \u06c1\u0641\u062a\u06d2 \u0645\u0646\u0639\u0642\u062f \u06c1\u0648\u0626\u06d2\u06d4<\/strong> \u06a9\u0686\u06be \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0645\u06cc\u06ba\u060c \u0627\u0648\u0633\u0637 \u062a\u062c\u0627\u0631\u062a\u06cc \u0645\u0646\u0627\u0641\u0639 \u0642\u062f\u0631\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u06be\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u062a\u062c\u0627\u0631\u062a \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0645 \u062a\u06be\u06cc\u06d4 \u06cc\u06c1 \u0627\u0633\u06d2 \u067e\u062a\u0644\u0627 \u0627\u0648\u0631 \u0645\u0631\u06a9\u0632\u06cc \u0648\u0631\u0698\u0646 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0633\u0646\u0628\u06be\u0627\u0644\u0646\u0627 \u0645\u0634\u06a9\u0644 \u0628\u0646\u0627 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <strong>\u06c1\u0641\u062a\u06c1 104\/85 \u0641\u06cc\u0635\u062f<\/strong> \u0634\u0627\u0631\u0679 \u06c1\u0648\u0644\u0688\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0628\u06c1\u062a \u0645\u062d\u062f\u0648\u062f \u062a\u06be\u06cc\u06ba\u06d4 2-\u06c1\u0641\u062a\u0648\u06ba \u0627\u0648\u0631 4-\u06c1\u0641\u062a\u0648\u06ba \u06a9\u06d2 \u0648\u0631\u0698\u0646 \u0645\u0646\u0641\u06cc \u06af\u0626\u06d2\u060c \u062d\u0627\u0644\u0627\u0646\u06a9\u06c1 8-\u06c1\u0641\u062a\u0648\u06ba \u06a9\u06d2 \u0627\u0646\u0639\u0642\u0627\u062f \u0646\u06d2 \u0627\u0628 \u0628\u06be\u06cc \u0645\u0639\u0642\u0648\u0644 \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0627 \u0645\u0638\u0627\u06c1\u0631\u06c1 \u06a9\u06cc\u0627\u06d4<\/p>\n<p>\u06a9\u06c1 <strong>52 \u06c1\u0641\u062a\u06d2 \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc<\/strong> \u0645\u062c\u0645\u0648\u0639\u06cc \u0637\u0648\u0631 \u067e\u0631\u060c \u06cc\u06c1 \u0628\u06c1\u062a \u06a9\u0645 \u0642\u0627\u0626\u0644 \u062a\u06be\u0627\u06d4 \u0627\u0646 \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0686\u06be \u0645\u062b\u0628\u062a \u062a\u06be\u06d2\u060c \u0644\u06cc\u06a9\u0646 104\u0648\u06cc\u06ba \u06c1\u0641\u062a\u06c1\/80\u0648\u06cc\u06ba \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644 \u0648\u0631\u0698\u0646 \u06a9\u06cc \u0637\u0631\u062d \u0645\u0633\u062a\u062d\u06a9\u0645 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u06d2\u06d4<\/p>\n<p>\u0644\u06c1\u0630\u0627\u060c \u0627\u0633 \u0645\u0631\u062d\u0644\u06d2 \u06a9\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645 \u062a\u06a9\u060c \u062d\u062a\u0645\u06cc \u0688\u06be\u0627\u0646\u0686\u06c1 \u0648\u06c1 \u0648\u0631\u0698\u0646 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627 \u062c\u0648 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0627\u0686\u06be\u0627 \u0644\u06af\u062a\u0627 \u062a\u06be\u0627\u06d4 \u06cc\u06c1 \u0648\u06c1 \u0648\u0631\u0698\u0646 \u062a\u06be\u0627 \u062c\u0648 \u0642\u0631\u06cc\u0628 \u06a9\u06cc \u0627\u062e\u062a\u0631\u062a\u06cc \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u06d2 \u0628\u0639\u062f \u0628\u06be\u06cc \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06c1\u0627\u06d4<\/p>\n<p>\u06cc\u06c1 \u06c1\u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0648\u0627\u0636\u062d \u062d\u062a\u0645\u06cc \u0633\u06cc\u0679 \u0627\u067e \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-the-final-strategy\">\u062d\u062a\u0645\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc<\/h2>\n<p>\u0627\u0633 \u0645\u0631\u062d\u0644\u06d2 \u067e\u0631\u060c \u0639\u0645\u0644 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0641\u0644\u0679\u0631\u0646\u06af \u06a9\u0631 \u0686\u06a9\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u0686\u0627\u0631 \u0646\u0638\u0627\u0645 \u06a9\u06d2 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0646\u06d2 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u0633\u06d2 \u06a9\u0627\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627\u06d4 \u0648\u0633\u06cc\u0639 \u062a\u0631 unwinding \u062e\u06cc\u0627\u0644 \u0628\u06be\u06cc \u06a9\u0627\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627. \u062f\u0648\u0631 \u0627\u0646\u062f\u06cc\u0634\u06cc <code>bullish_unwind<\/code> \u0633\u06af\u0646\u0644 \u0645\u062a\u0628\u0627\u062f\u0644 \u0633\u06d2 \u0628\u06c1\u062a\u0631 \u062a\u06be\u0627\u060c \u0644\u06cc\u06a9\u0646 \u067e\u06be\u0631 \u0628\u06be\u06cc Buy and Hold \u0633\u06d2 \u06a9\u0645\u0632\u0648\u0631 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0648\u0627\u062d\u062f \u0648\u0631\u0698\u0646 \u062c\u0648 \u0627\u0633 \u0633\u0628 \u0633\u06d2 \u0628\u0686 \u06af\u06cc\u0627 \u0648\u06c1 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0648\u0631\u0698\u0646 \u062a\u06be\u0627:<\/p>\n<ul>\n<li>\n<p>\u067e\u0631 \u0627\u0645\u06cc\u062f \u0622\u0631\u0627\u0645<\/p>\n<\/li>\n<li>\n<p>104 \u06c1\u0641\u062a\u06c1 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u0627 \u0641\u06cc\u0635\u062f<\/p>\n<\/li>\n<li>\n<p>80\u0648\u06cc\u06ba \u067e\u0631\u0633\u0646\u0679\u0627\u0626\u0644 \u06a9\u06cc \u062d\u062f<\/p>\n<\/li>\n<li>\n<p>26 \u06c1\u0641\u062a\u06d2 \u06a9\u0627 \u0645\u062a\u062d\u0631\u06a9 \u0627\u0648\u0633\u0637 \u0641\u0644\u0679\u0631<\/p>\n<\/li>\n<li>\n<p>4 \u06c1\u0641\u062a\u0648\u06ba \u062a\u06a9 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0627<\/p>\n<\/li>\n<li>\n<p>\u063a\u06cc\u0631 \u0646\u0642\u0644\u06cc \u0644\u06cc\u0646 \u062f\u06cc\u0646<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0628 \u062a\u06a9\u0631\u0627\u0631 \u06a9\u0648 \u0631\u0648\u06a9\u0646\u0627 \u0627\u0648\u0631 \u062d\u062a\u0645\u06cc \u0646\u062a\u06cc\u062c\u06c1 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u0646\u0627 \u0633\u0645\u062c\u06be \u0645\u06cc\u06ba \u0622\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0645 \u0646\u06d2 \u067e\u06c1\u0644\u06d2 \u0641\u0627\u0626\u0646\u0644 \u0633\u06af\u0646\u0644 \u06a9\u0648 \u0644\u0627\u06a9 \u06a9\u06cc\u0627 \u0627\u0648\u0631 \u0645\u0646\u062a\u062e\u0628 \u0633\u06cc\u0679\u0646\u06af\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0628\u06cc\u06a9 \u0679\u06cc\u0633\u0679 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0686\u0644\u0627\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">final_signal = \"sig_104_80\"\nfinal_hold = 4\nfinal_trades = run_fixed_hold_backtest(merged_df, final_signal, hold_weeks=final_hold)\nfinal_trades[\"equity_curve\"] = (1 + final_trades[\"trade_return\"]).cumprod()\n\nfinal_summary = pd.DataFrame({\n    \"metric\": [\n        \"trades\",\n        \"win_rate\",\n        \"avg_trade_return\",\n        \"median_trade_return\",\n        \"cumulative_return\"\n    ],\n    \"value\": [\n        len(final_trades),\n        (final_trades[\"trade_return\"] > 0).mean(),\n        final_trades[\"trade_return\"].mean(),\n        final_trades[\"trade_return\"].median(),\n        (1 + final_trades[\"trade_return\"]).prod() - 1\n    ]\n})\n\nfinal_summary\n<\/code><\/pre>\n<p>\u0648\u06c1 \u0622\u0624\u0679 \u067e\u0679 \u062d\u062a\u0645\u06cc \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0627 \u067e\u0631\u0648\u0641\u0627\u0626\u0644 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_509_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0627 \u062d\u062a\u0645\u06cc \u067e\u0631\u0648\u0641\u0627\u0626\u0644\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0648\u06c1 \u0646\u0645\u0628\u0631 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u067e\u0686\u06be\u0644\u06d2 \u062e\u0627\u0645 \u0648\u0631\u0698\u0646 \u06a9\u06d2 \u0645\u0642\u0627\u0628\u0644\u06d2 \u0645\u06cc\u06ba \u0628\u06c1\u062a \u0628\u0691\u06cc \u0628\u06c1\u062a\u0631\u06cc \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u0645\u06cc\u06ba \u067e\u06be\u0631 \u0628\u06be\u06cc \u0627\u0646 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u0627\u06cc\u06a9 \u062c\u06af\u06c1 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u062a\u06be\u0627\u06d4 \u062a\u0648 \u0645\u06cc\u06ba \u0646\u06d2 \u062f\u0648 \u0628\u06cc\u0646\u0686 \u0645\u0627\u0631\u06a9\u0633 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0641\u0627\u0626\u0646\u0644 \u0679\u06cc\u0628\u0644 \u0628\u0646\u0627\u06cc\u0627:<\/p>\n<ul>\n<li>\n<p>\u062e\u0631\u06cc\u062f\u0648 \u0627\u0648\u0631 \u067e\u06a9\u0691\u0648<\/p>\n<\/li>\n<li>\n<p>\u0636\u062f\u06cc \u062a\u0646\u0627\u0624 \u06a9\u0648 \u0622\u0631\u0627\u0645 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"language-python\">final_comparison = pd.DataFrame({\n    \"strategy\": [\"buy_and_hold\", \"bullish_unwind_raw\", \"bullish_unwind_filtered\"],\n    \"trades\": [\n        np.nan,\n        len(bullish_unwind_trades),\n        len(final_trades)\n    ],\n    \"win_rate\": [\n        np.nan,\n        (bullish_unwind_trades[\"trade_return\"] > 0).mean(),\n        (final_trades[\"trade_return\"] > 0).mean()\n    ],\n    \"avg_trade_return\": [\n        np.nan,\n        bullish_unwind_trades[\"trade_return\"].mean(),\n        final_trades[\"trade_return\"].mean()\n    ],\n    \"cumulative_return\": [\n        buy_hold_return,\n        (1 + bullish_unwind_trades[\"trade_return\"]).prod() - 1,\n        (1 + final_trades[\"trade_return\"]).prod() - 1\n    ]\n})\n\nfinal_comparison\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_241_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0627 \u062d\u062a\u0645\u06cc \u0645\u0648\u0627\u0632\u0646\u06c1 \u0679\u06cc\u0628\u0644\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0627 \u0645\u062c\u0645\u0648\u0639\u06cc \u0627\u0646\u0639\u0627\u0645 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0679\u0631\u06cc\u0646\u0688 \u0641\u0644\u0679\u0631 \u0635\u0631\u0641 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u0648 \u062a\u06be\u0648\u0691\u0627 \u0633\u0627 \u06c1\u0645\u0648\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0646\u062a\u0627\u0626\u062c \u0628\u0627\u0644\u06a9\u0644 \u0628\u062f\u0644 \u0686\u06a9\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u06a9\u0648 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u06c1 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0645\u06cc\u06ba \u0646\u06d2 \u062a\u06cc\u0646 \u0645\u0646\u062d\u0646\u06cc \u062e\u0637\u0648\u0637 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u0628\u0646\u0627\u0626\u06d2\u06d4<\/p>\n<pre><code class=\"language-python\">plt.plot(buy_hold_df[\"price_date\"], buy_hold_df[\"buy_hold_curve\"], label=\"buy and hold wti\", linewidth=2, alpha=0.5)\nplt.plot(bullish_unwind_trades[\"exit_date\"], bullish_unwind_trades[\"equity_curve\"], label=\"raw bullish unwind\", color=\"indigo\")\nplt.plot(final_trades[\"exit_date\"], final_trades[\"equity_curve\"], label=\"filtered bullish unwind\", color=\"b\")\nplt.title(\"Crude oil strategy comparison\")\nplt.xlabel(\"date\")\nplt.ylabel(\"equity multiple\")\nplt.legend()\nplt.show()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_386_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u0686\u0627\u0631\u0679 \u0679\u06cc\u0628\u0644 \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0627\u0633 \u06a9\u06cc \u0645\u0632\u06cc\u062f \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062e\u0627\u0645 \u0633\u06af\u0646\u0644 \u0628\u06c1\u06c1 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062c\u0645\u0648\u0639\u06cc \u0646\u0645\u0648\u0646\u06d2 \u06a9\u06d2 \u0645\u0642\u0627\u0628\u0644\u06d2 \u0645\u06cc\u06ba \u062e\u0631\u06cc\u062f\u0648 \u0627\u0648\u0631 \u067e\u06a9\u0691\u0648 \u0645\u062b\u0628\u062a \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0634\u0648\u0631 \u06c1\u06d2\u06d4 \u0641\u0644\u0679\u0631 \u0634\u062f\u06c1 \u0648\u0631\u0698\u0646 \u0648\u0627\u062d\u062f \u06c1\u06d2 \u062c\u0648 \u0635\u0627\u0641 \u0633\u062a\u06be\u0631\u0627 \u0627\u0646\u062f\u0627\u0632 \u0645\u06cc\u06ba \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u06cc\u06c1 \u0628\u06be\u06cc \u062f\u06a9\u06be\u0627\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u062a\u06be\u0627 \u06a9\u06c1 \u0641\u0644\u0679\u0631 \u0634\u062f\u06c1 \u0644\u06cc\u0646 \u062f\u06cc\u0646 \u062f\u0631\u0627\u0635\u0644 WTI \u0686\u0627\u0631\u0679 \u067e\u0631 \u06a9\u06c1\u0627\u06ba \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-python\">plt.plot(merged_df[\"price_date\"], merged_df[\"close\"], label=\"wti close\", linewidth=2, alpha=0.5)\nplt.scatter(merged_df.loc[merged_df[final_signal] == 1, \"price_date\"], merged_df.loc[merged_df[final_signal] == 1, \"close\"],\n            s=25, label=\"filtered bullish unwind signal\", color=\"b\")\nplt.title(\"Filtered bullish unwind signals on WTI crude oil\")\nplt.xlabel(\"date\")\nplt.ylabel(\"price\")\nplt.legend()\nplt.show()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852683_883_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"\u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0646\u0631\u0645\u06cc \u06a9\u0627 \u0633\u06af\u0646\u0644 WTI \u062e\u0627\u0645 \u062a\u06cc\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0644\u0679\u0631 \u06a9\u06cc\u0627 \u06af\u06cc\u0627\u06d4\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u0645\u0641\u06cc\u062f \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0645\u0646\u062a\u062e\u0628 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u06c1\u0645\u06cc\u0634\u06c1 \u0641\u0627\u0626\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627\u06d4 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u062a\u06cc\u0632\u06cc \u06a9\u06d2 \u0639\u0644\u0627\u0642\u06d2 \u0645\u06cc\u06ba \u0631\u06c1\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u062a\u0646\u0627\u0624 \u062e\u062a\u0645 \u06c1\u0648\u0646\u0627 \u0634\u0631\u0648\u0639 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0635\u0631\u0641 \u0627\u0633 \u0648\u0642\u062a \u0641\u0639\u0627\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0642\u06cc\u0645\u062a \u06a9\u0627 \u0648\u0633\u06cc\u0639 \u0631\u062c\u062d\u0627\u0646 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06c1\u0645 \u0646\u06d2 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u06a9\u06d2 \u0645\u0639\u0627\u0645\u0644\u06d2 \u0645\u06cc\u06ba \u0628\u06be\u06cc \u0627\u06cc\u0633\u0627 \u06c1\u06cc \u06a9\u06cc\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">plt.plot(merged_df[\"price_date\"], merged_df[\"position_percentile_104\"], label=\"104-week percentile\", linewidth=2, alpha=0.5)\nplt.axhline(0.8, linestyle=\"--\", label=\"80th percentile\")\nplt.scatter(merged_df.loc[merged_df[final_signal] == 1, \"price_date\"], merged_df.loc[merged_df[final_signal] == 1, \"position_percentile_104\"],\n            s=25, label=\"trade signals\", color=\"indigo\")\nplt.title(\"Bullish unwind signals from COT positioning extremes\")\nplt.xlabel(\"date\")\nplt.ylabel(\"percentile\")\nplt.legend()\nplt.show()\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/04\/1775852684_781_Python-\u0645\u06cc\u06ba-\u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af-\u067e\u0631-\u0645\u0628\u0646\u06cc-\u062e\u0627\u0645-\u062d\u06a9\u0645\u062a-\u0639\u0645\u0644\u06cc-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u0626\u06cc.png\" alt=\"COT \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u0627\u06cc\u06a9\u0633\u0679\u0631\u06cc\u0645 \u0628\u0644\u0634 \u0627\u0646 \u0648\u0627\u0626\u0646\u0688 \u0633\u06af\u0646\u0644\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u062d\u062a\u0645\u06cc \u0686\u0627\u0631\u0679 \u0627\u0646 \u0633\u0628 \u06a9\u0648 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u062c\u0648\u0691\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u062c\u0627\u0631\u062a \u0635\u0631\u0641 \u0627\u0633 \u0648\u0642\u062a \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u062c\u0628 \u0635\u062f \u0641\u06cc\u0635\u062f \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u0639\u0644\u0627\u0642\u06d2 \u0645\u06cc\u06ba \u06c1\u0648\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0633\u06af\u0646\u0644 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u0631\u06c1\u062a\u0627 \u06c1\u06d2 \u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u062a\u06be\u0627\u06d4 \u06cc\u06c1 \u062e\u0627\u0645 \u062d\u06a9\u0648\u0645\u062a \u06a9\u06d2 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0633\u06d2 \u06a9\u06c1\u06cc\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u0646\u0638\u0645 \u0648 \u0636\u0628\u0637 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-further-improvements\">\u0627\u0636\u0627\u0641\u06cc \u0628\u06c1\u062a\u0631\u06cc<\/h2>\n<p>\u0627\u0628\u06be\u06cc \u0628\u06be\u06cc \u06a9\u0686\u06be \u062c\u06af\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba \u062c\u06c1\u0627\u06ba \u06c1\u0645 \u0645\u0632\u06cc\u062f \u0622\u06af\u06d2 \u0628\u0691\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u067e\u06c1\u0644\u0627 \u0646\u0641\u0627\u0630 \u062d\u0642\u06cc\u0642\u062a \u067e\u0633\u0646\u062f\u06cc \u06c1\u06d2\u06d4 \u0641\u06cc \u0627\u0644\u062d\u0627\u0644\u060c \u06cc\u06c1 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0635\u0627\u0641 \u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 \u062f\u0627\u062e\u0644\u06d2 \u0627\u0648\u0631 \u062e\u0627\u0631\u062c\u06cc \u0642\u0648\u0627\u0646\u06cc\u0646 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0627\u0633 \u0645\u06cc\u06ba \u067e\u06be\u0633\u0644\u0646\u060c \u0627\u0633\u067e\u0631\u06cc\u0688\u0632\u060c \u06cc\u0627 \u0645\u0639\u0627\u06c1\u062f\u06d2 \u06a9\u06cc \u0633\u0637\u062d \u067e\u0631 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06a9\u06cc \u0631\u06a9\u0627\u0648\u0679\u06cc\u06ba \u0634\u0627\u0645\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u0648 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0646\u062a\u0627\u0626\u062c \u0645\u0632\u06cc\u062f \u0633\u062e\u062a \u06c1\u0648 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062f\u0648\u0633\u0631\u0627 \u0633\u06af\u0646\u0644 \u06a9\u06cc \u06af\u06c1\u0631\u0627\u0626\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0648\u0631\u0698\u0646 \u0635\u0631\u0641 \u063a\u06cc\u0631 \u062a\u062c\u0627\u0631\u062a\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af\u060c \u0679\u0631\u06cc\u0646\u0688 \u0641\u0644\u0679\u0631\u0632 \u0627\u0648\u0631 \u0641\u06a9\u0633\u0688 \u06c1\u0648\u0644\u0688\u0646\u06af \u067e\u06cc\u0631\u06cc\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u062c\u0627\u0646\u0686\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u062a\u062c\u0627\u0631\u062a\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af\u060c \u0627\u062a\u0627\u0631 \u0686\u0691\u06be\u0627\u0624 \u06a9\u06d2 \u0641\u0644\u0679\u0631\u0632\u060c \u06cc\u0627 \u0688\u0627\u0626\u0646\u0627\u0645\u06a9 \u06a9\u0631\u0646 \u0633\u06cc\u0679 \u0627\u067e \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u067e\u06cc\u0686\u06cc\u062f\u06c1 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0686\u06cc\u0632\u0648\u06ba \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-conclusion\">\u0646\u062a\u06cc\u062c\u06c1<\/h2>\n<p>\u06cc\u06c1 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u06cc\u06a9 \u0648\u0633\u06cc\u0639 COT \u062e\u06cc\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0634\u0631\u0648\u0639 \u06c1\u0648\u0627\u06d4 \u067e\u06c1\u0644\u0627 \u0631\u062c\u06cc\u0645 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0645\u0639\u0642\u0648\u0644 \u0645\u0639\u0644\u0648\u0645 \u06c1\u0648\u062a\u0627 \u062a\u06be\u0627\u060c \u0644\u06cc\u06a9\u0646 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u06c1\u0645 \u0646\u06d2 \u0688\u06cc\u0679\u0627 \u067e\u0631 \u0627\u0633 \u06a9\u0627 \u062a\u062c\u0631\u0628\u06c1 \u06a9\u06cc\u0627\u060c \u062a\u0648 \u0627\u0633 \u0645\u06cc\u06ba \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u0631\u06c1\u06d2\u06d4 \u0648\u06c1 \u062d\u0635\u06c1 \u0627\u06c1\u0645 \u062a\u06be\u0627\u06d4 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u062d\u062a\u0645\u06cc \u0633\u06af\u0646\u0644 \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0646\u06af \u0627\u0648\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u0635\u0627\u0641 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0648 \u0628\u0686 \u06af\u06cc\u0627 \u0648\u06c1 \u0627\u06cc\u06a9 \u0628\u06c1\u062a \u06c1\u06cc \u0645\u062e\u0635\u0648\u0635 \u062a\u0631\u062a\u06cc\u0628 \u062a\u06be\u06cc\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u062a\u06cc\u0632\u06cc \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af \u062a\u06be\u06cc \u062c\u0648 \u06a9\u06be\u0648\u0644\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631 \u0631\u06c1\u06cc \u062a\u06be\u06cc \u062c\u0628 \u06a9\u06c1 \u0688\u0628\u0644\u06cc\u0648 \u0679\u06cc \u0622\u0626\u06cc \u0627\u0628 \u0628\u06be\u06cc \u0627\u067e\u0646\u06cc 26 \u06c1\u0641\u062a\u06d2 \u06a9\u06cc \u0645\u0648\u0648\u0646\u06af \u0627\u06cc\u0648\u0631\u06cc\u062c \u0633\u06d2 \u0627\u0648\u067e\u0631 \u062a\u06be\u06cc\u06d4 \u0627\u0633 \u0648\u0631\u0698\u0646 \u0646\u06d2 \u062c\u0627\u0646\u0686\u06d2 \u06af\u0626\u06d2 \u0646\u0645\u0648\u0646\u0648\u06ba \u06a9\u06d2 \u0645\u0642\u0627\u0628\u0644\u06d2 \u062e\u0627\u0645 \u0633\u06af\u0646\u0644\u0632 \u0627\u0648\u0631 \u062e\u0631\u06cc\u062f\u0648 \u0627\u0648\u0631 \u06c1\u0648\u0644\u0688 \u062f\u0648\u0646\u0648\u06ba \u06a9\u0648 \u067e\u06cc\u0686\u06be\u06d2 \u0686\u06be\u0648\u0691 \u062f\u06cc\u0627\u06d4<\/p>\n<p>\u0628\u0691\u06cc \u0628\u0627\u062a \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e FinancialModelingPrep's COT \u0627\u0648\u0631 Commodity Price Data API \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0634\u0631\u0648\u0639 \u0633\u06d2 \u06c1\u06cc \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u0648 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0628\u063a\u06cc\u0631 \u0645\u062a\u0639\u062f\u062f \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0630\u0631\u0627\u0626\u0639 \u06a9\u0648 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u062c\u0648\u0691\u06d2\u06d4 \u0627\u0633 \u0633\u06d2 \u062e\u06cc\u0627\u0644\u0627\u062a \u06a9\u0648 \u062d\u0642\u06cc\u0642\u06cc \u062f\u0646\u06cc\u0627 \u06a9\u06d2 \u0679\u06cc\u0633\u0679\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627 \u0628\u06c1\u062a \u0622\u0633\u0627\u0646 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u06c1\u0645\u06cc\u06ba \u0645\u0636\u0645\u0648\u0646 \u06a9\u06d2 \u0622\u062e\u0631\u06cc \u062d\u0635\u06d2 \u062a\u06a9 \u0644\u06d2 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062c\u06be\u06d2 \u0627\u0645\u06cc\u062f \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u0646\u06d2 \u06a9\u0686\u06be \u0646\u06cc\u0627 \u0627\u0648\u0631 \u0645\u0641\u06cc\u062f \u0633\u06cc\u06a9\u06be\u0627 \u06c1\u0648\u06af\u0627\u06d4 \u0622\u067e \u06a9\u06d2 \u0648\u0642\u062a \u06a9\u06d2 \u0644\u0626\u06d2 \u0622\u067e \u06a9\u0627 \u0634\u06a9\u0631\u06cc\u06c1.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u06a9\u0645\u0648\u0688\u0679\u06cc\u0632 \u0679\u0631\u06cc\u0688\u0646\u06af \u0645\u06cc\u06ba \u06a9\u0645\u0679\u0645\u0646\u0679 \u0622\u0641 \u0679\u0631\u06cc\u0688\u0631\u0632 (COT) \u0688\u06cc\u0679\u0627 \u06a9\u0627 \u0628\u06c1\u062a \u062d\u0648\u0627\u0644\u06c1 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u062c\u0628 \u0644\u0648\u06af \u067e\u0631\u06c1\u062c\u0648\u0645 \u067e\u0648\u0632\u06cc\u0634\u0646\u0646\u06af\u060c \u0642\u06cc\u0627\u0633 \u0622\u0631\u0627\u0626\u06cc \u067e\u0631 \u0645\u0628\u0646\u06cc \u062c\u0630\u0628\u0627\u062a \u06cc\u0627 \u0627\u0644\u0679 \u0631\u0633\u06a9 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0628\u0627\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0628\u0627\u062a \u0686\u06cc\u062a \u062e\u06cc\u0627\u0644 \u06a9\u06cc \u0633\u0637\u062d \u067e\u0631 \u0631\u06c1\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0634\u0627\u0630 \u0648 \u0646\u0627\u062f\u0631 \u06c1\u06cc \u0627\u06cc\u0633\u06d2 \u0627\u0635\u0648\u0644 \u06c1\u06cc\u06ba \u062c\u0646 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":22276,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-22275","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/22275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/comments?post=22275"}],"version-history":[{"count":1,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/22275\/revisions"}],"predecessor-version":[{"id":22277,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/22275\/revisions\/22277"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media\/22276"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=22275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=22275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=22275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}