{"id":23655,"date":"2026-05-08T09:12:32","date_gmt":"2026-05-08T09:12:32","guid":{"rendered":"https:\/\/umang.pk\/2026\/05\/08\/%d8%a7%d8%b2%da%af%d8%b1-%d9%85%db%8c%da%ba-%d9%84%d8%a7%d8%a6%db%8c%d9%88-%d8%a2%d9%be%d8%b4%d9%86%d8%b2-%da%88%db%8c%d9%b9%d8%a7-%d8%a8%db%8c%d8%b3-%da%a9%db%8c%d8%b3%db%92-%d8%a8%d9%86%d8%a7%db%8c\/"},"modified":"2026-05-08T09:12:33","modified_gmt":"2026-05-08T09:12:33","slug":"%d8%a7%d8%b2%da%af%d8%b1-%d9%85%db%8c%da%ba-%d9%84%d8%a7%d8%a6%db%8c%d9%88-%d8%a2%d9%be%d8%b4%d9%86%d8%b2-%da%88%db%8c%d9%b9%d8%a7-%d8%a8%db%8c%d8%b3-%da%a9%db%8c%d8%b3%db%92-%d8%a8%d9%86%d8%a7%db%8c","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/05\/08\/%d8%a7%d8%b2%da%af%d8%b1-%d9%85%db%8c%da%ba-%d9%84%d8%a7%d8%a6%db%8c%d9%88-%d8%a2%d9%be%d8%b4%d9%86%d8%b2-%da%88%db%8c%d9%b9%d8%a7-%d8%a8%db%8c%d8%b3-%da%a9%db%8c%d8%b3%db%92-%d8%a8%d9%86%d8%a7%db%8c\/","title":{"rendered":"\u0627\u0632\u06af\u0631 \u0645\u06cc\u06ba \u0644\u0627\u0626\u06cc\u0648 \u0622\u067e\u0634\u0646\u0632 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2 &#8211; \u0645\u06a9\u0645\u0644 \u06af\u0627\u0626\u06cc\u0688"},"content":{"rendered":"\n<div id=\"\">\n<p>\u0644\u0627\u0626\u06cc\u0648 \u0622\u067e\u0634\u0646\u0632 \u06a9\u0627 \u062a\u062c\u0632\u06cc\u06c1 \u0645\u0633\u0644\u0633\u0644 \u0628\u062f\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u0645\u0636\u0645\u0631 \u0627\u062a\u0627\u0631 \u0686\u0691\u06be\u0627\u0624\u060c \u0686\u06a9\u0646\u0627\u0626\u06cc \u06a9\u06d2 \u0628\u0691\u06be\u0646\u06d2\u060c \u0627\u0648\u0631 \u0633\u0637\u062d \u06a9\u06cc \u0638\u0627\u06c1\u0631\u06cc \u0634\u06a9\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u0686\u0646\u062f \u0645\u0646\u0679\u0648\u06ba \u06a9\u06d2 \u0628\u0639\u062f \u0628\u06be\u06cc \u0645\u062e\u062a\u0644\u0641 \u0646\u0638\u0631 \u0622 \u0633\u06a9\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u0627\u06c1\u0645\u060c \u0628\u06c1\u062a \u0633\u06cc \u0679\u06cc\u0645\u06cc\u06ba \u0627\u0628 \u0628\u06be\u06cc \u0627\u0646 \u0646\u0645\u0628\u0631\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u0633\u0627 \u0633\u0644\u0648\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba \u062c\u06cc\u0633\u06d2 \u0648\u06c1 \u0633\u0628 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u062f\u06cc\u06a9\u06be\u06d2 \u06af\u0626\u06d2 \u06c1\u0648\u06ba\u06d4 \u06cc\u06c1 \u0688\u06cc\u06a9 \u06a9\u0627 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0688\u0633\u067e\u0648\u0632\u0627\u06cc\u0628\u0644 \u0644\u06cc\u067e \u0679\u0627\u067e \u0633\u06cc\u0644 \u06c1\u06d2\u06d4 \u0645\u06cc\u0679\u0646\u06af \u0633\u06d2 \u067e\u06c1\u0644\u06d2 UI \u06a9\u0648 \u062c\u0644\u062f\u06cc \u0633\u06d2 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u0627\u0633 \u0648\u0642\u062a \u062a\u06a9 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0622\u067e \u06a9\u0648 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u06d2 \u062c\u0648\u0627\u0628\u0627\u062a \u062f\u06cc\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1 \u06c1\u0648 \u062c\u0648 \u0622\u067e \u06a9\u06d2 \u0627\u0635\u0644 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0645\u06cc\u06ba \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>TSLA \u06a9\u06cc \u0633\u0637\u062d 10:32 \u067e\u0631 \u06a9\u06cc\u0633\u06cc \u0646\u0638\u0631 \u0622\u062a\u06cc \u062a\u06be\u06cc\u061f \u062a\u0631\u0686\u06be\u06cc \u06a9\u0628 \u0633\u06d2 \u06a9\u06be\u0691\u06cc \u0628\u062f\u0644\u0646\u06d2 \u0644\u06af\u06cc\u06d4 \u062a\u0628\u062f\u06cc\u0644\u06cc \u067e\u0646\u06a9\u06be\u0648\u06ba \u06a9\u06d2 \u06c1\u0644\u0646\u06d2 \u0633\u06d2 \u0622\u0626\u06cc \u06cc\u0627 \u0627\u06d2 \u0679\u06cc \u0627\u06cc\u0645 \u0686\u0644\u0646\u06d2 \u0633\u06d2\u061f<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0622\u0646\u06d2 \u067e\u0631 \u0627\u0633\u06d2 \u0645\u062d\u0641\u0648\u0638 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u0627\u0633 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0646\u06c1\u06cc\u06ba \u0686\u0644\u0627 \u0633\u06a9\u062a\u06d2\u060c \u0627\u0633 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06cc\u0627 \u0622\u0688\u0679 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u06d2\u06d4 \u0622\u067e \u0627\u0633 \u0648\u0642\u062a \u062c\u0648 \u06a9\u0686\u06be \u0628\u06be\u06cc \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u0648 \u06c1\u0648\u0627 \u0627\u0633 \u0645\u06cc\u06ba \u067e\u06be\u0646\u0633 \u06af\u0626\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u0645\u0634\u0642 \u0645\u06cc\u06ba\u060c \u06c1\u0645 \u06a9\u0686\u06be \u0686\u06be\u0648\u0679\u06cc \u0644\u06cc\u06a9\u0646 \u0639\u0645\u0644\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4 \u06cc\u0639\u0646\u06cc\u060c \u0627\u06cc\u06a9 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u062c\u0648 SpiderRock MLink \u06a9\u06d2 TSLA \u06a9\u06d2 LiveImpliedQuote \u062a\u062c\u0632\u06cc\u06c1 \u06a9\u0648 \u0645\u0633\u0644\u0633\u0644 \u062d\u0627\u0635\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u06c1\u0631 \u0627\u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u062a\u0627\u0631\u06cc\u062e \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 &quot;\u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u0645\u0646\u0638\u0631&#8221; \u0679\u06cc\u0628\u0644 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0633\u0637\u062d \u06a9\u06d2 \u062d\u0627\u0644\u0627\u062a \u067e\u0648\u0631\u06cc \u062a\u0627\u0631\u06cc\u062e \u06a9\u0648 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u062d\u0627\u0635\u0644 \u06a9\u06cc\u06d2 \u062c\u0627 \u0633\u06a9\u06cc\u06ba\u06d4<\/p>\n<p><strong>\u0645\u0642\u0635\u062f \u062a\u062c\u0627\u0631\u062a\u06cc \u0646\u0638\u0627\u0645 \u0628\u0646\u0627\u0646\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u062f\u0627\u062e\u0644\u06cc \u0688\u06cc\u0679\u0627 \u0633\u06cc\u0679 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06c1\u06d2 \u062c\u0633 \u06a9\u06cc \u0622\u067e \u0646\u06af\u0631\u0627\u0646\u06cc \u0627\u0648\u0631 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/strong><\/p>\n<p>\u0646\u0648\u0679: SpiderRock MLink \u06a9\u0627 LiveImpliedQuote \u062a\u062c\u0632\u06cc\u06c1 \u0627\u06cc\u06a9 \u0627\u062f\u0627 \u0634\u062f\u06c1 \u067e\u0631\u0648\u0688\u06a9\u0679 \u06c1\u06d2\u060c \u062c\u0633 \u0645\u06cc\u06ba \u0627\u0633 \u06a9\u06cc \u062a\u062e\u0644\u06cc\u0642 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0645\u0627\u0631\u06a9\u06cc\u0679 \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9\u0633\u0686\u06cc\u0646\u062c \u0641\u06cc\u0633 \u0634\u0627\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\">\u0634\u0631\u0637\u06cc\u06ba<\/h2>\n<p>\u0627\u0633 \u0648\u0627\u06a9 \u062a\u06be\u0631\u0648 \u0645\u06cc\u06ba \u06a9\u0648\u0688 \u0686\u0644\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0622\u067e \u06a9\u0648 \u06a9\u0686\u06be \u0686\u06cc\u0632\u06cc\u06ba \u062a\u06cc\u0627\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p>API \u06a9\u06cc \u0637\u0631\u0641\u060c \u0622\u067e \u06a9\u0648 LiveImpliedQuote \u0641\u06cc\u0688 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be SpiderRock MLink \u0627\u06a9\u0627\u0624\u0646\u0679 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06af\u06cc\u06d4 \u0645\u062b\u0627\u0644 \u0627\u06cc\u06a9 REST \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0644\u06c1\u0630\u0627 \u06a9\u0633\u06cc WebSocket \u0633\u06cc\u0679 \u0627\u067e \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0627\u06cc\u06a9 \u062f\u0631\u0633\u062a API \u06a9\u0644\u06cc\u062f \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06a9\u0648\u0626\u06cc \u0627\u06a9\u0627\u0624\u0646\u0679 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e SpiderRock \u0633\u06d2 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0631\u0627\u0628\u0637\u06c1 \u06a9\u0631 \u06a9\u06d2 \u0627\u0633 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0632\u06af\u0631 \u06a9\u06cc \u0637\u0631\u0641\u060c \u0645\u0627\u062d\u0648\u0644 \u06a9\u0645 \u0633\u06d2 \u06a9\u0645 \u06c1\u06d2\u06d4 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06d2 \u062f\u0633\u062a\u062e\u0637\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0679\u06cc\u0648\u067e\u0644 \u0642\u0633\u0645 \u06a9\u06d2 \u0627\u0634\u0627\u0631\u06d2 \u06a9\u06cc \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u06d2 \u0644\u06cc\u06d2 Python 3.10 \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0628\u06cc\u0631\u0648\u0646\u06cc \u067e\u06cc\u06a9\u06cc\u062c\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u060c \u067e\u0627\u0646\u0688\u0627\u060c \u0646\u0645\u067e\u06cc\u060c \u0627\u0648\u0631 \u0645\u06cc\u0679\u067e\u0644\u0648\u0679\u0644\u06cc\u0628 \u06c1\u06cc\u06ba\u06d4 \u0628\u0627\u0642\u06cc \u0633\u0628 \u06a9\u0686\u06be (sqlite3, time, datetime) \u0645\u0639\u06cc\u0627\u0631\u06cc \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u06a9\u0627 \u062d\u0635\u06c1 \u06c1\u06d2\u06d4 \u0622\u067e \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0627\u0646\u062d\u0635\u0627\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-plaintext\">pip install requests pandas numpy matplotlib\n<\/code><\/pre>\n<p>\u0645\u0642\u0627\u0645\u06cc \u062a\u062d\u0631\u06cc\u0631\u06cc \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06d2 \u0639\u0644\u0627\u0648\u06c1 \u06a9\u0633\u06cc \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0633\u06cc\u0679 \u0627\u067e \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 SQLite \u067e\u06c1\u0644\u06cc \u0628\u0627\u0631 \u062c\u0628 \u0622\u067e \u0627\u0633\u06d2 \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0641\u0627\u0626\u0644\u06cc\u06ba \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0622\u067e \u06a9\u0648 \u0627\u0633\u06d2 \u0627\u0644\u06af \u0633\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06cc\u0627 \u06a9\u0646\u0641\u06cc\u06af\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u062e\u0631 \u0645\u06cc\u06ba\u060c \u0645\u0634\u0642 TSLA \u06a9\u0648 \u06c1\u062f\u0641 \u06a9\u06cc \u0639\u0644\u0627\u0645\u062a \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u06cc\u06a9 \u0645\u0627\u0626\u0639 \u0627\u0648\u0631 \u0641\u0639\u0627\u0644 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u06a9\u0627 \u0633\u0644\u0633\u0644\u06c1 \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2\u06d4 \u0627\u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0628\u0646\u06cc\u0627\u062f \u0633\u06d2 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0628\u0644\u0627\u06a9 \u0645\u06cc\u06ba \u0635\u0631\u0641 \u0639\u0644\u0627\u0645\u062a \u0645\u062a\u063a\u06cc\u0631 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-what-data-were-using\">\u06c1\u0645 \u06a9\u0648\u0646 \u0633\u0627 \u0688\u06cc\u0679\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/h2>\n<p>\u06cc\u06c1 \u062a\u0639\u0645\u06cc\u0631 SpiderRock MLink \u06a9\u06cc \u0637\u0631\u0641 \u0633\u06d2 \u0627\u06cc\u06a9 OptAnalytics \u067e\u06cc\u063a\u0627\u0645 \u06a9\u06cc \u0642\u0633\u0645 \u0633\u06d2 \u062a\u0642\u0648\u06cc\u062a \u06cc\u0627\u0641\u062a\u06c1 \u06c1\u06d2\u06d4 <strong>\u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u0645\u0636\u0645\u0631 \u0627\u0642\u062a\u0628\u0627\u0633<\/strong>.<\/p>\n<p>\u06c1\u0631 \u067e\u06cc\u063a\u0627\u0645 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u06a9\u06d2 \u0645\u0639\u0627\u06c1\u062f\u06d2 \u06a9\u06cc \u0646\u0645\u0627\u0626\u0646\u062f\u06af\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0646 \u062a\u062c\u0632\u06cc\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0622\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u06a9\u06cc \u0622\u067e \u06a9\u0648 \u0639\u0645\u0644\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0646\u06af\u0631\u0627\u0646\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<ul>\n<li>\n<p>\u0622\u067e\u0634\u0646 \u0634\u0646\u0627\u062e\u062a \u06a9\u0646\u0646\u062f\u06c1 (\u0639\u0644\u0627\u0645\u062a\u060c \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2\u060c \u06c1\u0691\u062a\u0627\u0644\u060c \u06a9\u0627\u0644 \u06cc\u0627 \u0688\u0627\u0644)<\/p>\n<\/li>\n<li>\n<p>\u0633\u0637\u062d IV (sVol) \u0627\u0648\u0631 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0633\u0637\u062d\u06cc \u0641\u06cc\u0644\u0688\u0632<\/p>\n<\/li>\n<li>\n<p>\u06cc\u0648\u0646\u0627\u0646\u06cc (\u0688\u06cc\u0644\u0679\u0627\u060c \u06af\u0627\u0645\u0627\u060c \u062a\u06be\u06cc\u0679\u0627\u060c \u0648\u06cc\u06af\u0627)<\/p>\n<\/li>\n<li>\n<p>\u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0634\u0639\u0628\u06d2 \u062c\u06cc\u0633\u06d2 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0642\u06cc\u0645\u062a (uPrc)\u060c \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u0627 \u0648\u0642\u062a (\u0633\u0627\u0644)\u060c \u0634\u0631\u062d (\u0631\u06cc\u0679)<\/p>\n<\/li>\n<li>\n<p>\u0644\u0627\u0626\u06cc\u0648 \u0641\u06cc\u0688 \u06a9\u0648 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u0627\u06c1\u0645 \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u0627\u0648\u0631 \u06a9\u06cc\u0644\u06a9\u0648\u0644\u06cc\u0634\u0646 \u0633\u0648\u0631\u0633 \u0645\u0627\u0631\u06a9\u0631<\/p>\n<\/li>\n<\/ul>\n<p>\u06c1\u0645 \u0645\u0636\u0645\u0648\u0646 \u0645\u06cc\u06ba sVol \u06a9\u0648 \u0627\u06c1\u0645 \u0627\u062a\u0627\u0631 \u0686\u0691\u06be\u0627\u0624 \u0648\u0627\u0644\u06d2 \u0641\u06cc\u0644\u0688 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0627\u0646\u06cc\u06ba \u06af\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0633\u0631\u0641\u06cc\u0633 IV \u06a9\u06c1\u06cc\u06ba \u06af\u06d2\u06d4 \u0645\u0633\u06a9\u0631\u0627\u06c1\u0679\u0648\u06ba \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0644\u06a9\u06be\u062a\u06d2 \u0648\u0642\u062a \u06cc\u0627 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062f\u06c1 \u0631\u06cc\u06a9\u0627\u0631\u0688\u0632 \u0633\u06d2 \u062a\u0639\u0635\u0628 \u067e\u0631\u0627\u06a9\u0633\u06cc \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u062a\u06d2 \u0648\u0642\u062a \u06cc\u06c1 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06cc \u0645\u0633\u062a\u0642\u0644 \u0645\u0632\u0627\u062c\u06cc \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0688\u06cc\u0645\u0648 TSLA \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0633 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0628\u06be\u0631\u067e\u0648\u0631 \u0627\u0648\u0631 \u0641\u0639\u0627\u0644 \u0622\u067e\u0634\u0646 \u0686\u06cc\u0646 \u06c1\u06d2\u060c \u062c\u0648 \u0645\u062e\u062a\u0635\u0631 \u06a9\u06cc\u067e\u0686\u0631 \u0648\u0646\u0688\u0648\u0632 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u06be\u06cc \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0627\u0648\u0631 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u0648 \u0645\u0632\u06cc\u062f \u062f\u0644\u0686\u0633\u067e \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1\u06cc \u067e\u0627\u0626\u067e \u0644\u0627\u0626\u0646 \u062f\u06cc\u06af\u0631 \u0642\u062f\u06cc\u0645\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06be\u06cc \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u0686\u06cc\u0632 \u062c\u0648 \u0628\u062f\u0644\u062a\u06cc \u06c1\u06d2 \u0648\u06c1 \u0639\u0644\u0627\u0645\u062a \u0641\u0644\u0679\u0631 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-setup-importing-packages\">\u062a\u0631\u062a\u06cc\u0628\u0627\u062a: \u067e\u06cc\u06a9\u062c\u0632 \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06cc\u0627 APIs \u06a9\u0648 \u0686\u06be\u0648\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u06cc\u06a9 \u0686\u06be\u0648\u0679\u0627\u060c \u062f\u0648\u0628\u0627\u0631\u06c1 \u0642\u0627\u0628\u0644 \u062f\u06c1\u0631\u0627\u06cc\u0627 \u062c\u0627\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0645\u0627\u062d\u0648\u0644 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4 \u0627\u0633 \u062d\u0635\u06d2 \u06a9\u0648 \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u06a9\u0645 \u0633\u06d2 \u06a9\u0645 \u0631\u06a9\u06be\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0635\u0631\u0641 \u0648\u06c1\u06cc \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u0633\u06d2 \u062a\u06cc\u0646 \u0686\u06cc\u0632\u06cc\u06ba \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2: REST \u06a9\u0627\u0644 \u06a9\u0631\u0646\u0627\u060c SQLite \u0645\u06cc\u06ba \u0688\u06cc\u0679\u0627 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 \u0628\u0646\u06cc\u0627\u062f\u06cc \u062a\u062c\u0632\u06cc\u06c1 \u0627\u0648\u0631 \u067e\u0644\u0627\u0679 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u0646\u0627\u06d4<\/p>\n<pre><code class=\"language-python\">import requests\nimport sqlite3\nimport pandas as pd\nimport numpy as np\nimport time\nfrom datetime import datetime, timezone\nimport matplotlib.pyplot as plt\nplt.style.use('ggplot')\n<\/code><\/pre>\n<ul>\n<li>\n<p><code>requests<\/code>    MLink REST \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>sqlite3<\/code>    \u0627\u06cc\u06a9 \u06c1\u0644\u06a9\u0627 \u067e\u06be\u0644\u06a9\u0627 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633\u06d2 \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u0627\u0636\u0627\u0641\u06cc \u0633\u06cc\u0679 \u0627\u067e \u06a9\u06d2 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0644\u06a9\u06be\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>pandas<\/code>    \u0627\u0648\u0631 <code>numpy<\/code> \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0648\u0627\u067e\u0633 \u0622\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u0627\u0633\u06d2 \u0635\u0631\u0641 \u0634\u06a9\u0644 \u062f\u06cc\u0646\u06d2 \u0627\u0648\u0631 \u0641\u0644\u0679\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>time<\/code>    \u0627\u0648\u0631 <code>datetime<\/code> \u067e\u0648\u0644\u0646\u06af \u0644\u0648\u067e \u0686\u0644\u0627 \u06a9\u0631 \u0627\u0648\u0631 \u06c1\u0631 \u0627\u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u06a9\u0648 \u0679\u0627\u0626\u0645 \u0633\u0679\u06cc\u0645\u067e \u0644\u06af\u0627 \u06a9\u0631 \u0627\u067e\u0646\u06d2 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u0648 \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u0633\u06cc\u0631\u06cc\u0632 \u0628\u0646\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-database-design\">\u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0688\u06cc\u0632\u0627\u0626\u0646<\/h2>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u0627 \u0645\u0642\u0635\u062f \u062d\u0642\u06cc\u0642\u06cc \u0648\u0642\u062a \u06a9\u06d2 \u062a\u062c\u0632\u06cc\u0627\u062a \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u0628\u0646\u0627\u0646\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u06a9\u06d2 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u0648 \u062f\u0648 \u062a\u0642\u0627\u0636\u0648\u06ba \u06a9\u06cc \u062d\u0645\u0627\u06cc\u062a \u06a9\u0631\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2:<\/p>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u0622\u0688\u0679 \u0679\u0631\u06cc\u0644 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2. \u062a\u0645\u0627\u0645 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u062a\u0627\u06a9\u06c1 \u06c1\u0645 \u0627\u0633 \u06a9\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u0646\u0648 \u06a9\u0631 \u0633\u06a9\u06cc\u06ba \u06a9\u06c1 \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u0648\u0642\u062a \u067e\u0631 \u0633\u0637\u062d \u06a9\u06cc\u0633\u06cc \u0646\u0638\u0631 \u0622\u062a\u06cc \u062a\u06be\u06cc\u06d4<\/p>\n<p>\u062f\u0648\u0633\u0631\u0627\u060c \u0622\u067e \u06a9\u0648 \u0641\u0648\u0631\u06cc \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0637\u0631\u06cc\u0642\u06c1 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2 &quot;\u0627\u0628 \u06cc\u06c1 \u06a9\u06cc\u0633\u0627 \u0644\u06af\u062a\u0627 \u06c1\u06d2\u061f&#8221; \u0622\u067e \u06a9\u06cc \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062f\u06c1 \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631\u06d4<\/p>\n<p>\u062a\u0648 \u06c1\u0645 \u062f\u0648 \u0645\u06cc\u0632\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p><code>implied_quote_history<\/code>: \u0635\u0631\u0641 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06c1\u0631 \u0633\u0631\u0648\u06d2 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u062f\u0627\u062e\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>implied_quote_latest<\/code>: \u0627\u06cc\u06a9 \u0642\u0637\u0627\u0631 \u0641\u06cc \u0627\u062e\u062a\u06cc\u0627\u0631 \u0645\u0639\u0627\u06c1\u062f\u06c1\u06d4 \u06c1\u0631 \u067e\u0648\u0644 \u0627\u0633 \u0679\u06cc\u0628\u0644 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0644\u06c1\u0630\u0627 \u06cc\u06c1 \u06c1\u0645\u06cc\u0634\u06c1 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u06a9\u06cc \u0639\u06a9\u0627\u0633\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u062f\u0648\u0646\u0648\u06ba \u062c\u062f\u0648\u0644\u0648\u06ba \u06a9\u06d2 \u0645\u0631\u06a9\u0632 \u0645\u06cc\u06ba \u0645\u0633\u062a\u062d\u06a9\u0645 \u0622\u067e\u0634\u0646 \u0634\u0646\u0627\u062e\u062a \u06a9\u0646\u0646\u062f\u06c1 \u06c1\u06cc\u06ba\u06d4 \u0641\u06cc\u0688 \u0645\u06cc\u06ba \u0646\u06cc\u0633\u0679\u0688 \u0622\u067e\u0634\u0646 \u06a9\u06cc\u0632 \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u06c1\u0645 \u0627\u0646\u06c1\u06cc\u06ba \u0627\u06cc\u06a9 \u06c1\u06cc \u06a9\u0644\u06cc\u062f \u067e\u0631 \u0646\u0627\u0631\u0645\u0644\u0627\u0626\u0632 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>option_key<\/code> \u0627\u06cc\u06a9 \u0633\u0679\u0631\u0646\u06af \u062c\u0633 \u0645\u06cc\u06ba \u0639\u0644\u0627\u0645\u062a\u060c \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2\u060c \u0627\u0633\u0679\u0631\u0627\u0626\u06cc\u06a9 \u067e\u0631\u0627\u0626\u0633\u060c \u06a9\u0627\u0644 \u06cc\u0627 \u067e\u0648\u0679\u060c \u0627\u0648\u0631 \u0641\u06cc\u0644\u0688\u0632 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u062c\u062f\u0648\u0644 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u06a9\u0644\u06cc\u062f \u0627\u0648\u0631 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0634\u0645\u0648\u0644\u06cc\u062a \u06a9\u06cc \u06a9\u0644\u06cc\u062f \u06c1\u0648\u06af\u06cc\u06d4<\/p>\n<pre><code class=\"language-python\">#config\napi_key = \"YOUR SPIDERROCK API KEY\"\nmlink_url = \"https:\/\/mlink-live.nms.saturn.spiderrockconnect.com\/rest\/json\"\n\nmsg_type = \"LiveImpliedQuote\"\n\nsymbol = \"TSLA\"\npoll_interval_s = 10\npoll_duration_s = 120\nlimit = 2000\n\n#create db connection\ndb_path = \"\/mnt\/data\/optanalytics_iv_greeks.db\"\n\ndef get_conn(path: str = db_path):\n    conn = sqlite3.connect(path)\n    conn.execute(\"PRAGMA journal_mode=WAL;\")\n    conn.execute(\"PRAGMA synchronous=NORMAL;\")\n    return conn\n\n#create db schema\ndef setup_db(path: str = db_path):\n    conn = get_conn(path)\n    cur = conn.cursor()\n\n    cur.execute(\"\"\"\n    create table if not exists implied_quote_history (\n        id integer primary key autoincrement,\n        asof_ts text not null,\n\n        option_key text not null,\n        symbol text not null,\n        expiry text not null,\n        strike real not null,\n        cp text not null,\n\n        calc_source text,\n        u_prc real,\n        years real,\n        rate real,\n\n        s_vol real,\n        atm_vol real,\n        s_mark real,\n\n        o_bid real,\n        o_ask real,\n        o_bid_iv real,\n        o_ask_iv real,\n\n        delta real,\n        gamma real,\n        theta real,\n        vega real,\n\n        src_ts text\n    );\n    \"\"\")\n\n    cur.execute(\"\"\"\n    create index if not exists idx_hist_symbol_expiry_asof\n    on implied_quote_history(symbol, expiry, asof_ts);\n    \"\"\")\n\n    cur.execute(\"\"\"\n    create index if not exists idx_hist_option_asof\n    on implied_quote_history(option_key, asof_ts);\n    \"\"\")\n\n    cur.execute(\"\"\"\n    create table if not exists implied_quote_latest (\n        option_key text primary key,\n\n        last_asof_ts text not null,\n        symbol text not null,\n        expiry text not null,\n        strike real not null,\n        cp text not null,\n\n        calc_source text,\n        u_prc real,\n        years real,\n        rate real,\n\n        s_vol real,\n        atm_vol real,\n        s_mark real,\n\n        o_bid real,\n        o_ask real,\n        o_bid_iv real,\n        o_ask_iv real,\n\n        delta real,\n        gamma real,\n        theta real,\n        vega real,\n\n        src_ts text\n    );\n    \"\"\")\n\n    cur.execute(\"\"\"\n    create index if not exists idx_latest_symbol_expiry\n    on implied_quote_latest(symbol, expiry);\n    \"\"\")\n\n    conn.commit()\n    conn.close()\n\nsetup_db()\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u06cc\u06a9 SQLite \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0641\u0627\u0626\u0644 \u0627\u0648\u0631 \u062f\u0648\u0646\u0648\u06ba \u0645\u06cc\u0632\u06cc\u06ba \u0628\u0646\u0627\u0626\u06d2 \u06af\u0627\u06d4 \u06c1\u0633\u0679\u0631\u06cc \u0679\u06cc\u0628\u0644 \u0635\u0631\u0641 \u0636\u0645\u06cc\u0645\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0646 \u062f\u0648 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u062c\u0646\u06c1\u06cc\u06ba \u0622\u067e \u0628\u0639\u062f \u0645\u06cc\u06ba \u0686\u0644\u0627\u0626\u06cc\u06ba \u06af\u06d2: \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u0627\u0648\u0631 \u0648\u0642\u062a \u06a9\u06d2 \u062d\u0633\u0627\u0628 \u0633\u06d2 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0645\u062e\u0635\u0648\u0635 \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0679\u0627\u0626\u0645 \u0644\u0627\u0626\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>option_key<\/code>. \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u062c\u062f\u0648\u0644 \u06a9\u06cc \u06a9\u0644\u06cc\u062f\u06cc\u06ba \u06cc\u06c1 \u06c1\u06cc\u06ba: <code>option_key<\/code>\u06cc\u06c1 \u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u0645\u0633\u062a\u0642\u0644 &quot;\u0645\u0648\u062c\u0648\u062f\u06c1 \u0645\u0646\u0638\u0631&#8221; \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06c1\u0645 \u062c\u0633 \u06af\u0631\u0645\u06cc \u06a9\u0648 \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0648\u06c1 \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u062e\u0648\u062f \u0631\u0627\u0633\u062a \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0633\u0637\u062d IV (s_vol)\u060c \u0633\u0637\u062d\u06cc \u0646\u0634\u0627\u0646 (s_mark)\u060c \u06cc\u0648\u0646\u0627\u0646\u06cc \u062d\u0631\u0648\u0641\u060c \u0627\u0648\u0631 \u06a9\u0626\u06cc \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0634\u0639\u0628\u0648\u06ba \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0645 \u0627\u06cc\u06a9 \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u0628\u06be\u06cc \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u06c1\u0645 \u0628\u0639\u062f \u0645\u06cc\u06ba \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627 \u0633\u06a9\u06cc\u06ba \u06a9\u06c1 \u0648\u06cc\u0644\u06cc\u0648 \u06a9\u0628 \u0628\u0646\u0627\u0626\u06cc \u06af\u0626\u06cc \u062a\u06be\u06cc\u06d4<\/p>\n<h2 id=\"heading-pulling-liveimpliedquote\">LiveImpiedQuote \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u0628 \u0622\u0626\u06cc\u06d2 \u0627\u067e\u0646\u06cc \u067e\u06c1\u0644\u06cc \u0644\u0627\u0626\u06cc\u0648 \u067e\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1\u0627\u06ba \u0645\u0642\u0635\u062f \u06a9\u0627\u0645\u0644 \u0641\u0644\u0679\u0631 \u0628\u0646\u0627\u0646\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0645\u0642\u0635\u062f \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 TSLA \u0627\u062e\u062a\u06cc\u0627\u0631\u0627\u062a \u06a9\u06d2 \u062a\u062c\u0632\u06cc\u06d2 \u06a9\u06d2 \u0645\u0639\u0646\u06cc \u062e\u06cc\u0632 \u062d\u0635\u0648\u06ba \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u0648 \u0627\u0648\u0631 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06d2 \u06a9\u06c1 \u0631\u062f\u0639\u0645\u0644 \u06a9\u0627 \u0688\u06be\u0627\u0646\u0686\u06c1 \u06c1\u0645\u0627\u0631\u06cc \u062a\u0648\u0642\u0639 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u06c1\u0648\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 LiveImpliedQuote \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0639\u0644\u0627\u0645\u062a \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0641\u0644\u0679\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u06c1\u0627\u06ba \u0634\u0642 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u062c\u0648\u0627\u0628 \u0627\u06cc\u06a9 \u0641\u06c1\u0631\u0633\u062a \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0642\u0637\u0627\u0631\u06cc\u06ba \u062d\u0642\u06cc\u0642\u06cc LiveImpliedQuote \u067e\u06cc\u063a\u0627\u0645\u0627\u062a \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0622\u062e\u0631 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0642\u0637\u0627\u0631 QueryResult \u06a9\u0627 \u062e\u0644\u0627\u0635\u06c1 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-python\">def fetch_live_implied_quote(symbol: str, limit: int = 2000):\n    where = f\"okey.tk:eq:{symbol}\"\n\n    params = {\n        \"apiKey\": api_key,\n        \"cmd\": \"getmsgs\",\n        \"msgType\": msg_type,\n        \"where\": where,\n        \"limit\": limit\n    }\n\n    r = requests.get(mlink_url, params=params)\n    r.raise_for_status()\n    return r.json()\n\nraw = fetch_live_implied_quote(symbol, limit=limit)\nprint(\"raw messages:\", len(raw))\nprint(\"first type:\", raw[0].get(\"header\", {}).get(\"mTyp\") if raw else None)\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0622\u0631\u0627\u0645 \u06c1\u06d2\u06d4 <code>getmsgs<\/code> \u06a9\u0627\u0644 \u0627\u067e\u0646\u06cc API \u06a9\u0644\u06cc\u062f\u060c \u067e\u06cc\u063a\u0627\u0645 \u06a9\u06cc \u0642\u0633\u0645\u060c \u0627\u0648\u0631 \u0633\u0627\u062f\u06c1 \u0639\u0644\u0627\u0645\u062a \u06a9\u0627 \u0641\u0644\u0679\u0631 \u067e\u0627\u0633 \u06a9\u0631\u06cc\u06ba\u06d4 \u06a9\u06c1 <code>limit<\/code> \u06cc\u06c1 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0633\u0631\u0648\u06d2 \u0633\u06d2 \u0648\u0627\u067e\u0633 \u0622\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u067e\u06cc\u063a\u0627\u0645\u0627\u062a \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0648 \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0641\u0639\u0627\u0644 \u0628\u0646\u06cc\u0627\u062f\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0648\u0627\u067e\u0633 \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u0627\u0646\u062a\u0628\u0627\u06c1\u0627\u062a \u0627\u0648\u0631 \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u0627 \u0633\u06cc\u0679 \u0633\u0631\u0648\u06d2 \u0633\u06d2 \u0633\u0631\u0648\u06d2 \u062a\u06a9 \u0645\u062e\u062a\u0644\u0641 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0679\u06be\u06cc\u06a9 \u06c1\u06d2\u06d4 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0645\u0642\u0635\u062f \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u06d2 \u0646\u0645\u0648\u0646\u0648\u06ba \u0627\u0648\u0631 \u0646\u06af\u0631\u0627\u0646\u06cc \u06a9\u06d2 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u0646\u0627 \u06c1\u06d2 \u062c\u0646 \u06a9\u06cc \u0648\u06c1 \u062d\u0645\u0627\u06cc\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u0622\u0624\u0679 \u067e\u0679 \u06c1\u06d2 \u062c\u0648 \u0622\u067e \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/05\/1778231537_995_\u0627\u0632\u06af\u0631-\u0645\u06cc\u06ba-\u0644\u0627\u0626\u06cc\u0648-\u0622\u067e\u0634\u0646\u0632-\u0688\u06cc\u0679\u0627-\u0628\u06cc\u0633-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u06cc\u0627-\u062c\u0627\u0626\u06d2.png\" alt=\"LiveImpliedQuote \u0646\u0645\u0648\u0646\u06c1 \u067e\u0648\u0644\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h2 id=\"heading-normalizing-the-response-into-rows\">\u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06d2 \u062c\u0648\u0627\u0628 \u06a9\u0648 \u0645\u0639\u0645\u0648\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h2>\n<p>\u0645\u0648\u062c\u0648\u062f\u06c1 \u062e\u0627\u0645 \u0646\u06cc\u0633\u0679\u0688 \u0645\u06cc\u0633\u062c \u0622\u0628\u062c\u06cc\u06a9\u0679 \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0641\u0627\u0631\u0645\u06cc\u0679 \u0679\u0631\u0627\u0646\u0633\u0645\u06cc\u0634\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u0632\u0648\u06ba \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u0627\u06cc\u0633\u0627 \u0641\u0627\u0631\u0645\u06cc\u0679 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0633\u06d2 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0627\u0633\u0679\u0648\u0631 \u06cc\u0627 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u06d2\u06d4 \u0627\u0628 \u06c1\u0645 \u06c1\u0631 LiveImpliedQuote \u067e\u06cc\u063a\u0627\u0645 \u06a9\u0648 \u0645\u0633\u062a\u0642\u0644 \u0627\u0633\u06a9\u06cc\u0645\u0627 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0641\u0644\u06cc\u0679 \u0642\u0637\u0627\u0631 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-python\">def make_option_key(okey: dict) -> str:\n    return \"|\".join([\n        str(okey.get(\"tk\")),\n        str(okey.get(\"dt\")),\n        str(okey.get(\"xx\")),\n        str(okey.get(\"cp\")),\n        str(okey.get(\"at\")),\n        str(okey.get(\"ts\")),\n    ])\n\ndef normalize_liq(raw: list, asof_ts: str, keep_calc_source: str = \"Loop\") -> pd.DataFrame:\n    rows = []\n\n    for row in raw:\n        if row.get(\"header\", {}).get(\"mTyp\") != \"LiveImpliedQuote\":\n            continue\n\n        m = row.get(\"message\", {})\n        if keep_calc_source and m.get(\"calcSource\") != keep_calc_source:\n            continue\n\n        pkey = m.get(\"pkey\", {})\n        okey = pkey.get(\"okey\", {})\n        if not okey:\n            continue\n\n        s_vol = m.get(\"sVol\")\n        if s_vol is None or s_vol == 0:\n            continue\n\n        o_bid = m.get(\"oBid\", 0) or 0\n        o_ask = m.get(\"oAsk\", 0) or 0\n\n        quote_ok = int(not (o_bid == 0 and o_ask == 0))\n\n        rows.append({\n            \"asof_ts\": asof_ts,\n            \"option_key\": make_option_key(okey),\n\n            \"symbol\": okey.get(\"tk\"),\n            \"expiry\": okey.get(\"dt\"),\n            \"strike\": okey.get(\"xx\"),\n            \"cp\": okey.get(\"cp\"),\n\n            \"calc_source\": m.get(\"calcSource\"),\n            \"u_prc\": m.get(\"uPrc\"),\n            \"years\": m.get(\"years\"),\n            \"rate\": m.get(\"rate\"),\n\n            \"s_vol\": s_vol,\n            \"atm_vol\": m.get(\"atmVol\"),\n            \"s_mark\": m.get(\"sMark\"),\n\n            \"o_bid\": o_bid,\n            \"o_ask\": o_ask,\n            \"o_bid_iv\": m.get(\"oBidIv\"),\n            \"o_ask_iv\": m.get(\"oAskIv\"),\n            \"quote_ok\": quote_ok,\n\n            \"delta\": m.get(\"de\"),\n            \"gamma\": m.get(\"ga\"),\n            \"theta\": m.get(\"th\"),\n            \"vega\": m.get(\"ve\"),\n\n            \"src_ts\": m.get(\"timestamp\"),\n        })\n\n    df = pd.DataFrame(rows)\n    if df.empty:\n        return df\n\n    df = (\n        df.sort_values(\"src_ts\")\n          .drop_duplicates(subset=[\"option_key\"], keep=\"last\")\n          .reset_index(drop=True)\n    )\n    return df\n\nasof_ts = datetime.now(timezone.utc).isoformat(timespec=\"seconds\").replace(\"+00:00\", \"Z\")\nsnapshot_df = normalize_liq(raw, asof_ts)\n\nprint(\"snapshot rows:\", len(snapshot_df))\nprint(\"quote_ok distribution:\", snapshot_df[\"quote_ok\"].value_counts().to_dict() if not snapshot_df.empty else {})\nsnapshot_df.head()\n<\/code><\/pre>\n<p>\u0645\u0639\u0645\u0648\u0644 \u06a9\u06d2 \u0627\u0633 \u0642\u062f\u0645 \u0645\u06cc\u06ba \u062a\u06cc\u0646 \u0639\u0645\u0644\u06cc \u0641\u06cc\u0635\u0644\u06d2 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0627\u06cc\u06a9 \u0645\u0633\u062a\u062d\u06a9\u0645 \u0639\u0645\u0627\u0631\u062a \u0628\u0646\u0627\u0626\u06cc\u06ba. <code>option_key<\/code> \u0622\u067e\u0634\u0646 \u0634\u0646\u0627\u062e\u062a \u06a9\u0646\u0646\u062f\u06c1 \u0645\u06cc\u06ba \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u062c\u062f\u0648\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u06cc\u06a9 \u0645\u0633\u062a\u0642\u0644 \u0628\u0646\u06cc\u0627\u062f\u06cc \u06a9\u0644\u06cc\u062f \u06c1\u0648\u06af\u06cc\u06d4<\/p>\n<\/li>\n<li>\n<p>\u062f\u0648\u0633\u0631\u0627\u060c \u06c1\u0645 \u0635\u0631\u0641 <code>calcSource=\"Loop\"<\/code>. \u0627\u06cc\u06a9 LiveImpliedQuote \u0645\u06cc\u06ba \u0679\u06a9 \u0627\u0648\u0631 \u0644\u0648\u067e \u062f\u0648\u0646\u0648\u06ba \u0631\u06cc\u06a9\u0627\u0631\u0688 \u0634\u0627\u0645\u0644 \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0644\u0648\u067e \u0631\u06cc\u06a9\u0627\u0631\u0688\u0632 \u0627\u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u0637\u0631\u0632 \u06a9\u06d2 \u062a\u062c\u0632\u06cc\u06c1 \u0645\u06cc\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0633\u062a\u0642\u0644 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0628\u0646\u06cc\u0627\u062f\u06cc \u062d\u0648\u0627\u0644\u06c1 \u0642\u06cc\u0645\u062a \u067e\u0648\u0631\u06cc \u0633\u0637\u062d \u067e\u0631 \u0645\u0633\u062a\u062d\u06a9\u0645 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u062a\u06cc\u0633\u0631\u0627\u060c \u062c\u0627\u0631\u062d\u0627\u0646\u06c1 \u0641\u0644\u0679\u0631\u0646\u06af \u0633\u06d2 \u0628\u0686\u06cc\u06ba\u06d4 \u0627\u0633 \u0688\u06cc\u0679\u0627\u0633\u06cc\u0679 \u0645\u06cc\u06ba\u060c \u0679\u0627\u067e \u0622\u0641 \u062f\u06cc \u0628\u06a9 \u0628\u0650\u0688 \u0627\u0648\u0631 \u0627\u0633\u06a9 \u0641\u06cc\u0644\u0688\u0632 0 \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0686\u0627\u06c1\u06d2 \u0627\u06cc\u0646\u0627\u0644\u06cc\u0679\u06a9\u0633 \u0641\u06cc\u0644\u0688\u0632 \u0622\u0628\u0627\u062f \u06c1\u0648\u06ba\u06d4 \u0644\u06c1\u0630\u0627 \u0627\u0633 \u0642\u0637\u0627\u0631 \u06a9\u0648 \u062d\u0630\u0641 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 <code>quote_ok<\/code> \u0627\u0633\u06d2 \u062c\u06be\u0646\u0688\u0627 \u0644\u06af\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u0631\u06a9\u06be\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0622\u067e \u06a9\u06cc \u067e\u0627\u0626\u067e \u0644\u0627\u0626\u0646 \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0628\u0646\u0627\u0626\u06d2 \u06af\u0627 \u062c\u0628\u06a9\u06c1 \u0628\u0639\u062f \u0645\u06cc\u06ba \u06cc\u06c1 \u0648\u0627\u0636\u062d \u06a9\u0631\u06d2 \u06af\u0627 \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u06cc \u0642\u0637\u0627\u0631\u0648\u06ba \u0645\u06cc\u06ba \u0644\u0627\u0626\u06cc\u0648 \u06a9\u0648\u0679\u0633 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0622\u0624\u0679 \u067e\u0679 \u06c1\u06d2:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/05\/1778231539_434_\u0627\u0632\u06af\u0631-\u0645\u06cc\u06ba-\u0644\u0627\u0626\u06cc\u0648-\u0622\u067e\u0634\u0646\u0632-\u0688\u06cc\u0679\u0627-\u0628\u06cc\u0633-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u06cc\u0627-\u062c\u0627\u0626\u06d2.png\" alt=\"LiveImpliedQuote \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\" 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 \u0627\u06cc\u06a9 \u0642\u0637\u0627\u0631 \u0627\u06cc\u06a9 \u0622\u067e\u0634\u0646 \u06a9\u0646\u0679\u0631\u06cc\u06a9\u0679 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u06a9\u06cc \u0646\u0645\u0627\u0626\u0646\u062f\u06af\u06cc \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u062d\u0642\u06cc\u0642\u062a \u0645\u06cc\u06ba <code>quote_ok<\/code> \u0645\u062c\u0645\u0648\u0639\u06cc \u0637\u0648\u0631 \u067e\u0631\u060c 0 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633 \u0679\u06a9\u0691\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0648\u0644\u06cc\u0627\u06ba \u0627\u0648\u0631 \u0633\u0648\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u06d2 \u062c\u0627\u0626\u06cc\u06ba \u06af\u06d2\u060c \u0686\u0627\u06c1\u06d2 \u0633\u0631\u0641\u06cc\u0633 IV\u060c \u0686\u06a9\u0646\u0627\u0626\u06cc\u060c \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u062a\u062c\u0632\u06cc\u06c1 \u06a9\u06d2 \u0634\u0639\u0628\u06d2 \u06c1\u0648\u06ba\u06d4 \u06cc\u06c1 \u0627\u0628 \u0628\u06be\u06cc \u0645\u0627\u0646\u06cc\u0679\u0631\u0646\u06af \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1\u0627\u06ba \u06a9\u0644\u06cc\u062f\u06cc \u062e\u06cc\u0627\u0644 \u0627\u06cc\u06a9 \u0642\u0627\u0628\u0644 \u0639\u0645\u0644 \u0645\u0627\u0631\u06a9\u06cc\u0679 \u06a9\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u0646\u0648 \u06a9\u0631\u0646\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0628\u0644\u06a9\u06c1 \u0648\u0642\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u062c\u0632\u06cc\u06c1 \u06a9\u06d2 \u0627\u0631\u062a\u0642\u0627\u0621 \u06a9\u0648 \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-writing-to-the-database\">\u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u067e\u0631 \u0644\u06a9\u06be\u06cc\u06ba<\/h2>\n<p>\u0627\u0628 \u062c\u0628 \u06a9\u06c1 \u06c1\u0645\u0627\u0631\u06d2 \u067e\u0627\u0633 \u06a9\u0644\u06cc\u0646 \u0627\u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u0688\u06cc\u0679\u0627 \u0641\u0631\u06cc\u0645 \u06c1\u06d2\u060c \u06a9\u0627\u0645 \u0627\u0633\u06d2 \u062f\u0648 \u062c\u06af\u06c1\u0648\u06ba \u067e\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06c1\u0633\u0679\u0631\u06cc \u0679\u06cc\u0628\u0644: \u0633\u0628 \u06a9\u0686\u06be \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0622\u0688\u0679 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u06c1\u06d2\u06d4 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u062c\u062f\u0648\u0644: \u0627\u0648\u067e\u0631 \u06a9\u06cc \u0637\u0631\u0641 \u0633\u06d2 <code>option_key<\/code>. \u06cc\u06c1 \u0627\u06cc\u06a9 \u0641\u0648\u0631\u06cc &quot;\u0645\u0648\u062c\u0648\u062f\u06c1 \u0645\u0646\u0638\u0631&#8221; \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0639\u0644\u06cc\u062d\u062f\u06af\u06cc \u0648\u06c1\u06cc \u06c1\u06d2 \u062c\u0648 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u0648 \u0645\u0641\u06cc\u062f \u0628\u0646\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u062a\u0627\u0631\u06cc\u062e \u0622\u067e \u06a9\u0648 \u0645\u0627\u0636\u06cc \u06a9\u06d2 \u0627\u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0634\u06a9\u06cc\u0644 \u062f\u06cc\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06cc \u06c1\u06d2\u06d4 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u0622\u067e \u06a9\u0648 \u0679\u0627\u0626\u0645 \u0633\u06cc\u0631\u06cc\u0632 \u06a9\u0648 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 &quot;\u0633\u0637\u062d \u0627\u0628 \u06a9\u06cc\u0633\u06cc \u062f\u06a9\u06be\u062a\u06cc \u06c1\u06d2&#8221; \u06a9\u0627 \u062c\u0648\u0627\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-python\">def safe_add_column(table: str, col: str, col_type: str, path: str = db_path):\n    conn = get_conn(path)\n    cur = conn.cursor()\n    existing = [r[1] for r in cur.execute(f\"PRAGMA table_info({table});\").fetchall()]\n    if col not in existing:\n        cur.execute(f\"ALTER TABLE {table} ADD COLUMN {col} {col_type};\")\n    conn.commit()\n    conn.close()\n\nsafe_add_column(\"implied_quote_history\", \"quote_ok\", \"INTEGER\")\nsafe_add_column(\"implied_quote_latest\", \"quote_ok\", \"INTEGER\")\n\ndef write_snapshot_to_db(df: pd.DataFrame, path: str = db_path) -> tuple[int, int]:\n    if df.empty:\n        return 0, 0\n\n    conn = get_conn(path)\n    cur = conn.cursor()\n\n    cols = [\n        \"asof_ts\",\n        \"option_key\",\"symbol\",\"expiry\",\"strike\",\"cp\",\n        \"calc_source\",\"u_prc\",\"years\",\"rate\",\n        \"s_vol\",\"atm_vol\",\"s_mark\",\n        \"o_bid\",\"o_ask\",\"o_bid_iv\",\"o_ask_iv\",\n        \"delta\",\"gamma\",\"theta\",\"vega\",\n        \"quote_ok\",\"src_ts\"\n    ]\n\n    for c in cols:\n        if c not in df.columns:\n            df[c] = None\n\n    insert_df = df[cols].copy()\n\n    cur.executemany(\n        \"\"\"\n        insert into implied_quote_history (\n            asof_ts,\n            option_key, symbol, expiry, strike, cp,\n            calc_source, u_prc, years, rate,\n            s_vol, atm_vol, s_mark,\n            o_bid, o_ask, o_bid_iv, o_ask_iv,\n            delta, gamma, theta, vega,\n            quote_ok, src_ts\n        ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n        \"\"\",\n        insert_df.itertuples(index=False, name=None)\n    )\n    history_inserted = cur.rowcount\n\n    cur.executemany(\n        \"\"\"\n        insert into implied_quote_latest (\n            option_key,\n            last_asof_ts, symbol, expiry, strike, cp,\n            calc_source, u_prc, years, rate,\n            s_vol, atm_vol, s_mark,\n            o_bid, o_ask, o_bid_iv, o_ask_iv,\n            delta, gamma, theta, vega,\n            quote_ok, src_ts\n        ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n        on conflict(option_key) do update set\n            last_asof_ts=excluded.last_asof_ts,\n            symbol=excluded.symbol,\n            expiry=excluded.expiry,\n            strike=excluded.strike,\n            cp=excluded.cp,\n            calc_source=excluded.calc_source,\n            u_prc=excluded.u_prc,\n            years=excluded.years,\n            rate=excluded.rate,\n            s_vol=excluded.s_vol,\n            atm_vol=excluded.atm_vol,\n            s_mark=excluded.s_mark,\n            o_bid=excluded.o_bid,\n            o_ask=excluded.o_ask,\n            o_bid_iv=excluded.o_bid_iv,\n            o_ask_iv=excluded.o_ask_iv,\n            delta=excluded.delta,\n            gamma=excluded.gamma,\n            theta=excluded.theta,\n            vega=excluded.vega,\n            quote_ok=excluded.quote_ok,\n            src_ts=excluded.src_ts\n        \"\"\",\n        insert_df[[\n            \"option_key\",\"asof_ts\",\"symbol\",\"expiry\",\"strike\",\"cp\",\n            \"calc_source\",\"u_prc\",\"years\",\"rate\",\n            \"s_vol\",\"atm_vol\",\"s_mark\",\n            \"o_bid\",\"o_ask\",\"o_bid_iv\",\"o_ask_iv\",\n            \"delta\",\"gamma\",\"theta\",\"vega\",\n            \"quote_ok\",\"src_ts\"\n        ]].itertuples(index=False, name=None)\n    )\n    latest_upserted = cur.rowcount\n\n    conn.commit()\n    conn.close()\n    return history_inserted, latest_upserted\n\nhist_n, latest_n = write_snapshot_to_db(snapshot_df)\nprint(\"history inserted:\", hist_n)\nprint(\"latest upserted:\", latest_n)\n<\/code><\/pre>\n<p>\u06c1\u0645 \u0628\u06cc\u0686 \u0644\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2: <code>executemany<\/code> \u06cc\u06c1 \u06c1\u0632\u0627\u0631\u0648\u06ba \u0622\u067e\u0634\u0646 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u06be\u06cc \u0627\u0646\u062f\u0631\u0627\u062c \u06a9\u0648 \u062a\u06cc\u0632 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u062f\u0627\u062e\u0644 \u06a9\u0631\u0646\u0627 \u0622\u0633\u0627\u0646 \u06c1\u06d2\u06d4 \u062c\u062f\u06cc\u062f \u062a\u062d\u0631\u06cc\u0631\u06cc\u06ba SQLite upsert \u06a9\u0644\u06cc\u062f \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 <code>option_key<\/code>\u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0627\u06af\u0631 \u06a9\u0648\u0626\u06cc \u0645\u0639\u0627\u06c1\u062f\u06c1 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2\u060c \u062a\u0648 \u0627\u0633 \u06a9\u06d2 \u0641\u06cc\u0644\u0688\u0632 \u06a9\u0648 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u0627\u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0648\u0648\u0631 \u0631\u0627\u0626\u0679 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u0622\u067e \u06a9\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/05\/1778231540_966_\u0627\u0632\u06af\u0631-\u0645\u06cc\u06ba-\u0644\u0627\u0626\u06cc\u0648-\u0622\u067e\u0634\u0646\u0632-\u0688\u06cc\u0679\u0627-\u0628\u06cc\u0633-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u06cc\u0627-\u062c\u0627\u0626\u06d2.png\" alt=\"\u0631\u06cc\u06a9\u0627\u0631\u0688 \u062f\u0627\u062e\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627: 1852\u060c \u0622\u062e\u0631\u06cc \u0627\u067e \u0688\u06cc\u0679: 1852\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u067e\u06c1\u0644\u06cc \u062a\u062d\u0631\u06cc\u0631 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u062f\u0648\u0646\u0648\u06ba \u062c\u062f\u0648\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06cc \u0627\u06cc\u06a9 \u06c1\u06cc \u062a\u0639\u062f\u0627\u062f \u06c1\u0648\u06af\u06cc\u06d4 \u06cc\u06c1 \u0645\u062a\u0648\u0642\u0639 \u06c1\u06d2\u060c \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u062a\u0627\u0631\u06cc\u062e \u0645\u06cc\u06ba \u0627\u0628 \u062a\u06a9 \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u06c1\u06d2\u06d4 \u062c\u06cc\u0633\u06d2 \u06c1\u06cc \u0622\u067e \u0645\u062a\u0639\u062f\u062f \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u06a9\u0648 \u067e\u0648\u0644\u0646\u06af \u06a9\u0631\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u06c1\u0633\u0679\u0631\u06cc \u0679\u06cc\u0628\u0644 \u06c1\u0631 \u0686\u06a9\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0691\u06be\u062a\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0628 \u06a9\u06c1 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u0679\u06cc\u0628\u0644 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u06cc\u06a9\u0633\u0627\u06ba \u0631\u06c1\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0645\u0633\u0644\u0633\u0644 \u0627\u067e \u0688\u06cc\u0679 \u06c1\u0648\u062a\u0627 \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-running-a-short-polling-capture\">\u0627\u06cc\u06a9 \u0645\u062e\u062a\u0635\u0631 \u067e\u0648\u0644\u0646\u06af \u06a9\u06cc\u067e\u0686\u0631 \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/h2>\n<p>\u0627\u0633 \u0645\u0642\u0627\u0645 \u067e\u0631\u060c \u067e\u0627\u0626\u067e \u0644\u0627\u0626\u0646 \u0627\u06cc\u06a9 \u06c1\u06cc \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u062e\u0631 \u0633\u06d2 \u0622\u062e\u0631 \u062a\u06a9 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0644\u06cc\u06a9\u0646 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u0627 \u067e\u0648\u0631\u0627 \u0646\u0642\u0637\u06c1 \u062d\u0642\u06cc\u0642\u06cc \u0648\u0642\u062a \u06a9\u06d2 \u062a\u062c\u0632\u06cc\u0627\u062a \u06a9\u0648 \u0679\u0627\u0626\u0645 \u0633\u06cc\u0631\u06cc\u0632 \u0645\u06cc\u06ba \u062a\u0631\u062c\u0645\u06c1 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4 \u0644\u06c1\u0630\u0627 \u06c1\u0645 \u0627\u06cc\u06a9 \u0645\u062e\u062a\u0635\u0631 \u06a9\u06cc\u067e\u0686\u0631 \u0648\u0646\u0688\u0648 \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u06cc\u06a9\u06d2 \u0628\u0639\u062f \u062f\u06cc\u06af\u0631\u06d2 \u06a9\u0626\u06cc \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0634\u06cc\u0688\u0648\u0644\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 \u0644\u0648\u067e \u06c1\u06d2 \u062c\u0648 \u0686\u0646\u062f \u0645\u0646\u0679\u0648\u06ba \u062a\u06a9 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u060c \u06c1\u0631 \u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688 \u0645\u06cc\u06ba \u067e\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u06a9\u0648 \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0627\u0633\u06d2 \u062f\u0648\u0646\u0648\u06ba \u0645\u06cc\u0632\u0648\u06ba \u067e\u0631 \u0644\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-python\">def poll_and_write(symbol: str, duration_s: int = poll_duration_s, interval_s: int = poll_interval_s):\n    start = time.time()\n    polls = 0\n    total_hist = 0\n\n    while time.time() - start < duration_s:\n        asof_ts = datetime.now(timezone.utc).isoformat(timespec=\"seconds\").replace(\"+00:00\", \"Z\")\n\n        raw = fetch_live_implied_quote(symbol, limit=limit)\n        df = normalize_liq(raw, asof_ts)\n\n        hist_n, latest_n = write_snapshot_to_db(df)\n        polls += 1\n        total_hist += hist_n\n\n        print(f\"[{polls}] {asof_ts} snapshot_rows={len(df)} history+={hist_n} latest_upsert={latest_n}\")\n        time.sleep(interval_s)\n\n    print(f\"done. polls={polls}, total_history_added={total_hist}\")\n\npoll_and_write(symbol, duration_s=120, interval_s=10)\n<\/code><\/pre>\n<p>\u06c1\u0631 \u0644\u0648\u067e \u062a\u06a9\u0631\u0627\u0631 \u0627\u06cc\u06a9 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u06a9\u06cc \u0646\u0645\u0627\u0626\u0646\u062f\u06af\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 UTC \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e (asof_ts) \u0628\u0646\u0627\u0626\u06cc\u06ba\u060c LiveImpliedQuote \u0633\u06d2 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u0628\u06cc\u0686 \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0633\u06d2 \u0642\u0637\u0627\u0631\u0648\u06ba \u0645\u06cc\u06ba \u0645\u0639\u0645\u0648\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0645\u06cc\u06ba \u0644\u06a9\u06be\u06cc\u06ba\u06d4 \u06c1\u0633\u0679\u0631\u06cc \u0679\u06cc\u0628\u0644 \u062a\u0645\u0627\u0645 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u06a9\u0648 \u062c\u0645\u0639 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u062c\u062f\u0648\u0644 \u06a9\u0648 \u0627\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0648\u0648\u0631 \u0631\u0627\u0626\u0679 \u06a9\u0631\u06cc\u06ba: <code>option_key<\/code>\u060c \u0644\u06c1\u0630\u0627 \u06cc\u06c1 \u06c1\u0645\u06cc\u0634\u06c1 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u0645\u0646\u0638\u0631 \u06a9\u06cc \u0646\u0645\u0627\u0626\u0646\u062f\u06af\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0639\u0645\u0644\u06cc \u062a\u0641\u0635\u06cc\u0644 \u0642\u0627\u0628\u0644 \u0630\u06a9\u0631 \u06c1\u06d2\u06d4 \u0686\u0648\u0646\u06a9\u06c1 API \u06a9\u0627\u0644\u0632 \u0645\u062d\u062f\u0648\u062f \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u06a9\u0648\u0626\u06cc \u06af\u0627\u0631\u0646\u0679\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u0648 \u0633\u0631\u0648\u06d2 \u0633\u06d2 \u0633\u0631\u0648\u06d2 \u062a\u06a9 \u0627\u0646\u062a\u0628\u0627\u06c1\u0627\u062a \u0627\u0648\u0631 \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u0627 \u0627\u06cc\u06a9 \u06c1\u06cc \u0633\u06cc\u0679 \u0645\u0648\u0635\u0648\u0644 \u06c1\u0648\u06af\u0627\u06d4 \u0627\u0633\u06cc \u0644\u06cc\u06d2 <code>snapshot_rows<\/code> \u06cc\u06c1 \u062a\u06a9\u0631\u0627\u0631 \u0633\u06d2 \u062a\u06a9\u0631\u0627\u0631 \u062a\u06a9 \u0645\u062e\u062a\u0644\u0641 \u06c1\u0648\u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u0645\u06cc\u06ba\u060c \u0679\u06a9\u0691\u0648\u06ba \u06a9\u0648 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635 \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06cc \u062a\u0627\u0631\u06cc\u062e \u0627\u0648\u0631 \u0627\u0633\u0679\u0631\u0627\u0626\u06cc\u06a9 \u0628\u06cc\u0646\u0688 \u06a9\u0648 \u0637\u06d2 \u06a9\u0631\u06a9\u06d2\u060c \u06cc\u0627 IV \u06a9\u0648 \u0627\u06cc\u06a9 \u0645\u0642\u0631\u0631\u06c1 \u06a9\u0631\u0646\u0633\u06cc \u067e\u0648\u0627\u0626\u0646\u0679 \u067e\u0631 \u0627\u0646\u0679\u0631\u067e\u0648\u0644\u06cc\u0679 \u06a9\u0631\u06a9\u06d2 \u0645\u0633\u062a\u062d\u06a9\u0645 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba\u060c \u06c1\u0645 \u0645\u062c\u0645\u0648\u0639\u06c1 \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u06d2 \u0646\u0645\u0648\u0646\u0648\u06ba \u0627\u0648\u0631 \u0646\u06af\u0631\u0627\u0646\u06cc \u06a9\u06d2 \u0633\u0648\u0627\u0644\u0627\u062a \u067e\u0631 \u062a\u0648\u062c\u06c1 \u0645\u0631\u06a9\u0648\u0632 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u06cc \u0648\u06c1 \u062d\u0645\u0627\u06cc\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u067e \u06a9\u0648 \u0679\u06cc\u0644\u06cc \u0645\u06cc\u0679\u0631\u06cc \u0628\u0630\u0631\u06cc\u0639\u06c1 \u067e\u0648\u0644 \u0627\u0633 \u0637\u0631\u062d \u0646\u0638\u0631 \u0622\u0626\u06d2 \u06af\u0627:<\/p>\n<pre><code class=\"language-plaintext\">[1] 2026-04-14T18:09:29Z snapshot_rows=1454 history+=1454 latest_upsert=1454\n...\ndone. polls=9, total_history_added=12806\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0627\u06cc\u06a9 \u0679\u0627\u0626\u0645 \u0633\u06cc\u0631\u06cc\u0632 \u0628\u0646\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 9 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u0631\u0648\u06d2\u060c \u06c1\u0645 \u0646\u06d2 \u0627\u067e\u0646\u06d2 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u0645\u06cc\u06ba 12,806 \u0622\u067e\u0634\u0646 \u0642\u0637\u0627\u0631\u06cc\u06ba \u0645\u062d\u0641\u0648\u0638 \u06a9\u06cc\u06ba\u06d4 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u062c\u062f\u0648\u0644 \u06c1\u0631 \u0628\u0627\u0631 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u062a\u0627\u0631\u06cc\u062e \u06a9\u06cc \u0637\u0631\u062d \u0628\u0691\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0633\u06d2 \u06c1\u0631 \u0645\u0639\u0627\u06c1\u062f\u06d2 \u06a9\u06cc \u06a9\u0644\u06cc\u062f \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0627\u0648\u0648\u0631 \u0631\u0627\u0626\u0679 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0644\u06d2 \u062d\u0635\u06d2 \u0645\u06cc\u06ba\u060c \u06c1\u0645 \u0644\u06a9\u06be\u0646\u0627 \u0628\u0646\u062f \u06a9\u0631 \u062f\u06cc\u06ba \u06af\u06d2 \u0627\u0648\u0631 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u0634\u0631\u0648\u0639 \u06a9\u0631 \u062f\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<h2 id=\"heading-analysis-smile-reconstruction-from-the-database\">\u062a\u062c\u0632\u06cc\u06c1: \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0633\u06d2 \u0645\u0627\u0626\u06cc\u06a9\u0631\u0648 \u0631\u06cc \u06a9\u0646\u0633\u0679\u0631\u06a9\u0634\u0646<\/h2>\n<p>\u062c\u0628 \u0688\u06cc\u0679\u0627 \u0622\u062a\u0627 \u06c1\u06d2\u06d4 <code>implied_quote_history<\/code>\u0648\u0631\u06a9 \u0641\u0644\u0648 \u0627\u0644\u0679 \u06c1\u06d2\u06d4 \u06c1\u0645 \"API \u062c\u0648\u0627\u0628\u0627\u062a\" \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0633\u0648\u0686\u0646\u0627 \u0686\u06be\u0648\u0691 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \"\u0633\u0648\u0627\u0644\u0627\u062a\" \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0633\u0648\u0686\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0633\u06cc\u06a9\u0634\u0646 \u062f\u0648 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: \u067e\u06c1\u0644\u06d2\u060c \u0627\u06cc\u06a9 \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u06cc\u06ba \u062c\u0633 \u0645\u06cc\u06ba \u0646\u0645\u0627\u0626\u0646\u062f\u06c1 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0641\u06cc \u0642\u0637\u0627\u0631\u06cc\u06ba \u06c1\u0648\u06ba\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u06c1\u0645 \u06a9\u0626\u06cc \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u067e\u0631 \u0627\u0633 \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0644 \u0633\u0627\u0626\u06cc\u0688 \u0627\u062a\u0627\u0631 \u0686\u0691\u06be\u0627\u0624 \u0648\u0627\u0644\u06cc \u0645\u0633\u06a9\u0631\u0627\u06c1\u0679 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0634\u06a9\u06cc\u0644 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-pick-an-expiry-with-good-coverage\">\u0627\u0686\u06be\u06cc \u06a9\u0648\u0631\u06cc\u062c \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06cc \u062a\u0627\u0631\u06cc\u062e \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0645\u0633\u06a9\u0631\u0627\u06c1\u0679 \u067e\u0644\u0627\u0679 \u06af\u0645\u0631\u0627\u06c1 \u06a9\u0646 \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u06af\u0631 \u0622\u067e \u0627\u06cc\u06a9 \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06cc \u062a\u0627\u0631\u06cc\u062e \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u0635\u0631\u0641 \u06a9\u06cc\u067e\u0686\u0631 \u06a9\u0631\u062f\u06c1 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u0645\u06cc\u06ba \u0648\u0642\u0641\u06d2 \u0648\u0642\u0641\u06d2 \u0633\u06d2 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0644\u06c1\u0630\u0627\u060c \u06c1\u0645 \u062a\u0627\u0631\u06cc\u062e \u06a9\u06d2 \u062c\u062f\u0648\u0644 \u0645\u06cc\u06ba \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0642\u0637\u0627\u0631\u0648\u06ba \u0648\u0627\u0644\u06cc \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06cc \u062a\u0627\u0631\u06cc\u062e\u0648\u06ba \u06a9\u0648 \u062f\u06cc\u06a9\u06be \u06a9\u0631 \u0634\u0631\u0648\u0639\u0627\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-python\">conn = get_conn()\n\nexpiry_counts = pd.read_sql_query(\n    \"\"\"\n    select expiry, count(*) as n\n    from implied_quote_history\n    where symbol = ?\n    group by expiry\n    order by n desc\n    limit 10\n    \"\"\",\n    conn,\n    params=(symbol,)\n)\n\nconn.close()\nexpiry_counts\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u0635\u0631\u0641 \u06c1\u0633\u0679\u0631\u06cc \u0679\u06cc\u0628\u0644 \u06a9\u0648 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c TSLA \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0641\u0644\u0679\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u06a9\u06cc\u067e\u0686\u0631 \u06a9\u06cc \u0645\u062f\u062a \u0645\u06cc\u06ba \u0641\u06cc \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u067e\u0631 \u0645\u0648\u062c\u0648\u062f \u0622\u067e\u0634\u0646 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06a9\u0648 \u0634\u0645\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0633\u0628 \u0633\u06d2 \u0627\u0648\u067e\u0631 10 \u0631\u06a9\u06be\u06cc\u06ba \u0627\u0648\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u0648 \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06cc \u062a\u0627\u0631\u06cc\u062e \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/05\/1778231541_365_\u0627\u0632\u06af\u0631-\u0645\u06cc\u06ba-\u0644\u0627\u0626\u06cc\u0648-\u0622\u067e\u0634\u0646\u0632-\u0688\u06cc\u0679\u0627-\u0628\u06cc\u0633-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u06cc\u0627-\u062c\u0627\u0626\u06d2.png\" alt=\"\u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06cc \u0636\u0645\u0627\u0646\u062a\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06cc \u062a\u0627\u0631\u06cc\u062e <code>2026-11-20<\/code> \u0627\u0633 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u06af\u0646\u062a\u06cc \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06cc \u06a9\u0633\u06cc \u0628\u06be\u06cc \u062a\u062c\u0627\u0631\u062a\u06cc \u0645\u0639\u0646\u0648\u06ba \u0645\u06cc\u06ba \"\u0628\u06c1\u062a\u0631\u06cc\u0646\" \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u067e\u06a9\u0691\u06d2 \u06af\u0626\u06d2 \u0688\u06cc\u0679\u0627 \u0645\u06cc\u06ba \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0633\u062a\u0642\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0635\u0627\u0641 \u0645\u0633\u06a9\u0631\u0627\u06c1\u0679 \u06a9\u06d2 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0639\u0645\u0644\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-rebuild-the-smile-across-snapshots\">\u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u0645\u06cc\u06ba \u0627\u067e\u0646\u06cc \u0645\u0633\u06a9\u0631\u0627\u06c1\u0679 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u0628 \u06c1\u0645 \u0630\u062e\u06cc\u0631\u06c1 \u0634\u062f\u06c1 \u062a\u0627\u0631\u06cc\u062e \u0633\u06d2 \u0627\u06cc\u06a9 \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0635\u0631\u0641 \u06a9\u0627\u0644\u0632 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0645\u062a\u0639\u062f\u062f \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u067e\u0631 \u062d\u0645\u0644\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0637\u062d IV(s_vol)\u06d4<\/p>\n<pre><code class=\"language-python\">chosen_expiry = \"2026-11-20\" \n\nconn = get_conn()\nsmile = pd.read_sql_query(\n    \"\"\"\n    select asof_ts, strike, cp, s_vol, u_prc\n    from implied_quote_history\n    where symbol = ? and expiry = ?\n    \"\"\",\n    conn,\n    params=(symbol, chosen_expiry)\n)\nconn.close()\n\nsmile_calls = smile[smile[\"cp\"] == \"Call\"].copy()\n\nts_list = sorted(smile_calls[\"asof_ts\"].unique())\npick = [ts_list[0], ts_list[len(ts_list)\/\/2], ts_list[-1]]\n\nplt.figure(figsize=(9,5))\nfor ts in pick:\n    g = smile_calls[smile_calls[\"asof_ts\"] == ts].sort_values(\"strike\")\n    plt.plot(g[\"strike\"], g[\"s_vol\"], label=ts)\n\nplt.title(f\"{symbol} Vol Smile (Calls) | Expiry {chosen_expiry} | 3 snapshots\")\nplt.xlabel(\"Strike\")\nplt.ylabel(\"Implied Vol (s_vol)\")\nplt.grid(True)\nplt.legend()\nplt.show()\n<\/code><\/pre>\n<p>\u06c1\u0645 \u062a\u0627\u0631\u06cc\u062e \u0633\u06d2 \u0645\u0646\u062a\u062e\u0628 \u0634\u062f\u06c1 \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0645\u0627\u0645 \u0642\u0637\u0627\u0631\u06cc\u06ba \u062d\u0627\u0635\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u06a9\u0627\u0644 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0641\u0644\u0679\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u06c1\u0645 \u067e\u0648\u0679 \u0627\u0648\u0631 \u06a9\u0627\u0644 \u06a9\u06cc \u0634\u06a9\u0644\u0648\u06ba \u06a9\u0648 \u0645\u06a9\u0633 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 \u067e\u0644\u0627\u0679 \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0622\u0633\u0627\u0646 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06c1\u0645 \u0635\u0631\u0641 \u062a\u06cc\u0646 \u0627\u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u067e\u06c1\u0644\u0627\u060c \u062f\u0631\u0645\u06cc\u0627\u0646\u06cc\u060c \u0622\u062e\u0631\u06cc\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/05\/1778231542_422_\u0627\u0632\u06af\u0631-\u0645\u06cc\u06ba-\u0644\u0627\u0626\u06cc\u0648-\u0622\u067e\u0634\u0646\u0632-\u0688\u06cc\u0679\u0627-\u0628\u06cc\u0633-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u06cc\u0627-\u062c\u0627\u0626\u06d2.png\" alt=\"TSLA \u0648\u0627\u0644\u06cc\u0648\u0645 \u0633\u0645\u0627\u0626\u0644 (\u06a9\u0631\u0646\u0633\u06cc)\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0634\u0627\u0631\u0679 \u06a9\u06cc\u067e\u0686\u0631 \u0648\u0646\u0688\u0648\u0632 \u0645\u06cc\u06ba\u060c \u0645\u0633\u06a9\u0631\u0627\u06c1\u0679\u06cc\u06ba \u0627\u06a9\u062b\u0631 \u0627\u0648\u0648\u0631 \u0644\u06cc\u067e \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u0646\u06c1\u06cc\u06ba \u06a9\u06c1 \u0646\u0638\u0627\u0645 \u06a9\u0627\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627\u06d4 \u0627\u0633 \u06a9\u0627 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0646 \u062f\u0648 \u0645\u0646\u0679\u0648\u06ba \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0633\u0637\u062d \u0632\u06cc\u0627\u062f\u06c1 \u062d\u0631\u06a9\u062a \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06cc \u062a\u06be\u06cc\u06d4 \u0627\u06c1\u0645 \u062d\u0635\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u0635\u0631\u0641 \u0627\u067e\u0646\u06d2 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062f\u06c1 \u0631\u06cc\u06a9\u0627\u0631\u0688\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06a9\u06d2 \u0627\u0646 \u06a9\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u0646\u0648 \u0627\u0648\u0631 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-zoom-in-around-spot\">\u062c\u06af\u06c1 \u06a9\u06d2 \u0627\u0631\u062f \u06af\u0631\u062f \u0632\u0648\u0645 \u0627\u0646 \u06a9\u0631\u06cc\u06ba<\/h3>\n<p>\u0645\u06a9\u0645\u0644 \u0631\u06cc\u0646\u062c \u06a9\u06d2 \u067e\u0644\u0627\u0679 \u0638\u0627\u06c1\u0631\u06cc \u0634\u06a9\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0631\u0622\u0645\u062f \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u0648\u06c1 \u0627\u0646 \u0639\u0644\u0627\u0642\u0648\u06ba \u06a9\u06d2 \u0642\u0631\u06cc\u0628 \u0686\u06be\u0648\u0679\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0648 \u0686\u06be\u067e\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u0627 \u0644\u0648\u06af \u0648\u0627\u0642\u0639\u06cc \u062e\u06cc\u0627\u0644 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0644\u06c1\u0630\u0627 \u06c1\u0645 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0642\u06cc\u0645\u062a \u06a9\u06d2 \u0627\u0631\u062f \u06af\u0631\u062f \u0628\u06cc\u0646\u0688 \u06a9\u0648 \u0628\u0691\u06be\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-python\">s0 = float(smile_calls[\"u_prc\"].dropna().median())\nlow, high = s0 * 0.6, s0 * 1.4\n\nfor ts in pick:\n    g = smile_calls[smile_calls[\"asof_ts\"] == ts].sort_values(\"strike\")\n    g = g[(g[\"strike\"] >= low) & (g[\"strike\"] <= high)]\n    plt.plot(g[\"strike\"], g[\"s_vol\"], label=ts)\n\nplt.title(f\"{symbol} Vol Smile (Calls) | Expiry {chosen_expiry} | zoomed\")\nplt.xlabel(\"Strike\")\nplt.ylabel(\"Implied Vol (s_vol)\")\nplt.grid(True)\nplt.legend(fontsize=8)\nplt.show()\n<\/code><\/pre>\n<p>\u06c1\u0645 \u0627\u067e\u0646\u06d2 \u0630\u062e\u06cc\u0631\u06c1 \u0634\u062f\u06c1 \u0688\u06cc\u0679\u0627 \u067e\u0631 \u0637\u0627\u0642\u062a\u0648\u0631 \u0627\u0633\u067e\u0627\u0679 \u067e\u0631\u0627\u06a9\u0633\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>u_prc<\/code> \u0627\u0633\u06d2 \u0642\u062f\u0631 \u062f\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u06c1\u0691\u062a\u0627\u0644 \u06a9\u0648 \u0627\u0633 \u06a9\u06d2 \u0622\u0633 \u067e\u0627\u0633 \u06a9\u06cc \u062d\u062f \u0645\u06cc\u06ba \u0631\u06a9\u06be\u06cc\u06ba\u06d4 \u0645\u0642\u0635\u062f \u062f\u0631\u0633\u062a\u06af\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0686\u0627\u0631\u0679 \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0622\u0633\u0627\u0646\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 ATM \u06a9\u06d2 \u0642\u0631\u06cc\u0628 \u06a9\u0627 \u0639\u0644\u0627\u0642\u06c1 \u0628\u06c1\u06c1 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/05\/1778231544_838_\u0627\u0632\u06af\u0631-\u0645\u06cc\u06ba-\u0644\u0627\u0626\u06cc\u0648-\u0622\u067e\u0634\u0646\u0632-\u0688\u06cc\u0679\u0627-\u0628\u06cc\u0633-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u06cc\u0627-\u062c\u0627\u0626\u06d2.png\" alt=\"TSLA \u0648\u0627\u0644\u06cc\u0648\u0645 \u0645\u0633\u06a9\u0631\u0627\u06c1\u0679 (\u06a9\u0631\u0646\u0633\u06cc) - \u0632\u0648\u0645\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u062a\u06a9 \u06a9\u06c1 \u0686\u06be\u0648\u0679\u06cc \u0686\u06be\u0648\u0679\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u0628\u06be\u06cc \u0642\u0627\u0628\u0644 \u062f\u06cc\u062f \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1\u06cc \u0648\u062c\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u0627\u0633\u0679\u0648\u0631\u06cc\u062c \u0627\u06c1\u0645 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u062a\u0646\u06c1\u0627\u0626\u06cc \u0645\u06cc\u06ba \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u062a\u0648 \u0627\u0646 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0648 \u06cc\u0627\u062f \u06a9\u0631\u0646\u0627 \u06cc\u0627 \u0646\u0638\u0631 \u0627\u0646\u062f\u0627\u0632 \u06a9\u0631\u0646\u0627 \u0622\u0633\u0627\u0646 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-analysis-atm-iv-and-skew-over-time\">\u062a\u062c\u0632\u06cc\u06c1: ATM IV \u0627\u0648\u0631 Skew over Time<\/h2>\n<p>\u0645\u06a9\u0645\u0644 \u0645\u0633\u06a9\u0631\u0627\u06c1\u0679 \u0648\u0627\u0644\u06d2 \u067e\u0644\u0627\u0679 \u0645\u0641\u06cc\u062f \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u06c1\u0645\u06cc\u0634\u06c1 \u06a9\u0633\u06cc \u0633\u0637\u062d \u06a9\u06cc \u0646\u06af\u0631\u0627\u0646\u06cc \u06a9\u0627 \u062a\u06cc\u0632 \u062a\u0631\u06cc\u0646 \u0637\u0631\u06cc\u0642\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0639\u0645\u0644\u06cc \u0637\u0648\u0631 \u067e\u0631\u060c \u0679\u06cc\u0645\u06cc\u06ba \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0686\u0646\u062f \u0633\u0645\u0631\u06cc \u0646\u0645\u0628\u0631\u0648\u06ba \u06a9\u0648 \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0648\u06c1 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0648 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062e\u062a\u0645 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u0635\u0631\u0641 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba \u0688\u0631\u0644 \u0688\u0627\u0624\u0646 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba \u062c\u0628 \u06a9\u0648\u0626\u06cc \u0645\u0633\u0626\u0644\u06c1 \u06c1\u0648\u06d4<\/p>\n<p>\u06cc\u06c1 \u06c1\u0631 \u0627\u06cc\u06a9 \u0630\u062e\u06cc\u0631\u06c1 \u0634\u062f\u06c1 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u06a9\u0648 \u0627\u06cc\u06a9 \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648 \u0645\u06cc\u0679\u0631\u06a9\u0633 \u062a\u06a9 \u06a9\u0645 \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<ul>\n<li>\n<p>ATM IV: \u0646\u0642\u0637\u06c1 \u06a9\u06d2 \u0642\u0631\u06cc\u0628 \u062a\u0631\u06cc\u0646 \u062d\u0645\u0644\u06d2 \u06a9\u06d2 \u0645\u0642\u0627\u0645 \u06a9\u06cc \u0633\u0637\u062d IV\u06d4<\/p>\n<\/li>\n<li>\n<p>Skew Proxy: \u0642\u0631\u06cc\u0628 \u062a\u0631\u06cc\u0646 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u0679 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u06a9\u06c1 0.9x \u067e\u0648\u0627\u0626\u0646\u0679 \u067e\u0631 \u0633\u0631\u0641\u06cc\u0633 IV \u06c1\u06d2 \u0645\u0627\u0626\u0646\u0633 \u0633\u0637\u062d IV 1.1x \u067e\u0648\u0627\u0626\u0646\u0679 \u067e\u0631\u06d4<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"language-python\">chosen_expiry = \"2026-11-20\"\n\nconn = get_conn()\ndf = pd.read_sql_query(\n    \"\"\"\n    select asof_ts, strike, s_vol, u_prc\n    from implied_quote_history\n    where symbol = ? and expiry = ? and cp = 'Call'\n    \"\"\",\n    conn,\n    params=(symbol, chosen_expiry)\n)\nconn.close()\n\ndf[\"strike\"] = df[\"strike\"].astype(float)\ndf[\"s_vol\"] = df[\"s_vol\"].astype(float)\n\ndef closest_iv(grp: pd.DataFrame, target_strike: float):\n    g = grp.iloc[(grp[\"strike\"] - target_strike).abs().argsort()[:1]]\n    return float(g[\"s_vol\"].iloc[0]), float(g[\"strike\"].iloc[0])\n\nrows = []\nfor ts, grp in df.groupby(\"asof_ts\"):\n    spot = float(grp[\"u_prc\"].dropna().median())\n    atm_target = spot\n    down_target = spot * 0.9\n    up_target = spot * 1.1\n\n    atm_iv, atm_k = closest_iv(grp, atm_target)\n    down_iv, down_k = closest_iv(grp, down_target)\n    up_iv, up_k = closest_iv(grp, up_target)\n\n    rows.append({\n        \"asof_ts\": ts,\n        \"spot\": spot,\n        \"atm_strike\": atm_k,\n        \"atm_iv\": atm_iv,\n        \"k90\": down_k,\n        \"iv_90\": down_iv,\n        \"k110\": up_k,\n        \"iv_110\": up_iv,\n        \"skew_90_110\": down_iv - up_iv\n    })\n\nmetrics = pd.DataFrame(rows).sort_values(\"asof_ts\").reset_index(drop=True)\nmetrics\n<\/code><\/pre>\n<p>\u0627\u06cc\u06a9 \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u0633\u0679\u0631\u06cc \u0679\u06cc\u0628\u0644 \u0633\u06d2 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0635\u0631\u0641 \u06a9\u0627\u0644\u0632 \u0631\u06a9\u06be\u06cc\u06ba\u060c \u067e\u06be\u0631 \u0627\u0646\u06c1\u06cc\u06ba \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u06af\u0631\u0648\u067e \u06a9\u0631\u06cc\u06ba\u06d4 \u06c1\u0645 \u06c1\u0631 \u0627\u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u06cc\u0688\u06cc\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>u_prc<\/code> \u0627\u0633\u067e\u0627\u0679 \u067e\u0631\u0627\u06a9\u0633\u06cc \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u06c1\u0645 \u0642\u0631\u06cc\u0628 \u062a\u0631\u06cc\u0646 \u062f\u0633\u062a\u06cc\u0627\u0628 \u062d\u0645\u0644\u06d2 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 ATM IV \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0645 0.9x \u0627\u0633\u067e\u0627\u0679 \u0627\u0648\u0631 1.1x \u0627\u0633\u067e\u0627\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u06c1\u06cc \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 \u06a9\u0648 \u062f\u06c1\u0631\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u062a\u0639\u0635\u0628 \u067e\u0631\u0627\u06a9\u0633\u06cc \u06a9\u0648 \u0641\u0631\u0642 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0634\u0645\u0627\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0679\u06cc\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0634\u062f\u06c1 \u0627\u0635\u0644 \u0627\u0633\u0679\u0631\u0627\u0626\u06cc\u06a9 \u06a9\u0648 \u0628\u06be\u06cc \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 (atm_strike, k90, k110)\u06d4 \u0686\u0648\u0646\u06a9\u06c1 \u0622\u067e\u0634\u0646 \u0633\u0679\u0631\u0627\u0626\u06cc\u06a9 \u06a9\u06cc \u0642\u06cc\u0645\u062a\u06cc\u06ba \u0627\u0644\u06af \u0627\u0644\u06af \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0642\u0631\u06cc\u0628\u06cc \u0633\u0679\u0631\u0627\u0626\u06cc\u06a9 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u062f\u06c1 \u0633\u0679\u0631\u0627\u0626\u06cc\u06a9\u0633 \u06a9\u0648 \u0645\u0631\u0626\u06cc \u0631\u06a9\u06be\u0646\u0627 \u0622\u067e \u06a9\u0648 \u0645\u06cc\u0679\u0631\u06a9\u0633 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0648\u06c1 \u062d\u0631\u06a9\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u0624\u0679 \u067e\u0679 \u0627\u06cc\u06a9 \u0679\u06cc\u0628\u0644 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0642\u0637\u0627\u0631 \u0641\u06cc \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u0627\u0648\u0631 \u062d\u0633\u0627\u0628 \u0634\u062f\u06c1 \u0645\u06cc\u0679\u0631\u06a9\u0633 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/05\/1778231546_509_\u0627\u0632\u06af\u0631-\u0645\u06cc\u06ba-\u0644\u0627\u0626\u06cc\u0648-\u0622\u067e\u0634\u0646\u0632-\u0688\u06cc\u0679\u0627-\u0628\u06cc\u0633-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u06cc\u0627-\u062c\u0627\u0626\u06d2.png\" alt=\"ATM IV\u060c \u0627\u06cc\u06a9 \u062a\u0631\u0686\u06be\u0627 \u06c1\u0648\u0627 \u067e\u0631\u0627\u06a9\u0633\u06cc \u0627\u0634\u0627\u0631\u06d2\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0627\u0628 \u062c\u0628 \u06a9\u06c1 \u06c1\u0645\u0627\u0631\u06d2 \u067e\u0627\u0633 \u06a9\u0644\u06cc\u0646 \u0679\u0627\u0626\u0645 \u0633\u06cc\u0631\u06cc\u0632 \u0679\u06cc\u0628\u0644 \u06c1\u06d2\u060c \u06c1\u0645 \u062f\u0648\u0646\u0648\u06ba \u0645\u06cc\u0679\u0631\u06a9\u0633 \u06a9\u0648 \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c ATM IV\u06d4 \u067e\u06be\u0631 \u0627\u06cc\u06a9 \u0645\u062a\u0639\u0635\u0628 \u067e\u0631\u0627\u06a9\u0633\u06cc\u06d4<\/p>\n<pre><code class=\"language-python\">plt.plot(metrics[\"asof_ts\"], metrics[\"atm_iv\"])\nplt.title(f\"{symbol} ATM IV over time | Expiry {chosen_expiry}\")\nplt.xticks(rotation=30, ha=\"right\")\nplt.ylabel(\"ATM IV (s_vol)\")\nplt.grid(True)\nplt.show()\n\nplt.plot(metrics[\"asof_ts\"], metrics[\"skew_90_110\"])\nplt.title(f\"{symbol} Skew proxy (IV@0.9S - IV@1.1S) | Expiry {chosen_expiry}\")\nplt.xticks(rotation=30, ha=\"right\")\nplt.ylabel(\"Skew proxy\")\nplt.grid(True)\nplt.show()\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u06c1\u06d2 \u067e\u06c1\u0644\u0627 \u0686\u0627\u0631\u0679\u060c ATM IV\u060c \u0648\u0642\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/05\/1778231547_674_\u0627\u0632\u06af\u0631-\u0645\u06cc\u06ba-\u0644\u0627\u0626\u06cc\u0648-\u0622\u067e\u0634\u0646\u0632-\u0688\u06cc\u0679\u0627-\u0628\u06cc\u0633-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u06cc\u0627-\u062c\u0627\u0626\u06d2.png\" alt=\"\u0648\u0642\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be TSLA ATM IV\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>ATM IV \u0645\u062e\u062a\u0635\u0631 \u0648\u0642\u062a \u0645\u06cc\u06ba \u0622\u06c1\u0633\u062a\u06c1 \u0622\u06c1\u0633\u062a\u06c1 \u062d\u0631\u06a9\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0642\u06cc\u0645\u062a \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u062a\u06cc\u0632 \u0627\u0635\u0644\u0627\u062d\u06cc \u0648\u0627\u0642\u0639\u06c1 \u067e\u06cc\u0634 \u0646\u06c1 \u0622\u0626\u06d2\u06d4 \u06cc\u06c1 \u0627\u0633 \u062f\u0648\u0691 \u0645\u06cc\u06ba \u06a9\u0627\u0641\u06cc \u0645\u0633\u062a\u062d\u06a9\u0645 \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u0645\u062e\u062a\u0635\u0631 \u06a9\u06cc\u067e\u0686\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u062a \u067e\u0633\u0646\u062f\u0627\u0646\u06c1 \u0646\u062a\u06cc\u062c\u06c1 \u06c1\u06d2\u06d4 \u06cc\u06c1\u0627\u06ba \u0642\u062f\u0631 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u0627\u0633 \u062e\u06cc\u0627\u0644 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0627\u06cc\u06a9 \u0645\u0628\u06c1\u0645 \u062a\u0627\u062b\u0631 \u0633\u06d2 \"\u06a9\u0627\u0641\u06cc \u0645\u0633\u062a\u062d\u06a9\u0645\" \u06c1\u06d2 \u062c\u0633 \u06a9\u0627 \u0628\u0639\u062f \u0645\u06cc\u06ba \u0645\u0642\u062f\u0627\u0631 \u0627\u0648\u0631 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u062f\u0648\u0633\u0631\u0627 \u0686\u0627\u0631\u0679 \u06c1\u06d2\u060c \u0648\u0642\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u067e\u0631\u0627\u06a9\u0633\u06cc \u0633\u06a9\u06cc\u0648\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/05\/1778231548_876_\u0627\u0632\u06af\u0631-\u0645\u06cc\u06ba-\u0644\u0627\u0626\u06cc\u0648-\u0622\u067e\u0634\u0646\u0632-\u0688\u06cc\u0679\u0627-\u0628\u06cc\u0633-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u06cc\u0627-\u062c\u0627\u0626\u06d2.png\" alt=\"TSLA \u0633\u06a9\u06cc\u0648 \u067e\u0631\u0627\u06a9\u0633\u06cc\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u062c\u06be\u06a9\u0627\u0624 \u067e\u0631\u0627\u06a9\u0633\u06cc \u0632\u06cc\u0627\u062f\u06c1 \u062d\u0633\u0627\u0633 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0648\u06c1 \u0648\u0646\u06af \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u067e\u0631 \u0645\u0628\u0646\u06cc \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u06cc\u06c1 \u0628\u062f\u0644 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0627\u0633 \u06a9\u0627 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633 \u067e\u062e\u062a\u06af\u06cc \u06a9\u06d2 \u0645\u0646\u0641\u06cc \u067e\u06c1\u0644\u0648 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u0627\u0644\u0679\u0627 \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0644\u0637\u06cc\u0641 \u0641\u0631\u0642 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0642\u0631\u06cc\u0628 \u062a\u0631\u06cc\u0646 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u0679 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4 \u062c\u0628 \u0633\u0637\u062d \u0688\u0631\u0627\u0645\u0627\u0626\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062d\u0631\u06a9\u062a \u0646\u06c1 \u06a9\u0631 \u0631\u06c1\u06cc \u06c1\u0648 \u062a\u0628 \u0628\u06be\u06cc \u06cc\u06c1 \u0642\u062f\u0645 \u0642\u062f\u0645 \u067e\u0631 \u062d\u0631\u06a9\u062a \u067e\u06cc\u062f\u0627 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633\u06cc \u0644\u06cc\u06d2 \u06c1\u0645 \u0627\u067e\u0646\u06d2 \u0645\u06cc\u0679\u0631\u06a9\u0633 \u0679\u06cc\u0628\u0644 \u0645\u06cc\u06ba k90 \u0627\u0648\u0631 k110 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u062a\u062d\u0631\u06cc\u0641 \u06a9\u06cc \u0633\u0627\u0632\u0634 \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0648\u0636\u0627\u062d\u062a \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-alert-style-thresholds\">\u0627\u0644\u0631\u0679 \u0627\u0633\u0679\u0627\u0626\u0644 \u062a\u06be\u0631\u06cc\u0634\u0648\u0644\u0688<\/h2>\n<p>\u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0641\u06cc \u0627\u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u0645\u06cc\u0679\u0631\u06a9\u0633 \u06a9\u0627 \u0679\u06cc\u0628\u0644 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u062a\u0648\u060c \u0645\u0627\u0646\u06cc\u0679\u0631\u0646\u06af \u067e\u0631\u062a \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u0627 \u0622\u0633\u0627\u0646 \u06c1\u06d2\u06d4 \u062e\u06cc\u0627\u0644 \u0648\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0648 \u0688\u06cc\u0644 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062e\u06cc\u0627\u0644 \u0627\u0633 \u0648\u0642\u062a \u062c\u06be\u0646\u0688\u0627 \u0644\u06af\u0627\u0646\u0627 \u06c1\u06d2 \u062c\u0628 \u0633\u0637\u062d \u06a9\u0633\u06cc \u06a9\u06d2 \u0642\u0631\u06cc\u0628 \u0633\u06d2 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0641\u06cc \u062d\u0631\u06a9\u062a \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u06c1\u0645 \u06cc\u06c1\u0627\u06ba \u062f\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-python\">alerts = metrics.copy()\n\nalerts[\"atm_iv_change\"] = alerts[\"atm_iv\"].diff()\nalerts[\"skew_change\"] = alerts[\"skew_90_110\"].diff()\n\natm_thresh = 0.002    \nskew_thresh = 0.003   \n\nalerts[\"atm_alert\"] = alerts[\"atm_iv_change\"].abs() >= atm_thresh\nalerts[\"skew_alert\"] = alerts[\"skew_change\"].abs() >= skew_thresh\n\nalerts[[\n    \"asof_ts\",\n    \"atm_iv\", \"atm_iv_change\", \"atm_alert\",\n    \"skew_90_110\", \"skew_change\", \"skew_alert\",\n    \"atm_strike\", \"k90\", \"k110\"\n]]\n<\/code><\/pre>\n<p>\u0645\u06cc\u0679\u0631\u06a9\u0633 \u0679\u06cc\u0628\u0644 \u0641\u06cc \u0633\u0646\u06cc\u067e \u0634\u0627\u0679 \u0644\u06d2 \u06a9\u0631 \u067e\u06c1\u0644\u06d2 \u0641\u0631\u0642 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u0626\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u06cc\u06c1 \u0627\u0646 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0627 \u062f\u06c1\u0644\u06cc\u0632 \u0633\u06d2 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0628\u0648\u0644\u06cc\u0646 \u067e\u0631\u0686\u0645 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0622\u0624\u0679 \u067e\u0679 \u0679\u06cc\u0628\u0644 \u062d\u0633\u0627\u0628 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0645\u06cc\u0679\u0631\u06a9\u0633 \u0627\u0648\u0631 \u0627\u0644\u0631\u0679\u0633 \u062f\u0648\u0646\u0648\u06ba \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u0633\u06d2 \u0622\u067e \u0628\u0644\u06cc\u06a9 \u0628\u0627\u06a9\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u062a\u0645\u0627\u0645 \u0627\u0646\u062a\u0628\u0627\u06c1\u0627\u062a \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/05\/1778231550_400_\u0627\u0632\u06af\u0631-\u0645\u06cc\u06ba-\u0644\u0627\u0626\u06cc\u0648-\u0622\u067e\u0634\u0646\u0632-\u0688\u06cc\u0679\u0627-\u0628\u06cc\u0633-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u06cc\u0627-\u062c\u0627\u0626\u06d2.png\" alt=\"\u0627\u0644\u0631\u0679 \u0688\u06cc\u0679\u0627 \u0641\u0631\u06cc\u0645\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0627\u0633 \u062f\u0648\u0691 \u0645\u06cc\u06ba\u060c ATM IV \u06a9\u06cc \u0627\u0646\u062a\u0628\u0627\u06c1\u0627\u062a \u062a\u0645\u0627\u0645 \u063a\u0644\u0637 \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u062a\u0639\u0635\u0628 \u06a9\u06cc \u0648\u0627\u0631\u0646\u0646\u06af \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0634\u0631\u0648\u0639 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0639\u0635\u0628 \u06a9\u06cc \u0648\u0627\u0631\u0646\u0646\u06af \u0627\u0633 \u0644\u06cc\u06d2 \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u062a\u0639\u0635\u0628 \u067e\u0631\u0627\u06a9\u0633\u06cc \u062f\u0648 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u062d\u062f \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0686\u06be\u0644\u0627\u0646\u06af \u0644\u06af\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0642\u0627\u0628\u0644 \u0648\u0636\u0627\u062d\u062a \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0679\u06cc\u0628\u0644 \u067e\u0631 \u0646\u0638\u0631 \u0688\u0627\u0644\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u067e\u0631\u0627\u06a9\u0633\u06cc\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06cc \u06c1\u0679\u0633 \u0627\u0633\u06cc \u0645\u062f\u062a \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648\u0626\u06cc \u06c1\u06cc\u06ba (k90 340 \u0633\u06d2 315 \u062a\u06a9 \u0686\u0644\u0627 \u06af\u06cc\u0627)\u06d4 \u0686\u0648\u0646\u06a9\u06c1 \u06c1\u0691\u062a\u0627\u0644 \u0645\u062a\u0648\u0627\u062a\u0631 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0642\u0631\u06cc\u0628 \u062a\u0631\u06cc\u0646 \u06c1\u0691\u062a\u0627\u0644 \u06a9\u06d2 \u0627\u0634\u0627\u0631\u06d2 \u06a9\u0648 \u0645\u0631\u062d\u0644\u06c1 \u0648\u0627\u0631 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u06cc\u06c1\u0627\u06ba \u062a\u06a9 \u06a9\u06c1 \u062c\u0628 \u0633\u0637\u062d \u0646\u0645\u0627\u06cc\u0627\u06ba \u0637\u0648\u0631 \u067e\u0631 \u062d\u0631\u06a9\u062a \u0646\u06c1 \u06a9\u0631 \u0631\u06c1\u06cc \u06c1\u0648\u06d4<\/p>\n<p>\u0627\u0633\u06d2 \u067e\u0691\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0622\u0633\u0627\u0646\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06c1\u0645 \u0633\u06cc\u0631\u06cc\u0632 \u0627\u0648\u0631 \u0646\u0634\u0627\u0646 \u0627\u0646\u062a\u0628\u0627\u06c1\u06cc \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u062f\u0648\u0646\u0648\u06ba \u06a9\u0648 \u067e\u0644\u0627\u0679 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-python\">plt.plot(alerts[\"asof_ts\"], alerts[\"atm_iv\"])\nfor i, r in alerts[alerts[\"atm_alert\"]].iterrows():\n    plt.scatter(r[\"asof_ts\"], r[\"atm_iv\"],  s=30, edgecolors=\"r\", alpha=0.6, linewidth=2)\nplt.title(f\"{symbol} ATM IV with alerts | Expiry {chosen_expiry}\")\nplt.xticks(rotation=30, ha=\"right\")\nplt.grid(True)\nplt.show()\n\nplt.plot(alerts[\"asof_ts\"], alerts[\"skew_90_110\"])\nfor i, r in alerts[alerts[\"skew_alert\"]].iterrows():\n    plt.scatter(r[\"asof_ts\"], r[\"skew_90_110\"], s=30, edgecolors=\"r\", alpha=0.6, linewidth=2)\nplt.title(f\"{symbol} Skew proxy with alerts | Expiry {chosen_expiry}\")\nplt.xticks(rotation=30, ha=\"right\")\nplt.grid(True)\nplt.show()\n<\/code><\/pre>\n<p>\u062f\u0648\u0646\u0648\u06ba \u067e\u0644\u0627\u0679 \u0627\u06cc\u06a9 \u06c1\u06cc \u0637\u0631\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06c1\u0645 \u0645\u06cc\u0679\u0631\u06a9 \u06a9\u0648 \u0627\u06cc\u06a9 \u0644\u06a9\u06cc\u0631 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06be\u06cc\u0646\u0686\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u067e\u0631 \u0627\u06cc\u06a9 \u0645\u0627\u0631\u06a9\u0631 \u06a9\u0648 \u0686\u0691\u06be\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0633 \u067e\u0631 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0627\u0646\u062a\u0628\u0627\u06c1\u06cc \u062c\u06be\u0646\u0688\u0627 \u062f\u0631\u0633\u062a \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0633 \u0648\u0642\u062a \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u06a9\u0648\u0626\u06cc \u0686\u06cc\u0632 \u062d\u062f \u0633\u06d2 \u062a\u062c\u0627\u0648\u0632 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0686\u0627\u0631\u0679 \u0627\u06cc\u06a9 \u0627\u0646\u062a\u0628\u0627\u06c1 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0645\u062a\u0639\u0635\u0628 \u067e\u0631\u0627\u06a9\u0633\u06cc \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/05\/1778231552_883_\u0627\u0632\u06af\u0631-\u0645\u06cc\u06ba-\u0644\u0627\u0626\u06cc\u0648-\u0622\u067e\u0634\u0646\u0632-\u0688\u06cc\u0679\u0627-\u0628\u06cc\u0633-\u06a9\u06cc\u0633\u06d2-\u0628\u0646\u0627\u06cc\u0627-\u062c\u0627\u0626\u06d2.png\" alt=\"\u0627\u0646\u062a\u0628\u0627\u06c1\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be TSLA \u062a\u0639\u0635\u0628 \u067e\u0631\u0627\u06a9\u0633\u06cc\" style=\"display:block;margin:0 auto\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u06cc\u06c1 \u0686\u0627\u0631\u0679 \u0627\u06cc\u06a9 \u0627\u0646\u062a\u0628\u0627\u06c1\u06cc \u0639\u0644\u0627\u0645\u062a \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0622\u067e \u06a9\u06d2 \u0679\u06cc\u0628\u0644 \u0645\u06cc\u06ba \u0646\u0638\u0631 \u0622\u0646\u06d2 \u0648\u0627\u0644\u06cc \u0686\u06cc\u0632\u0648\u06ba \u0633\u06d2 \u0645\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>ATM IV \u067e\u0644\u0627\u0679 \u0638\u0627\u06c1\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06a9\u0648\u0626\u06cc \u0648\u0627\u0631\u0646\u0646\u06af \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-wrapping-up\">\u062e\u062a\u0645<\/h2>\n<p>\u0627\u0633 \u0645\u0634\u0642 \u0645\u06cc\u06ba\u060c \u06c1\u0645 \u0646\u06d2 TSLA \u06a9\u06d2 \u0644\u06cc\u06d2 SpiderRock MLink \u0633\u06d2 LiveImpliedQuote \u0641\u06cc\u0688 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0627\u06cc\u06a9 \u0686\u06be\u0648\u0679\u06d2 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0633 \u0633\u06d2 \u06c1\u0645 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06c1\u0645 \u0646\u06d2 \u062a\u0645\u0627\u0645 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679\u0633 \u06a9\u0648 \u0635\u0631\u0641 \u0627\u067e\u06cc\u0646\u0688 \u06c1\u0633\u0679\u0631\u06cc \u0679\u06cc\u0628\u0644 \u0645\u06cc\u06ba \u0627\u0633\u0679\u0648\u0631 \u06a9\u06cc\u0627\u060c \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u0645\u0646\u0638\u0631 \u06a9\u0648 \u0627\u06cc\u06a9 \u0645\u0633\u062a\u062d\u06a9\u0645 \u0622\u067e\u0634\u0646 \u0634\u0646\u0627\u062e\u062a \u06a9\u0646\u0646\u062f\u06c1 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u06a9\u0644\u06cc\u062f \u0645\u06cc\u06ba \u0631\u06a9\u06be\u0627\u060c \u0627\u0648\u0631 \u067e\u06be\u0631 \u0630\u062e\u06cc\u0631\u06c1 \u0634\u062f\u06c1 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0633\u0645\u0627\u0626\u0644\u06cc \u06a9\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u0646\u0648 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627\u060c ATM \u0633\u0637\u062d IV \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 \u0688\u0633\u0679\u0648\u0631\u0634\u0646 \u067e\u0631\u0627\u06a9\u0633\u06cc \u06a9\u0648 \u0679\u0631\u06cc\u06a9 \u06a9\u06cc\u0627\u060c \u0627\u0648\u0631 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0627\u0644\u0631\u0679 \u0642\u0648\u0627\u0639\u062f \u0634\u0627\u0645\u0644 \u06a9\u06cc\u06d2 \u06af\u0626\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 B2B \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06c1\u062a\u0631\u06cc\u0646 \u0641\u0679 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u0627\u06cc\u0646\u0627\u0644\u06cc\u0679\u06a9\u0633 \u06a9\u0648 \u0688\u06cc\u0679\u0627 \u0633\u06cc\u0679\u0633 \u0645\u06cc\u06ba \u0628\u062f\u0644 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062c\u0646 \u06a9\u0627 \u0622\u0688\u0679\u060c \u062f\u0648\u0628\u0627\u0631\u06c1 \u0686\u0644\u0627\u06cc\u0627 \u0627\u0648\u0631 \u0646\u06af\u0631\u0627\u0646\u06cc \u06a9\u06cc \u062c\u0627 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1\u06cc \u067e\u06cc\u0679\u0631\u0646 \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u0686\u0627\u06c1\u06d2 \u0622\u067e \u0627\u06cc\u06a9 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0688\u06cc\u0634 \u0628\u0648\u0631\u0688 \u0628\u0646\u0627 \u0631\u06c1\u06d2 \u06c1\u0648\u06ba\u060c \u0627\u067e\u0646\u06d2 \u0688\u06cc\u0633\u06a9 \u06a9\u06cc \u0633\u0637\u062d \u06a9\u06cc \u0645\u0639\u0645\u0648\u0644 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u0648\u06ba\u060c \u06cc\u0627 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u0679\u0633 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u06a9\u06d2 \u0644\u06cc\u067e \u0679\u0627\u067e \u0644\u0627\u0646\u0686\u0648\u06ba \u067e\u0631 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0648\u0627\u0642\u0639\u06c1 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u0627 \u0641\u0648\u0631\u06cc \u062c\u0627\u0626\u0632\u06c1 \u0644\u06d2 \u0631\u06c1\u06d2 \u06c1\u0648\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u067e\u06cc\u0645\u0627\u0646\u06c1 \u0628\u0646\u0627\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648\u060c \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0639\u0645\u0644\u06cc \u0627\u06af\u0644\u0627 \u0645\u0631\u062d\u0644\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 SQLite \u0633\u06d2 Postgres \u06a9\u06cc \u0637\u0631\u0641 \u0644\u0645\u0628\u06d2 \u0639\u0631\u0635\u06d2 \u062a\u06a9 \u06a9\u06cc\u067e\u0686\u0631 \u0648\u0646\u0688\u0648\u0632\u060c \u0627\u06cc\u06a9 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0639\u0644\u0627\u0645\u062a\u0648\u06ba \u06a9\u0648 \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0688\u06cc\u0679\u0627 \u0648\u0627\u0644\u06cc\u0648\u0645 \u0645\u06cc\u06ba \u0627\u0636\u0627\u0641\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u06d4 \u062c\u0628 \u0645\u06cc\u0679\u0631\u06a9 \u0627\u0633\u062a\u062d\u06a9\u0627\u0645 \u0627\u06c1\u0645 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u0627\u0646 \u0679\u06a9\u0691\u0648\u06ba \u06a9\u0648 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0628\u0646\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06ba \u062c\u0646\u06c1\u06cc\u06ba \u0622\u067e \u0633\u0631\u0648\u06d2 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 \u062d\u062a\u06cc\u0670 \u06a9\u06c1 IV \u06a9\u0648 \u0627\u06cc\u06a9 \u0645\u0642\u0631\u0631\u06c1 \u0645\u0627\u0644\u06cc\u0627\u062a\u06cc \u0646\u0642\u0637\u06c1 \u067e\u0631 \u0627\u0646\u0679\u0631\u067e\u0648\u0644\u06cc\u0679 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06ba \u06af\u06d2 \u062a\u0627\u06a9\u06c1 \u0642\u0631\u06cc\u0628 \u062a\u0631\u06cc\u0646 \u0648\u0627\u0642\u0639\u06c1 \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u067e\u0646\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0648 \u06a9\u0645 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0628\u0686\u0627 \u062c\u0627 \u0633\u06a9\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<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0644\u0627\u0626\u06cc\u0648 \u0622\u067e\u0634\u0646\u0632 \u06a9\u0627 \u062a\u062c\u0632\u06cc\u06c1 \u0645\u0633\u0644\u0633\u0644 \u0628\u062f\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u0645\u0636\u0645\u0631 \u0627\u062a\u0627\u0631 \u0686\u0691\u06be\u0627\u0624\u060c \u0686\u06a9\u0646\u0627\u0626\u06cc \u06a9\u06d2 \u0628\u0691\u06be\u0646\u06d2\u060c \u0627\u0648\u0631 \u0633\u0637\u062d \u06a9\u06cc \u0638\u0627\u06c1\u0631\u06cc \u0634\u06a9\u0644 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u0686\u0646\u062f \u0645\u0646\u0679\u0648\u06ba \u06a9\u06d2 \u0628\u0639\u062f \u0628\u06be\u06cc \u0645\u062e\u062a\u0644\u0641 \u0646\u0638\u0631 \u0622 \u0633\u06a9\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0628\u06c1\u062a \u0633\u06cc \u0679\u06cc\u0645\u06cc\u06ba \u0627\u0628 \u0628\u06be\u06cc \u0627\u0646 \u0646\u0645\u0628\u0631\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u0633\u0627 \u0633\u0644\u0648\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba \u062c\u06cc\u0633\u06d2 \u0648\u06c1 \u0633\u0628 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u062f\u06cc\u06a9\u06be\u06d2 \u06af\u0626\u06d2 \u06c1\u0648\u06ba\u06d4 \u06cc\u06c1 \u0688\u06cc\u06a9 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":23656,"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-23655","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\/23655","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=23655"}],"version-history":[{"count":1,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/23655\/revisions"}],"predecessor-version":[{"id":23657,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/23655\/revisions\/23657"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media\/23656"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=23655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=23655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=23655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}