{"id":494354,"date":"2026-09-11T09:26:51","date_gmt":"2026-09-11T09:26:51","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=494354"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=494354","title":{"rendered":"\u041e\u0442\u0431\u043e\u0440 \u0430\u043a\u0446\u0438\u0439 \u043d\u0430 .NET: 14,5 \u043c\u043b\u043d \u0431\u0430\u0440\u043e\u0432 \u0432 SQLite, \u0444\u0438\u043b\u044c\u0442\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u0435\u0440\u0438\u043b \u043d\u0435 \u0432 \u0442\u0435\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u0445, \u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0442\u0435\u0441\u0442"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u0435\u0447\u0435\u0440 \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0434\u0438\u043d \u0432\u043e\u043f\u0440\u043e\u0441: \u043d\u0430 \u043a\u0430\u043a\u0438\u0435 \u0431\u0443\u043c\u0430\u0433\u0438 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0440\u0438\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u0442\u044b\u0441\u044f\u0447 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0441\u0435\u0433\u043e\u0434\u043d\u044f. \u041d\u0435 \u00ab\u043a\u0430\u043a\u0438\u0435 \u0432\u044b\u0440\u0430\u0441\u0442\u0443\u0442\u00bb \u2014 \u044d\u0442\u043e\u0433\u043e \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442, \u2014 \u0430 \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u0441\u0442\u043e\u0438\u0442 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443.<\/p>\n<p>\u0413\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u043e\u0434 \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0438 \u0441 \u0442\u0435\u0445 \u043f\u043e\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0451. \u041d\u0438\u0436\u0435 \u2014 \u0435\u0451 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e: \u043a\u0430\u043a \u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f 14,5 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u0431\u0430\u0440\u043e\u0432, \u043a\u0430\u043a \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u043d\u0433 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u043b\u044b, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0432\u043e\u0440\u043e\u043d\u043a\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432, \u043a\u0430\u043a\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0433\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438 \u043f\u043e\u0447\u0435\u043c\u0443, \u0447\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u0445\u043e\u0434 \u0441\u0434\u0435\u043b\u043a\u0438 \u0438 \u0447\u0435\u043c \u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e, \u0447\u0442\u043e \u043e\u0442\u0431\u043e\u0440 \u0432\u043e\u043e\u0431\u0449\u0435 \u0447\u0435\u0433\u043e-\u0442\u043e \u0441\u0442\u043e\u0438\u0442. \u041a\u043e\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e: \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e \u0442\u043e, \u0433\u0434\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043d\u0435 \u0442\u0430\u043a\u0438\u043c\u0438, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0438 \u043d\u0430 \u0431\u0443\u043c\u0430\u0433\u0435.<\/p>\n<p>\u0421\u0442\u0435\u043a, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u0435 \u043e\u0442\u0432\u043b\u0435\u043a\u0430\u0442\u044c\u0441\u044f: .NET 10, C#, WinForms \u0434\u043b\u044f \u043e\u043a\u043d\u0430, SQLite (<code>Microsoft.Data.Sqlite<\/code>) \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430, ScottPlot \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432, xUnit \u2014 867 \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u0442\u0440\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430, \u043a\u0440\u043e\u043c\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u043a\u043e\u0442\u0438\u0440\u043e\u0432\u043e\u043a, \u043a\u043b\u044e\u0447 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u0432\u043e\u0434\u0438\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c.<\/p>\n<h3>\u0412\u043e\u0440\u043e\u043d\u043a\u0430<\/h3>\n<p>\u0412 \u0431\u0430\u0437\u0435 16 066 \u0442\u0438\u043a\u0435\u0440\u043e\u0432. \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0438\u0437 \u043d\u0438\u0445 \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043c\u0451\u0440\u0442\u0432\u044b\u0435: \u0434\u0435\u043b\u0438\u0441\u0442\u043d\u0443\u0442\u044b\u0435, \u043f\u043e\u0433\u043b\u043e\u0449\u0451\u043d\u043d\u044b\u0435, \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u0448\u0438\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u0418\u0445 \u0442\u0440\u0435\u0442\u044c, \u0438 \u043e\u043d\u0438 \u043e\u043f\u0430\u0441\u043d\u044b \u043d\u0435 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u0432 \u0432\u044b\u0434\u0430\u0447\u0443, \u0430 \u0442\u0435\u043c, \u0447\u0442\u043e \u0438\u0441\u043a\u0430\u0436\u0430\u044e\u0442 \u0432\u0441\u0451, \u0447\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u00ab\u043f\u043e \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439\u00bb. \u041e\u0441\u0442\u0430\u0451\u0442\u0441\u044f 13 420.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f. \u0412\u043e\u0442 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u0438\u0437 \u043d\u0438\u0445 \u0431\u0443\u043c\u0430\u0433\u0430 \u043e\u0442\u0441\u0435\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u043e\u0439, \u0437\u0430 \u043e\u0434\u0438\u043d \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0432\u0435\u0447\u0435\u0440:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0424\u0438\u043b\u044c\u0442\u0440<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u0442\u0441\u0435\u044f\u043b \u043f\u0435\u0440\u0432\u044b\u043c<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041e\u0431\u044a\u0451\u043c (\u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0437\u0430 20 \u0434\u043d\u0435\u0439 \u043d\u0438\u0436\u0435 \u043f\u043e\u0440\u043e\u0433\u0430)<\/p>\n<\/td>\n<td>\n<p align=\"left\">7481<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0426\u0435\u043d\u0430 (\u0432\u043d\u0435 \u043a\u043e\u0440\u0438\u0434\u043e\u0440\u0430)<\/p>\n<\/td>\n<td>\n<p align=\"left\">3462<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0422\u0440\u0435\u043d\u0434\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d (\u0446\u0435\u043d\u0430 \u0432\u044b\u0448\u0435 EMA50 \u0432\u044b\u0448\u0435 EMA200, EMA200 \u0440\u0430\u0441\u0442\u0451\u0442)<\/p>\n<\/td>\n<td>\n<p align=\"left\">1179<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">ATR \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 (\u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0445\u043e\u0434 \u043c\u0435\u043d\u044c\u0448\u0435 2%)<\/p>\n<\/td>\n<td>\n<p align=\"left\">722<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041e\u0442\u043a\u0430\u0442 \u043a EMA21 (\u0446\u0435\u043d\u0430 \u043d\u0435 \u0432 \u0437\u043e\u043d\u0435 \u043e\u0442\u043a\u0430\u0442\u0430)<\/p>\n<\/td>\n<td>\n<p align=\"left\">219<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0420\u0430\u043d\u0433 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u043b\u044b (\u043d\u0438\u0436\u0435 70-\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u044f)<\/p>\n<\/td>\n<td>\n<p align=\"left\">74<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0413\u044d\u043f\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">72<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0414\u043e\u043b\u043b\u0430\u0440\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0451\u043c<\/p>\n<\/td>\n<td>\n<p align=\"left\">59<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0447\u0435\u0435 (\u043d\u0430\u043a\u043b\u043e\u043d EMA, \u043d\u0435\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0440\u0435\u043d\u0434, \u0440\u0430\u0441\u0442\u044f\u0436\u0435\u043d\u0438\u0435)<\/p>\n<\/td>\n<td>\n<p align=\"left\">75<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041f\u0440\u043e\u0448\u043b\u0438<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>77<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0431\u044a\u0451\u043c, \u0435\u0449\u0451 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c \u2014 \u0446\u0435\u043d\u0430. \u042d\u0442\u043e \u043d\u0435 \u0445\u0438\u0442\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c: \u043e\u043d\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u00ab\u0432 \u044d\u0442\u043e\u0439 \u0431\u0443\u043c\u0430\u0433\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0438\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p>\u041d\u043e \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0440\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u2014 \u043f\u0440\u043e \u0442\u043e, \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f. \u042d\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u043e\u0439 \u043a \u0437\u0430\u0434\u0430\u0447\u0435, \u0430 \u0441\u0430\u043c\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439: \u0442\u0440\u0438 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0431\u044b\u043b\u0438 \u043d\u0435 \u043f\u0440\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043e\u0442\u0431\u043e\u0440\u0430.<\/p>\n<h3>\u0414\u0430\u043d\u043d\u044b\u0435: 14,5 \u043c\u043b\u043d \u0431\u0430\u0440\u043e\u0432 \u0432 \u043e\u0434\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 SQLite<\/h3>\n<p>\u0414\u043d\u0435\u0432\u043d\u044b\u0435 \u0431\u0430\u0440\u044b \u0432\u0441\u0435\u0439 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0439 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u2014 16 066 \u0442\u0438\u043a\u0435\u0440\u043e\u0432, 14,5 \u043c\u043b\u043d \u0431\u0430\u0440\u043e\u0432, \u0444\u0430\u0439\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430 \u0434\u0432\u0430 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u0430. \u0421\u0445\u0435\u043c\u0430 \u043d\u0430\u0440\u043e\u0447\u0438\u0442\u043e \u043f\u043b\u043e\u0441\u043a\u0430\u044f:<\/p>\n<pre><code class=\"sql\">CREATE TABLE IF NOT EXISTS daily_bars (    ticker TEXT NOT NULL,    date TEXT NOT NULL,    open REAL NOT NULL,    high REAL NOT NULL,    low REAL NOT NULL,    close REAL NOT NULL,    volume REAL NOT NULL,    transactions INTEGER NULL,    source_file TEXT NOT NULL,    PRIMARY KEY (ticker, date));CREATE INDEX IF NOT EXISTS idx_daily_bars_date ON daily_bars(date);-- (ticker, date) \u0443\u0436\u0435 \u043f\u043e\u043a\u0440\u044b\u0442 PRIMARY KEY; \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u043b \u0432\u0441\u0442\u0430\u0432\u043a\u0438.DROP INDEX IF EXISTS idx_daily_bars_ticker_date;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u0430\u0442\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0439 <code>yyyy-MM-dd<\/code>, \u0430 \u043d\u0435 \u0447\u0438\u0441\u043b\u043e\u043c. \u042d\u0442\u043e \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u043d: \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u0432 \u0442\u043e\u043c \u0436\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0447\u0442\u043e \u0438 \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 <code>ORDER BY date<\/code> \u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0431\u0435\u0437 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439, \u0430 \u0431\u0430\u0437\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0439 \u043b\u044e\u0431\u044b\u043c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0449\u0438\u043a\u043e\u043c. \u0426\u0435\u043d\u0430 \u0440\u0430\u0441\u043f\u043b\u0430\u0442\u044b \u2014 \u0440\u0430\u0437\u0431\u043e\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 <code>DateTime<\/code> \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438, \u0438 \u043e\u043d \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u043c (\u043d\u0438\u0436\u0435).<\/p>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440: \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0435\u0442. \u0421\u0435\u0440\u0432\u0435\u0440 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435, \u0431\u044d\u043a\u0430\u043f, \u043f\u043e\u0440\u0442\u044b, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0432\u0435\u0440\u0441\u0438\u0438 \u2014 \u0446\u0435\u043d\u0430 \u0437\u0430 \u043e\u0431\u0449\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u041e\u0434\u0438\u043d \u0444\u0430\u0439\u043b \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043a\u043b\u0430\u0434\u0451\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0432 \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u043c\u0430\u0448\u0438\u043d\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u043d\u0438\u0435\u043c.<\/p>\n<p>\u0427\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0435\u0448\u0430\u0442\u044c \u2014 \u0447\u0442\u0435\u043d\u0438\u0435. \u0421\u043a\u0430\u043d \u0434\u0435\u0440\u0436\u0438\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u0441\u044e \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u044f\u0442\u044c\u0441\u043e\u0442 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u0435\u0439: \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0442\u0438\u043a\u0435\u0440\u0443 \u0440\u0430\u043d\u0433 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u043b\u044b \u043d\u0435 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u043e\u043d \u043f\u0440\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0432\u0441\u0435\u043c \u0436\u0438\u0432\u044b\u043c \u0431\u0443\u043c\u0430\u0433\u0430\u043c. \u042d\u0442\u043e \u043e\u043a\u043e\u043b\u043e \u043f\u044f\u0442\u0438 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0431\u0430\u0440\u043e\u0432 \u0437\u0430 \u043e\u0434\u0438\u043d \u0437\u0430\u043f\u0440\u043e\u0441.<\/p>\n<pre><code>public IReadOnlyList&lt;PriceBar&gt; LoadRecentBars(int lookbackTradingDays, CancellationToken cancellationToken = default){    using var connection = OpenConnection();    using var pragmaCmd = connection.CreateCommand();    pragmaCmd.CommandText = \"PRAGMA cache_size = -32768\";    pragmaCmd.ExecuteNonQuery();    pragmaCmd.CommandText = \"PRAGMA temp_store = MEMORY\";    pragmaCmd.ExecuteNonQuery();    using var command = connection.CreateCommand();    command.CommandText = \"\"\"        WITH cutoff AS (            SELECT MIN(date) AS min_date            FROM (                SELECT DISTINCT date                FROM daily_bars                ORDER BY date DESC                LIMIT $lookback_days            )        )        SELECT b.ticker, b.date, b.open, b.high, b.low, b.close, b.volume        FROM daily_bars b        WHERE b.date &gt;= (SELECT min_date FROM cutoff)        ORDER BY b.ticker, b.date        \"\"\";    command.Parameters.AddWithValue(\"$lookback_days\", lookbackTradingDays);    using var reader = command.ExecuteReader();    var bars = new List&lt;PriceBar&gt;(1_000_000);    \/\/ \u0421\u0442\u0440\u043e\u043a\u0438 \u0438\u0434\u0443\u0442 ORDER BY ticker: \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0442\u0438\u043a\u0435\u0440\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0431\u0430\u0440\u0430,    \/\/ \u0438\u043d\u0430\u0447\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b \u0431\u044b \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0434\u0443\u0431\u043b\u0435\u0439 \u0432\u043c\u0435\u0441\u0442\u043e ~16 \u0442\u044b\u0441. \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a.    var lastTicker = string.Empty;    var rowsRead = 0;    while (reader.Read())    {        if ((++rowsRead &amp; 0xFFFF) == 0) cancellationToken.ThrowIfCancellationRequested();        var ticker = reader.GetString(0);        if (string.Equals(ticker, lastTicker, StringComparison.Ordinal)) ticker = lastTicker;        else lastTicker = ticker;        bars.Add(new PriceBar        {            Ticker = ticker,            Date = ParseDate(reader.GetString(1)),            Open = (decimal)reader.GetDouble(2),            \/\/ \u2026        });    }    return bars;}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043f\u044f\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u0438 \u043a\u0430\u0436\u0434\u043e\u0435 \u0432\u0437\u044f\u043b\u043e\u0441\u044c \u0438\u0437 \u0437\u0430\u043c\u0435\u0440\u0430, \u0430 \u043d\u0435 \u0438\u0437 \u0432\u043a\u0443\u0441\u0430.<\/p>\n<p><strong>\u041e\u0442\u0441\u0435\u0447\u043a\u0430 \u043f\u043e \u0434\u0430\u0442\u0435 \u2014 \u0447\u0435\u0440\u0435\u0437 CTE \u043f\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u0434\u0430\u0442\u0430\u043c, \u0430 \u043d\u0435 \u00ab\u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u0438\u043d\u0443\u0441 N \u0434\u043d\u0435\u0439\u00bb.<\/strong> \u0422\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0432 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e: \u043f\u0440\u0430\u0437\u0434\u043d\u0438\u043a\u0438, \u0443\u043a\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0441\u0441\u0438\u0438, \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435. <code>DISTINCT date \u2026 ORDER BY date DESC LIMIT $lookback_days<\/code> \u0434\u0430\u0451\u0442 \u0440\u043e\u0432\u043d\u043e N \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u0435\u0439, \u043a\u0430\u043a\u0438\u043c\u0438 \u0431\u044b \u043e\u043d\u0438 \u043d\u0438 \u0431\u044b\u043b\u0438, \u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435 \u043f\u043b\u044b\u0432\u0451\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043f\u043e\u043f\u0430\u043b \u043b\u0438 \u0432 \u043e\u043a\u043d\u043e \u0414\u0435\u043d\u044c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0435\u043d\u0438\u044f.<\/p>\n<p><strong>\u041e\u0434\u0438\u043d \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0442\u0438\u043a\u0435\u0440.<\/strong> \u0428\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u044c \u0442\u044b\u0441\u044f\u0447 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043d\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043e\u0442\u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0434\u0435\u0448\u0451\u0432\u044b\u0439: \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u043d\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u0438 \u0440\u0430\u0437\u0431\u043e\u0440 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0443\u043c\u043d\u043e\u0436\u0430\u044e\u0442\u0441\u044f \u043d\u0430 16 066. \u041e\u0434\u0438\u043d \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 \u043f\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c, \u0447\u0438\u0442\u0430\u0435\u0442 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0437\u0430 \u043e\u0434\u043d\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435.<\/p>\n<p><strong>\u0401\u043c\u043a\u043e\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0430 \u0437\u0430\u0440\u0430\u043d\u0435\u0435.<\/strong> <code>List&lt;T&gt;<\/code> \u0440\u0430\u0441\u0442\u0451\u0442 \u0443\u0434\u0432\u043e\u0435\u043d\u0438\u0435\u043c \u0441 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c; \u043d\u0430 \u043f\u044f\u0442\u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u044d\u0442\u043e \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u043f\u0435\u0440\u0435\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0430 \u0441\u043e\u0442\u043d\u0438 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u043e.<\/p>\n<p><strong>\u0421\u0442\u0440\u043e\u043a\u0430 \u0442\u0438\u043a\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u2014 \u044d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0434\u043e\u0440\u043e\u0433\u043e\u0435 \u0438\u0437 \u043c\u0435\u043b\u043a\u043e\u0433\u043e.<\/strong> <code>reader.GetString<\/code> \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0437\u043e\u0432. \u041f\u044f\u0442\u044c \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0441\u0442\u0440\u043e\u043a \u0432\u043c\u0435\u0441\u0442\u043e \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u0442\u044b\u0441\u044f\u0447 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u2014 \u0441\u043e\u0442\u043d\u0438 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0440\u0435\u0437\u0438\u0434\u0435\u043d\u0442\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0438 \u0432\u0438\u043d\u043e\u0432\u0430\u0442 \u0432 \u043d\u0438\u0445 \u043d\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0430 \u043d\u0435\u0432\u0438\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0432 \u0446\u0438\u043a\u043b\u0435. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u043e \u0442\u0438\u043a\u0435\u0440\u0443, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0438 \u043f\u0440\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0438 \u0432\u0437\u044f\u0442\u044c \u0442\u0443 \u0436\u0435 \u0441\u0441\u044b\u043b\u043a\u0443. \u0418\u043d\u0442\u0435\u0440\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 <code>string.Intern<\/code> \u0442\u0443\u0442 \u0445\u0443\u0436\u0435: \u043e\u043d\u043e \u043a\u043b\u0430\u0434\u0451\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043e\u0431\u0449\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430.<\/p>\n<p><strong>\u0420\u0430\u0437\u0431\u043e\u0440 \u0434\u0430\u0442\u044b \u2014 \u0440\u0443\u043a\u0430\u043c\u0438, \u0431\u0435\u0437 <\/strong><code><strong>ParseExact<\/strong><\/code><strong>.<\/strong> \u0424\u043e\u0440\u043c\u0430\u0442 \u043d\u0430\u0448 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u0439:<\/p>\n<pre><code>\/\/\/ \u0420\u0430\u0437\u0431\u043e\u0440 \u0434\u0430\u0442\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u0430 yyyy-MM-dd \u0431\u0435\u0437 ParseExact: \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\/\/\/ \u044d\u0442\u043e \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0432\u044b\u0437\u043e\u0432\u043e\u0432, \u0438 \u043e\u0431\u0449\u0438\u0439 \u043f\u0430\u0440\u0441\u0435\u0440 \u0431\u044b\u043b \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432.private static DateTime ParseDate(string text) =&gt;    new(int.Parse(text.AsSpan(0, 4)), int.Parse(text.AsSpan(5, 2)), int.Parse(text.AsSpan(8, 2)));<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0431\u0449\u0438\u0439 \u043f\u0430\u0440\u0441\u0435\u0440 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442, \u0441\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0441 \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u043e\u0439 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u044b \u2014 \u0432\u0441\u0451 \u044d\u0442\u043e \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0430 \u043d\u0435 \u043f\u044f\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432.<\/p>\n<p><strong>\u041e\u0442\u043c\u0435\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u0441\u043a\u043e\u0439, \u0430 \u043d\u0435 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435.<\/strong> <code>(++rowsRead &amp; 0xFFFF) == 0<\/code> \u2014 \u0440\u0430\u0437 \u0432 65 536 \u0441\u0442\u0440\u043e\u043a. <code>ThrowIfCancellationRequested<\/code> \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0437\u0430\u043c\u0435\u0442\u0435\u043d \u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u0435, \u0430 \u0440\u0435\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u00ab\u041e\u0442\u043c\u0435\u043d\u0430\u00bb \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u0448\u0430\u0433\u0435 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u0430\u044f: 65 \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u0440\u043e\u043a \u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0437\u0430 \u0434\u043e\u043b\u0438 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b.<\/p>\n<p>\u041f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u043c\u0435\u0435\u0442 \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0442\u0440\u0435\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 (\u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0437\u0430 \u0434\u0435\u043d\u044c, REST, \u0431\u0440\u043e\u043a\u0435\u0440\u0441\u043a\u0438\u0439 \u043f\u043e\u0442\u043e\u043a) \u0438 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0432 \u0441\u0435\u0431\u0435 \u043d\u0435 \u043d\u043e\u0441\u0438\u0442. \u0427\u0443\u0436\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u0430 \u0441\u0432\u043e\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u0438 \u0442\u0430\u043a \u043e\u043f\u043b\u0430\u0447\u0435\u043d\u0430.<\/p>\n<h3>\u0416\u0438\u0432\u044b\u0435 \u0438 \u043c\u0451\u0440\u0442\u0432\u044b\u0435<\/h3>\n<p>\u0411\u0430\u0437\u0430 \u043f\u043e\u043c\u043d\u0438\u0442 \u0431\u0443\u043c\u0430\u0433\u0438 \u0432\u0435\u0447\u043d\u043e. \u0414\u0435\u043b\u0438\u0441\u0442\u043d\u0443\u0442\u044b\u0435 \u0438 \u043f\u043e\u0433\u043b\u043e\u0449\u0451\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u044e\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u0434\u043d\u0435\u0432\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445, \u0438 \u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0431\u0430\u0440 \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c.<\/p>\n<pre><code>public static bool IsStale(DateTime tickerLastBar, DateTime marketLastBar, int staleAfterDays = StaleAfterDays) =&gt;    (marketLastBar.Date - tickerLastBar.Date).TotalDays &gt; staleAfterDays;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0442\u0441\u0442\u0430\u0432\u0430\u043d\u0438\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0431\u0430\u0440\u0430 \u043f\u043e \u0432\u0441\u0435\u0439 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439, \u0430 \u043d\u0435 \u043e\u0442 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0434\u0430\u0442\u044b: \u0438\u043d\u0430\u0447\u0435 \u0441\u043a\u0430\u043d \u0432 \u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a \u0443\u0442\u0440\u043e\u043c \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u043b \u0431\u044b \u043c\u0451\u0440\u0442\u0432\u044b\u043c \u0432\u0435\u0441\u044c \u0440\u044b\u043d\u043e\u043a, \u0430 \u0441\u043a\u0430\u043d \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0432\u0443\u0445\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u0438 \u2014 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u0435\u0445. \u041f\u043e\u0440\u043e\u0433 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u043d\u044b\u0439, \u0430 \u043d\u0435 \u0432 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u044f\u0445: \u043e\u043d \u043f\u0440\u043e \u00ab\u0431\u0443\u043c\u0430\u0433\u0430 \u043f\u0440\u043e\u043f\u0430\u043b\u0430\u00bb, \u0430 \u043d\u0435 \u043f\u0440\u043e \u0442\u043e\u0447\u043d\u044b\u0439 \u0441\u0447\u0451\u0442 \u0441\u0435\u0441\u0441\u0438\u0439. \u0422\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0434\u043d\u0435\u0439 \u2014 \u0449\u0435\u0434\u0440\u043e \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e: \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0434\u0435\u043b\u0438\u0441\u0442\u0438\u043d\u0433 \u043e\u0442\u0441\u0442\u0430\u0451\u0442 \u043d\u0430 \u043c\u0435\u0441\u044f\u0446\u044b, \u0430 \u0440\u0435\u0434\u043a\u043e \u0442\u043e\u0440\u0433\u0443\u0435\u043c\u0443\u044e \u0436\u0438\u0432\u0443\u044e \u0431\u0443\u043c\u0430\u0433\u0443 \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0440\u043e\u0433 \u043d\u0435 \u0442\u0440\u043e\u043d\u0435\u0442.<\/p>\n<p>\u041d\u0430 11.08.2026 \u0438\u0437 20 861 \u0442\u0438\u043a\u0435\u0440\u0430 \u0432 \u0431\u0430\u0437\u0435 6 868 \u043e\u0442\u0441\u0442\u0430\u0432\u0430\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c \u043d\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u0438 \u0435\u0449\u0451 904 \u2014 \u043e\u0442 \u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u0434\u043d\u0435\u0439. \u0422\u0440\u0435\u0442\u044c \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043a\u0430\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0432\u043f\u0443\u0441\u0442\u0443\u044e, \u043d\u043e \u0445\u0443\u0436\u0435 \u0434\u0440\u0443\u0433\u043e\u0435: \u044d\u0442\u0438 \u0431\u0443\u043c\u0430\u0433\u0438 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u0432 \u0440\u0430\u043d\u0433\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u043b\u044b.<\/p>\n<h3>\u0420\u0430\u043d\u0433 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u043b\u044b: \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u0430\u0436\u043d\u043e, \u043a\u043e\u0433\u043e \u043c\u044b \u0440\u0430\u043d\u0436\u0438\u0440\u0443\u0435\u043c<\/h3>\n<p>\u0420\u0430\u043d\u0433 \u2014 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u044c \u0434\u043e\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 63 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u044f (\u043e\u043a\u043e\u043b\u043e \u0442\u0440\u0451\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432) \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0436\u0438\u0432\u044b\u0445 \u0431\u0443\u043c\u0430\u0433. \u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u0430, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0435:<\/p>\n<pre><code>private static void RankCore&lt;TKey&gt;(IReadOnlyList&lt;(TKey Key, decimal Return)&gt; returns, Action&lt;TKey, int&gt; assign){    if (returns.Count == 0) return;    if (returns.Count == 1)    {        assign(returns[0].Key, 50);        return;    }    var sorted = returns.OrderBy(x =&gt; x.Return).ToList();    for (var i = 0; i &lt; sorted.Count; i++)        assign(sorted[i].Key, (int)Math.Round(i * 100.0 \/ (sorted.Count - 1)));}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0440\u0438 \u0432\u0435\u0449\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0443\u0442 \u043d\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b.<\/p>\n<p><code>OrderBy<\/code> \u0432\u043c\u0435\u0441\u0442\u043e <code>Sort<\/code> \u2014 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e LINQ-\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430, \u0430 <code>List.Sort<\/code> \u043d\u0435\u0442. \u041f\u0440\u0438 \u0440\u0430\u0432\u043d\u044b\u0445 \u0434\u043e\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u044f\u0445 (\u0430 \u043e\u043d\u0438 \u0440\u0430\u0432\u043d\u044b \u0441\u043f\u043b\u043e\u0448\u044c \u0438 \u0440\u044f\u0434\u043e\u043c: \u043a\u043e\u043f\u0435\u0435\u0447\u043d\u044b\u0435 \u0431\u0443\u043c\u0430\u0433\u0438, \u0444\u043e\u043d\u0434\u044b-\u043a\u043b\u043e\u043d\u044b) \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0440\u0430\u0437\u0434\u0430\u0432\u0430\u043b\u0430 \u0431\u044b \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0430\u043d\u0433\u0438 \u043e\u0442 \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u043a \u043f\u0440\u043e\u0433\u043e\u043d\u0443 \u043d\u0430 \u043e\u0434\u043d\u0438\u0445 \u0438 \u0442\u0435\u0445 \u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u0442\u043b\u0430\u0434\u043a\u0430 \u00ab\u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u0447\u0435\u0440\u0430 \u0431\u044b\u043b\u043e 71, \u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f 69, \u0445\u043e\u0442\u044f \u0446\u0435\u043d\u044b \u0442\u0435 \u0436\u0435\u00bb \u2014 \u0442\u043e \u0435\u0449\u0451 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435.<\/p>\n<p>\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0431\u0443\u043c\u0430\u0433\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 50, \u0430 \u043d\u0435 0 \u0438 \u043d\u0435 100. \u041f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u044c \u043f\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d, \u0438 \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043a\u0440\u0430\u0451\u0432 \u0431\u044b\u043b \u0431\u044b \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442. \u0421\u0435\u0440\u0435\u0434\u0438\u043d\u0430 \u2014 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442, \u0438 \u043e\u043d \u0432\u0430\u0436\u0435\u043d \u0434\u043b\u044f \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0430 \u043d\u0430 \u0440\u0430\u043d\u043d\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0433\u0434\u0435 \u0436\u0438\u0432\u044b\u0445 \u0431\u0443\u043c\u0430\u0433 \u043c\u0430\u043b\u043e.<\/p>\n<p>\u0420\u0430\u043d\u0436\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0438\u0432\u044b\u0435. \u042d\u0442\u043e \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 \u043c\u0451\u0440\u0442\u0432\u044b\u0445 \u0431\u0443\u043c\u0430\u0433: \u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f, \u0434\u0430\u0432\u043d\u043e \u0437\u0430\u0441\u0442\u044b\u0432\u0448\u0430\u044f \u0434\u043e\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u044c \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0434\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u0440\u0430\u0437\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0448\u043a\u0430\u043b\u0443. \u0422\u0440\u0435\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0441\u043c\u0435\u0449\u0430\u0435\u0442 \u0432\u0441\u0435 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u0438 \u2014 \u0438 \u043f\u043e\u0440\u043e\u0433 \u00ab\u0440\u0430\u043d\u0433 \u043d\u0435 \u043d\u0438\u0436\u0435 70\u00bb \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0432\u044b \u0438\u043c\u0435\u043b\u0438 \u0432 \u0432\u0438\u0434\u0443, \u043f\u0440\u0438\u0447\u0451\u043c \u043c\u043e\u043b\u0447\u0430.<\/p>\n<h3>\u0421\u043a\u0430\u043d: \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u043d\u0430 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430<\/h3>\n<p>13 420 \u0436\u0438\u0432\u044b\u0445 \u0431\u0443\u043c\u0430\u0433, \u043a\u0430\u0436\u0434\u0430\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430 \u043e\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445:<\/p>\n<pre><code>var activeTickers = TickerActivity.Active(barsIndex, staleAfterDays);var rsRanks = RsRankCalculator.Calculate(barsIndex, activeTickers);return activeTickers    .AsParallel()    .AsOrdered()    .Select(ticker =&gt; ScanTicker(barsIndex.GetBars(ticker), activeProfiles, \/* \u2026 *\/))    .Where(r =&gt; r is not null)    .Cast&lt;MultiScanResult&gt;()    .ToList();<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>AsOrdered<\/code> \u0442\u0443\u0442 \u043d\u0435 \u0434\u043b\u044f \u043a\u0440\u0430\u0441\u043e\u0442\u044b: \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u0442\u0440\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043c\u0435\u043d\u044f\u043b\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0433\u043e\u043d\u0430\u043c\u0438 \u043d\u0430 \u043e\u0434\u043d\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0434\u0432\u0430 \u0441\u043a\u0430\u043d\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u043e\u0441\u044c \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u041f\u043b\u0430\u0442\u0430 \u0437\u0430 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u2014 \u0431\u0443\u0444\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u043d\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0442\u0443\u0442 \u0442\u044b\u0441\u044f\u0447\u0438, \u0430 \u043d\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b.<\/p>\n<p>\u0414\u043e\u0440\u043e\u0436\u0435 \u0441\u0442\u043e\u0438\u043b\u0430 \u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043a\u0435\u0440\u0430. \u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0438\u043b\u0438 \u0431\u0438\u0442\u044b\u0435 \u0431\u0430\u0440\u044b \u0440\u043e\u043d\u044f\u043b\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0435\u0441\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043a\u0430\u043d \u0446\u0435\u043b\u0438\u043a\u043e\u043c:<\/p>\n<pre><code>try{    return UniversalScanner.Scan(tickerBars, profile, levelService, rsRank, nextEarningsDate, indicators);}catch (Exception ex) when (ex is not OperationCanceledException){    \/\/ \u041b\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u0441\u0451, \u043a\u0440\u043e\u043c\u0435 \u043e\u0442\u043c\u0435\u043d\u044b. \u0420\u0430\u043d\u044c\u0448\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u043b\u0438\u0441\u044c \u0442\u0440\u0438 \u0442\u0438\u043f\u0430, \u0438 \u043b\u044e\u0431\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435    \/\/ \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u041e\u0414\u041d\u041e\u041c\u0423 \u0442\u0438\u043a\u0435\u0440\u0443 \u0432\u044b\u043b\u0435\u0442\u0430\u043b\u043e \u0438\u0437 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e Select \u0438 \u043e\u0431\u0440\u044b\u0432\u0430\u043b\u043e \u0441\u043a\u0430\u043d    \/\/ \u043f\u043e \u0432\u0441\u0435\u043c \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u0440\u043e\u0432\u043d\u043e \u0442\u043e, \u043e\u0442 \u0447\u0435\u0433\u043e \u0437\u0430\u0449\u0438\u0442\u0430 \u0438 \u0441\u0442\u0430\u0432\u0438\u043b\u0430\u0441\u044c.    return new ScanResult    {        Ticker = tickerBars[^1].Ticker,        Passed = false,        Reason = $\"Profile error: {ex.GetType().Name}: {ex.Message}\"    };}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0443 <code>when (ex is not OperationCanceledException)<\/code>. \u041f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043b\u043e\u0432\u0438\u043b\u0430 \u0442\u0440\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 \u2014 \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430: \u0441\u0431\u043e\u0439 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u043e\u043d\u0430 \u0433\u0430\u0441\u0438\u043b\u0430, \u0430 \u043b\u044e\u0431\u043e\u0439 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u0439 (\u0442\u043e\u0442, \u0440\u0430\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0437\u0430\u0449\u0438\u0442\u0430 \u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f) \u043f\u0440\u043e\u0431\u0438\u0432\u0430\u043b \u0435\u0451 \u043d\u0430\u0441\u043a\u0432\u043e\u0437\u044c. \u041f\u0440\u0430\u0432\u0438\u043b\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u043d\u0435\u0441: \u0432 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u043f\u043e \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u0441\u0431\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043c\u0435\u0442\u044c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0446\u0438\u043a\u043b, \u0438 \u00ab\u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c\u00bb \u0442\u0443\u0442 \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u043b\u044e\u0431\u044b\u043c, \u043a\u0440\u043e\u043c\u0435 \u043e\u0442\u043c\u0435\u043d\u044b.<\/p>\n<p>\u0418\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043d\u0430 \u0442\u0438\u043a\u0435\u0440 \u0438 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u044f\u043c\u0438 \u0441\u043a\u0430\u043d\u0430:<\/p>\n<pre><code>\/\/\/ \u0420\u044f\u0434\u044b \u043f\u0440\u0438\u0447\u0438\u043d\u043d\u044b: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c i \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0431\u0430\u0440\u043e\u0432 0..i, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\/\/\/ \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u2014 \u044d\u0442\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0440\u044f\u0434\u0430 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u00ab\u043a\u043e\u043d\u0435\u0446 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430\u00bb.\/\/\/ \u041d\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u0435\u043d: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 (\u043e\u0434\u0438\u043d \u0442\u0438\u043a\u0435\u0440 \u2014 \u043e\u0434\u0438\u043d \u043a\u044d\u0448).public sealed class IndicatorSeriesCache<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u043d\u043e\u0441\u0442\u044c \u0440\u044f\u0434\u043e\u0432 \u2014 \u043d\u0435 \u0444\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u044f, \u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0439 \u0440\u044f\u0434 EMA \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0434\u0430\u0442 \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0430. \u0411\u0435\u0437 \u043d\u0435\u0451 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c EMA \u0437\u0430\u043d\u043e\u0432\u043e \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u043e\u043a\u043d\u0430. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u00ab\u043e\u0434\u0438\u043d \u0442\u0438\u043a\u0435\u0440 \u2014 \u043e\u0434\u0438\u043d \u043a\u044d\u0448\u00bb \u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043a\u0430\u043d\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0442 \u0432\u043e\u0432\u0441\u0435.<\/p>\n<h3>\u041f\u0440\u043e\u0444\u0438\u043b\u0438 \u0441\u043a\u0430\u043d\u0435\u0440\u043e\u0432 \u2014 \u044d\u0442\u043e JSON, \u0430 \u043d\u0435 \u043a\u043e\u0434<\/h3>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043a\u0430\u043d\u0435\u0440 \u2014 \u0444\u0430\u0439\u043b \u0441 \u043f\u043e\u0440\u043e\u0433\u0430\u043c\u0438:<\/p>\n<pre><code class=\"json\">{  \"Name\": \"RS Leader Pullback\",  \"Type\": \"PullbackToEmaScanner\",  \"Common\": {    \"VolumeFilter\": { \"Enabled\": true, \"MinVolume\": 500000, \"AverageLength\": 20 },    \"AtrFilter\":    { \"Enabled\": true, \"MinAtrPercent\": 2.0 },    \"RsRankFilter\": { \"Enabled\": true, \"MinRank\": 70 },    \"GapFilter\":    { \"Enabled\": true, \"MaxCurrentGapPercent\": 3.0,                      \"MaxHistoricalGapPercent\": 6.0, \"GapLookback\": 5,                      \"MaxAverageGapRangeRatio\": 0.45 }  }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f: \u043f\u043e\u0440\u043e\u0433\u0438 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0435 \u0440\u0430\u0437 \u0432 \u0440\u0435\u043b\u0438\u0437, \u0430 \u043f\u043e \u0445\u043e\u0434\u0443 \u043c\u044b\u0441\u043b\u0438. \u041f\u043e\u043a\u0430 \u043e\u043d\u0438 \u043b\u0435\u0436\u0430\u043b\u0438 \u0432 \u043a\u043e\u0434\u0435, \u043a\u0430\u0436\u0434\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u044b \u0441\u0442\u043e\u0438\u043b\u0430 \u043f\u0435\u0440\u0435\u0441\u0431\u043e\u0440\u043a\u0438, \u0438 \u044f \u0438\u0445 \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b. \u0421 JSON \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0442\u043e\u0438\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u2014 \u0438 \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u044b \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043d\u0430\u0447\u0430\u043b\u0438 \u0443\u043c\u0438\u0440\u0430\u0442\u044c, \u043a\u0430\u043a \u0438\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e.<\/p>\n<p>\u041f\u043e\u0431\u043e\u0447\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0432\u0430\u0436\u043d\u0435\u0435 \u0437\u0430\u043c\u044b\u0441\u043b\u0430: \u0440\u0430\u0437 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u2014 \u044d\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435, \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0433\u043d\u0430\u0442\u044c \u043f\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u0411\u044d\u043a\u0442\u0435\u0441\u0442 \u0431\u0435\u0440\u0451\u0442 \u0442\u0435 \u0436\u0435 \u0444\u0430\u0439\u043b\u044b, \u0447\u0442\u043e \u0438 \u0432\u0435\u0447\u0435\u0440\u043d\u0438\u0439 \u0441\u043a\u0430\u043d. \u0415\u0441\u043b\u0438 \u0431\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0436\u0438\u043b\u0438 \u0432 \u043a\u043e\u0434\u0435, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u00ab\u0431\u044d\u043a\u0442\u0435\u0441\u0442 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u00bb \u044f \u0431\u044b \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043d\u0438\u043a\u043e\u0433\u0434\u0430.<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0435 \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u2014 \u043a\u0430\u0436\u0434\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u043e\u0431\u044f\u0437\u0430\u043d \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0439 \u0432\u0435\u0440\u0434\u0438\u043a\u0442 \u0441\u0442\u0440\u043e\u043a\u043e\u0439, \u0438 \u043e\u043d\u0430 \u0432\u0438\u0434\u043d\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435:<\/p>\n<pre><code>Price OK: 42.58 between 10.00 and 500.00, Volume OK: avg20 1,159,718 &gt;= 500,000,ATR% OK: 2.07% &gt;= 2.00%, RsRank OK: 83 &gt;= 70, Gap OK: current 1.50%, max5d 1.50%,avg5d 0.91%, gap\/range20d 0.78, range 1.30%<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0443\u0436\u043d\u043e \u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0445: \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u043e\u0442\u043a\u0430\u0437, \u0430 \u0442\u043e, \u0441 \u043a\u0430\u043a\u0438\u043c \u0437\u0430\u043f\u0430\u0441\u043e\u043c \u0431\u0443\u043c\u0430\u0433\u0430 \u043f\u0440\u043e\u0448\u043b\u0430. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u0438 \u0432\u0441\u043a\u0440\u044b\u043b\u0430 \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u2014 \u043e \u043d\u0451\u043c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<h3>\u0424\u0438\u043b\u044c\u0442\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u0435\u0440\u0438\u043b \u043d\u0435 \u0432 \u0442\u0435\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u0445<\/h3>\n<p>\u0412 \u0432\u044b\u0434\u0430\u0447\u0443 \u043f\u043e\u043f\u0430\u043b TMV \u2014 Direxion Daily 20+ Year Treasury Bear 3X, \u0442\u0440\u043e\u0439\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u0444\u043e\u043d\u0434 \u043d\u0430 \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u043a\u0430\u0437\u043d\u0430\u0447\u0435\u0439\u0441\u043a\u0438\u0435 \u043e\u0431\u043b\u0438\u0433\u0430\u0446\u0438\u0438. \u041d\u0430 \u0434\u043d\u0435\u0432\u043d\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043e\u043d \u0433\u044d\u043f\u0443\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<p>\u0413\u044d\u043f\u044b \u0443 \u043d\u0435\u0433\u043e \u043d\u0435 \u0441\u0431\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430: \u043e\u0431\u043b\u0438\u0433\u0430\u0446\u0438\u0438 \u0442\u043e\u0440\u0433\u0443\u044e\u0442\u0441\u044f \u0444\u044c\u044e\u0447\u0435\u0440\u0441\u0430\u043c\u0438 \u043f\u043e\u0447\u0442\u0438 \u043a\u0440\u0443\u0433\u043b\u043e\u0441\u0443\u0442\u043e\u0447\u043d\u043e, \u0430 \u0444\u043e\u043d\u0434 \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0431\u0438\u0440\u0436\u0435\u0432\u0443\u044e \u0441\u0435\u0441\u0441\u0438\u044e, \u0441 9:30 \u0434\u043e 16:00 \u043f\u043e \u041d\u044c\u044e-\u0419\u043e\u0440\u043a\u0443. \u0412\u0441\u0451, \u0447\u0442\u043e \u0440\u044b\u043d\u043e\u043a \u043e\u0431\u043b\u0438\u0433\u0430\u0446\u0438\u0439 \u043f\u0440\u043e\u0448\u0451\u043b \u0437\u0430 \u043d\u043e\u0447\u044c, \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043d\u0435 \u0432 \u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0445\u043e\u0434 \u0444\u043e\u043d\u0434\u0430, \u0430 \u0432 \u0440\u0430\u0437\u0440\u044b\u0432 \u043d\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438, \u0438 \u0442\u0440\u043e\u0439\u043d\u043e\u0435 \u043f\u043b\u0435\u0447\u043e \u044d\u0442\u043e\u0442 \u0440\u0430\u0437\u0440\u044b\u0432 \u0443\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u043e\u0442 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u044d\u0442\u043e \u043f\u0440\u0438\u0433\u043e\u0432\u043e\u0440: \u0446\u0435\u043d\u0430 \u043f\u0435\u0440\u0435\u043f\u0440\u044b\u0433\u0438\u0432\u0430\u0435\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c, \u043d\u0435 \u0442\u043e\u0440\u0433\u0443\u044f \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e. \u0417\u0430\u044f\u0432\u043a\u0430 \u043b\u0438\u0431\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f, \u043b\u0438\u0431\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u0430\u043c, \u0433\u0434\u0435 \u044f \u0435\u0451 \u0441\u0442\u0430\u0432\u0438\u043b.<\/p>\n<p>\u0424\u0438\u043b\u044c\u0442\u0440 \u0433\u044d\u043f\u043e\u0432 \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b, \u0438 \u043e\u043d \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b:<\/p>\n<pre><code>Gap OK: current 1.5%, max 1.5%, range 1.3%<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0440\u043e\u0433\u0438: \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0433\u044d\u043f \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 3%, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0437\u0430 \u043d\u0435\u0434\u0435\u043b\u044e \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 6%. \u041f\u043e\u043b\u0442\u043e\u0440\u0430 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0441 \u0437\u0430\u043f\u0430\u0441\u043e\u043c. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0442\u043e\u0440\u043e\u0435 \u0447\u0438\u0441\u043b\u043e: \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0445\u043e\u0434 TMV \u2014 1,64%. \u0422\u043e \u0435\u0441\u0442\u044c \u0433\u044d\u043f \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1,29% (\u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u0430 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u0439) \u2014 \u044d\u0442\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u043f\u044f\u0442\u044b\u0445 \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u0431\u0443\u043c\u0430\u0433\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0434\u0435\u043d\u044c.<\/p>\n<p>\u0424\u0438\u043b\u044c\u0442\u0440 \u043c\u0435\u0440\u0438\u043b \u0433\u044d\u043f \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u0446\u0435\u043d\u044b \u0438 \u043f\u043e\u0442\u043e\u043c\u0443 \u043d\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u043b \u0434\u0432\u0430 \u0441\u043b\u0443\u0447\u0430\u044f:<\/p>\n<ul>\n<li>\n<p>\u0433\u044d\u043f 1,3% \u0443 \u0431\u0443\u043c\u0430\u0433\u0438 \u0441 \u0434\u043d\u0435\u0432\u043d\u044b\u043c \u0445\u043e\u0434\u043e\u043c 1,6% \u2014 \u043d\u043e\u0447\u044c\u044e \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0451 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435;<\/p>\n<\/li>\n<li>\n<p>\u0433\u044d\u043f 1,3% \u0443 \u0431\u0443\u043c\u0430\u0433\u0438 \u0441 \u0434\u043d\u0435\u0432\u043d\u044b\u043c \u0445\u043e\u0434\u043e\u043c 5% \u2014 \u043d\u043e\u0447\u044c\u044e \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c, \u0438 \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u0446\u0435\u043d\u044b \u043e\u043d\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435. \u0414\u043b\u044f \u043c\u043e\u0435\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u2014 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u044b\u0435.<\/p>\n<h4>\u041c\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442<\/h4>\n<p>\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435: \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0433\u044d\u043f, \u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0445\u043e\u0434. \u041e\u0431\u0430 \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u2014 \u0437\u0430 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u0439, \u043e\u0431\u0430 \u043d\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0434\u043d\u044f.<\/p>\n<p>\u0412\u043e\u0442 \u0432\u0435\u0440\u0445 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u0440\u0435\u0434\u0438 \u0442\u0435\u0445 160 \u0431\u0443\u043c\u0430\u0433, \u0447\u0442\u043e \u043f\u0440\u043e\u0448\u043b\u0438 \u0441\u043a\u0430\u043d \u0432 \u0442\u043e\u0442 \u0432\u0435\u0447\u0435\u0440 \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u044f\u043c:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0411\u0443\u043c\u0430\u0433\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0413\u044d\u043f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0425\u043e\u0434 \u0434\u043d\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">TMV \u2014 \u0442\u0440\u043e\u0439\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043d\u0430 20-\u043b\u0435\u0442\u043d\u0438\u0435 \u043e\u0431\u043b\u0438\u0433\u0430\u0446\u0438\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">1,29%<\/p>\n<\/td>\n<td>\n<p align=\"left\">1,64%<\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>0,78<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">EWY \u2014 \u0444\u043e\u043d\u0434 \u043d\u0430 \u041a\u043e\u0440\u0435\u044e<\/p>\n<\/td>\n<td>\n<p align=\"left\">1,87%<\/p>\n<\/td>\n<td>\n<p align=\"left\">2,50%<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,75<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">ASX \u2014 \u0440\u0430\u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0430 \u0442\u0430\u0439\u0432\u0430\u043d\u044c\u0441\u043a\u0443\u044e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044e<\/p>\n<\/td>\n<td>\n<p align=\"left\">2,10%<\/p>\n<\/td>\n<td>\n<p align=\"left\">3,33%<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,63<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">BHP \u2014 \u0440\u0430\u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0430 \u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0443\u044e<\/p>\n<\/td>\n<td>\n<p align=\"left\">1,19%<\/p>\n<\/td>\n<td>\n<p align=\"left\">2,06%<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,58<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">TSM \u2014 \u0440\u0430\u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0430 \u0422\u0430\u0439\u0432\u0430\u043d\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,94%<\/p>\n<\/td>\n<td>\n<p align=\"left\">2,00%<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,47<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u043c\u0435\u0434\u0438\u0430\u043d\u0430 \u043f\u043e \u0432\u0441\u0435\u043c 160<\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">0,24<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">AAPL \u2014 \u0434\u043b\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,40%<\/p>\n<\/td>\n<td>\n<p align=\"left\">1,97%<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,20<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">MSFT \u2014 \u0434\u043b\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,48%<\/p>\n<\/td>\n<td>\n<p align=\"left\">1,86%<\/p>\n<\/td>\n<td>\n<p align=\"left\">0,26<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412\u0435\u0440\u0445 \u0441\u043f\u0438\u0441\u043a\u0430 \u2014 \u043d\u0435 \u00ab\u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u044b\u0435 \u0431\u0443\u043c\u0430\u0433\u0438\u00bb, \u0430 \u0431\u0443\u043c\u0430\u0433\u0438, \u0447\u0435\u0439 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0430\u043a\u0442\u0438\u0432 \u0442\u043e\u0440\u0433\u0443\u0435\u0442\u0441\u044f, \u043f\u043e\u043a\u0430 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u0430: \u0440\u0430\u0441\u043f\u0438\u0441\u043a\u0438 \u043d\u0430 \u0430\u0437\u0438\u0430\u0442\u0441\u043a\u0438\u0435 \u0438 \u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0444\u043e\u043d\u0434\u044b \u043d\u0430 \u0447\u0443\u0436\u0438\u0435 \u0440\u044b\u043d\u043a\u0438, \u043f\u043b\u0435\u0447\u0435\u0432\u044b\u0435 \u0444\u043e\u043d\u0434\u044b \u043d\u0430 \u043e\u0431\u043b\u0438\u0433\u0430\u0446\u0438\u0438. \u041e\u0434\u0438\u043d \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u0440\u0430\u0437\u043d\u044b\u0435 \u043e\u0431\u0451\u0440\u0442\u043a\u0438.<\/p>\n<p>\u041f\u043e\u0440\u043e\u0433 0,45 \u0443\u0431\u0440\u0430\u043b \u0438\u0437 \u0432\u044b\u0434\u0430\u0447\u0438 \u0441\u0435\u043c\u044c \u0431\u0443\u043c\u0430\u0433 \u0438\u0437 \u0441\u0442\u0430 \u0448\u0435\u0441\u0442\u0438\u0434\u0435\u0441\u044f\u0442\u0438: ASX, BHP, EMBJ, EWY, TMV, TSM, VG. \u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c. \u041d\u0438\u0436\u0435 0,40 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u043e\u0442\u0432\u0430\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0435 \u0430\u043a\u0446\u0438\u0438 \u2014 \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u043a, \u0447\u0442\u043e \u043f\u043e\u0440\u043e\u0433 \u0437\u0430\u043d\u044f\u043b\u0441\u044f \u043d\u0435 \u0442\u0435\u043c, \u0440\u0430\u0434\u0438 \u0447\u0435\u0433\u043e \u0441\u0442\u0430\u0432\u0438\u043b\u0441\u044f.<\/p>\n<h4>\u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f<\/h4>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0436\u0438\u0432\u0451\u0442 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435, \u0438 \u043e\u043d \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u043e\u0431\u0430 \u043e\u043a\u043d\u0430 \u0437\u0430 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0445\u043e\u0434:<\/p>\n<pre><code>public static bool Evaluate(    IReadOnlyList&lt;PriceBar&gt; bars,    CleanGapFilterSettings settings,    out GapReading reading){    reading = new GapReading(100m, 100m, 100m, settings.GapLookback, 100m, null);    if (bars.Count &lt; 2) return false;    var lastBar = bars[^1];    var previousBar = bars[^2];    var currentGapPercent = previousBar.Close &gt; 0        ? Math.Abs(lastBar.Open - previousBar.Close) \/ previousBar.Close * 100m        : 100m;    \/\/ \u041e\u0431\u0430 \u043e\u043a\u043d\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0446\u0438\u043a\u043b\u043e\u043c: \u0441\u043a\u0430\u043d \u0438\u0434\u0451\u0442 \u043f\u043e 13 \u0442\u044b\u0441\u044f\u0447\u0430\u043c \u0442\u0438\u043a\u0435\u0440\u043e\u0432, \u0430 \u0431\u044d\u043a\u0442\u0435\u0441\u0442    \/\/ \u0437\u043e\u0432\u0451\u0442 \u044d\u0442\u043e \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043a\u0435\u0440\u0430 \u2014 \u0441\u043f\u0438\u0441\u043a\u0438 \u043d\u0430 \u0432\u044b\u0437\u043e\u0432 \u0437\u0434\u0435\u0441\u044c \u0434\u043e\u0440\u043e\u0433\u0438.    var shortStart = Math.Max(1, bars.Count - settings.GapLookback);    var longStart  = Math.Max(1, bars.Count - RatioLookback);    var maxGapPercent = 0m;    var shortGapSum = 0m; var shortCount = 0;    var longGapSum  = 0m; var longRangeSum = 0m; var longCount = 0;    for (var i = Math.Min(shortStart, longStart); i &lt; bars.Count; i++)    {        var previousClose = bars[i - 1].Close;        var bar = bars[i];        var gap = previousClose &gt; 0            ? Math.Abs(bar.Open - previousClose) \/ previousClose * 100m            : 100m;        if (i &gt;= shortStart)        {            if (gap &gt; maxGapPercent) maxGapPercent = gap;            shortGapSum += gap;            shortCount++;        }        if (i &gt;= longStart)        {            longGapSum += gap;            \/\/ \u0425\u043e\u0434 \u0434\u043d\u044f \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 \u0442\u043e \u0436\u0435 \u0432\u0447\u0435\u0440\u0430\u0448\u043d\u0435\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435, \u0447\u0442\u043e \u0438 \u0433\u044d\u043f: \u0434\u0435\u043b\u0438\u0442\u044c \u043e\u0434\u043d\u043e            \/\/ \u043d\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0434\u043d\u044f, \u0430 \u0434\u0440\u0443\u0433\u043e\u0435 \u043d\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0438\u0442            \/\/ \u043c\u0435\u0440\u0438\u0442\u044c \u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043b\u0438\u043d\u0435\u0439\u043a\u0430\u043c\u0438 \u2014 \u043d\u0430 \u0440\u043e\u0441\u0442\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u044b\u0448\u0430\u043b\u043e\u0441\u044c \u0431\u044b,            \/\/ \u043d\u0430 \u043f\u0430\u0434\u0435\u043d\u0438\u0438 \u0437\u0430\u043d\u0438\u0436\u0430\u043b\u043e\u0441\u044c. \u041e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0448\u0438\u0440\u0438\u043d\u0430 \u0431\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u0431\u0438\u0442\u043e\u0433\u043e            \/\/ \u0431\u0430\u0440\u0430, \u0438 \u0432\u043a\u043b\u0430\u0434 \u0442\u0430\u043a\u043e\u0433\u043e \u0431\u0430\u0440\u0430 \u2014 \u043d\u043e\u043b\u044c, \u0430 \u043d\u0435 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435 \u0438\u0437 \u0441\u0443\u043c\u043c\u044b.            longRangeSum += previousClose &gt; 0                ? Math.Max(0m, bar.High - bar.Low) \/ previousClose * 100m                : 0m;            longCount++;        }    }    if (shortCount == 0)    {        maxGapPercent = currentGapPercent;        shortGapSum   = currentGapPercent;        shortCount    = 1;    }    \/\/ \u0421\u0440\u0435\u0434\u043d\u0438\u0439 \u0433\u044d\u043f \u043f\u043e \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u043c\u0443 \u043e\u043a\u043d\u0443 \u2014 \u043f\u0440\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0443, \u0430 \u043d\u0435 \u043f\u0440\u043e \u0432\u044b\u0431\u0440\u043e\u0441: \u0431\u0443\u043c\u0430\u0433\u0430, \u0433\u044d\u043f\u0443\u044e\u0449\u0430\u044f    \/\/ \u043d\u0430 2.9% \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c, \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0430 \u0441 \u043f\u043e\u0440\u043e\u0433\u043e\u043c 3%, \u0445\u043e\u0442\u044f \u043e\u0442 \u0443\u0440\u043e\u0432\u043d\u0435\u0439    \/\/ \u0432 \u043d\u0435\u0439 \u043d\u0435 \u043f\u043e\u0442\u043e\u0440\u0433\u0443\u0435\u0448\u044c.    var averageGapPercent = shortGapSum \/ shortCount;    var barRangePercent = lastBar.Close &gt; 0        ? (lastBar.High - lastBar.Low) \/ lastBar.Close * 100m        : 100m;    var averageRange = longCount &gt; 0 ? longRangeSum \/ longCount : 0m;    var gapToRange = longCount &gt;= MinRatioSessions &amp;&amp; averageRange &gt; 0        ? longGapSum \/ longCount \/ averageRange        : (decimal?)null;    \/\/ \u041f\u043e\u0440\u043e\u0433 \u0437\u0430\u0434\u0430\u043d, \u0430 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043d\u0435\u0442 \u2014 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f: \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435 \u043d\u0430 \u0447\u0435\u043c    \/\/ \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438, \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430.    var ratioOk = settings.MaxAverageGapRangeRatio &gt;= 100m        || (gapToRange is { } ratio &amp;&amp; ratio &lt;= settings.MaxAverageGapRangeRatio);    return currentGapPercent &lt;= settings.MaxCurrentGapPercent        &amp;&amp; maxGapPercent &lt;= settings.MaxHistoricalGapPercent        &amp;&amp; averageGapPercent &lt;= settings.MaxAverageGapPercent        &amp;&amp; ratioOk        &amp;&amp; barRangePercent &lt;= settings.MaxBarRangePercent;}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0427\u0435\u0442\u044b\u0440\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0443\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c\u0438.<\/p>\n<p><strong>\u0417\u043d\u0430\u043c\u0435\u043d\u0430\u0442\u0435\u043b\u044c \u2014 \u0445\u043e\u0434 \u0434\u043d\u044f, \u0430 \u043d\u0435 ATR.<\/strong> \u041f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0434\u0435\u043b\u0438\u043b\u0430 \u0433\u044d\u043f \u043d\u0430 ATR, \u0438 \u044d\u0442\u043e \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u0434\u0432\u0430\u0436\u0434\u044b. \u0418\u0441\u0442\u0438\u043d\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0441\u0430\u043c \u0433\u044d\u043f: \u0447\u0435\u043c \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u043c\u0430\u0433\u0430 \u0433\u044d\u043f\u0443\u0435\u0442, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u043d\u0430\u043c\u0435\u043d\u0430\u0442\u0435\u043b\u044c \u0438 \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u2014 \u043c\u0435\u0440\u0430 \u0434\u0443\u0448\u0438\u0442 \u0440\u043e\u0432\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u0430 \u043b\u043e\u0432\u0438\u0442\u044c. \u041f\u043b\u044e\u0441 \u0434\u043b\u0438\u043d\u0430 ATR \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u0430 \u0438\u0437 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430, \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u044f\u0442\u044c \u0431\u0430\u0440\u043e\u0432, \u0438 \u0441\u043c\u044b\u0441\u043b \u043f\u043e\u0440\u043e\u0433\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u043b \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u0447\u0443\u0436\u043e\u0439 \u0440\u0443\u0447\u043a\u0438 \u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0431\u044b\u043b \u043b\u0438 \u043d\u0430 \u043d\u0435\u0434\u0435\u043b\u0435 \u043e\u0442\u0447\u0451\u0442. <code>High \u2212 Low<\/code> \u0433\u044d\u043f\u0430 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442.<\/p>\n<p><strong>\u041e\u0431\u0435 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b \u043d\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0432\u0447\u0435\u0440\u0430\u0448\u043d\u0435\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435.<\/strong> \u0421\u043e\u0431\u043b\u0430\u0437\u043d \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c \u0445\u043e\u0434 \u0434\u043d\u044f \u043d\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u043e\u0433\u043e \u0436\u0435 \u0434\u043d\u044f \u0432\u0435\u043b\u0438\u043a \u2014 \u0442\u0430\u043a \u00ab\u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0435\u0435\u00bb. \u041d\u043e \u0442\u043e\u0433\u0434\u0430 \u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c \u0438 \u0437\u043d\u0430\u043c\u0435\u043d\u0430\u0442\u0435\u043b\u044c \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043c\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043b\u0438\u043d\u0435\u0439\u043a\u0430\u043c\u0438: \u043d\u0430 \u0440\u043e\u0441\u0442\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u044b\u0448\u0430\u0435\u0442\u0441\u044f, \u043d\u0430 \u043f\u0430\u0434\u0435\u043d\u0438\u0438 \u0437\u0430\u043d\u0438\u0436\u0430\u0435\u0442\u0441\u044f, \u0438 \u043c\u0435\u0440\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u043d\u0434\u0430, \u0447\u0435\u0433\u043e \u0432 \u0435\u0451 \u0437\u0430\u043c\u044b\u0441\u043b\u0435 \u043d\u0435\u0442.<\/p>\n<p><strong>\u0423 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0451 \u043e\u043a\u043d\u043e.<\/strong> \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u044d\u043f \u0438\u0449\u0435\u0442\u0441\u044f \u043f\u043e \u043d\u0435\u0434\u0435\u043b\u0435 \u2014 \u0442\u0430\u043c \u043b\u043e\u0432\u044f\u0442 \u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u0432\u044b\u0431\u0440\u043e\u0441. \u0410 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430, \u0438 \u043f\u043e \u043d\u0435\u0434\u0435\u043b\u0435 \u043e\u043d\u043e \u043d\u0435 \u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f: \u043e\u0434\u0438\u043d \u043e\u0442\u0447\u0451\u0442, \u0438 \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u044d\u0442\u043e\u0439 \u043d\u0435\u0434\u0435\u043b\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u0440\u0430\u0441\u043f\u0438\u0441\u043a\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043e\u043a\u043d\u043e \u0432 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u0439, \u0430 \u0443 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0430 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u0434\u0435\u043b\u044c\u043d\u043e\u0435. \u0414\u0432\u0430 \u043e\u043a\u043d\u0430 \u0432 \u043e\u0434\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0441\u0442\u0440\u0430\u043d\u043d\u043e \u0440\u043e\u0432\u043d\u043e \u0434\u043e \u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u043a\u0430\u043a \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0448\u044c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043d\u0435 \u043f\u0443\u0442\u0430\u043b\u043e \u0443\u0436\u0435 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435, \u043a\u0430\u0436\u0434\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043e \u0441\u0432\u043e\u0438\u043c \u043e\u043a\u043d\u043e\u043c: <code>max5d 1.50%, avg5d 0.91%, gap\/range20d 0.78<\/code>.<\/p>\n<p><strong>\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u2014 \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0435 \u043f\u0440\u043e\u0448\u043b\u0430.<\/strong> \u0415\u0441\u043b\u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u043e\u043a\u043d\u0430 (<code>MinRatioSessions = 10<\/code>) \u0438\u043b\u0438 \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0445\u043e\u0434 \u043d\u0443\u043b\u0435\u0432\u043e\u0439, \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043d\u0435\u0442. \u0420\u0430\u043d\u044c\u0448\u0435 \u0442\u0430\u043a\u0438\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u043c\u043e\u043b\u0447\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0438 \u0434\u0430\u043b\u044c\u0448\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442. \u042d\u0442\u043e \u043e\u0431\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b: \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435 \u043d\u0430 \u0447\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438, \u2014 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430. \u0414\u0435\u0444\u043e\u043b\u0442 <code>MaxAverageGapRangeRatio = 100<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u00ab\u0444\u0438\u043b\u044c\u0442\u0440 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u00bb \u2014 \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u043e\u0433\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0443\u0436\u0435 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0432\u043e\u043b\u043d\u0443\u0435\u0442.<\/p>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u0438\u043d\u0430\u0447\u0435 \u0435\u0433\u043e \u043d\u0430\u0437\u043e\u0432\u0443\u0442 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445. \u041c\u0435\u0440\u0430 \u0444\u043b\u0430\u0433\u0443\u0435\u0442 \u0438 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u044b\u0435 \u0444\u043e\u043d\u0434\u044b: SPY \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u043e\u043a\u043d\u0435 \u0434\u0430\u0451\u0442 0,49 \u2014 \u0433\u044d\u043f 0,28%, \u0445\u043e\u0434 \u0434\u043d\u044f 0,58%. \u041d\u0435 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043e\u043d \u043f\u043b\u043e\u0445\u043e \u0433\u044d\u043f\u0443\u0435\u0442, \u0430 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0434\u043d\u044f. \u042d\u0442\u043e \u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043c\u0435\u0440\u044b: \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u043a\u0430\u043a\u0430\u044f \u0434\u043e\u043b\u044f \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043c\u0435\u043d\u044f \u043d\u0435\u0442, \u0438 \u0434\u043b\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0441 \u043a\u0440\u043e\u0448\u0435\u0447\u043d\u044b\u043c \u0445\u043e\u0434\u043e\u043c \u044d\u0442\u0430 \u0434\u043e\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u0430 \u043f\u0440\u0438 \u043d\u0438\u0447\u0442\u043e\u0436\u043d\u044b\u0445 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u0430\u0445. \u0423 \u043c\u0435\u043d\u044f \u0432\u043e\u043f\u0440\u043e\u0441 \u0441\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u043d\u044c\u0448\u0435 \u2014 \u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u044f\u0445 \u0441\u0442\u043e\u0438\u0442 \u043c\u0438\u043d\u0438\u043c\u0443\u043c 2% \u0434\u043d\u0435\u0432\u043d\u043e\u0433\u043e \u0445\u043e\u0434\u0430, \u2014 \u043d\u043e \u043f\u043e\u0440\u043e\u0433 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043a\u0430\u043b\u0438\u0431\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439, \u0430 \u043d\u0435 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0438\u0437 \u0447\u0443\u0436\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<h3>\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c: \u0433\u0434\u0435 \u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0431\u0430\u0440 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0432\u0440\u0430\u0442\u044c<\/h3>\n<p>\u041e\u0442\u0431\u043e\u0440 \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043d\u0435\u0447\u0435\u043c \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0423 \u043c\u0435\u043d\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0436\u0443\u0440\u043d\u0430\u043b: \u043a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u044f\u0432\u043a\u0430 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0438 \u0438\u0441\u0445\u043e\u0434 \u2014 \u0432\u044b\u0438\u0433\u0440\u044b\u0448, \u0443\u0431\u044b\u0442\u043e\u043a, \u00ab\u0432\u0445\u043e\u0434 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u00bb \u2014 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439, \u0430 \u043d\u0435 \u0432\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0443\u043a\u0430\u043c\u0438.<\/p>\n<p>\u0422\u0443\u0442 \u0435\u0441\u0442\u044c \u043b\u043e\u0432\u0443\u0448\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0442\u043e\u0438\u0442 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u0438 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u0434\u043e\u043b\u0438 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u043d\u044b\u0445.<\/p>\n<p>\u0420\u0435\u0448\u0430\u0435\u0442 \u0432\u0441\u0451 \u0431\u0430\u0440, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043b\u0435\u0436\u0430\u0442 \u0438 \u0441\u0442\u043e\u043f, \u0438 \u0446\u0435\u043b\u044c. \u0414\u043d\u0435\u0432\u043d\u043e\u0439 \u0431\u0430\u0440 \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0441\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u043d\u044c\u0448\u0435. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u043e\u0432 \u0443\u0433\u0430\u0434\u044b\u0432\u0430\u0435\u0442: \u043a\u0442\u043e-\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0446\u0435\u043b\u044c, \u043a\u0442\u043e-\u0442\u043e \u2014 \u0447\u0442\u043e \u0441\u0442\u043e\u043f, \u043a\u0442\u043e-\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0434\u0435\u043d\u044c. \u042f \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0443\u0433\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0438 \u0441\u0442\u0430\u043b \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0438\u043d\u0443\u0442\u043d\u044b\u0435 \u0431\u0430\u0440\u044b \u0437\u0430 \u0434\u0435\u043d\u044c \u0432\u0445\u043e\u0434\u0430.<\/p>\n<p>\u041e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 86 \u0441\u0434\u0435\u043b\u043e\u043a:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u0431\u043e\u0440 \u043f\u043e \u043c\u0438\u043d\u0443\u0442\u043a\u0430\u043c: 24 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u0430, 63 \u0443\u0431\u044b\u0442\u043a\u0430 \u2014 27,6%;<\/p>\n<\/li>\n<li>\n<p>\u0442\u0435 \u0436\u0435 \u0437\u0430\u044f\u0432\u043a\u0438, \u0442\u043e \u0436\u0435 \u043e\u043a\u043d\u043e, \u0440\u0430\u0437\u0431\u043e\u0440 \u043f\u043e \u0434\u043d\u0435\u0432\u043d\u044b\u043c \u0431\u0430\u0440\u0430\u043c: 42 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u0430, 44 \u0443\u0431\u044b\u0442\u043a\u0430 \u2014 48,8%.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u0432\u043f\u0430\u043b\u043e 62 \u0432\u0435\u0440\u0434\u0438\u043a\u0442\u0430. \u0414\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0443\u0431\u044b\u0442\u043e\u043a \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0441\u044f \u0432 \u0432\u044b\u0438\u0433\u0440\u044b\u0448, \u0442\u0440\u0438 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u0430 \u2014 \u0432 \u0443\u0431\u044b\u0442\u043e\u043a. \u0414\u043e\u0433\u0430\u0434\u043a\u0430 \u043d\u0435 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u0430: \u043e\u043d\u0430 \u043b\u044c\u0441\u0442\u0438\u0442.<\/p>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0437\u0430\u0434\u0435\u0432\u0430\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0434\u0435\u043b\u043a\u0443, \u0430 \u043d\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u044b: \u043c\u043e\u0439 \u0441\u0442\u043e\u043f \u0441\u0442\u043e\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0434\u043d\u0435\u0432\u043d\u043e\u0433\u043e \u0448\u0443\u043c\u0430 \u2014 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0432 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u0434\u043d\u044f, \u2014 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0430\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0451\u043b \u0432\u0445\u043e\u0434, \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438 \u043e\u0431\u0430 \u0432\u044b\u0445\u043e\u0434\u0430. \u0427\u0442\u043e \u0431\u044b \u043d\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u0430 \u0434\u043d\u0435\u0432\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u043e\u043d\u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u044d\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0434\u0435\u043b\u043a\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430.<\/p>\n<p>\u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u043e \u043c\u0438\u043d\u0443\u0442\u043a\u0430\u043c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code>public static IntradayOutcome Resolve(    VirtualOrder order,    IReadOnlyList&lt;IntradayBar&gt; dayBars,    bool alreadyInPosition){    if (dayBars.Count == 0) return IntradayOutcome.Unknown;    var isLong = order.Direction == OrderDirection.Long;    var inPosition = alreadyInPosition;    foreach (var bar in dayBars)    {        var entryBar = false;        if (!inPosition)        {            \/\/ \u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u043c \u0432\u0445\u043e\u0434 \u043f\u043e \u043c\u0438\u043d\u0443\u0442\u043a\u0430\u043c; \u0434\u043e \u043d\u0435\u0433\u043e \u043a\u0430\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u043e\u043f\u0430\/\u0442\u0435\u0439\u043a\u0430 \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f.            var entered = isLong ? bar.High &gt;= order.Entry : bar.Low &lt;= order.Entry;            if (!entered) continue;            inPosition = true;            entryBar = true;        }        var hitStop   = isLong ? bar.Low  &lt;= order.Stop   : bar.High &gt;= order.Stop;        var hitTarget = isLong ? bar.High &gt;= order.Target : bar.Low  &lt;= order.Target;        if (entryBar)        {            \/\/ \u0412\u043d\u0443\u0442\u0440\u0438 \u0441\u0430\u043c\u043e\u0439 \u043c\u0438\u043d\u0443\u0442\u044b \u0432\u0445\u043e\u0434\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043d\u0435 \u0432\u0438\u0434\u0435\u043d, \u043d\u043e \u0432\u0438\u0434\u043d\u0430 \u0434\u043e\u0440\u043e\u0433\u0430: \u0446\u0435\u043d\u0430 \u0448\u043b\u0430            \/\/ \u043a Entry \u043e\u0442 Open, \u0437\u043d\u0430\u0447\u0438\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u041c\u0415\u0416\u0414\u0423 \u043d\u0438\u043c\u0438 \u043e\u043d\u0430 \u043f\u0440\u043e\u0448\u043b\u0430 \u0414\u041e \u0432\u0445\u043e\u0434\u0430 \u2014 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0433\u043e            \/\/ \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0435\u043b\u044c\u0437\u044f.            if (TradeAnalyzer.PassedBeforeEntry(order.Stop,   bar.Open, order.Entry, isLong)) hitStop   = false;            if (TradeAnalyzer.PassedBeforeEntry(order.Target, bar.Open, order.Entry, isLong)) hitTarget = false;        }        if (hitStop &amp;&amp; hitTarget) continue;        if (hitStop)   return IntradayOutcome.Stopped;        if (hitTarget) return IntradayOutcome.TargetHit;    }    \/\/ \u2026}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041c\u0438\u043d\u0443\u0442\u043a\u0430 \u2014 \u043d\u0435 \u043f\u0430\u043d\u0430\u0446\u0435\u044f, \u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0451 \u0442\u0430 \u0436\u0435 \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0432 \u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u0435. \u041f\u043e\u043f\u0440\u0430\u0432\u043a\u0430 <code>PassedBeforeEntry<\/code> \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f (ICLR, 3 \u0430\u0432\u0433\u0443\u0441\u0442\u0430): \u0448\u043e\u0440\u0442 \u0432\u043b\u0435\u0442\u0435\u043b \u0432 \u0446\u0435\u043d\u0443 \u0432\u0445\u043e\u0434\u0430 \u043e\u0434\u043d\u043e\u0439 \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u043c\u0438\u043d\u0443\u0442\u043e\u0439 \u0441\u0432\u0435\u0440\u0445\u0443, \u043c\u0438\u043d\u0443\u0442\u043d\u044b\u0439 <code>High<\/code> \u044d\u0442\u043e\u0439 \u0436\u0435 \u043c\u0438\u043d\u0443\u0442\u044b \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u043b \u0441\u0442\u043e\u043f, \u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0432\u044b\u0448\u0435 \u0432\u0445\u043e\u0434\u0430, \u2014 \u0438 \u0441\u0434\u0435\u043b\u043a\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u043b\u0430\u0441\u044c \u0441\u0442\u043e\u043f\u043d\u0443\u0442\u043e\u0439, \u0445\u043e\u0442\u044f \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u0430\u0441\u0430\u043d\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0435\u0449\u0451 \u043d\u0435 \u0431\u044b\u043b\u043e. \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0437\u0434\u0435\u0441\u044c \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439: \u0446\u0435\u043d\u0430 \u0448\u043b\u0430 \u043a <code>Entry<\/code> \u043e\u0442 <code>Open<\/code>, \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u0441\u0451, \u0447\u0442\u043e \u043b\u0435\u0436\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438, \u043e\u043d\u0430 \u043f\u0440\u043e\u0448\u043b\u0430 \u0434\u043e \u0432\u0445\u043e\u0434\u0430.<\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435 \u0435\u0449\u0451 \u0442\u0438\u043f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430. <code>IntradayOutcome<\/code> \u2014 \u044d\u0442\u043e \u043d\u0435 <code>bool?<\/code> \u0438 \u043d\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 \u0441\u0434\u0435\u043b\u043a\u0438:<\/p>\n<pre><code>public enum IntradayOutcome{    \/\/\/ \u041c\u0438\u043d\u0443\u0442\u043e\u043a \u043d\u0435\u0442 \u0438\u043b\u0438 \u0432\u0445\u043e\u0434 \u043f\u043e \u043d\u0438\u043c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u2014 \u0440\u0435\u0448\u0430\u0442\u044c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u044d\u0432\u0440\u0438\u0441\u0442\u0438\u043a\u043e\u0439.    Unknown,    Stopped,    TargetHit,    \/\/\/ \u0412\u0445\u043e\u0434 \u0431\u044b\u043b, \u043d\u043e \u0437\u0430 \u0434\u0435\u043d\u044c \u043d\u0438 \u043e\u0434\u0438\u043d \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b: \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439.    NoExit,}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0420\u0430\u043d\u044c\u0448\u0435 \u00ab\u043c\u0438\u043d\u0443\u0442\u043e\u043a \u043d\u0435\u0442\u00bb \u0438 \u00ab\u0437\u0430 \u0434\u0435\u043d\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e\u00bb \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c <code>null<\/code>, \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0442\u044c \u0438\u0445 \u0431\u044b\u043b\u043e \u043d\u0435\u043b\u044c\u0437\u044f, \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0432\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u0430\u043c\u043e\u043c \u0441\u043f\u043e\u0440\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0434\u0435\u0442\u044b \u043e\u0431\u0430 \u0443\u0440\u043e\u0432\u043d\u044f. \u0420\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0437\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432\u0441\u0435\u0433\u0434\u0430.<\/p>\n<h3>\u041c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u044f\u0432\u043a\u0438: \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430\u0434\u043e \u0442\u0443 \u0437\u0430\u044f\u0432\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0435<\/h3>\n<p>\u0412\u0442\u043e\u0440\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u044b \u0432\u0440\u0443\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u2014 \u043c\u043e\u0434\u0435\u043b\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u042f \u0432\u0445\u043e\u0436\u0443 \u0441\u0442\u043e\u043f-\u043b\u0438\u043c\u0438\u0442\u043e\u043c, \u0438 \u043e\u043d \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u043b\u044e\u0431\u043e\u0439 \u0446\u0435\u043d\u0435:<\/p>\n<pre><code>private static decimal? Fill(VirtualOrder order, PriceBar bar, bool isBreakout, bool isLong){    if (!isBreakout)    {        \/\/ Buy-limit \u043d\u0438\u0436\u0435 \u0440\u044b\u043d\u043a\u0430 (\u0438\u043b\u0438 sell-limit \u0432\u044b\u0448\u0435): \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0446\u0435\u043d\u0430 \u0434\u043e\u0448\u043b\u0430,        \/\/ \u0438 \u0433\u044d\u043f \u0432 \u0441\u0432\u043e\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0434\u0430\u0451\u0442 \u0446\u0435\u043d\u0443 \u043b\u0443\u0447\u0448\u0435 \u043f\u043b\u0430\u043d\u043e\u0432\u043e\u0439.        var reached = isLong ? bar.Low &lt;= order.Entry : bar.High &gt;= order.Entry;        if (!reached) return null;        return isLong ? Math.Min(order.Entry, bar.Open) : Math.Max(order.Entry, bar.Open);    }    \/\/ \u0421\u0442\u043e\u043f \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0431\u044b: \u0446\u0435\u043d\u0430 \u0434\u043e\u0448\u043b\u0430 \u0434\u043e Entry \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0441\u0434\u0435\u043b\u043a\u0438.    var stopTouched = isLong ? bar.High &gt;= order.Entry : bar.Low &lt;= order.Entry;    if (!stopTouched) return null;    var slip  = LimitOffset(order);    var limit = isLong ? order.Entry + slip : order.Entry - slip;    \/\/ \u0426\u0435\u043d\u0430 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f: \u043d\u0430 \u0433\u044d\u043f\u0435 \u2014 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435, \u0438\u043d\u0430\u0447\u0435 \u0441\u0430\u043c \u0443\u0440\u043e\u0432\u0435\u043d\u044c.    var atTrigger = isLong ? Math.Max(order.Entry, bar.Open) : Math.Min(order.Entry, bar.Open);    if (isLong ? atTrigger &lt;= limit : atTrigger &gt;= limit) return atTrigger;    \/\/ \u041e\u0442\u043a\u0440\u044b\u043b\u0438\u0441\u044c \u0437\u0430 \u043b\u0438\u043c\u0438\u0442\u043e\u043c. \u0417\u0430\u044f\u0432\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0446\u0435\u043d\u0430 \u0432\u0435\u0440\u043d\u0443\u043b\u0430\u0441\u044c \u043a \u043d\u0435\u043c\u0443.    var returned = isLong ? bar.Low &lt;= limit : bar.High &gt;= limit;    return returned ? limit : null;}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0442\u043e\u043f-\u043c\u0430\u0440\u043a\u0435\u0442 \u043d\u0430 \u0433\u044d\u043f\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044e, \u043a\u0430\u043a\u0438\u043c \u0431\u044b \u043f\u043b\u043e\u0445\u0438\u043c \u043e\u043d\u043e \u043d\u0438 \u0431\u044b\u043b\u043e; \u0441\u0442\u043e\u043f-\u043b\u0438\u043c\u0438\u0442 \u0445\u0443\u0436\u0435 \u043b\u0438\u043c\u0438\u0442\u043d\u043e\u0439 \u0446\u0435\u043d\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0432\u0441\u0435 \u2014 \u0446\u0435\u043d\u0430 \u0443\u0448\u043b\u0430, \u0437\u0430\u044f\u0432\u043a\u0430 \u0441\u0442\u043e\u0438\u0442. \u041f\u043e\u043a\u0430 \u0440\u0430\u0437\u0431\u043e\u0440 \u0441\u0447\u0438\u0442\u0430\u043b \u043f\u043e \u0441\u0442\u043e\u043f-\u043c\u0430\u0440\u043a\u0435\u0442\u0443, \u0432 \u0436\u0443\u0440\u043d\u0430\u043b \u043f\u043e\u043f\u0430\u0434\u0430\u043b\u0438 \u0441\u0434\u0435\u043b\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u0436\u0438\u0437\u043d\u0438 \u043d\u0435 \u0431\u044b\u043b\u043e \u0431\u044b: XLE 14 \u0430\u0432\u0433\u0443\u0441\u0442\u0430 \u00ab\u0437\u0430\u043f\u043e\u043b\u043d\u044f\u043b\u0441\u044f\u00bb \u043f\u043e 61,37 \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 61,1804, \u0445\u043e\u0442\u044f \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u043d\u044f 61,25 \u0434\u043e \u043b\u0438\u043c\u0438\u0442\u0430 \u043d\u0435 \u0434\u043e\u0448\u0451\u043b.<\/p>\n<p>\u0428\u0438\u0440\u0438\u043d\u0430 \u043e\u043a\u043d\u0430 \u0432\u0445\u043e\u0434\u0430 \u2014 \u044d\u0442\u043e \u043b\u044e\u0444\u0442 \u0441\u0430\u043c\u043e\u0433\u043e \u043e\u0440\u0434\u0435\u0440\u0430, \u0430 \u043d\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430: \u043f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0434\u0430 \u0443 \u043c\u0435\u043d\u044f \u0440\u0430\u0432\u0435\u043d \u0442\u043e\u0447\u043a\u0435 \u0432\u0445\u043e\u0434\u0430 \u043f\u043b\u044e\u0441 \u043b\u044e\u0444\u0442, \u0430 \u043b\u044e\u0444\u0442 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u0442\u043e\u043f\u0430 (\u043f\u0440\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0448\u0435\u0441\u0442\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0440\u0438\u0441\u043a\u0430). \u041b\u044e\u0444\u0442 \u0443\u0437\u043a\u0438\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u0438\u043c\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0447\u0442\u0438 \u043b\u044e\u0431\u043e\u0439 \u0433\u044d\u043f \u2014 \u0438 \u044d\u0442\u043e \u043d\u0435 \u0438\u0437\u044a\u044f\u043d \u043c\u043e\u0434\u0435\u043b\u0438, \u0430 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0432\u0445\u043e\u0434\u0438\u0442\u044c.<\/p>\n<p>\u0420\u044f\u0434\u043e\u043c \u0434\u0432\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u043e\u0436\u0435 \u0432\u044b\u0447\u0438\u0449\u0430\u044e\u0442 \u0438\u0437 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0434\u0435\u043b\u043a\u0438:<\/p>\n<pre><code>\/\/\/ \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0432\u0435\u0440\u043d\u0430\u0439\u0442-\u0433\u044d\u043f \u0431\u0430\u0440\u0430 \u0432\u0445\u043e\u0434\u0430, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0440\u0434\u0435\u0440 \u0435\u0449\u0451 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f. \u0411\u043e\u043b\u044c\u0448\u0435 \u2014\/\/\/ \u0430\u043a\u0446\u0438\u044f \u043e\u0442\u043a\u0440\u044b\u043b\u0430\u0441\u044c \u00ab\u0441\u0438\u043b\u044c\u043d\u043e \u0441 \u0433\u044d\u043f\u043e\u043c\u00bb \u0432 \u043b\u044e\u0431\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443: \u0441\u0435\u0442\u0430\u043f \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u0435\u043d, \u043e\u0440\u0434\u0435\u0440 \u043e\u0442\u043c\u0435\u043d\u0451\u043d.public const decimal MaxEntryOvernightGapPercent = 2.0m;\/\/\/ \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u043e\u0440\u0434\u0435\u0440 \u0436\u0434\u0451\u0442 \u0432\u0445\u043e\u0434\u0430. \u041e\u0434\u0438\u043d: \u043e\u0440\u0434\u0435\u0440 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043f\u043e\u0434 \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0433\u043e\/\/\/ \u0434\u043d\u044f, \u0438 \u0435\u0441\u043b\u0438 \u043d\u0430\u0437\u0430\u0432\u0442\u0440\u0430 \u0432\u0445\u043e\u0434 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u2014 \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0443\u0436\u0435 \u0434\u0440\u0443\u0433\u0430\u044f, \u0436\u0434\u0430\u0442\u044c \u043d\u0435\u0447\u0435\u0433\u043e.public const int DefaultEntryValidityDays = 1;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0431\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0434\u043b\u044f \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0438 \u0434\u043b\u044f \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0430 \u2014 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e: \u0431\u044d\u043a\u0442\u0435\u0441\u0442 \u043e\u0431\u044f\u0437\u0430\u043d \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0442\u0443 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0442\u043e\u0440\u0433\u0443\u044e\u0442, \u0438\u043d\u0430\u0447\u0435 \u0435\u0433\u043e \u0446\u0438\u0444\u0440\u044b \u043d\u0435 \u043f\u0440\u043e \u043d\u0435\u0451.<\/p>\n<p>\u0418 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f, \u0441\u0442\u043e\u0438\u0432\u0448\u0430\u044f \u043f\u0430\u0440\u044b \u0432\u0435\u0447\u0435\u0440\u043e\u0432, \u2014 \u043a\u0430\u043a\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0439 \u0434\u0435\u043d\u044c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043d\u0451\u043c \u0437\u0430\u044f\u0432\u043a\u0438:<\/p>\n<pre><code>internal static DateTime TradingDateOf(DateTime createdAt){    var utc = createdAt.Kind == DateTimeKind.Utc ? createdAt : createdAt.ToUniversalTime();    var eastern = TimeZoneInfo.ConvertTimeFromUtc(utc, Eastern);    return eastern.TimeOfDay &lt; SessionOpen ? eastern.Date.AddDays(-1) : eastern.Date;}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u0430\u0442\u044b \u0431\u0430\u0440\u043e\u0432 \u2014 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0435 \u0434\u043d\u0438 \u041d\u044c\u044e-\u0419\u043e\u0440\u043a\u0430, \u0430 \u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0440\u0434\u0435\u0440\u0430 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u043d\u044b\u043c. \u041e\u0440\u0434\u0435\u0440, \u0437\u0430\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0434\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0442\u043e\u0440\u0433\u043e\u0432, \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0441\u0435\u0441\u0441\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0436\u0435 \u0437\u0430\u043a\u0440\u044b\u043b\u0430\u0441\u044c, \u0442\u043e \u0435\u0441\u0442\u044c \u043a \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c\u0443 \u0434\u043d\u044e. \u0411\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u0434\u0432\u0438\u0433\u0430 \u0432\u0435\u0447\u0435\u0440 \u043f\u043e \u0442\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (21:16 = 00:16 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0434\u043d\u044f \u0432 \u041d\u044c\u044e-\u0419\u043e\u0440\u043a\u0435) \u0434\u0430\u0432\u0430\u043b \u0437\u0430\u0432\u0442\u0440\u0430\u0448\u043d\u044e\u044e \u0434\u0430\u0442\u0443, \u0438 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u044f \u2014 \u0440\u043e\u0432\u043d\u043e \u0442\u0430, \u0440\u0430\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0440\u0434\u0435\u0440 \u0438 \u0441\u0442\u0430\u0432\u0438\u043b\u0441\u044f, \u2014 \u0432\u044b\u043f\u0430\u0434\u0430\u043b\u0430 \u0438\u0437 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u0445\u043e\u0434\u0430. \u041f\u043e\u0439\u043c\u0430\u043d\u043e \u043d\u0430 \u0436\u0438\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445: \u0434\u0432\u0435 \u0437\u0430\u044f\u0432\u043a\u0438 \u0432\u0445\u043e\u0434 \u0437\u0430\u0434\u0435\u043b\u0438, \u0430 \u0440\u0430\u0437\u0431\u043e\u0440 \u043f\u043e\u043c\u0435\u0442\u0438\u043b \u0438\u0445 \u043e\u0442\u043c\u0435\u043d\u0451\u043d\u043d\u044b\u043c\u0438.<\/p>\n<h3>\u0411\u044d\u043a\u0442\u0435\u0441\u0442: \u0433\u0434\u0435 \u043f\u0430\u043c\u044f\u0442\u044c \u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u0440\u0430\u043d\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/h3>\n<p>\u0411\u044d\u043a\u0442\u0435\u0441\u0442 \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u0442 \u0442\u0435 \u0436\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438 \u043f\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0434\u0435\u043d\u044c \u0437\u0430 \u0434\u043d\u0451\u043c. \u041f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0447\u0435\u0441\u0442\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u043b\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0434\u0430\u0442\u0443 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0440\u0430\u043d\u0433\u043e\u0432 \u0438 \u0443\u043c\u0435\u0440\u043b\u0430 \u043d\u0430 \u043f\u0430\u043c\u044f\u0442\u0438:<\/p>\n<pre><code>\/\/\/ \u0420\u0430\u043d\u044c\u0448\u0435 \u043f\u0440\u043e\u0433\u043e\u043d \u0441 RS-\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u043c \u0434\u0435\u0440\u0436\u0430\u043b Dictionary&lt;string,int&gt; \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0434\u0430\u0442\u0443 \u043e\u043a\u043d\u0430:\/\/\/ \u0437\u0430\u043f\u0438\u0441\u044c \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0441\u0442\u043e\u0438\u0442 ~50 \u0431\u0430\u0439\u0442, \u043d\u0430 ~16 \u0442\u044b\u0441. \u0442\u0438\u043a\u0435\u0440\u043e\u0432 \u044d\u0442\u043e ~800 \u041a\u0411 \u043d\u0430 \u0434\u0430\u0442\u0443,\/\/\/ \u0430 \u0434\u0430\u0442 \u0432 \u043e\u043a\u043d\u0435 \u0441\u043e\u0442\u043d\u0438 \u2014 \u043e\u0442\u0441\u044e\u0434\u0430 \u0441\u043e\u0442\u043d\u0438 \u041c\u0411 \u043d\u0430 \u043f\u0440\u043e\u0433\u043e\u043d. \u0417\u0434\u0435\u0441\u044c \u0442\u0438\u043a\u0435\u0440 \u0437\u0430\u043c\u0435\u043d\u0451\u043d \u043d\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\/\/\/ \u0432 \u043e\u0431\u0449\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u0435, \u0430 \u0440\u0430\u043d\u0433 \u2014 \u043d\u0430 \u0431\u0430\u0439\u0442 (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 0..100): ~16 \u041a\u0411 \u043d\u0430 \u0434\u0430\u0442\u0443.public sealed class RsRankTable{    private const byte NoRank = byte.MaxValue;    private readonly Dictionary&lt;string, int&gt; _indexByTicker;    private readonly Dictionary&lt;DateTime, byte[]&gt; _ranksByDate;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u044f\u0442\u044c\u0434\u0435\u0441\u044f\u0442 \u0440\u0430\u0437 \u043c\u0435\u043d\u044c\u0448\u0435 \u043d\u0430 \u0440\u043e\u0432\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0438 \u0431\u0435\u0437 \u0435\u0434\u0438\u043d\u043e\u0439 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u0438: \u0442\u0438\u043a\u0435\u0440 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0432\u043e \u0432\u0441\u0435 \u0434\u0430\u0442\u044b, \u0437\u043d\u0430\u0447\u0438\u0442 \u0435\u0433\u043e \u043c\u0435\u0441\u0442\u043e \u2014 \u043e\u0431\u0449\u0438\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u0430 \u043d\u0435 \u043a\u043e\u043f\u0438\u044f \u043a\u043b\u044e\u0447\u0430 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0434\u0430\u0442\u0435. \u0420\u0430\u043d\u0433 \u043f\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e \u043b\u0435\u0436\u0438\u0442 \u0432 0\u2026100, \u0437\u043d\u0430\u0447\u0438\u0442 \u0435\u0433\u043e \u043c\u0435\u0441\u0442\u043e \u2014 \u0431\u0430\u0439\u0442, \u0430 \u043d\u0435 <code>int<\/code>. \u0421\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>byte.MaxValue<\/code> \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442 \u00ab\u043d\u0435 \u0440\u0430\u043d\u0436\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f\u00bb \u043e\u0442 \u00ab\u0440\u0430\u043d\u0433 \u043d\u043e\u043b\u044c\u00bb \u2014 \u043f\u0443\u0442\u0430\u0442\u044c \u0438\u0445 \u043d\u0435\u043b\u044c\u0437\u044f, \u043d\u043e\u043b\u044c \u044d\u0442\u043e \u0445\u0443\u0434\u0448\u0430\u044f \u0431\u0443\u043c\u0430\u0433\u0430 \u0440\u044b\u043d\u043a\u0430, \u0430 \u043d\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<h3>\u0427\u0435\u043c \u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e, \u0447\u0442\u043e \u043e\u0442\u0431\u043e\u0440 \u0447\u0435\u0433\u043e-\u0442\u043e \u0441\u0442\u043e\u0438\u0442<\/h3>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0442\u043e, \u0440\u0430\u0434\u0438 \u0447\u0435\u0433\u043e \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430.<\/p>\n<p>\u0418\u043c\u0435\u044f \u0436\u0443\u0440\u043d\u0430\u043b, \u044f \u0441\u0442\u0430\u043b \u0438\u0441\u043a\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u043d\u044b\u0435 \u0441\u0434\u0435\u043b\u043a\u0438 \u043e\u0442 \u0443\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u0445. \u0420\u0430\u043d\u0433 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u043b\u044b \u043d\u0430 \u0432\u0445\u043e\u0434\u0435, \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0437\u044b, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u0441\u0435\u043a\u0442\u043e\u0440, \u0448\u0438\u0440\u0438\u043d\u0430 \u0434\u043d\u0435\u0432\u043d\u043e\u0433\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430, \u0431\u043b\u0438\u0437\u043e\u0441\u0442\u044c \u043a \u0433\u043e\u0434\u043e\u0432\u043e\u043c\u0443 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0443 \u2014 \u0432\u0441\u0451, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0437\u043d\u0430\u0435\u0442 \u043e \u0431\u0443\u043c\u0430\u0433\u0435 <strong>\u0434\u043e<\/strong> \u0432\u0445\u043e\u0434\u0430.<\/p>\n<p>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043c\u0435\u0434\u0438\u0430\u043d\u044b \u0434\u0432\u0443\u0445 \u0433\u0440\u0443\u043f\u043f \u0438 \u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u0440\u044b\u0432\u0443 \u2014 \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u043c\u0430\u043d\u0443\u0442\u044c \u0441\u0435\u0431\u044f \u043d\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0432 \u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0441\u0434\u0435\u043b\u043e\u043a. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u044f\u0434\u043e\u043c \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u043c \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0434\u0430\u0451\u0442 \u0447\u0438\u0441\u0442\u0430\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u044c. \u041c\u0435\u0442\u043a\u0438 \u00ab\u0432\u044b\u0438\u0433\u0440\u044b\u0448\/\u0443\u0431\u044b\u0442\u043e\u043a\u00bb \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0438\u0432\u0430\u044e\u0442\u0441\u044f, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043c\u0435\u0441\u0442\u0435:<\/p>\n<pre><code>private const int Shuffles = 5000;\/\/ \u041c\u0435\u0442\u043a\u0438 \u0438\u0441\u0445\u043e\u0434\u043e\u0432 \u043b\u0435\u0436\u0430\u0442 \u043f\u043e\u0434\u0440\u044f\u0434, \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0438 \u0440\u0435\u0436\u0443\u0442\u0441\u044f \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c \u043a\u043e\u0440\u0437\u0438\u043d:\/\/ \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u0439 \u0436\u0435 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u043d\u0430 \u0442\u0435 \u0436\u0435 \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0433\u0440\u0443\u043f\u043f\u044b.var labels = new bool[trades];for (int i = 0; i &lt; wins; i++) labels[i] = true;var random = new Random(Seed);var atLeastAsFar = 0;for (int shuffle = 0; shuffle &lt; Shuffles; shuffle++){    Shuffle(labels, random);    \/\/ \u2026\u0440\u0430\u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043a\u0438 \u043f\u043e \u043a\u043e\u0440\u0437\u0438\u043d\u0430\u043c \u0442\u0435\u0445 \u0436\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432    if (Deviation(winsPerBucket, sizes, wins, trades) &gt;= observed) atLeastAsFar++;}return Round((decimal)(atLeastAsFar + 1) \/ (Shuffles + 1));<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0427\u0435\u0442\u044b\u0440\u0435 \u0434\u0435\u0442\u0430\u043b\u0438, \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u0435\u043d\u044f\u0435\u0442 \u043e\u0442\u0432\u0435\u0442.<\/p>\n<p><strong>\u041c\u0435\u0440\u0430 \u0440\u0430\u0437\u043b\u0451\u0442\u0430 \u2014 \u0441\u0443\u043c\u043c\u0430 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0439 \u043e\u0442 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0433\u043e, \u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u043d\u0430 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0435:<\/strong><\/p>\n<pre><code>private static double Deviation(int[] winsPerBucket, int[] sizes, int wins, int trades){    var share = (double)wins \/ trades;    var total = 0.0;    for (int bucket = 0; bucket &lt; sizes.Length; bucket++)    {        var expected = sizes[bucket] * share;        var gap      = winsPerBucket[bucket] - expected;        total += gap * gap \/ Math.Max(expected, 1e-9);    }    return total;}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0435 \u2014 \u043d\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u0435. \u0411\u0435\u0437 \u043d\u0435\u0451 \u043a\u043e\u0440\u0437\u0438\u043d\u0430 \u0438\u0437 \u0442\u0440\u0451\u0445 \u0441\u0434\u0435\u043b\u043e\u043a \u0441\u043e \u00ab100% \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u043d\u044b\u0445\u00bb \u043f\u0435\u0440\u0435\u0432\u0435\u0448\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u0440\u0437\u0438\u043d\u0443 \u0438\u0437 \u0442\u0440\u0438\u0434\u0446\u0430\u0442\u0438, \u0430 \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u0440\u0437\u0438\u043d \u0432 \u0436\u0443\u0440\u043d\u0430\u043b\u0435 \u043f\u043e\u043b\u043d\u043e: \u0441\u0435\u043a\u0442\u043e\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044f \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u043b \u0442\u0440\u0438\u0436\u0434\u044b, \u0434\u0430\u0451\u0442 \u00ab\u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u00bb \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430.<\/p>\n<p><strong>\u0421\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u0430 \u043d\u0435 \u043d\u0430 \u043a\u043e\u0440\u0437\u0438\u043d\u0443.<\/strong> \u0412\u043e\u043f\u0440\u043e\u0441 \u00ab\u0431\u044b\u0432\u0430\u0435\u0442 \u043b\u0438 \u0443 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u0442\u0430\u043a\u043e\u0439 \u0440\u0430\u0437\u0431\u0440\u043e\u0441 \u043f\u043e \u0434\u043e\u043b\u0435 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u00bb \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0439; \u0432\u043e\u043f\u0440\u043e\u0441 \u00ab\u0431\u044b\u0432\u0430\u0435\u0442 \u043b\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0432\u043e\u0442 \u044d\u0442\u0430 \u043a\u043e\u0440\u0437\u0438\u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0445\u043e\u0440\u043e\u0448\u0435\u0439\u00bb \u2014 \u043d\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u043e\u043d\u0430 \u043a\u0430\u043a \u0440\u0430\u0437 \u0437\u0430 \u0442\u043e, \u0447\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043b\u0443\u0447\u0448\u0435\u0439.<\/p>\n<p><strong>\u041f\u043e\u043f\u0440\u0430\u0432\u043a\u0430 <\/strong><code><strong>+1<\/strong><\/code><strong> \u0432 \u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u0435 \u0438 \u0437\u043d\u0430\u043c\u0435\u043d\u0430\u0442\u0435\u043b\u0435.<\/strong> \u0411\u0435\u0437 \u043d\u0435\u0451 \u043f\u0440\u0438\u0437\u043d\u0430\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043b\u0430 \u043d\u0438 \u0440\u0430\u0437\u0443, \u043f\u043e\u043b\u0443\u0447\u0430\u043b \u0431\u044b \u0440\u043e\u0432\u043d\u043e \u043d\u043e\u043b\u044c \u2014 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u044f\u0442\u044c \u0442\u044b\u0441\u044f\u0447 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442. \u0421 \u043f\u043e\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e 1\/5001, \u0438 \u044d\u0442\u043e \u0447\u0435\u0441\u0442\u043d\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0435\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u0430: \u0447\u0442\u043e\u0431\u044b \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435, \u043d\u0443\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a.<\/p>\n<p><strong>\u0417\u0435\u0440\u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043e.<\/strong> \u041e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0436\u0443\u0440\u043d\u0430\u043b \u043e\u0431\u044f\u0437\u0430\u043d \u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043e\u0442\u0432\u0435\u0442: \u0438\u043d\u0430\u0447\u0435 \u043a \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u0438 \u0434\u0440\u043e\u0436\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u0430, \u0438 \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u00ab\u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0441\u043b\u0430\u0431\u044b\u0439\u00bb \u043e\u0442 \u00ab\u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0430\u043b\u043e\u0441\u044c \u0438\u043d\u0430\u0447\u0435\u00bb \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0435\u043b\u044c\u0437\u044f.<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: <strong>\u043d\u0435 \u043d\u0430\u0448\u043b\u043e\u0441\u044c \u043d\u0438\u0447\u0435\u0433\u043e.<\/strong> \u041d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430 \u0441 \u0434\u043e\u043b\u0435\u0439 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u043d\u0438\u0436\u0435 0,5. \u042d\u0442\u043e \u043d\u0435 \u00ab\u0441\u043b\u0430\u0431\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u00bb, \u044d\u0442\u043e \u0435\u0433\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435: \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0442\u043e\u0439 \u0436\u0435 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u0430\u0451\u0442 \u0440\u0430\u0437\u0440\u044b\u0432 \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0433\u043e.<\/p>\n<p>\u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f \u2014 \u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a, \u2014 \u0438 \u043d\u0430 \u043d\u0435\u0439 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0438 \u043d\u0435 \u0434\u043e\u043a\u0430\u0436\u0435\u0448\u044c. \u041d\u043e \u0432\u044b\u0432\u043e\u0434 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0435\u0441\u0442\u044c, \u0438 \u043e\u043d \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439: \u043b\u044e\u0431\u0430\u044f \u043c\u043e\u044f \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0432\u0438\u0434\u0430 \u00ab\u0432\u043e\u0442 \u044d\u0442\u0438 \u0441\u0435\u0442\u0430\u043f\u044b \u043b\u0443\u0447\u0448\u0435\u00bb \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u0447\u0435\u043c, \u043a\u0440\u043e\u043c\u0435 \u043f\u0430\u043c\u044f\u0442\u0438, \u0430 \u043f\u0430\u043c\u044f\u0442\u044c \u0432 \u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0447\u0435\u0433\u043e \u0441\u0442\u043e\u0438\u0442.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0432 \u0432\u043e\u0440\u043e\u043d\u043a\u0435 \u0443 \u043c\u0435\u043d\u044f \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0430 \u0441\u043e\u0440\u0442\u0430. \u041f\u0435\u0440\u0432\u044b\u0439 \u2014 \u043f\u0440\u043e \u0444\u0438\u0437\u0438\u043a\u0443: \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0432 \u044d\u0442\u043e\u0439 \u0431\u0443\u043c\u0430\u0433\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u0442\u044c (\u043e\u0431\u044a\u0451\u043c, \u0446\u0435\u043d\u0430, \u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0445\u043e\u0434, \u0433\u044d\u043f\u044b). \u0418\u0445 \u044f \u0433\u043e\u0442\u043e\u0432 \u0437\u0430\u0449\u0438\u0449\u0430\u0442\u044c: \u043e\u043d\u0438 \u043d\u0435 \u043f\u0440\u043e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u0435, \u0430 \u043f\u0440\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u043c\u043e\u0441\u0442\u044c, \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043d\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u043e\u0439, \u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430. \u0412\u0442\u043e\u0440\u043e\u0439 \u2014 \u043f\u0440\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0431\u0443\u043c\u0430\u0433\u0438 (\u0442\u0440\u0435\u043d\u0434, \u043e\u0442\u043a\u0430\u0442, \u0440\u0430\u043d\u0433 \u0441\u0438\u043b\u044b). \u041e\u043d\u0438 \u043f\u043e\u043a\u0430 \u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u043d\u0430 \u0432\u0435\u0440\u0435, \u0438 \u044f \u044d\u0442\u043e \u043f\u0440\u043e \u043d\u0438\u0445 \u0437\u043d\u0430\u044e.<\/p>\n<p>\u0418 \u0435\u0449\u0451 \u043e\u0434\u043d\u043e, \u043f\u0440\u043e \u0434\u043e\u043b\u0438 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u043d\u044b\u0445 \u0432\u043e\u043e\u0431\u0449\u0435: \u0432\u043e \u0447\u0442\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f 27,6%, \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f \u0446\u0435\u043b\u0438, \u0430 \u043e\u043d \u2014 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430, \u0430 \u043d\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043c\u0438\u0440\u0430. \u0423 \u043c\u0435\u043d\u044f \u0446\u0435\u043b\u044c 3R, \u0431\u0435\u0437\u0443\u0431\u044b\u0442\u043e\u043a \u043e\u043a\u043e\u043b\u043e 25%, \u0438 \u0442\u0435 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043c\u0435\u0436\u0434\u0443 \u0434\u043d\u0435\u0432\u043d\u044b\u043c \u0438 \u043c\u0438\u043d\u0443\u0442\u043d\u044b\u043c \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c \u2014 \u0440\u043e\u0432\u043d\u043e \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043b\u0430\u0442\u0438\u0442, \u0438 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435\u0442. \u041f\u0440\u0438 \u0446\u0435\u043b\u0438 1R \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b, \u0438 \u0442\u043e \u0436\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0435 \u043b\u044f\u0436\u0435\u0442 \u0432 \u0434\u0440\u0443\u0433\u043e\u0435 \u043c\u0435\u0441\u0442\u043e.<\/p>\n<h3>\u0427\u0435\u0433\u043e \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043d\u0435\u0442 \u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442<\/h3>\n<p>\u041f\u043e\u0440\u0442 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. WinForms \u2014 \u043d\u0435 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0438\u0439 \u0432\u044b\u0431\u043e\u0440, \u0430 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u044f \u0443\u043c\u0435\u044e \u043d\u0430 \u043d\u0451\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u043e, \u0430 \u043e\u043a\u043d\u043e \u0441 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u043c \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0435\u043c\u0443 \u043f\u043e \u0441\u0438\u043b\u0430\u043c.<\/p>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b\u044b \u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u00ab\u043f\u043e\u043a\u0443\u043f\u0430\u0439\u00bb. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442; \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0447\u0435\u043b\u043e\u0432\u0435\u043a. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043d\u0435 \u043a\u043e\u0441\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f: \u044f \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u043d\u0438 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0432\u0445\u043e\u0434\u0430 \u0432 \u043c\u043e\u0451\u043c \u0436\u0443\u0440\u043d\u0430\u043b\u0435 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u043d\u044b\u0435 \u0441\u0434\u0435\u043b\u043a\u0438 \u043e\u0442 \u0443\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u0445, \u0438 \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u0432\u0438\u0434\u043e\u043c \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0442\u043e, \u0447\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e, \u2014 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435, \u0447\u0435\u043c \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c, \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u044f, \u043e\u0431\u043b\u0430\u043a\u043e. \u0414\u0430\u043d\u043d\u044b\u0435 \u043b\u0435\u0436\u0430\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0443, \u0447\u0435\u0439 \u043a\u043b\u044e\u0447 \u0432\u044b \u0432\u0432\u0435\u043b\u0438.<\/p>\n<h3>\u0427\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0431\u0440\u0430\u0442\u044c<\/h3>\n<p><strong>\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0432 \u043a\u0430\u043a\u0438\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u0445 \u0437\u0430\u0434\u0430\u043d\u044b \u0432\u0430\u0448\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0438 \u0442\u043e \u043b\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u043d\u0438 \u0438\u0437\u043c\u0435\u0440\u044f\u044e\u0442, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u044b \u0438\u043c\u0435\u043b\u0438 \u0432 \u0432\u0438\u0434\u0443.<\/strong> \u0423 \u043c\u0435\u043d\u044f \u0444\u0438\u043b\u044c\u0442\u0440 \u0433\u044d\u043f\u043e\u0432 \u0431\u044b\u043b \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u0446\u0435\u043d\u044b \u2014 \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u0430\u044f \u0438 \u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u043d\u0430 \u043c\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441. \u0412\u043e\u043f\u0440\u043e\u0441 \u0431\u044b\u043b: \u043a\u0430\u043a\u0443\u044e \u0434\u043e\u043b\u044e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u0442\u044c. \u041e\u0442\u0432\u0435\u0442 \u043d\u0430 \u043d\u0435\u0433\u043e \u2014 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0446\u0435\u043d\u0442.<\/p>\n<p><strong>\u0421\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0438\u0441\u0445\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0442\u043e\u0439 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0435\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f.<\/strong> \u0415\u0441\u043b\u0438 \u0441\u0442\u043e\u043f \u0438 \u0446\u0435\u043b\u044c \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0434\u0438\u043d \u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0431\u0430\u0440, \u0434\u043d\u0435\u0432\u043d\u043e\u0433\u043e \u0431\u0430\u0440\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0438 \u043d\u0438\u043a\u0430\u043a\u0430\u044f \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442.<\/p>\n<p><strong>\u041c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0439\u0442\u0435 \u0442\u043e\u0442 \u0442\u0438\u043f \u0437\u0430\u044f\u0432\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0435,<\/strong> \u0430 \u043d\u0435 \u0442\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0449\u0435 \u0441\u0438\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0421\u0442\u043e\u043f-\u043c\u0430\u0440\u043a\u0435\u0442 \u0438 \u0441\u0442\u043e\u043f-\u043b\u0438\u043c\u0438\u0442 \u0440\u0430\u0441\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043c, \u0433\u0434\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435.<\/p>\n<p><strong>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435 \u043d\u0430 \u0447\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438, \u2014 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430.<\/strong> \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u043e\u0442\u043a\u0430\u0437\u0443, \u0430 \u043d\u0435 \u043a \u043c\u043e\u043b\u0447\u0430\u043b\u0438\u0432\u043e\u043c\u0443 \u00ab\u043d\u0443 \u043b\u0430\u0434\u043d\u043e\u00bb.<\/p>\n<p><strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u043c\u0435\u043d\u044f\u0435\u0442\u0435 \u0447\u0430\u0449\u0435 \u0440\u0430\u0437\u0430 \u0432 \u043c\u0435\u0441\u044f\u0446, \u043e\u0431\u044f\u0437\u0430\u043d\u044b \u0431\u044b\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0430 \u043d\u0435 \u043a\u043e\u0434\u043e\u043c.<\/strong> \u0418\u043d\u0430\u0447\u0435 \u0432\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442\u0435 \u0438\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u2014 \u044f \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b.<\/p>\n<p><strong>\u0422\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043b\u0430, \u0434\u043e\u043b\u0436\u043d\u043e \u0443\u043c\u0435\u0442\u044c \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0441\u0435\u0431\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0442\u0435\u043a\u0441\u0442\u0430.<\/strong> \u0418\u043c\u0435\u043d\u043d\u043e \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u0440\u0438\u0447\u0438\u043d\u044b, \u0430 \u043d\u0435 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a, \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430 \u043c\u043d\u0435, \u0447\u0442\u043e \u0444\u0438\u043b\u044c\u0442\u0440 \u0433\u044d\u043f\u043e\u0432 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0431\u0443\u043c\u0430\u0433\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0433\u044d\u043f\u0443\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c.<\/p>\n<p><strong>\u0418 \u0441\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u044c \u0440\u044f\u0434\u043e\u043c \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u043a\u043e\u0439.<\/strong> \u041d\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0432 \u0432\u043e\u0441\u0435\u043c\u044c\u0434\u0435\u0441\u044f\u0442 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u00ab\u043e\u0431\u0449\u0435\u0435 \u0443 \u0432\u044b\u0438\u0433\u0440\u044b\u0448\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a\u00bb \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u0434\u0430. \u041f\u044f\u0442\u044c \u0442\u044b\u0441\u044f\u0447 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u0441\u0442\u043e\u044f\u0442 \u043f\u044f\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u0438 \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u044e\u0442 \u043e\u0442 \u0446\u0435\u043b\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u0430\u043c\u043e\u043e\u0431\u043c\u0430\u043d\u0430.<\/p>\n<hr\/>\n<p>\u0412\u0441\u0451 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0436\u0438\u0432\u0451\u0442 \u0432 \u043c\u043e\u0451\u043c \u043b\u0438\u0447\u043d\u043e\u043c \u0441\u043a\u0430\u043d\u0435\u0440\u0435 \u043f\u043e\u0434 Windows, \u044f \u0440\u0430\u0437\u0434\u0430\u044e \u0435\u0433\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e: <a href=\"https:\/\/github.com\/levelbench\/stockscanner-app\" rel=\"noopener nofollow\">https:\/\/github.com\/levelbench\/stockscanner-app<\/a>. \u041d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430 \u0441\u0432\u043e\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0447\u0435\u043c \u0443\u0433\u043e\u0434\u043d\u043e \u2014 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u043f\u0440\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443.<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1081206\/\">https:\/\/habr.com\/ru\/articles\/1081206\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0432\u0435\u0447\u0435\u0440 \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0434\u0438\u043d \u0432\u043e\u043f\u0440\u043e\u0441: \u043d\u0430 \u043a\u0430\u043a\u0438\u0435 \u0431\u0443\u043c\u0430\u0433\u0438 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0440\u0438\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u0442\u044b\u0441\u044f\u0447 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0441\u0435\u0433\u043e\u0434\u043d\u044f. \u041d\u0435 \u00ab\u043a\u0430\u043a\u0438\u0435 \u0432\u044b\u0440\u0430\u0441\u0442\u0443\u0442\u00bb \u2014 \u044d\u0442\u043e\u0433\u043e \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442, \u2014 \u0430 \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u0441\u0442\u043e\u0438\u0442 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443.\u0413\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u043e\u0434 \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0438 \u0441 \u0442\u0435\u0445 \u043f\u043e\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0451. \u041d\u0438\u0436\u0435 \u2014 \u0435\u0451 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e: \u043a\u0430\u043a \u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f 14,5 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u0431\u0430\u0440\u043e\u0432, \u043a\u0430\u043a \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u043d\u0433 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u043b\u044b, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0432\u043e\u0440\u043e\u043d\u043a\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432, \u043a\u0430\u043a\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0433\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438 \u043f\u043e\u0447\u0435\u043c\u0443, \u0447\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u0445\u043e\u0434 \u0441\u0434\u0435\u043b\u043a\u0438 \u0438 \u0447\u0435\u043c \u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e, \u0447\u0442\u043e \u043e\u0442\u0431\u043e\u0440 \u0432\u043e\u043e\u0431\u0449\u0435 \u0447\u0435\u0433\u043e-\u0442\u043e \u0441\u0442\u043e\u0438\u0442. \u041a\u043e\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e: \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e \u0442\u043e, \u0433\u0434\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043d\u0435 \u0442\u0430\u043a\u0438\u043c\u0438, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0438 \u043d\u0430 \u0431\u0443\u043c\u0430\u0433\u0435.\u0421\u0442\u0435\u043a, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u0435 \u043e\u0442\u0432\u043b\u0435\u043a\u0430\u0442\u044c\u0441\u044f: .NET 10, C#, WinForms \u0434\u043b\u044f \u043e\u043a\u043d\u0430, SQLite (Microsoft.Data.Sqlite) \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430, ScottPlot \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432, xUnit \u2014 867 \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u0442\u0440\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430, \u043a\u0440\u043e\u043c\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u043a\u043e\u0442\u0438\u0440\u043e\u0432\u043e\u043a, \u043a\u043b\u044e\u0447 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0432\u0432\u043e\u0434\u0438\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c.\u0412\u043e\u0440\u043e\u043d\u043a\u0430\u0412 \u0431\u0430\u0437\u0435 16 066 \u0442\u0438\u043a\u0435\u0440\u043e\u0432. \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0438\u0437 \u043d\u0438\u0445 \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043c\u0451\u0440\u0442\u0432\u044b\u0435: \u0434\u0435\u043b\u0438\u0441\u0442\u043d\u0443\u0442\u044b\u0435, \u043f\u043e\u0433\u043b\u043e\u0449\u0451\u043d\u043d\u044b\u0435, \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u0448\u0438\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u0418\u0445 \u0442\u0440\u0435\u0442\u044c, \u0438 \u043e\u043d\u0438 \u043e\u043f\u0430\u0441\u043d\u044b \u043d\u0435 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u0432 \u0432\u044b\u0434\u0430\u0447\u0443, \u0430 \u0442\u0435\u043c, \u0447\u0442\u043e \u0438\u0441\u043a\u0430\u0436\u0430\u044e\u0442 \u0432\u0441\u0451, \u0447\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u00ab\u043f\u043e \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439\u00bb. \u041e\u0441\u0442\u0430\u0451\u0442\u0441\u044f 13 420.\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f. \u0412\u043e\u0442 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u0438\u0437 \u043d\u0438\u0445 \u0431\u0443\u043c\u0430\u0433\u0430 \u043e\u0442\u0441\u0435\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u043e\u0439, \u0437\u0430 \u043e\u0434\u0438\u043d \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0432\u0435\u0447\u0435\u0440:\u0424\u0438\u043b\u044c\u0442\u0440\u041e\u0442\u0441\u0435\u044f\u043b \u043f\u0435\u0440\u0432\u044b\u043c\u041e\u0431\u044a\u0451\u043c (\u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0437\u0430 20 \u0434\u043d\u0435\u0439 \u043d\u0438\u0436\u0435 \u043f\u043e\u0440\u043e\u0433\u0430)7481\u0426\u0435\u043d\u0430 (\u0432\u043d\u0435 \u043a\u043e\u0440\u0438\u0434\u043e\u0440\u0430)3462\u0422\u0440\u0435\u043d\u0434\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d (\u0446\u0435\u043d\u0430 \u0432\u044b\u0448\u0435 EMA50 \u0432\u044b\u0448\u0435 EMA200, EMA200 \u0440\u0430\u0441\u0442\u0451\u0442)1179ATR \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 (\u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0445\u043e\u0434 \u043c\u0435\u043d\u044c\u0448\u0435 2%)722\u041e\u0442\u043a\u0430\u0442 \u043a EMA21 (\u0446\u0435\u043d\u0430 \u043d\u0435 \u0432 \u0437\u043e\u043d\u0435 \u043e\u0442\u043a\u0430\u0442\u0430)219\u0420\u0430\u043d\u0433 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u043b\u044b (\u043d\u0438\u0436\u0435 70-\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u044f)74\u0413\u044d\u043f\u044b72\u0414\u043e\u043b\u043b\u0430\u0440\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0451\u043c59\u041f\u0440\u043e\u0447\u0435\u0435 (\u043d\u0430\u043a\u043b\u043e\u043d EMA, \u043d\u0435\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u0440\u0435\u043d\u0434, \u0440\u0430\u0441\u0442\u044f\u0436\u0435\u043d\u0438\u0435)75\u041f\u0440\u043e\u0448\u043b\u043877\u041f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0431\u044a\u0451\u043c, \u0435\u0449\u0451 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c \u2014 \u0446\u0435\u043d\u0430. \u042d\u0442\u043e \u043d\u0435 \u0445\u0438\u0442\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c: \u043e\u043d\u0430 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u00ab\u0432 \u044d\u0442\u043e\u0439 \u0431\u0443\u043c\u0430\u0433\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0438\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435.\u041d\u043e \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0440\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u2014 \u043f\u0440\u043e \u0442\u043e, \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f. \u042d\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u043e\u0439 \u043a \u0437\u0430\u0434\u0430\u0447\u0435, \u0430 \u0441\u0430\u043c\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439: \u0442\u0440\u0438 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0431\u044b\u043b\u0438 \u043d\u0435 \u043f\u0440\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043e\u0442\u0431\u043e\u0440\u0430.\u0414\u0430\u043d\u043d\u044b\u0435: 14,5 \u043c\u043b\u043d \u0431\u0430\u0440\u043e\u0432 \u0432 \u043e\u0434\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 SQLite\u0414\u043d\u0435\u0432\u043d\u044b\u0435 \u0431\u0430\u0440\u044b \u0432\u0441\u0435\u0439 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0439 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u2014 16 066 \u0442\u0438\u043a\u0435\u0440\u043e\u0432, 14,5 \u043c\u043b\u043d \u0431\u0430\u0440\u043e\u0432, \u0444\u0430\u0439\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430 \u0434\u0432\u0430 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u0430. \u0421\u0445\u0435\u043c\u0430 \u043d\u0430\u0440\u043e\u0447\u0438\u0442\u043e \u043f\u043b\u043e\u0441\u043a\u0430\u044f:CREATE TABLE IF NOT EXISTS daily_bars (    ticker TEXT NOT NULL,    date TEXT NOT NULL,    open REAL NOT NULL,    high REAL NOT NULL,    low REAL NOT NULL,    close REAL NOT NULL,    volume REAL NOT NULL,    transactions INTEGER NULL,    source_file TEXT NOT NULL,    PRIMARY KEY (ticker, date));CREATE INDEX IF NOT EXISTS idx_daily_bars_date ON daily_bars(date);&#8212; (ticker, date) \u0443\u0436\u0435 \u043f\u043e\u043a\u0440\u044b\u0442 PRIMARY KEY; \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u043b \u0432\u0441\u0442\u0430\u0432\u043a\u0438.DROP INDEX IF EXISTS idx_daily_bars_ticker_date;\u0414\u0430\u0442\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0439 yyyy-MM-dd, \u0430 \u043d\u0435 \u0447\u0438\u0441\u043b\u043e\u043c. \u042d\u0442\u043e \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u043d: \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043b\u0435\u043a\u0441\u0438\u043a\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u0432 \u0442\u043e\u043c \u0436\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0447\u0442\u043e \u0438 \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 ORDER BY date \u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0431\u0435\u0437 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439, \u0430 \u0431\u0430\u0437\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0439 \u043b\u044e\u0431\u044b\u043c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0449\u0438\u043a\u043e\u043c. \u0426\u0435\u043d\u0430 \u0440\u0430\u0441\u043f\u043b\u0430\u0442\u044b \u2014 \u0440\u0430\u0437\u0431\u043e\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 DateTime \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438, \u0438 \u043e\u043d \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u043c (\u043d\u0438\u0436\u0435).\u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440: \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0435\u0442. \u0421\u0435\u0440\u0432\u0435\u0440 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435, \u0431\u044d\u043a\u0430\u043f, \u043f\u043e\u0440\u0442\u044b, \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0432\u0435\u0440\u0441\u0438\u0438 \u2014 \u0446\u0435\u043d\u0430 \u0437\u0430 \u043e\u0431\u0449\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u041e\u0434\u0438\u043d \u0444\u0430\u0439\u043b \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043a\u043b\u0430\u0434\u0451\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0432 \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u043c\u0430\u0448\u0438\u043d\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u043d\u0438\u0435\u043c.\u0427\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0440\u0435\u0448\u0430\u0442\u044c \u2014 \u0447\u0442\u0435\u043d\u0438\u0435. \u0421\u043a\u0430\u043d \u0434\u0435\u0440\u0436\u0438\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u0441\u044e \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u044f\u0442\u044c\u0441\u043e\u0442 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u0435\u0439: \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0442\u0438\u043a\u0435\u0440\u0443 \u0440\u0430\u043d\u0433 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u043b\u044b \u043d\u0435 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u043e\u043d \u043f\u0440\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0432\u0441\u0435\u043c \u0436\u0438\u0432\u044b\u043c \u0431\u0443\u043c\u0430\u0433\u0430\u043c. \u042d\u0442\u043e \u043e\u043a\u043e\u043b\u043e \u043f\u044f\u0442\u0438 \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0431\u0430\u0440\u043e\u0432 \u0437\u0430 \u043e\u0434\u0438\u043d \u0437\u0430\u043f\u0440\u043e\u0441.public IReadOnlyList&lt;PriceBar&gt; LoadRecentBars(int lookbackTradingDays, CancellationToken cancellationToken = default){    using var connection = OpenConnection();    using var pragmaCmd = connection.CreateCommand();    pragmaCmd.CommandText = &#171;PRAGMA cache_size = -32768&#187;;    pragmaCmd.ExecuteNonQuery();    pragmaCmd.CommandText = &#171;PRAGMA temp_store = MEMORY&#187;;    pragmaCmd.ExecuteNonQuery();    using var command = connection.CreateCommand();    command.CommandText = &#171;&#187;&#187;        WITH cutoff AS (            SELECT MIN(date) AS min_date            FROM (                SELECT DISTINCT date                FROM daily_bars                ORDER BY date DESC                LIMIT $lookback_days            )        )        SELECT b.ticker, b.date, b.open, b.high, b.low, b.close, b.volume        FROM daily_bars b        WHERE b.date &gt;= (SELECT min_date FROM cutoff)        ORDER BY b.ticker, b.date        &#171;&#187;&#187;;    command.Parameters.AddWithValue(&#171;$lookback_days&#187;, lookbackTradingDays);    using var reader = command.ExecuteReader();    var bars = new List&lt;PriceBar&gt;(1_000_000);    \/\/ \u0421\u0442\u0440\u043e\u043a\u0438 \u0438\u0434\u0443\u0442 ORDER BY ticker: \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0442\u0438\u043a\u0435\u0440\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0431\u0430\u0440\u0430,    \/\/ \u0438\u043d\u0430\u0447\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b \u0431\u044b \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0434\u0443\u0431\u043b\u0435\u0439 \u0432\u043c\u0435\u0441\u0442\u043e ~16 \u0442\u044b\u0441. \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a.    var lastTicker = string.Empty;    var rowsRead = 0;    while (reader.Read())    {        if ((++rowsRead &amp; 0xFFFF) == 0) cancellationToken.ThrowIfCancellationRequested();        var ticker = reader.GetString(0);        if (string.Equals(ticker, lastTicker, StringComparison.Ordinal)) ticker = lastTicker;        else lastTicker = ticker;        bars.Add(new PriceBar        {            Ticker = ticker,            Date = ParseDate(reader.GetString(1)),            Open = (decimal)reader.GetDouble(2),            \/\/ \u2026        });    }    return bars;}\u0417\u0434\u0435\u0441\u044c \u043f\u044f\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u0438 \u043a\u0430\u0436\u0434\u043e\u0435 \u0432\u0437\u044f\u043b\u043e\u0441\u044c \u0438\u0437 \u0437\u0430\u043c\u0435\u0440\u0430, \u0430 \u043d\u0435 \u0438\u0437 \u0432\u043a\u0443\u0441\u0430.\u041e\u0442\u0441\u0435\u0447\u043a\u0430 \u043f\u043e \u0434\u0430\u0442\u0435 \u2014 \u0447\u0435\u0440\u0435\u0437 CTE \u043f\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u0434\u0430\u0442\u0430\u043c, \u0430 \u043d\u0435 \u00ab\u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u0438\u043d\u0443\u0441 N \u0434\u043d\u0435\u0439\u00bb. \u0422\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0432 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e: \u043f\u0440\u0430\u0437\u0434\u043d\u0438\u043a\u0438, \u0443\u043a\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0441\u0441\u0438\u0438, \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435. DISTINCT date \u2026 ORDER BY date DESC LIMIT $lookback_days \u0434\u0430\u0451\u0442 \u0440\u043e\u0432\u043d\u043e N \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u0435\u0439, \u043a\u0430\u043a\u0438\u043c\u0438 \u0431\u044b \u043e\u043d\u0438 \u043d\u0438 \u0431\u044b\u043b\u0438, \u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435 \u043f\u043b\u044b\u0432\u0451\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043f\u043e\u043f\u0430\u043b \u043b\u0438 \u0432 \u043e\u043a\u043d\u043e \u0414\u0435\u043d\u044c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0435\u043d\u0438\u044f.\u041e\u0434\u0438\u043d \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0442\u0438\u043a\u0435\u0440. \u0428\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u044c \u0442\u044b\u0441\u044f\u0447 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043d\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043e\u0442\u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0434\u0435\u0448\u0451\u0432\u044b\u0439: \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u043d\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u0438 \u0440\u0430\u0437\u0431\u043e\u0440 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0443\u043c\u043d\u043e\u0436\u0430\u044e\u0442\u0441\u044f \u043d\u0430 16 066. \u041e\u0434\u0438\u043d \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0445\u043e\u0434 \u043f\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c, \u0447\u0438\u0442\u0430\u0435\u0442 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0437\u0430 \u043e\u0434\u043d\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435.\u0401\u043c\u043a\u043e\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0430 \u0437\u0430\u0440\u0430\u043d\u0435\u0435. List&lt;T&gt; \u0440\u0430\u0441\u0442\u0451\u0442 \u0443\u0434\u0432\u043e\u0435\u043d\u0438\u0435\u043c \u0441 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c; \u043d\u0430 \u043f\u044f\u0442\u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u044d\u0442\u043e \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u043f\u0435\u0440\u0435\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0430 \u0441\u043e\u0442\u043d\u0438 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u043e.\u0421\u0442\u0440\u043e\u043a\u0430 \u0442\u0438\u043a\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u2014 \u044d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0434\u043e\u0440\u043e\u0433\u043e\u0435 \u0438\u0437 \u043c\u0435\u043b\u043a\u043e\u0433\u043e. reader.GetString \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0437\u043e\u0432. \u041f\u044f\u0442\u044c \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0441\u0442\u0440\u043e\u043a \u0432\u043c\u0435\u0441\u0442\u043e \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u0442\u044b\u0441\u044f\u0447 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u2014 \u0441\u043e\u0442\u043d\u0438 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0440\u0435\u0437\u0438\u0434\u0435\u043d\u0442\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0438 \u0432\u0438\u043d\u043e\u0432\u0430\u0442 \u0432 \u043d\u0438\u0445 \u043d\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0430 \u043d\u0435\u0432\u0438\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0432 \u0446\u0438\u043a\u043b\u0435. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u043e \u0442\u0438\u043a\u0435\u0440\u0443, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0438 \u043f\u0440\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0438 \u0432\u0437\u044f\u0442\u044c \u0442\u0443 \u0436\u0435 \u0441\u0441\u044b\u043b\u043a\u0443. \u0418\u043d\u0442\u0435\u0440\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 string.Intern \u0442\u0443\u0442 \u0445\u0443\u0436\u0435: \u043e\u043d\u043e \u043a\u043b\u0430\u0434\u0451\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043e\u0431\u0449\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430.\u0420\u0430\u0437\u0431\u043e\u0440 \u0434\u0430\u0442\u044b \u2014 \u0440\u0443\u043a\u0430\u043c\u0438, \u0431\u0435\u0437 ParseExact. \u0424\u043e\u0440\u043c\u0430\u0442 \u043d\u0430\u0448 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u0439:\/\/\/ \u0420\u0430\u0437\u0431\u043e\u0440 \u0434\u0430\u0442\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u0430 yyyy-MM-dd \u0431\u0435\u0437 ParseExact: \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\/\/\/ \u044d\u0442\u043e \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0432\u044b\u0437\u043e\u0432\u043e\u0432, \u0438 \u043e\u0431\u0449\u0438\u0439 \u043f\u0430\u0440\u0441\u0435\u0440 \u0431\u044b\u043b \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432.private static DateTime ParseDate(string text) =&gt;    new(int.Parse(text.AsSpan(0, 4)), int.Parse(text.AsSpan(5, 2)), int.Parse(text.AsSpan(8, 2)));\u041e\u0431\u0449\u0438\u0439 \u043f\u0430\u0440\u0441\u0435\u0440 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442, \u0441\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0441 \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u043e\u0439 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u044b \u2014 \u0432\u0441\u0451 \u044d\u0442\u043e \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0430 \u043d\u0435 \u043f\u044f\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432.\u041e\u0442\u043c\u0435\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u0441\u043a\u043e\u0439, \u0430 \u043d\u0435 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435. (++rowsRead &amp; 0xFFFF) == 0 \u2014 \u0440\u0430\u0437 \u0432 65 536 \u0441\u0442\u0440\u043e\u043a. ThrowIfCancellationRequested \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0437\u0430\u043c\u0435\u0442\u0435\u043d \u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u0435, \u0430 \u0440\u0435\u0430\u043a\u0446\u0438\u044f \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u00ab\u041e\u0442\u043c\u0435\u043d\u0430\u00bb \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u0448\u0430\u0433\u0435 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u0430\u044f: 65 \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u0440\u043e\u043a \u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0437\u0430 \u0434\u043e\u043b\u0438 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b.\u041f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u043c\u0435\u0435\u0442 \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0442\u0440\u0435\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 (\u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0437\u0430 \u0434\u0435\u043d\u044c, REST, \u0431\u0440\u043e\u043a\u0435\u0440\u0441\u043a\u0438\u0439 \u043f\u043e\u0442\u043e\u043a) \u0438 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0432 \u0441\u0435\u0431\u0435 \u043d\u0435 \u043d\u043e\u0441\u0438\u0442. \u0427\u0443\u0436\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u0430 \u0441\u0432\u043e\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u0438 \u0442\u0430\u043a \u043e\u043f\u043b\u0430\u0447\u0435\u043d\u0430.\u0416\u0438\u0432\u044b\u0435 \u0438 \u043c\u0451\u0440\u0442\u0432\u044b\u0435\u0411\u0430\u0437\u0430 \u043f\u043e\u043c\u043d\u0438\u0442 \u0431\u0443\u043c\u0430\u0433\u0438 \u0432\u0435\u0447\u043d\u043e. \u0414\u0435\u043b\u0438\u0441\u0442\u043d\u0443\u0442\u044b\u0435 \u0438 \u043f\u043e\u0433\u043b\u043e\u0449\u0451\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u044e\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u0434\u043d\u0435\u0432\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445, \u0438 \u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0431\u0430\u0440 \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c.public static bool IsStale(DateTime tickerLastBar, DateTime marketLastBar, int staleAfterDays = StaleAfterDays) =&gt;    (marketLastBar.Date &#8212; tickerLastBar.Date).TotalDays &gt; staleAfterDays;\u041e\u0442\u0441\u0442\u0430\u0432\u0430\u043d\u0438\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0431\u0430\u0440\u0430 \u043f\u043e \u0432\u0441\u0435\u0439 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439, \u0430 \u043d\u0435 \u043e\u0442 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0434\u0430\u0442\u044b: \u0438\u043d\u0430\u0447\u0435 \u0441\u043a\u0430\u043d \u0432 \u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a \u0443\u0442\u0440\u043e\u043c \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u043b \u0431\u044b \u043c\u0451\u0440\u0442\u0432\u044b\u043c \u0432\u0435\u0441\u044c \u0440\u044b\u043d\u043e\u043a, \u0430 \u0441\u043a\u0430\u043d \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0432\u0443\u0445\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u0438 \u2014 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u0435\u0445. \u041f\u043e\u0440\u043e\u0433 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u043d\u044b\u0439, \u0430 \u043d\u0435 \u0432 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u044f\u0445: \u043e\u043d \u043f\u0440\u043e \u00ab\u0431\u0443\u043c\u0430\u0433\u0430 \u043f\u0440\u043e\u043f\u0430\u043b\u0430\u00bb, \u0430 \u043d\u0435 \u043f\u0440\u043e \u0442\u043e\u0447\u043d\u044b\u0439 \u0441\u0447\u0451\u0442 \u0441\u0435\u0441\u0441\u0438\u0439. \u0422\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0434\u043d\u0435\u0439 \u2014 \u0449\u0435\u0434\u0440\u043e \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e: \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0434\u0435\u043b\u0438\u0441\u0442\u0438\u043d\u0433 \u043e\u0442\u0441\u0442\u0430\u0451\u0442 \u043d\u0430 \u043c\u0435\u0441\u044f\u0446\u044b, \u0430 \u0440\u0435\u0434\u043a\u043e \u0442\u043e\u0440\u0433\u0443\u0435\u043c\u0443\u044e \u0436\u0438\u0432\u0443\u044e \u0431\u0443\u043c\u0430\u0433\u0443 \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0440\u043e\u0433 \u043d\u0435 \u0442\u0440\u043e\u043d\u0435\u0442.\u041d\u0430 11.08.2026 \u0438\u0437 20 861 \u0442\u0438\u043a\u0435\u0440\u0430 \u0432 \u0431\u0430\u0437\u0435 6 868 \u043e\u0442\u0441\u0442\u0430\u0432\u0430\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c \u043d\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u0438 \u0435\u0449\u0451 904 \u2014 \u043e\u0442 \u043e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u0434\u043d\u0435\u0439. \u0422\u0440\u0435\u0442\u044c \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043a\u0430\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0432\u043f\u0443\u0441\u0442\u0443\u044e, \u043d\u043e \u0445\u0443\u0436\u0435 \u0434\u0440\u0443\u0433\u043e\u0435: \u044d\u0442\u0438 \u0431\u0443\u043c\u0430\u0433\u0438 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u0432 \u0440\u0430\u043d\u0433\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u043b\u044b.\u0420\u0430\u043d\u0433 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u043b\u044b: \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u0430\u0436\u043d\u043e, \u043a\u043e\u0433\u043e \u043c\u044b \u0440\u0430\u043d\u0436\u0438\u0440\u0443\u0435\u043c\u0420\u0430\u043d\u0433 \u2014 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u044c \u0434\u043e\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 63 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u044f (\u043e\u043a\u043e\u043b\u043e \u0442\u0440\u0451\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432) \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0436\u0438\u0432\u044b\u0445 \u0431\u0443\u043c\u0430\u0433. \u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u0430, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0435:private static void RankCore&lt;TKey&gt;(IReadOnlyList&lt;(TKey Key, decimal Return)&gt; returns, Action&lt;TKey, int&gt; assign){    if (returns.Count == 0) return;    if (returns.Count == 1)    {        assign(returns[0].Key, 50);        return;    }    var sorted = returns.OrderBy(x =&gt; x.Return).ToList();    for (var i = 0; i &lt; sorted.Count; i++)        assign(sorted[i].Key, (int)Math.Round(i * 100.0 \/ (sorted.Count &#8212; 1)));}\u0422\u0440\u0438 \u0432\u0435\u0449\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0443\u0442 \u043d\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b.OrderBy \u0432\u043c\u0435\u0441\u0442\u043e Sort \u2014 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e LINQ-\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430, \u0430 List.Sort \u043d\u0435\u0442. \u041f\u0440\u0438 \u0440\u0430\u0432\u043d\u044b\u0445 \u0434\u043e\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u044f\u0445 (\u0430 \u043e\u043d\u0438 \u0440\u0430\u0432\u043d\u044b \u0441\u043f\u043b\u043e\u0448\u044c \u0438 \u0440\u044f\u0434\u043e\u043c: \u043a\u043e\u043f\u0435\u0435\u0447\u043d\u044b\u0435 \u0431\u0443\u043c\u0430\u0433\u0438, \u0444\u043e\u043d\u0434\u044b-\u043a\u043b\u043e\u043d\u044b) \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0440\u0430\u0437\u0434\u0430\u0432\u0430\u043b\u0430 \u0431\u044b \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0430\u043d\u0433\u0438 \u043e\u0442 \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u043a \u043f\u0440\u043e\u0433\u043e\u043d\u0443 \u043d\u0430 \u043e\u0434\u043d\u0438\u0445 \u0438 \u0442\u0435\u0445 \u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u0442\u043b\u0430\u0434\u043a\u0430 \u00ab\u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u0447\u0435\u0440\u0430 \u0431\u044b\u043b\u043e 71, \u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f 69, \u0445\u043e\u0442\u044f \u0446\u0435\u043d\u044b \u0442\u0435 \u0436\u0435\u00bb \u2014 \u0442\u043e \u0435\u0449\u0451 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435.\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0431\u0443\u043c\u0430\u0433\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 50, \u0430 \u043d\u0435 0 \u0438 \u043d\u0435 100. \u041f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u044c \u043f\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d, \u0438 \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043a\u0440\u0430\u0451\u0432 \u0431\u044b\u043b \u0431\u044b \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442. \u0421\u0435\u0440\u0435\u0434\u0438\u043d\u0430 \u2014 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442, \u0438 \u043e\u043d&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-494354","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/494354","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=494354"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/494354\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=494354"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=494354"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=494354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}