{"id":469689,"date":"2025-08-05T15:01:52","date_gmt":"2025-08-05T15:01:52","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=469689"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=469689","title":{"rendered":"<span>RL-\u0430\u0433\u0435\u043d\u0442 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u043d\u0430 Binance Futures: \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u0431\u044d\u043a\u0442\u0435\u0441\u0442, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/980\/3f5\/f57\/9803f5f57ddece29626b7a377a3ac52c.png\" alt=\"\u041a\u0440\u0438\u0432\u0430\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043d\u0430 \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0435\u0414\u0438\u043d\u0430\u043c\u0438\u043a\u0430 \u043a\u0430\u043f\u0438\u0442\u0430\u043b\u0430 \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043f\u0435\u0440\u0438\u043e\u0434: 2025-03-01 \u2014 2025-06-01), \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0439 \u0438 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0439. \u0418\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430: +144.23%\" title=\"\u041a\u0440\u0438\u0432\u0430\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043d\u0430 \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0435\u0414\u0438\u043d\u0430\u043c\u0438\u043a\u0430 \u043a\u0430\u043f\u0438\u0442\u0430\u043b\u0430 \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043f\u0435\u0440\u0438\u043e\u0434: 2025-03-01 \u2014 2025-06-01), \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0439 \u0438 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0439. \u0418\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430: +144.23%\" width=\"3600\" height=\"1800\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/980\/3f5\/f57\/9803f5f57ddece29626b7a377a3ac52c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/980\/3f5\/f57\/9803f5f57ddece29626b7a377a3ac52c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>\u041a\u0440\u0438\u0432\u0430\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043d\u0430 \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0435<\/strong><br \/>\u0414\u0438\u043d\u0430\u043c\u0438\u043a\u0430 \u043a\u0430\u043f\u0438\u0442\u0430\u043b\u0430 \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043f\u0435\u0440\u0438\u043e\u0434: 2025-03-01 \u2014 2025-06-01), \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0439 \u0438 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0439.<br \/> \u0418\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430: <strong>+144.23%<\/strong><\/figcaption><\/div>\n<\/figure>\n<h3>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h3>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0432\u0430\u0441, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438!<br \/>\u0426\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u043c \u043f\u043e\u043b\u043d\u043e\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0433\u043e \u0430\u0433\u0435\u043d\u0442\u0430 (\u043f\u0440\u043e\u0435\u043a\u0442), \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435\u043c <em>(Reinforcement Learning)<\/em>, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b <em>Dueling Double Deep Q-Network (D3QN)<\/em> \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <em>Prioritized Experience Replay (PER)<\/em>.<\/p>\n<p>\u0410\u0433\u0435\u043d\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u043d\u0430 \u0444\u044c\u044e\u0447\u0435\u0440\u0441\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435 <em>Binance Futures<\/em>. \u041e\u043d \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u0438\u043d\u0443\u0442\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043a\u043b\u044e\u0447\u0430\u044f: <code><em>open<\/em><\/code><em>, <\/em><code><em>high<\/em><\/code><em>, <\/em><code><em>low<\/em><\/code><em>, <\/em><code><em>close<\/em><\/code><em>, <\/em><code><em>volume<\/em><\/code><em>, <\/em><code><em>volume_weighted_average<\/em><\/code><em>, <\/em><code><em>num_trades<\/em><\/code><em>.<\/em><\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0446\u0435\u043b\u044c \u0430\u0433\u0435\u043d\u0442\u0430 \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 <em>PnL<\/em> (\u043f\u0440\u0438\u0431\u044b\u043b\u044c\/\u0443\u0431\u044b\u0442\u043e\u043a \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0439 \u0438 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u044f), \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u044d\u0442\u0430\u043f\u043e\u043c \u043e\u0446\u0435\u043d\u043a\u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0430\u0433\u0435\u043d\u0442\u0430 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u0439 \u0431\u044d\u043a\u0442\u0435\u0441\u0442, \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u043d\u044b\u0445 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0435.<\/p>\n<h4>\u0417\u0430\u0434\u0430\u0447\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h4>\n<p>\u041f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0443\u044e:<\/p>\n<ul>\n<li>\n<p>\u0421\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0438\u0437 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u043e\u0431\u043e\u0431\u0449\u0430\u044e\u0449\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0440\u0430\u043d\u0435\u0435 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0432 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435:<\/p>\n<ul>\n<li>\n<p>\u0413\u0438\u0431\u043a\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u043e\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 (Dreamer, Soft Actor-Critic \u0438 \u0434\u0440.);<\/p>\n<\/li>\n<li>\n<p>\u0411\u0430\u0437\u043e\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0433\u0438\u043f\u043e\u0442\u0435\u0437, \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432\u043e\u0437\u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0435\u043d\u0438\u044f, \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439, \u0431\u0443\u0444\u0435\u0440\u043e\u0432 \u0438 \u043c\u0435\u0442\u0440\u0438\u043a.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0427\u0442\u043e \u0432\u044b \u043d\u0430\u0439\u0434\u0451\u0442\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435<\/h4>\n<p>\u042f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u0438\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412\u0441\u0435 \u0447\u0430\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b. \u041a\u043e\u0434, \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435, \u0432\u0441\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u043a\u043e\u043d\u0446\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0438 \u0432 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0420\u0430\u0437\u0434\u0435\u043b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0414\u0430\u043d\u043d\u044b\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u043a\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0441\u0435\u0441\u0441\u0438\u0439.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0421\u0440\u0435\u0434\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438, \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0441\u0447\u0451\u0442 \u043f\u0440\u0438\u0431\u044b\u043b\u0438 \u0438 \u0443\u0431\u044b\u0442\u043a\u043e\u0432 (PnL), \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0430\u0433\u0435\u043d\u0442\u0430.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0410\u0433\u0435\u043d\u0442<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 D3QN, \u0431\u0443\u0444\u0435\u0440 Prioritized Experience Replay (PER) \u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u03b5-\u0436\u0430\u0434\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0430\u0433\u0435\u043d\u0442\u0443 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0440\u044b\u043d\u043e\u043a \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041b\u043e\u0433\u0438\u043a\u0430 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430, \u043c\u0435\u0442\u043e\u0434\u044b \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438, \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0411\u044d\u043a\u0442\u0435\u0441\u0442<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0430\u044f \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438: \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438, \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u044f, \u0440\u0438\u0441\u043a-\u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442, \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u043e\u0434\u0443\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0438\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0412\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0437\u043e\u0440 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0438 \u043f\u043b\u0430\u043d \u043f\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0443 \u043a \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f (\u043e\u0442 DQN \u0434\u043e Model-Based RL, SAC \u0438 \u0434\u0440.).<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u041e\u0431 \u0430\u0432\u0442\u043e\u0440\u0435<\/h4>\n<p>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u042e\u0440\u0438\u0439. \u042f \u00abSenior Quantitative Researcher\u00bb \u0441 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u043d\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435\u043c (RL). \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u2014 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0445 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0445 \u0440\u044b\u043d\u043a\u0430\u0445.<\/p>\n<h4>\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<\/h4>\n<p>\u041d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0442\u0435\u043c\u0430 RL \u0432 \u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433\u0435 \u043b\u0438\u0431\u043e \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u043e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0430, \u043b\u0438\u0431\u043e \u043b\u0438\u0448\u0435\u043d\u0430 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u0433\u043e\u0441\u0442\u0438, \u043b\u0438\u0431\u043e \u043d\u0435 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043a \u0440\u0435\u0430\u043b\u0438\u044f\u043c \u0440\u044b\u043d\u043a\u0430. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u2014 \u0432\u043e\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0431\u0435\u043b, \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0432, \u043a\u0430\u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0443\u044e RL-\u0441\u0438\u0441\u0442\u0435\u043c\u0443:<\/p>\n<ul>\n<li>\n<p>\u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0441 \u043f\u043e\u043b\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0438 \u0440\u0438\u0441\u043a\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043a\u0430\u043a \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u044f, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430\u044f:<\/p>\n<ul>\n<li>\n<p>\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0441\u043b\u0430\u0431\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u0432 RL \u0434\u043b\u044f \u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c SOTA-\u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0447\u0435\u0441\u0442\u043d\u044b\u043c baseline.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u0440\u043e\u0431\u0443\u0434\u0438\u0442 \u0432 \u0432\u0430\u0441 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0438 \u0441\u0442\u0430\u043d\u0435\u0442 \u0432\u0430\u0448\u0438\u043c \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u043c \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f RL \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433\u0435.<\/p>\n<h4>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c<\/h4>\n<p>\u0414\u043b\u044f \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u0433\u0435\u043d\u0442\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043c\u043e\u0434\u0443\u043b\u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0412\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0414\u0438\u043d\u0430\u043c\u0438\u043a\u0443 \u043a\u0440\u0438\u0432\u043e\u0439 \u043d\u0430\u0433\u0440\u0430\u0434\u044b \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0442\u0435\u0440\u044c, \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f Win Rate, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0434\u043e\u043b\u044e \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 PnL \u043f\u043e \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u043c \u0441\u0435\u0441\u0441\u0438\u044f\u043c, \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0449\u0435\u0435 \u043e\u0431\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0430\u0433\u0435\u043d\u0442\u0430, \u043a\u0430\u043a \u0432 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445, \u0442\u0430\u043a \u0438 \u0432 \u043d\u0430\u0438\u043c\u0435\u043d\u0435\u0435 \u0443\u0434\u0430\u0447\u043d\u044b\u0445 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u044f\u0445.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c RL \u0430\u0433\u0435\u043d\u0442\u0430, \u044f \u0432\u043d\u0435\u0434\u0440\u0438\u043b \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0443\u044e baseline-\u043c\u043e\u0434\u0435\u043b\u044c \u2014 CNN \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440, \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441 \u0443\u0447\u0438\u0442\u0435\u043b\u0435\u043c. <\/p>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u0435 \u0436\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 (mean PnL, win rate) \u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0430 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439.<br \/>Baseline-\u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u0451\u0442 \u043d\u0430\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0434\u043b\u044f \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438 RL-\u0430\u0433\u0435\u043d\u0442\u0430.<\/p>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u2014 \u044d\u0442\u043e \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439:<\/p>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u0433\u0438\u043f\u0435\u0440\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043f\u0443\u0442\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <code>configs\/*.py<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u2014 \u043b\u043e\u0433\u0438, \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0438: \u0432\u0441\u0451 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043f\u043e \u043f\u0430\u043f\u043a\u0430\u043c, \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d-\u043f\u043e\u0434\u0445\u043e\u0434\u0430, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0432 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u044b\u043c.<\/p>\n<h4>\u0411\u043e\u043d\u0443\u0441<\/h4>\n<p>\u0412 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u0430\u0441 \u0436\u0434\u0451\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0431\u043e\u043d\u0443\u0441 \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0418\u0418-\u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430 Binance Futures \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>\ud83d\udcce <strong>\u041a\u043e\u0434, \u0434\u0430\u043d\u043d\u044b\u0435:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434:<\/strong> <a href=\"https:\/\/github.com\/YuriyKolesnikov\/rl-trading-binance\" rel=\"noopener noreferrer nofollow\">github.com\/YuriyKolesnikov\/rl-trading-binance<\/a><\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0430\u0442\u0430\u0441\u0435\u0442\u044b:<\/strong> <a href=\"https:\/\/huggingface.co\/datasets\/ResearchRL\/open-rl-trading-binance-dataset\" rel=\"noopener noreferrer nofollow\">huggingface.co\/datasets\/ResearchRL\/open-rl-trading-binance-dataset<\/a><\/p>\n<\/li>\n<\/ul>\n<h3>2. \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n<h4>\u041e\u0431\u0449\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430<\/h4>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u0438\u0434\u0435\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0443\u0447\u0430\u0442\u044c \u0430\u0433\u0435\u043d\u0442\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0442\u0435\u0445 \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0433\u0434\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0437\u043d\u0430\u0447\u0438\u043c\u0430\u044f \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0430\u044f \u0431\u043b\u0430\u0433\u043e\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438.<\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0441\u044d\u043c\u043f\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u044b\u043d\u043a\u0430, \u043a\u0430\u043a \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0445 RL-\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u0445, \u0437\u0434\u0435\u0441\u044c \u043e\u0442\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0435 \u0441\u0435\u0441\u0441\u0438\u0438, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u043a \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u043c \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u044f\u043c.<\/p>\n<h4>2.1 \u041e\u0431\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435<\/h4>\n<p>\u041c\u0438\u043d\u0443\u0442\u043d\u044b\u0435 \u043a\u043e\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442 \u043d\u0435\u0441\u0442\u0430\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u043e\u0435, \u0448\u0443\u043c\u043e\u0432\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u0412 \u0442\u0430\u043a\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u044f\u0440\u043a\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u0445 \u2014 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u0430\u0445, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u043f\u0435\u0440\u0435\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0442\u043e\u0447\u043a\u0430\u0445, \u0430 \u043d\u0430 \u043c\u043e\u0449\u043d\u044b\u0445 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435:<\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u044b\u043c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0446\u0435\u043d\u044b \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 5% \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043d\u0430 \u0444\u043e\u043d\u0435 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0435\u0440\u0446\u0438\u0438 (\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430);<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u0441\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u0430 \u0438\u043b\u0438 \u0440\u0435\u0437\u043a\u0438\u0439 \u043e\u0442\u043a\u0430\u0442.<\/p>\n<\/li>\n<\/ul>\n<h4>2.2 \u041b\u043e\u0433\u0438\u043a\u0430 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439<\/h4>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0433\u043e \u043e\u043a\u043d\u0430 \u0434\u043b\u0438\u043d\u043e\u0439 10 \u043c\u0438\u043d\u0443\u0442, \u0433\u0434\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0443\u0441\u043b\u043e\u0432\u0438\u0435:<\/p>\n<p><img decoding=\"async\" class=\"formula\" source=\"\\text{Volatility} = \\left| \\frac{P_{\\text{close}(t+10)} - P_{\\text{close}(t)}}{P_{\\text{close}(t)}} \\right| \\geq 0.05\" alt=\"\\text{Volatility} = \\left| \\frac{P_{\\text{close}(t+10)} - P_{\\text{close}(t)}}{P_{\\text{close}(t)}} \\right| \\geq 0.05\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/68b\/1fa\/a64\/68b1faa642baa8c934abd48b145aa428.svg\" width=\"443\" height=\"67\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/68b\/1fa\/a64\/68b1faa642baa8c934abd48b145aa428.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/68b\/1fa\/a64\/68b1faa642baa8c934abd48b145aa428.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u044b:<\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u044b, \u043e\u043a\u0440\u0443\u0436\u0451\u043d\u043d\u044b\u0435 \u0448\u0443\u043c\u043e\u043c. \u041f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 90 \u043c\u0438\u043d\u0443\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u0438\u043b\u044c\u043d\u044b\u0445 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439:<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"formula\" source=\"\\text{Filter} = \\frac{1}{N} \\sum_{i=1}^{N} \\left| \\frac{P_{i+10} - P_i}{P_i} \\right| &lt; \\frac{\\text{Volatility}}{\\lambda}\" alt=\"\\text{Filter} = \\frac{1}{N} \\sum_{i=1}^{N} \\left| \\frac{P_{i+10} - P_i}{P_i} \\right| &lt; \\frac{\\text{Volatility}}{\\lambda}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/395\/fd6\/4fe\/395fd64fe93c52c723ea1e25bc4c8670.svg\" width=\"443\" height=\"75\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/395\/fd6\/4fe\/395fd64fe93c52c723ea1e25bc4c8670.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/395\/fd6\/4fe\/395fd64fe93c52c723ea1e25bc4c8670.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0413\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"\\lambda\" alt=\"\\lambda\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1c6\/e05\/fdc\/1c6e05fdc5fda43ac3cac3afb9633fcd.svg\" width=\"14\" height=\"21\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1c6\/e05\/fdc\/1c6e05fdc5fda43ac3cac3afb9633fcd.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1c6\/e05\/fdc\/1c6e05fdc5fda43ac3cac3afb9633fcd.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u2014 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 (\u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0432\u0435\u043d 5.0).<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0441\u0438\u0433\u043d\u0430\u043b \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0444\u0438\u043b\u044c\u0442\u0440, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0435 \u043e\u043a\u043d\u043e:<\/p>\n<\/li>\n<\/ul>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u0435\u043a\u0446\u0438\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0414\u043b\u0438\u043d\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0440\u0435-\u0441\u0438\u0433\u043d\u0430\u043b<\/p>\n<\/td>\n<td>\n<p align=\"left\">90 \u043c\u0438\u043d<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0434\u043b\u044f \u0430\u0433\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u0442-\u0441\u0438\u0433\u043d\u0430\u043b<\/p>\n<\/td>\n<td>\n<p align=\"left\">60 \u043c\u0438\u043d<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u0440\u0433\u043e\u0432\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041e\u0431\u0449\u0435\u0435 \u043e\u043a\u043d\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">150 \u043c\u0438\u043d<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0415\u0434\u0438\u043d\u0438\u0446\u0430 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>2.3 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430<\/h4>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439:<\/p>\n<ul>\n<li>\n<p><code>np.ndarray<\/code> \u0444\u043e\u0440\u043c\u044b <code>(150, 7)<\/code> \u2014 150 \u043c\u0438\u043d\u0443\u0442 \u00d7 7 \u043a\u0430\u043d\u0430\u043b\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043d\u0430\u043b\u044b: <code>open<\/code>, <code>high<\/code>, <code>volume_weighted_average<\/code>, <code>low<\/code>, <code>close<\/code>, <code>volume<\/code>, <code>num_trades<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u044e\u0447: <code>(TICKER, datetime)<\/code>.<\/p>\n<\/li>\n<\/ul>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041a\u043e\u043b-\u0432\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u0435\u0440\u0438\u043e\u0434<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Train<\/p>\n<\/td>\n<td>\n<p align=\"left\">24 104<\/p>\n<\/td>\n<td>\n<p align=\"left\">[2020-01-14 \u2014 2024-08-31)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Validation<\/p>\n<\/td>\n<td>\n<p align=\"left\">1377<\/p>\n<\/td>\n<td>\n<p align=\"left\">[2024-09-01 \u2014 2024-12-01)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0446\u0435\u043d\u043a\u0430 \u043c\u043e\u0434\u0435\u043b\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Test<\/p>\n<\/td>\n<td>\n<p align=\"left\">3400<\/p>\n<\/td>\n<td>\n<p align=\"left\">[2024-12-01 \u2014 2025-03-01)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0441\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Backtest<\/p>\n<\/td>\n<td>\n<p align=\"left\">3186<\/p>\n<\/td>\n<td>\n<p align=\"left\">[2025-03-01 \u2014 2025-06-01)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0430\u044f \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>2.4 \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439<\/h4>\n<p>\u0414\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0438\u0437 \u0432\u0441\u0435\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<ul>\n<li>\n<p>\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u043d\u0430 90-\u0439 \u043c\u0438\u043d\u0443\u0442\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043f\u043e \u043a\u0430\u043d\u0430\u043b\u0443 <code>close<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442: <code>Ticker Name<\/code>, <code>datetime<\/code> (\u0442\u043e\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432 UTC)<\/p>\n<\/li>\n<\/ul>\n<p>\u0413\u0440\u0430\u0444\u0438\u043a\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043f\u043e\u0434\u0432\u044b\u0431\u043e\u0440\u043e\u043a: Train, Validation, Test, Backtest.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bdf\/ecd\/5a1\/bdfecd5a1253a96c9c10353dcd149e96.png\" alt=\"Train Example\" title=\"Train Example\" width=\"3000\" height=\"1500\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/bdf\/ecd\/5a1\/bdfecd5a1253a96c9c10353dcd149e96.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bdf\/ecd\/5a1\/bdfecd5a1253a96c9c10353dcd149e96.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Train Example<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/db3\/286\/76e\/db328676ef9d80d8d58841139de4dbb8.png\" alt=\"Validation Example\" title=\"Validation Example\" width=\"3000\" height=\"1500\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/db3\/286\/76e\/db328676ef9d80d8d58841139de4dbb8.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/db3\/286\/76e\/db328676ef9d80d8d58841139de4dbb8.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Validation Example<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/303\/b55\/ecb\/303b55ecb446343a6af5fdc99bb00569.png\" alt=\"Test Example\" title=\"Test Example\" width=\"3000\" height=\"1500\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/303\/b55\/ecb\/303b55ecb446343a6af5fdc99bb00569.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/303\/b55\/ecb\/303b55ecb446343a6af5fdc99bb00569.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Test Example<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/366\/356\/9cb\/3663569cb6eaed7a501f09dbd19fc787.png\" alt=\"Backtest Example\" title=\"Backtest Example\" width=\"3000\" height=\"1500\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/366\/356\/9cb\/3663569cb6eaed7a501f09dbd19fc787.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/366\/356\/9cb\/3663569cb6eaed7a501f09dbd19fc787.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Backtest Example<\/figcaption><\/div>\n<\/figure>\n<h4>2.5 \u041c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<p>\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430 \u0441 \u0440\u044b\u043d\u043a\u043e\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u0433\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043a\u043b\u044e\u0447\u0430\u044f:<\/p>\n<ul>\n<li>\n<p>\u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u043a\u0430\u043d\u0430\u043b\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e;<\/p>\n<\/li>\n<li>\n<p>\u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u0449\u0438\u0442\u0443 \u043e\u0442 \u043d\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0438 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0441\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 <code>utils.py<\/code> \u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0435\u0434\u0438\u043d\u043e\u0433\u043e data pipeline:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>load_npz_dataset(path: str)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0438\u0437 <code>.npz<\/code>, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0435\u0441\u0441\u0438\u0439 \u0438 \u043c\u0435\u0442\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>select_and_arrange_channels(...)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043a\u0430\u043d\u0430\u043b\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>['close', 'volume']<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>calculate_normalization_stats(...)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043f\u043e \u043a\u0430\u043d\u0430\u043b\u0430\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>apply_normalization(...)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0412\u044b\u0432\u043e\u0434<\/h4>\n<ul>\n<li>\n<p>\u0410\u0433\u0435\u043d\u0442 \u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u0432\u0441\u0451\u043c \u0440\u044b\u043d\u043a\u0435, \u0430 \u043d\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0441\u043e\u043a\u043e\u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u044f\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u0430 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439;<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0435 \u044d\u0442\u0430\u043f\u044b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 <code>utils<\/code>, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f \u0447\u0438\u0441\u0442\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ul>\n<h3>3. \u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/h3>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0442 \u0430\u0433\u0435\u043d\u0442\u0430 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0438\u0437\u0434\u0435\u0440\u0436\u0435\u043a \u0438 \u0438\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u043e\u0439 \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0438.<\/p>\n<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0444\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a <em>\u044d\u043f\u0438\u0437\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435\u043c (RL)<\/em>, \u0433\u0434\u0435 \u0430\u0433\u0435\u043d\u0442 \u0443\u0447\u0438\u0442\u0441\u044f \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h4>3.1 \u0424\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f: RL \u043a\u0430\u043a \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441<\/h4>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u043f\u0438\u0437\u043e\u0434 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (\u0441\u043c. \u0440\u0430\u0437\u0434\u0435\u043b 2). \u0410\u0433\u0435\u043d\u0442\u0443 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p><strong>90 \u043c\u0438\u043d\u0443\u0442<\/strong> \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u2014 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p><strong>60 \u0448\u0430\u0433\u043e\u0432<\/strong> \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u2014 \u043e\u043a\u043d\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439 (\u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0442\u0435 \u043d\u0430 \u0448\u0430\u0433).<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0446\u0438\u043a\u043b \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430 \u0441\u043e \u0441\u0440\u0435\u0434\u043e\u0439:<\/p>\n<ol>\n<li>\n<p>\u0410\u0433\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"s_t\" alt=\"s_t\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/67f\/88e\/54b\/67f88e54b363dde9bd01ecd969cbf28d.svg\" width=\"20\" height=\"17\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/67f\/88e\/54b\/67f88e54b363dde9bd01ecd969cbf28d.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/67f\/88e\/54b\/67f88e54b363dde9bd01ecd969cbf28d.svg 781w\" loading=\"lazy\" decode=\"async\"\/>\u200b;<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <img decoding=\"async\" class=\"formula inline\" source=\"s_t\u200b\" alt=\"s_t\u200b\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5dc\/44d\/061\/5dc44d061a1369f17586d94cb3a9d7ac.svg\" width=\"20\" height=\"17\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5dc\/44d\/061\/5dc44d061a1369f17586d94cb3a9d7ac.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5dc\/44d\/061\/5dc44d061a1369f17586d94cb3a9d7ac.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"a_t \\in \\{0, 1, 2, 3\\}\" alt=\"a_t \\in \\{0, 1, 2, 3\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c9f\/70c\/e8d\/c9f70ce8d766dd5ad4c37425ea336e2e.svg\" width=\"158\" height=\"28\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c9f\/70c\/e8d\/c9f70ce8d766dd5ad4c37425ea336e2e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c9f\/70c\/e8d\/c9f70ce8d766dd5ad4c37425ea336e2e.svg 781w\" loading=\"lazy\" decode=\"async\"\/>;<\/p>\n<\/li>\n<li>\n<p>\u0421\u0440\u0435\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u043d\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"s_{t+1}\" alt=\"s_{t+1}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/327\/da1\/e4e\/327da1e4e35a74e1d760537bdae992d9.svg\" width=\"42\" height=\"19\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/327\/da1\/e4e\/327da1e4e35a74e1d760537bdae992d9.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/327\/da1\/e4e\/327da1e4e35a74e1d760537bdae992d9.svg 781w\" loading=\"lazy\" decode=\"async\"\/>,<\/p>\n<\/li>\n<li>\n<p>\u0441\u043a\u0430\u043b\u044f\u0440\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0430\u0434\u0443 <img decoding=\"async\" class=\"formula inline\" source=\"r_t\" alt=\"r_t\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/769\/074\/100\/76907410075720a7653d06faa18235c8.svg\" width=\"20\" height=\"17\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/769\/074\/100\/76907410075720a7653d06faa18235c8.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/769\/074\/100\/76907410075720a7653d06faa18235c8.svg 781w\" loading=\"lazy\" decode=\"async\"\/>\u200b,<\/p>\n<\/li>\n<li>\n<p>\u0444\u043b\u0430\u0433 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u044d\u043f\u0438\u0437\u043e\u0434\u0430;<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 <img decoding=\"async\" class=\"formula inline\" source=\"(s_t, a_t, r_t, s_{t+1})\" alt=\"(s_t, a_t, r_t, s_{t+1})\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7ad\/8a7\/543\/7ad8a7543829f428fd1ee9e35497dbef.svg\" width=\"156\" height=\"28\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7ad\/8a7\/543\/7ad8a7543829f428fd1ee9e35497dbef.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7ad\/8a7\/543\/7ad8a7543829f428fd1ee9e35497dbef.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u043f\u044b\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u043c \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0431\u0443\u0444\u0435\u0440\u0430 \u0430\u0433\u0435\u043d\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b <img decoding=\"async\" class=\"formula inline\" source=\"Q\" alt=\"Q\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/035\/c2f\/214\/035c2f214f463744979a4187cb48c1ed.svg\" width=\"19\" height=\"25\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/035\/c2f\/214\/035c2f214f463744979a4187cb48c1ed.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/035\/c2f\/214\/035c2f214f463744979a4187cb48c1ed.svg 781w\" loading=\"lazy\" decode=\"async\"\/>-\u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ol>\n<p>\u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0446\u0438\u043a\u043b \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0445\u0435\u043c\u043e\u0439:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"s_t \\xrightarrow{a_t} (r_t, \\, s_{t+1})\" alt=\"s_t \\xrightarrow{a_t} (r_t, \\, s_{t+1})\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b62\/c98\/6c2\/b62c986c23fbc571b3443289e6e12dfe.svg\" width=\"160\" height=\"39\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b62\/c98\/6c2\/b62c986c23fbc571b3443289e6e12dfe.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b62\/c98\/6c2\/b62c986c23fbc571b3443289e6e12dfe.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<h4>3.2 \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041a\u043e\u0434<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">Hold \/ Wait<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">Open Long<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0434\u043b\u0438\u043d\u043d\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">Open Short<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">Close Position<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u0437\u0438\u0446\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041d\u0435\u043b\u044c\u0437\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u0435\u0441\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u044f;<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0448\u0430\u0433\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435:<\/strong> <img decoding=\"async\" class=\"formula inline\" source=\"( s_t \\in \\mathbb{R}^D )\" alt=\"( s_t \\in \\mathbb{R}^D )\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/82c\/bb5\/5db\/82cbb55dbe51912076dd260ab8f6b77e.svg\" width=\"104\" height=\"32\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/82c\/bb5\/5db\/82cbb55dbe51912076dd260ab8f6b77e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/82c\/bb5\/5db\/82cbb55dbe51912076dd260ab8f6b77e.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u041d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442:<\/p>\n<ol>\n<li>\n<p>\u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 <em>N<\/em> \u043c\u0438\u043d\u0443\u0442;<\/p>\n<\/li>\n<li>\n<p>\u042d\u043a\u0441\u0442\u0440\u0430-\u0444\u0438\u0447\u0438: \u043f\u043e\u0437\u0438\u0446\u0438\u044f, \u043d\u0435\u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 PnL, \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0435\u0435\/\u043e\u0441\u0442\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0432\u0440\u0435\u043c\u044f;<\/p>\n<\/li>\n<li>\n<p>One-hot \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"python\"># \u041f\u0440\u0438\u043c\u0435\u0440 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432 \u0441\u0440\u0435\u0434\u0435: extras = [position, unrealized_pnl, time_elapsed, time_remaining] state = np.concatenate([normalized.flatten(), extras, action_history_onehot])<\/code><\/pre>\n<p><strong>\u041d\u0430\u0433\u0440\u0430\u0434\u0430:<\/strong> <img decoding=\"async\" class=\"formula inline\" source=\"( r_t )\" alt=\"( r_t )\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f05\/749\/c49\/f05749c49827db7b0bcf90f6b1b57dcf.svg\" width=\"39\" height=\"28\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f05\/749\/c49\/f05749c49827db7b0bcf90f6b1b57dcf.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f05\/749\/c49\/f05749c49827db7b0bcf90f6b1b57dcf.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435:<\/p>\n<pre><code class=\"python\">reward = (pnl_change \/ initial_balance) - inaction_penalty<\/code><\/pre>\n<p>\u0413\u0434\u0435:<\/p>\n<ul>\n<li>\n<p><code>pnl_change<\/code> \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043e\u0445\u043e\u0434 \u043f\u0440\u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p><code>inaction_penalty<\/code> \u2014 \u0448\u0442\u0440\u0430\u0444 \u0437\u0430 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c:<\/p>\n<p><img decoding=\"async\" class=\"formula\" source=\"r_t = \\frac{\\Delta \\text{PnL}}{\\text{Initial Balance}} - \\lambda \\cdot \\mathbb{I}_{\\text{Hold, No Position}}\" alt=\"r_t = \\frac{\\Delta \\text{PnL}}{\\text{Initial Balance}} - \\lambda \\cdot \\mathbb{I}_{\\text{Hold, No Position}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fff\/92b\/c21\/fff92bc21446cef41fd391562c2c5c2f.svg\" width=\"428\" height=\"55\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fff\/92b\/c21\/fff92bc21446cef41fd391562c2c5c2f.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fff\/92b\/c21\/fff92bc21446cef41fd391562c2c5c2f.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0433\u0434\u0435 ( <img decoding=\"async\" class=\"formula inline\" source=\"\\lambda\" alt=\"\\lambda\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/265\/e08\/419\/265e08419eab1bbefa2138d0593452c2.svg\" width=\"14\" height=\"21\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/265\/e08\/419\/265e08419eab1bbefa2138d0593452c2.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/265\/e08\/419\/265e08419eab1bbefa2138d0593452c2.svg 781w\" loading=\"lazy\" decode=\"async\"\/> = 0.001 ) \u2014 \u0448\u0442\u0440\u0430\u0444 \u0437\u0430 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432\u043d\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438.<\/p>\n<h4>3.3 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u044b: step()<\/h4>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>step()<\/code> \u0432 \u0441\u0440\u0435\u0434\u0435 <code>TradingEnvironment<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443, \u0432\u043a\u043b\u044e\u0447\u0430\u044f:<\/p>\n<ul>\n<li>\n<p>\u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \/ \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0439,<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u0447\u0451\u0442 \u043f\u0440\u0438\u0431\u044b\u043b\u0438,<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438,<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435.<\/p>\n<\/li>\n<\/ul>\n<h4>3.4 \u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f: \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0438\u0441\u043a\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0430\u0434\u044b<\/h4>\n<p>\u0426\u0435\u043b\u044c \u0430\u0433\u0435\u043d\u0442\u0430 \u2014 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f: <img decoding=\"async\" class=\"formula inline\" source=\" \\pi(a \\mid s)\" alt=\" \\pi(a \\mid s)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c0b\/a8f\/cd6\/c0ba8fcd67841162a16846f7c59db52e.svg\" width=\"78\" height=\"28\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c0b\/a8f\/cd6\/c0ba8fcd67841162a16846f7c59db52e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c0b\/a8f\/cd6\/c0ba8fcd67841162a16846f7c59db52e.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0443\u044e \u043a\u0443\u043c\u0443\u043b\u044f\u0442\u0438\u0432\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0430\u0434\u0443:<\/p>\n<p><img decoding=\"async\" class=\"formula\" source=\"\\pi^* = \\arg\\max_\\pi \\mathbb{E} \\left[ \\sum_{t=0}^{T-1} \\gamma^t \\cdot r_t \\right]\" alt=\"\\pi^* = \\arg\\max_\\pi \\mathbb{E} \\left[ \\sum_{t=0}^{T-1} \\gamma^t \\cdot r_t \\right]\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b\/b6\/b64\/b64c1b643e63bb0d80704042150d598e.svg\" width=\"216\" height=\"48\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b\/b6\/b64\/b64c1b643e63bb0d80704042150d598e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b\/b6\/b64\/b64c1b643e63bb0d80704042150d598e.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0433\u0434\u0435:<\/p>\n<ul>\n<li>\n<p>( <img decoding=\"async\" class=\"formula inline\" source=\"T\" alt=\"T\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/be4\/d2d\/b6f\/be4d2db6f11db68af736692bd80a6f08.svg\" width=\"17\" height=\"20\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/be4\/d2d\/b6f\/be4d2db6f11db68af736692bd80a6f08.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/be4\/d2d\/b6f\/be4d2db6f11db68af736692bd80a6f08.svg 781w\" loading=\"lazy\" decode=\"async\"\/>= 60 ) \u2014 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p>( <img decoding=\"async\" class=\"formula inline\" source=\"\\gamma\" alt=\"\\gamma\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1b6\/08f\/311\/1b608f31112a4de9323723feca0967c7.svg\" width=\"13\" height=\"19\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1b6\/08f\/311\/1b608f31112a4de9323723feca0967c7.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1b6\/08f\/311\/1b608f31112a4de9323723feca0967c7.svg 781w\" loading=\"lazy\" decode=\"async\"\/> = 0.99 ) \u2014 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0434\u0438\u0441\u043a\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<h4>3.5 \u0423\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0411\u0435\u043b\u043b\u043c\u0430\u043d\u0430 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433\u0430<\/h4>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0411\u0435\u043b\u043b\u043c\u0430\u043d\u0430 \u0434\u043b\u044f Double DQN:<\/p>\n<p><img decoding=\"async\" class=\"formula\" source=\"Q(s, a) \\leftarrow r + \\gamma \\cdot Q_{\\text{target}}(s', \\arg\\max_{a'} Q_{\\text{policy}}(s', a'))\" alt=\"Q(s, a) \\leftarrow r + \\gamma \\cdot Q_{\\text{target}}(s', \\arg\\max_{a'} Q_{\\text{policy}}(s', a'))\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1\/1d\/1d3\/1d31f2910885100370a00cb97caf8197.svg\" width=\"384\" height=\"24\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1\/1d\/1d3\/1d31f2910885100370a00cb97caf8197.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1\/1d\/1d3\/1d31f2910885100370a00cb97caf8197.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p><strong>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432 <\/strong><code><strong>agent.learn()<\/strong><\/code><strong>:<\/strong><\/p>\n<pre><code class=\"python\">next_actions = self.policy_net(next_states).argmax(dim=1) next_q_values = self.target_net(next_states).gather(1, next_actions.unsqueeze(1)).squeeze(1) target_q_values = rewards + gamma * next_q_values * (1 - dones) loss = F.smooth_l1_loss(current_q_values, target_q_values) <\/code><\/pre>\n<p><strong>\u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044f:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0410\u0433\u0435\u043d\u0442 \u043e\u0442\u043a\u0440\u044b\u043b Long, \u0440\u044b\u043d\u043e\u043a \u0432\u044b\u0440\u043e\u0441 \u2192 (<img decoding=\"async\" class=\"formula inline\" source=\" r\" alt=\" r\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0ad\/593\/b9f\/0ad593b9fb61acdcd8f55faf6eab1178.svg\" width=\"11\" height=\"14\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0ad\/593\/b9f\/0ad593b9fb61acdcd8f55faf6eab1178.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0ad\/593\/b9f\/0ad593b9fb61acdcd8f55faf6eab1178.svg 781w\" loading=\"lazy\" decode=\"async\"\/> &gt; 0 ), <img decoding=\"async\" class=\"formula inline\" source=\"Q\" alt=\"Q\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7a9\/736\/989\/7a97369893e362c1803c8229de02d35b.svg\" width=\"19\" height=\"25\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7a9\/736\/989\/7a97369893e362c1803c8229de02d35b.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7a9\/736\/989\/7a97369893e362c1803c8229de02d35b.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0410\u0433\u0435\u043d\u0442 \u0432\u044b\u0431\u0440\u0430\u043b Hold \u043f\u0440\u0438 \u044f\u0432\u043d\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432\u043e\u0439\u0442\u0438 \u2192 ( <img decoding=\"async\" class=\"formula inline\" source=\"r\" alt=\"r\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e17\/cb2\/805\/e17cb2805262c101eb86e7a4962aa870.svg\" width=\"11\" height=\"14\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e17\/cb2\/805\/e17cb2805262c101eb86e7a4962aa870.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e17\/cb2\/805\/e17cb2805262c101eb86e7a4962aa870.svg 781w\" loading=\"lazy\" decode=\"async\"\/> <img decoding=\"async\" class=\"formula inline\" source=\"\\approx\" alt=\"\\approx\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/598\/259\/77c\/59825977c72cd9c6b56e686fc67ebc03.svg\" width=\"19\" height=\"14\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/598\/259\/77c\/59825977c72cd9c6b56e686fc67ebc03.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/598\/259\/77c\/59825977c72cd9c6b56e686fc67ebc03.svg 781w\" loading=\"lazy\" decode=\"async\"\/> 0 ), <img decoding=\"async\" class=\"formula inline\" source=\"Q\" alt=\"Q\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/176\/302\/0d8\/1763020d818f3f4698909cf4407cf9c8.svg\" width=\"19\" height=\"25\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/176\/302\/0d8\/1763020d818f3f4698909cf4407cf9c8.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/176\/302\/0d8\/1763020d818f3f4698909cf4407cf9c8.svg 781w\" loading=\"lazy\" decode=\"async\"\/> \u0441\u043d\u0438\u0436\u0430\u0435\u0442\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p><em>Target-\u0441\u0435\u0442\u044c<\/em> \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<h4>3.6 \u041f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430<\/h4>\n<pre><code class=\"python\">FOR each episode:     s\u2080 \u2190 env.reset()     FOR t = 1 to T:         a\u209c \u2190 \u03b5-greedy(s\u209c)         s\u209c\u208a\u2081, r\u209c \u2190 env.step(a\u209c)         buffer.add(s\u209c, a\u209c, r\u209c, s\u209c\u208a\u2081)         IF len(buffer) &gt; TRAIN_START:             batch \u2190 buffer.sample()             loss \u2190 update_Q(batch)         s\u209c \u2190 s\u209c\u208a\u2081 <\/code><\/pre>\n<h4>3.7 \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u0440\u0435\u0434\u044b<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u042d\u043b\u0435\u043c\u0435\u043d\u0442<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u043e\u043c\u0438\u0441\u0441\u0438\u044f (Taker)<\/p>\n<\/td>\n<td>\n<p align=\"left\">0.04% \u043e\u0442 \u043e\u0431\u044a\u0451\u043c\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u00b10.05%<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0428\u0442\u0440\u0430\u0444 \u0437\u0430 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u22120.001 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u042d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u044e\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u044b \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0435 \u043d\u0430 Binance Futures.<\/p>\n<h4>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0430\u0433\u0435\u043d\u0442 \u0440\u0435\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0441\u0442\u0438, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0438\u0437\u0434\u0435\u0440\u0436\u0435\u043a \u0438 \u0448\u0442\u0440\u0430\u0444\u043e\u0432 \u0437\u0430 \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f.<\/p>\n<p>\u0424\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0442\u0440\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u044f\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435\u0441\u0451\u0442 \u043a\u0430\u043a \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0438\u0441\u043a, \u0442\u0430\u043a \u0438 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u0438\u0431\u044b\u043b\u044c.<\/p>\n<h4><\/h4>\n<h3>4. \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h3>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043a\u0430\u043a \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u0430\u044f \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432.<br \/>\u0412\u0441\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0441\u0442\u0440\u043e\u0433\u0443\u044e \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044e \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u043f\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043c.<\/p>\n<h4>4.1 \u041f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<ol>\n<li>\n<p><code>train.py<\/code>: <\/p>\n<ul>\n<li>\n<p>\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 <code>utils.load_npz_dataset()<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0441\u0440\u0435\u0434\u0443: <code>TradingEnvironment(data[i])<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0438\u043d\u0438\u0446\u0438\u0438\u0440\u0443\u0435\u0442 \u0430\u0433\u0435\u043d\u0442\u0430 D3QN \u0438 \u0431\u0443\u0444\u0435\u0440 PER.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u0446\u0438\u043a\u043b\u0430: <\/p>\n<ul>\n<li>\n<p>\u0430\u0433\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 <code>state<\/code>, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 <code>action<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>env.step(action)<\/code> \u2192 <code>next_state<\/code>, <code>reward<\/code>, <code>done<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0431\u0443\u0444\u0435\u0440 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434; \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>agent.learn()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>model.py<\/code>: <\/p>\n<ul>\n<li>\n<p>\u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 <code>state<\/code> \u0447\u0435\u0440\u0435\u0437 CNN;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f:<\/p>\n<p> <img decoding=\"async\" class=\"formula inline\" source=\"Q(s, a) = V(s) + \\left( A(s, a) - \\frac{1}{|\\mathcal{A}|} \\sum_{a'} A(s, a') \\right)\" alt=\"Q(s, a) = V(s) + \\left( A(s, a) - \\frac{1}{|\\mathcal{A}|} \\sum_{a'} A(s, a') \\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0de\/eca\/3e9\/0deeca3e9f106a83b584cd3ca0ca434f.svg\" width=\"495\" height=\"76\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0de\/eca\/3e9\/0deeca3e9f106a83b584cd3ca0ca434f.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0de\/eca\/3e9\/0deeca3e9f106a83b584cd3ca0ca434f.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>replay_buffer.py<\/code>: <\/p>\n<ul>\n<li>\n<p>\u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 TD-\u043e\u0448\u0438\u0431\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0441\u0435\u043c\u043f\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 SumTree.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041b\u043e\u0433\u0433\u0438\u043d\u0433: <\/p>\n<ul>\n<li>\n<p>\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f <code>reward<\/code>, <code>loss<\/code>, <code>\u03b5<\/code>, <code>win_rate<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f &#8212; \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f <code>best.pth<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0411\u044d\u043a\u0442\u0435\u0441\u0442 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f: <\/p>\n<ul>\n<li>\n<p><code>backtest_engine.py<\/code>: \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u044e \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u043d\u0430 \u043d\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445;<\/p>\n<\/li>\n<li>\n<p><code>optimize_cfg.py<\/code>: \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 Optuna;<\/p>\n<\/li>\n<li>\n<p>\u0411\u044d\u043a\u0442\u0435\u0441\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u043e\u0442 \u0436\u0435 \u0430\u0433\u0435\u043d\u0442, \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u043f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0434\u0435\u043b\u043a\u0438, \u043b\u043e\u0433\u0433\u0438\u043d\u0433, \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u0440\u0438\u0441\u043a-\u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h4>4.2 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h4>\n<pre><code>\ud83d\udce6 rl_trading_binance\/ \u2502 \u251c\u2500\u2500 train.py                        # \u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0430\u0433\u0435\u043d\u0442\u0430 \u251c\u2500\u2500 test_agent.py                   # \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0433\u0435\u043d\u0442\u0430 \u251c\u2500\u2500 backtest_engine.py              # \u0421\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u251c\u2500\u2500 optimize_cfg.py                 # \u041f\u043e\u0438\u0441\u043a \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u251c\u2500\u2500 baseline_cnn_classifier.py      # Baseline: CNN \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u251c\u2500\u2500 config.py                       # \u0411\u0430\u0437\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 (pydantic) \u251c\u2500\u2500 configs\/                        # \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u043f\u043e\u0434 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u2502   \u251c\u2500\u2500 alpha.py \u2502   \u251c\u2500\u2500 alpha_baseline_cnn.py \u2502   \u2514\u2500\u2500 ... \u2502 \u251c\u2500\u2500 model.py                        # Dueling CNN + Q-value head \u251c\u2500\u2500 agent.py                        # D3QN Agent (PER + epsilon decay) \u251c\u2500\u2500 replay_buffer.py                # Prioritized Experience Replay (SumTree) \u251c\u2500\u2500 trading_environment.py          # RL-\u0441\u0440\u0435\u0434\u0430 \u0441 \u0440\u0430\u0441\u0447\u0451\u0442\u043e\u043c PnL \u251c\u2500\u2500 utils.py                        # \u041b\u043e\u0433\u0433\u0438\u043d\u0433, \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u2514\u2500\u2500 output\/     \u2514\u2500\u2500 experiment_name\/            # \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442          \u251c\u2500\u2500 logs\/         \u251c\u2500\u2500 plots\/         \u251c\u2500\u2500 saved_models\/         \u2514\u2500\u2500 optuna_cfg_optimization_results\/ <\/code><\/pre>\n<h4>4.3 \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 (cfg)<\/h4>\n<p>\u042f \u0432\u043d\u0435\u0434\u0440\u0438\u043b \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438: \u0432\u0441\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 cfg-\u043e\u0431\u044a\u0435\u043a\u0442, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 <code>pydantic.BaseModel<\/code>. \u041e\u043d \u0440\u0430\u0437\u0431\u0438\u0442 \u043d\u0430 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u043b\u043e\u043a\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041a\u043e\u043d\u0444\u0438\u0433-\u0431\u043b\u043e\u043a<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>paths<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0443\u0442\u0438 \u043a \u0434\u0430\u043d\u043d\u044b\u043c, \u043b\u043e\u0433\u0430\u043c, \u043c\u043e\u0434\u0435\u043b\u044f\u043c, \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>seq<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>data<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u043d\u0430\u043b\u044b (OHLCV \u0438 \u0434\u043e\u043f.), \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>rl<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0413\u0438\u043f\u0435\u0440\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b RL \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>model<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 (CNN + Dueling)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>trainlog<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>smart<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0432\u044b\u0431\u043e\u0440\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">&#8230;<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0440\u0443\u0433\u0438\u0435: <code>market<\/code>, <code>device<\/code>, <code>eps<\/code>, <code>debug<\/code> \u0438 \u0442.\u0434.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u043d\u043e\u0432\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 <code>configs\/cfg_name.py<\/code>, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"python\"># configs\/alpha.py from config import MasterConfig  cfg = MasterConfig()  ACTION_HISTORY_LEN = 3  cfg.model.cnn_maps = [32, 64, 128] cfg.model.cnn_kernels = [7, 5, 3] cfg.model.cnn_strides = [2, 1, 1] cfg.model.dense_val = [128, 64] cfg.model.dense_adv = [128, 64] cfg.model.additional_feats = 4 + ACTION_HISTORY_LEN * 4 cfg.model.dropout_p = 0.1  cfg.trainlog.num_val_ep = 3500 cfg.trainlog.val_freq = 1000 cfg.trainlog.episodes = 55_000 cfg.trainlog.plot_top_n = 10  cfg.per.buffer_size = 230_000  cfg.rl.batch_size = 16 cfg.rl.learning_rate = 1e-4 cfg.rl.train_start = 10_000  cfg.seq.agent_history_len = 30 cfg.seq.agent_session_len = 10 cfg.seq.action_history_len = ACTION_HISTORY_LEN  cfg.backtest_mode = True cfg.backtest.max_parallel_sessions = 2 cfg.backtest.position_fraction = 0.5 cfg.backtest.selection_strategy = \"advantage_based_filter\"<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435:<\/p>\n<pre><code class=\"bash\">python train.py configs\/alpha.py<\/code><\/pre>\n<p>\u0432\u0441\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430 \u043f\u043e \u043f\u0443\u0442\u0438:<\/p>\n<pre><code>output\/alpha\/ \u251c\u2500\u2500 logs\/ \u251c\u2500\u2500 plots\/ \u2514\u2500\u2500 saved_models\/ <\/code><\/pre>\n<p>\u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0435\u0441\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b\u043c, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u043c.<\/p>\n<h4>4.4 CNN baseline \u043c\u043e\u0434\u0443\u043b\u044c<\/h4>\n<p>\u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d \u043e\u0434\u0438\u043d baseline-\u043c\u043e\u0434\u0443\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d \u043a\u0430\u043a \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0439 <code>.py<\/code>-\u0441\u043a\u0440\u0438\u043f\u0442. \u041e\u043d \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0442\u0435\u043c \u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u0447\u0442\u043e \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0430\u0433\u0435\u043d\u0442:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041c\u043e\u0434\u0443\u043b\u044c<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>baseline_cnn_classifier.py<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 CNN \u0441\u0435\u0442\u0438 \u0441 \u0447\u0438\u0441\u043b\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0440\u0430\u0432\u043d\u044b\u043c RL-\u0441\u0435\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>CNN baseline:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 <code>cfg<\/code> \u0438\u0437 <code>configs\/*.py<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 <code>output\/name_cfg\/<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043b\u043e\u0433\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 (<code>PnL<\/code>, <code>WinRate<\/code>, <code>ROC AUC<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u0432\u0430\u043b\u0438\u0434\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e (<code>cnn_classifier<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u0443\u044e \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u043a\u0430\u043a \u0438 RL-\u0430\u0433\u0435\u043d\u0442 (<code>calculate_normalization_stats<\/code>, <code>apply_normalization<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043b\u0430\u0441\u0441\u044b \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u2191\/\u2193), \u0433\u0434\u0435 \u0442\u0430\u0440\u0433\u0435\u0442: 1, \u0435\u0441\u043b\u0438 end_price &gt; start_price; \u0438\u043d\u0430\u0447\u0435 0.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0447\u0435\u0441\u0442\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c baseline-\u043c\u043e\u0434\u0435\u043b\u044c \u0438 RL-\u0430\u0433\u0435\u043d\u0442\u0430 \u043f\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c:<\/p>\n<ul>\n<li>\n<p><code>mean PnL<\/code> \u2014 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u044b\u0439 \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0434\u043e\u0445\u043e\u0434 \u043d\u0430 \u0441\u0435\u0441\u0441\u0438\u044e;<\/p>\n<\/li>\n<li>\n<p><code>win rate<\/code> \u2014 \u0434\u043e\u043b\u044f \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0412\u044b\u0432\u043e\u0434<\/h4>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u0443\u044e, \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e \u0432\u044b\u0432\u0435\u0440\u0435\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0440\u0435\u0448\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443. \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043b\u0435\u0433\u043a\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u0430, \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u0430 \u0438 \u0433\u043e\u0442\u043e\u0432\u0430 \u043a \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d-\u0441\u0440\u0435\u0434\u0443 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438.<\/p>\n<h3>5. RL-\u0441\u0440\u0435\u0434\u0430 (TradingEnvironment)<\/h3>\n<p>\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u2014 \u044d\u0442\u043e \u0441\u0438\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u044f \u0441\u0440\u0435\u0434\u0430, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 <code>gym.Env<\/code> (\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430 \u0441 Gymnasium).<br \/>\u041e\u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a\u0440\u0438\u043f\u0442\u043e\u0440\u044b\u043d\u043a\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0438\u043d\u0443\u0442\u043d\u044b\u0445 \u043a\u043e\u0442\u0438\u0440\u043e\u0432\u043e\u043a, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u0431\u044b\u043b\u044c\/\u0443\u0431\u044b\u0442\u043e\u043a \u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0430\u0433\u0435\u043d\u0442\u0430.<\/p>\n<h4>5.1 \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0440\u0435\u0434\u044b<\/h4>\n<p>\u0421\u0440\u0435\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0435\u0439 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e <em>N<\/em> \u0448\u0430\u0433\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0448\u0430\u0433 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442 \u043e\u0434\u043d\u0443 \u043c\u0438\u043d\u0443\u0442\u0443 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>balance<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0431\u0430\u043b\u0430\u043d\u0441 \u0430\u0433\u0435\u043d\u0442\u0430 (\u0432 USD)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>position<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f: 1 \u2014 Long, -1 \u2014 Short, 0 \u2014 \u043d\u0435\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>entry_price<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0426\u0435\u043d\u0430 \u0432\u0445\u043e\u0434\u0430 \u0432 \u043f\u043e\u0437\u0438\u0446\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>realized_pnl<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u044b\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 PnL \u0437\u0430 \u044d\u043f\u0438\u0437\u043e\u0434<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>step_idx<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u043e\u043c\u0435\u0440 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0448\u0430\u0433\u0430 \u0432 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>closed_trades<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>profitable_trades<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0434\u0435\u043b\u043e\u043a \u0441 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c PnL<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>history_actions<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 <em>k<\/em> \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 (\u0434\u043b\u044f one-hot-\u0438\u0441\u0442\u043e\u0440\u0438\u0438)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>5.2 \u041f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0441\u0440\u0435\u0434\u044b<\/h4>\n<p><strong>Action Space (\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0439):<\/strong><\/p>\n<pre><code class=\"python\">self.action_space = spaces.Discrete(4)  # A = {0: Hold, 1: Long, 2: Short, 3: Close}<\/code><\/pre>\n<p><strong>Observation Space:<\/strong><\/p>\n<pre><code class=\"python\">self.observation_space = Box(     low=-inf,     high=inf,     shape=(obs_dim,),     dtype=np.float32 )<\/code><\/pre>\n<h4>5.3 Reward Function<\/h4>\n<p>\u041d\u0430\u0433\u0440\u0430\u0434\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438\u0437 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f PnL, \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u0430\u043b\u0430\u043d\u0441, \u043f\u043b\u044e\u0441 \u0448\u0442\u0440\u0430\u0444 \u0437\u0430 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432\u043d\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438.<\/p>\n<p><img decoding=\"async\" class=\"formula\" source=\"r_t = \\frac{\\Delta \\text{PnL}_t}{\\text{InitialBalance}} - \\lambda \\cdot 1_{\\text{Idle}}\" alt=\"r_t = \\frac{\\Delta \\text{PnL}_t}{\\text{InitialBalance}} - \\lambda \\cdot 1_{\\text{Idle}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9\/99\/999\/9994e904a20b73004541918146a1bd29.svg\" width=\"232\" height=\"32\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9\/99\/999\/9994e904a20b73004541918146a1bd29.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9\/99\/999\/9994e904a20b73004541918146a1bd29.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0413\u0434\u0435:<\/p>\n<ul>\n<li>\n<p>(<img decoding=\"async\" class=\"formula inline\" source=\" \\Delta \\text{PnL}_t\" alt=\" \\Delta \\text{PnL}_t\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/137\/10d\/c83\/13710dc8379682b1d5caf9b8327d04b9.svg\" width=\"75\" height=\"24\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/137\/10d\/c83\/13710dc8379682b1d5caf9b8327d04b9.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/137\/10d\/c83\/13710dc8379682b1d5caf9b8327d04b9.svg 781w\" loading=\"lazy\" decode=\"async\"\/> ) \u2014 \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u0438\u0431\u044b\u043b\u0438 \u0437\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0448\u0430\u0433<\/p>\n<\/li>\n<li>\n<p>(<img decoding=\"async\" class=\"formula inline\" source=\" \\lambda \" alt=\" \\lambda \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ec5\/c8f\/337\/ec5c8f33746ccba6a34d675ada49b6ab.svg\" width=\"14\" height=\"21\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ec5\/c8f\/337\/ec5c8f33746ccba6a34d675ada49b6ab.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ec5\/c8f\/337\/ec5c8f33746ccba6a34d675ada49b6ab.svg 781w\" loading=\"lazy\" decode=\"async\"\/>) \u2014 \u0448\u0442\u0440\u0430\u0444 \u0437\u0430 \u0431\u0435\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435<\/p>\n<\/li>\n<li>\n<p>( <img decoding=\"async\" class=\"formula inline\" source=\"1_{\\text{Idle}} = 1\" alt=\"1_{\\text{Idle}} = 1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aad\/2e7\/de2\/aad2e7de287196e294e684c7f960dcd9.svg\" width=\"88\" height=\"23\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aad\/2e7\/de2\/aad2e7de287196e294e684c7f960dcd9.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aad\/2e7\/de2\/aad2e7de287196e294e684c7f960dcd9.svg 781w\" loading=\"lazy\" decode=\"async\"\/> ), \u0435\u0441\u043b\u0438 \u0430\u0433\u0435\u043d\u0442 \u0432\u043d\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0438 \u0432\u044b\u0431\u0440\u0430\u043b <code>Hold<\/code><\/p>\n<\/li>\n<\/ul>\n<h4>5.4 \u0422\u043e\u0440\u0433\u043e\u0432\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 step(action)<\/h4>\n<pre><code class=\"python\">def step(self, action: int) -&gt; Tuple[np.ndarray, float, bool, bool, dict]:     ... <\/code><\/pre>\n<p><strong>\u0423\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439:<\/strong><\/p>\n<pre><code class=\"python\">if action == 1 and position == 0:     entry_price = price * (1 + slippage)     position = 1  elif action == 2 and position == 0:     entry_price = price * (1 - slippage)     position = -1  elif action == 3 and position != 0:     if position == 1:         pnl = (sell_price - entry_price) * qty     else:         pnl = (entry_price - buy_price) * qty     realized_pnl += pnl - fee     position = 0 <\/code><\/pre>\n<p><strong>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c: Action Masking \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0448\u0430\u0433\u0435<\/strong><\/p>\n<p>\u0412 \u043a\u043e\u043d\u0446\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438, \u0435\u0441\u043b\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439, \u0430\u0433\u0435\u043d\u0442\u0443 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u2014 <code>CLOSE<\/code>. \u042d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c action masking:<\/p>\n<pre><code class=\"python\">if self.step_id == max_steps - 1 and self.position is not None:     forced_action = CLOSE <\/code><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f, \u0432 \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0434\u0432\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438: <code>elapsed time<\/code> \u0438 <code>remaining time<\/code> \u0434\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0441\u0435\u0441\u0441\u0438\u0438. \u042d\u0442\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0430\u0433\u0435\u043d\u0442\u0443 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0434\u043e \u043d\u0430\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0448\u0430\u0433\u0430.<\/p>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u0433\u0435\u043d\u0442\u0430 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0431\u043e\u043b\u0435\u0435 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0434\u0435\u043b\u043a\u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043f\u0438\u043a\u0435 \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0430 \u043d\u0435 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043f\u0440\u0438\u043d\u0443\u0436\u0434\u0435\u043d\u0438\u044f.<\/p>\n<h4>5.5 \u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f (_get_observation())<\/h4>\n<p>\u041a\u0430\u0436\u0434\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0430\u0446\u0438\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u0446\u0435\u043d \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432.<\/p>\n<p><strong>\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b:<\/strong><\/p>\n<pre><code class=\"python\">window = self.current_seq[start:end] normalized = apply_normalization(window, stats, ...) <\/code><\/pre>\n<p><strong>Extras:<\/strong><\/p>\n<pre><code class=\"python\">extras = np.array([     float(self.position),     unrealized_pnl,     time_elapsed,     time_remaining ]) <\/code><\/pre>\n<p><strong>Action History:<\/strong><\/p>\n<pre><code class=\"python\">hist_onehot = np.zeros(ACTION_HISTORY_LEN * NUM_ACTIONS) for i, a in enumerate(history_actions):     if a is not None:         hist_onehot[i * NUM_ACTIONS + a] = 1 <\/code><\/pre>\n<p><strong>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435:<\/strong><\/p>\n<pre><code class=\"python\">state = np.concatenate([     normalized.flatten(),     extras,     hist_onehot ]) <\/code><\/pre>\n<h4>5.6 \u041f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434 \u0441\u0440\u0435\u0434\u044b<\/h4>\n<pre><code class=\"python\">initialize(balance=10_000, position=0, entry_price=0.0)  FOR each episode:     load sequence from data     FOR t in 0 to 59:         state \u2190 get_observation()         action \u2190 agent(state)          IF action == Open AND no position:             enter position         IF action == Close AND have position:             exit position         update balance, position, realized_pnl          reward \u2190 calc_reward(pnl, penalty_if_no_actions)         obs_next \u2190 get_observation()         done \u2190 (t == N)         return (obs_next, reward, done, info) <\/code><\/pre>\n<h4>\u0412\u044b\u0432\u043e\u0434<\/h4>\n<p>\u0422\u043e\u0440\u0433\u043e\u0432\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u044d\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0443\u044e \u0440\u044b\u043d\u043e\u0447\u043d\u0443\u044e \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0443 \u0441 \u0432\u044b\u0441\u043e\u043a\u0438\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>TradingEnvironment<strong>:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438, \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0435, \u0448\u0442\u0440\u0430\u0444\u044b<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0430\u0433\u0435\u043d\u0442\u0443 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u043e\u0442 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e action masking<\/p>\n<\/li>\n<li>\n<p>\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u0435 \u043d\u0430\u0433\u0440\u0430\u0434\u044b, \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<h3>6. \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 (D3QN + PER)<\/h3>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043b\u0435\u0436\u0430\u0449\u0438\u0439 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u0433\u0435\u043d\u0442\u0430, &#8212; \u044d\u0442\u043e Dueling Double Deep Q-Network \u0441 Prioritized Experience Replay (D3QN + PER). \u0412\u044b\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043e\u0431\u0443\u0441\u043b\u043e\u0432\u043b\u0435\u043d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438:<\/p>\n<ul>\n<li>\n<p>\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c \u00ab\u0432\u0430\u0436\u043d\u044b\u0435\u00bb \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043e\u0442 \u043d\u0435\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u044b\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043d\u0438\u0436\u0435\u043d\u0438\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u043f\u0435\u0440\u0435\u043e\u0446\u0435\u043d\u043a\u0438 Q-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 (overestimation).<\/p>\n<\/li>\n<\/ul>\n<h4>6.1 \u041f\u043e\u0447\u0435\u043c\u0443 Dueling DQN \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u0435\u043d \u0432 \u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433\u0435?<\/h4>\n<p>\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 DQN \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 Q(s, a), \u043d\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044f \u0432\u043a\u043b\u0430\u0434 \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043a \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u043c\u0443 \u0448\u0443\u043c\u0443 \u0438 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0432 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445, \u0433\u0434\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b.<\/p>\n<p>\u0412 Dueling DQN \u044d\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0434\u0432\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435:<\/p>\n<ul>\n<li>\n<p>V(s) &#8212; \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>A(s, a) &#8212; \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f a \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0432 \u044d\u0442\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0424\u043e\u0440\u043c\u0443\u043b\u0430:<\/strong><\/p>\n<p><img decoding=\"async\" class=\"formula\" source=\"Q(s,a) = V(s) + \\left(A(s,a) - \\frac{1}{|A|} \\sum_{a'} A(s,a')\\right)\" alt=\"Q(s,a) = V(s) + \\left(A(s,a) - \\frac{1}{|A|} \\sum_{a'} A(s,a')\\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/75\/756\/756cc2403fcb673a76673124a8b698bf.svg\" width=\"360\" height=\"48\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/75\/756\/756cc2403fcb673a76673124a8b698bf.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/75\/756\/756cc2403fcb673a76673124a8b698bf.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0432 \u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433\u0435, \u0433\u0434\u0435 \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u043d\u0435 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u0430 \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u0432\u043e\u043e\u0431\u0449\u0435.<\/p>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440:<\/strong><\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0432\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f:<\/p>\n<ol>\n<li>\n<p>\u041f\u0443\u0441\u0442\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0431\u043b\u0438\u0436\u0435 \u043a \u043a\u043e\u043d\u0446\u0443 \u0441\u0435\u0441\u0441\u0438\u0438: \u0446\u0435\u043d\u044b \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b, \u043e\u0431\u044a\u0451\u043c\u044b \u0441\u043d\u0438\u0436\u0430\u044e\u0442\u0441\u044f, \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043d\u0435\u0442. <\/p>\n<ul>\n<li>\n<p>V(s) \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0437\u043a\u0438\u043c: \u0440\u044b\u043d\u043e\u0447\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>A(s, a) \u2248 0 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 a: \u043d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043d\u0435 \u0434\u0430\u0451\u0442 \u043e\u0449\u0443\u0442\u0438\u043c\u043e\u0433\u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0421\u0438\u043b\u044c\u043d\u044b\u0439 \u0438\u043c\u043f\u0443\u043b\u044c\u0441 \u043d\u0430 \u0440\u044b\u043d\u043a\u0435: \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u044f\u0432\u043d\u0430\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f. <\/p>\n<ul>\n<li>\n<p>V(s) \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0441\u043e\u043a\u0438\u043c: \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u0430\u044f.<\/p>\n<\/li>\n<li>\n<p>A(s, Long) &gt;&gt; A(s, Short): \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f Long \u044f\u0440\u043a\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043e.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, Dueling DQN \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0433\u0435\u043d\u0442\u0443 \u0431\u043e\u043b\u0435\u0435 \u0447\u0451\u0442\u043a\u043e \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0437\u044b \u0438 \u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0446\u0435\u043d\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u0445 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u0432 \u043f\u043e\u0437\u0438\u0446\u0438\u044e.<\/p>\n<p><strong>Double DQN<\/strong><\/p>\n<p>\u0420\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043f\u0435\u0440\u0435\u043e\u0446\u0435\u043d\u043a\u0438 Q-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0443\u0442\u0451\u043c \u0440\u0430\u0437\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u043e\u0434\u043d\u0430 \u0441\u0435\u0442\u044c \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 (policy);<\/p>\n<\/li>\n<li>\n<p>\u0432\u0442\u043e\u0440\u0430\u044f \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 (target).<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0424\u043e\u0440\u043c\u0443\u043b\u0430:<\/strong><\/p>\n<p><img decoding=\"async\" class=\"formula\" source=\"Q_{\\text{target}} = r + \\gamma \\cdot Q_{\\theta^-}(s', \\arg\\max_{a'} Q_{\\theta}(s', a'))\" alt=\"Q_{\\text{target}} = r + \\gamma \\cdot Q_{\\theta^-}(s', \\arg\\max_{a'} Q_{\\theta}(s', a'))\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/77\/771\/77104706ca1b882e2ef0a8c18f61eef7.svg\" width=\"328\" height=\"24\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/77\/771\/77104706ca1b882e2ef0a8c18f61eef7.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/77\/771\/77104706ca1b882e2ef0a8c18f61eef7.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <code>learn()<\/code>.<\/p>\n<p><strong>Prioritized Experience Replay (PER)<\/strong><\/p>\n<p>\u041e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0444\u043e\u043a\u0443\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u0445. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0430 TD-\u043e\u0448\u0438\u0431\u043a\u0435:<\/p>\n<p><img decoding=\"async\" class=\"formula\" source=\"p_i \\propto (|\\delta_i| + \\varepsilon)^\\alpha\" alt=\"p_i \\propto (|\\delta_i| + \\varepsilon)^\\alpha\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c\/c1\/c1b\/c1b0a28356f938997b27f26d560621ab.svg\" width=\"112\" height=\"16\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c\/c1\/c1b\/c1b0a28356f938997b27f26d560621ab.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c\/c1\/c1b\/c1b0a28356f938997b27f26d560621ab.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0413\u0434\u0435 ( <img decoding=\"async\" class=\"formula inline\" source=\"\\delta_i \" alt=\"\\delta_i \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/36b\/a7b\/1f2\/36ba7b1f219759923aeb8200c643a22e.svg\" width=\"19\" height=\"24\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/36b\/a7b\/1f2\/36ba7b1f219759923aeb8200c643a22e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/36b\/a7b\/1f2\/36ba7b1f219759923aeb8200c643a22e.svg 781w\" loading=\"lazy\" decode=\"async\"\/>) \u2014 TD-\u043e\u0448\u0438\u0431\u043a\u0430, ( <img decoding=\"async\" class=\"formula inline\" source=\"\\varepsilon\" alt=\"\\varepsilon\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d49\/312\/844\/d49312844767f135d23941042f3a28c3.svg\" width=\"11\" height=\"15\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d49\/312\/844\/d49312844767f135d23941042f3a28c3.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d49\/312\/844\/d49312844767f135d23941042f3a28c3.svg 781w\" loading=\"lazy\" decode=\"async\"\/> ) \u2014 \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440.<\/p>\n<h4>6.2 \u041a\u043b\u0430\u0441\u0441 \u0430\u0433\u0435\u043d\u0442\u0430 D3QN_PER_Agent<\/h4>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d \u0432 <code>agent.py<\/code>. \u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e policy \u0438 target \u0441\u0435\u0442\u0435\u0439;<\/p>\n<\/li>\n<li>\n<p>( <img decoding=\"async\" class=\"formula inline\" source=\"\\varepsilon\" alt=\"\\varepsilon\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b7b\/991\/24e\/b7b99124e47cb0687fa513cc4b60c24a.svg\" width=\"11\" height=\"15\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b7b\/991\/24e\/b7b99124e47cb0687fa513cc4b60c24a.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b7b\/991\/24e\/b7b99124e47cb0687fa513cc4b60c24a.svg 781w\" loading=\"lazy\" decode=\"async\"\/> )-\u0436\u0430\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e;<\/p>\n<\/li>\n<li>\n<p>\u0431\u0443\u0444\u0435\u0440 PER;<\/p>\n<\/li>\n<li>\n<p>\u043b\u043e\u0433\u0438\u043a\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041a\u044d\u0448 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0434\u043b\u044f \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0430<\/strong><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u043c\u0430\u0441\u0441\u043e\u0432\u0443\u044e \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u044e \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u0430\u0433\u0435\u043d\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0435 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Q-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u041a\u0430\u0436\u0434\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u043a\u043b\u044e\u0447\u043e\u043c (\u0442\u0438\u043a\u0435\u0440, \u0432\u0440\u0435\u043c\u044f), \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f Q-\u043e\u0446\u0435\u043d\u043a\u0438;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e, \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u2014 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0438\u0437 <code>qval_cache.pkl<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u042d\u0442\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0430 \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0440\u0430\u0437 \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0431\u043e\u0440 \u0441\u043e\u0442\u0435\u043d \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439 \u0432 Optuna;<\/p>\n<\/li>\n<li>\n<p>\u041a\u044d\u0448 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0430\u0433\u0435\u043d\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"python\"># \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u044d\u0448\u0430: action = agent.select_action(     state, training=False, use_cache=True, cache_key=(\"BTCUSDT\", datetime.utcnow()) ) <\/code><\/pre>\n<h4>6.3 \u041f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434 D3QN + PER<\/h4>\n<pre><code class=\"python\">FOR each episode:     s\u2080 \u2190 env.reset()     FOR t = 1 to T:         a\u209c \u2190 \u03b5-greedy(s\u209c)         s\u209c\u208a\u2081, r\u209c \u2190 env.step(a\u209c)         buffer.add(s\u209c, a\u209c, r\u209c, s\u209c\u208a\u2081)          IF len(buffer) \u2265 TRAIN_START:             B \u2190 buffer.sample(BATCH_SIZE)             Compute target_q via Double DQN             Compute loss = SmoothL1(Q - target)             Backprop with PER weights             Clip gradients             Update policy_net             Every N steps: sync target_net <\/code><\/pre>\n<h4>\u0412\u044b\u0432\u043e\u0434<\/h4>\n<p>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 D3QN + PER \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435\u043c:<\/p>\n<ul>\n<li>\n<p><strong>Dueling<\/strong> \u2014 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043e\u0446\u0435\u043d\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439;<\/p>\n<\/li>\n<li>\n<p><strong>Double<\/strong> \u2014 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043e\u0446\u0435\u043d\u043a\u0438 Q-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439;<\/p>\n<\/li>\n<li>\n<p><strong>PER<\/strong> \u2014 \u0444\u043e\u043a\u0443\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0445 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u0445;<\/p>\n<\/li>\n<li>\n<p><strong>Clip Gradients, Target Sync \u0438 Epsilon Decay<\/strong> \u2014 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u2014 \u043d\u0430\u0434\u0451\u0436\u043d\u0430\u044f \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f D3QN, \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0434\u043b\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439.<\/p>\n<h3>7. \u041d\u0435\u0439\u0440\u043e\u043d\u043d\u0430\u044f \u0441\u0435\u0442\u044c (Dueling CNN-Net)<\/h3>\n<p>\u0414\u043b\u044f \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u0438 Q-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0430\u044f:<\/p>\n<ol>\n<li>\n<p><strong>\u0421\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u044b\u0439 \u0431\u043b\u043e\u043a (CNN)<\/strong> \u2014 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0440\u043e\u0447\u043d\u044b\u0435 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0438\u0437 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p><strong>Dueling head<\/strong> \u2014 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 Value \u0438 Advantage, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c\u044b\u0435 \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0435 Q-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u0430\u043a\u043e\u0439 \u0434\u0438\u0437\u0430\u0439\u043d \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u043a \u0448\u0443\u043c\u0443, \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043a \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0443 \u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<h4>7.1 \u041f\u043e\u0447\u0435\u043c\u0443 CNN?<\/h4>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u0443\u044e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c (CNN) \u043a\u0430\u043a \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c:<\/p>\n<ul>\n<li>\n<p>CNN \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432 \u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u0430\u0445;<\/p>\n<\/li>\n<li>\n<p>\u043e\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0430 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u043b\u0435\u0433\u043a\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u0442\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 CNN \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0438\u0434\u0435\u044e \u0434\u0432\u0438\u0436\u0443\u0449\u0435\u0433\u043e\u0441\u044f \u043e\u043a\u043d\u0430, \u0447\u0442\u043e \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u044b\u0431\u043e\u0440 CNN \u043f\u0440\u043e\u0434\u0438\u043a\u0442\u043e\u0432\u0430\u043d \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0435\u0439 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u2014 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0439, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 baseline, \u0437\u0430\u0442\u0435\u043c \u2014 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u043c, \u0442\u0430\u043a\u0438\u043c \u043a\u0430\u043a:<\/p>\n<ul>\n<li>\n<p>iTransformer (Inverted Transformers) \u2014 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 time-series;<\/p>\n<\/li>\n<li>\n<p>Perceiver IO \u2014 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b;<\/p>\n<\/li>\n<li>\n<p>Temporal Fusion Transformer \u2014 SOTA \u0432 \u043c\u0443\u043b\u044c\u0442\u0438\u0432\u0430\u0440\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u0430\u0445.<\/p>\n<\/li>\n<\/ul>\n<p>CNN \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043a\u0430\u043a \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0439 \u044f\u043a\u043e\u0440\u044c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u043a \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u044b\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u043c.<\/p>\n<h4>7.2 \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b<\/h4>\n<p><strong>Feature Extractor (CNN):<\/strong><\/p>\n<pre><code>for i in range(len(cnn_maps)):     Conv2D(in_channels \u2192 out_channels, kernel=(k, 1), stride=(s, 1))     ReLU <\/code><\/pre>\n<p><strong>Concatenation:<\/strong><\/p>\n<pre><code>combined = torch.cat([cnn_flat, extras], dim=1) <\/code><\/pre>\n<p><strong>Value Head:<\/strong><\/p>\n<pre><code>value = self.value_stream(combined)  # shape: (batch, 1) <\/code><\/pre>\n<p><strong>Advantage Head:<\/strong><\/p>\n<pre><code>advantage = self.advantage_stream(combined)  # shape: (batch, num_actions)<\/code><\/pre>\n<p><strong>Q-\u0444\u0438\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f:<\/strong><\/p>\n<pre><code>q_value = value + (advantage - advantage.mean(dim=1, keepdim=True))<\/code><\/pre>\n<h4>7.3 \u041f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f<\/h4>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u043c\u0435\u043d\u0430 CNN \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b (\u0441\u043c. \u0440\u0430\u0437\u0434\u0435\u043b 7.1): Perceiver IO, TFTransformer, iTransformer;<\/p>\n<\/li>\n<li>\n<p>\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 receptive field \u0447\u0435\u0440\u0435\u0437 dilated convolutions \u2014 \u0434\u043b\u044f \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u0431\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0412\u044b\u0432\u043e\u0434<\/h4>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0443, \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f CNN \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0440\u044f\u0434\u0430\u043c\u0438. <\/p>\n<p>CNN:<\/p>\n<ul>\n<li>\n<p>\u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u043e;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 (\u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f embedded \/ edge-\u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432);<\/p>\n<\/li>\n<li>\n<p>\u043b\u0435\u0433\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u0430 \u0438 \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0435\u043c\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0438 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u0430 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u0447\u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u043c\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u043e\u0439 \u0431\u0430\u043b\u0430\u043d\u0441 \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0451 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0434\u043b\u044f RL-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u044b\u043d\u043a\u0438 \u0438 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d-\u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435.<\/p>\n<h3>8. \u0411\u0443\u0444\u0435\u0440 PER (Prioritized Experience Replay)<\/h3>\n<p>\u0411\u0443\u0444\u0435\u0440 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e\u043f\u044b\u0442\u0430 \u0441 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430\u043c\u0438 (PER) \u2014 \u044d\u0442\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u0442\u0435\u0445\u043d\u0438\u043a\u0430 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0432 DQN-\u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0435. \u0412\u043c\u0435\u0441\u0442\u043e \u0440\u0430\u0432\u043d\u043e\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u043e\u043f\u044b\u0442\u043e\u0432, \u043a\u0430\u043a \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c replay buffer, \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f (TD-\u043e\u0448\u0438\u0431\u043a\u0438).<\/p>\n<p>\u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0447\u0430\u0449\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043e\u0431\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u0445, \u0443\u0441\u043a\u043e\u0440\u044f\u044f \u0441\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u0432\u044b\u0448\u0430\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f.<\/p>\n<h4>8.1 \u0418\u0434\u0435\u044f Prioritized Experience Replay<\/h4>\n<p>Prioritized Experience Replay (Schaul et al., 2015) \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0442\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0430\u0433\u0435\u043d\u0442 \u043e\u0448\u0438\u0431\u0430\u0435\u0442\u0441\u044f \u0441\u0438\u043b\u044c\u043d\u0435\u0435. \u041a\u0430\u0436\u0434\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 <em>i<\/em> \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 <em>p\u1d62<\/em>, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u043a\u0438:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"P(i) = \\frac{p\u1d62^\\alpha}{\\sum\u2096 p\u2096^\\alpha} \" alt=\"P(i) = \\frac{p\u1d62^\\alpha}{\\sum\u2096 p\u2096^\\alpha} \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/422\/b71\/832\/422b71832732570a063afcaa8bcb4e17.svg\" width=\"161\" height=\"62\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/422\/b71\/832\/422b71832732570a063afcaa8bcb4e17.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/422\/b71\/832\/422b71832732570a063afcaa8bcb4e17.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0433\u0434\u0435:<\/p>\n<ul>\n<li>\n<p>( <img decoding=\"async\" class=\"formula inline\" source=\"p\u1d62 = |\u03b4\u1d62| + \u03b5 \" alt=\"p\u1d62 = |\u03b4\u1d62| + \u03b5 \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5a7\/e01\/5bd\/5a7e015bdff3697f7a23ed69aa409532.svg\" width=\"119\" height=\"28\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5a7\/e01\/5bd\/5a7e015bdff3697f7a23ed69aa409532.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5a7\/e01\/5bd\/5a7e015bdff3697f7a23ed69aa409532.svg 781w\" loading=\"lazy\" decode=\"async\"\/>) \u2014 TD-\u043e\u0448\u0438\u0431\u043a\u0430 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 \u043d\u0443\u043b\u044f;<\/p>\n<\/li>\n<li>\n<p>( <img decoding=\"async\" class=\"formula inline\" source=\"\\alpha \\in [0, 1]\" alt=\"\\alpha \\in [0, 1]\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/946\/55e\/8d7\/94655e8d7716477535daa6274496cc80.svg\" width=\"95\" height=\"28\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/946\/55e\/8d7\/94655e8d7716477535daa6274496cc80.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/946\/55e\/8d7\/94655e8d7716477535daa6274496cc80.svg 781w\" loading=\"lazy\" decode=\"async\"\/> ) \u2014 \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0437\u0430\u0446\u0438\u0438 (( <img decoding=\"async\" class=\"formula inline\" source=\"\\alpha = 0 \\rightarrow \" alt=\"\\alpha = 0 \\rightarrow \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b15\/f52\/0e4\/b15f520e4e63532baa5067dd0107705c.svg\" width=\"92\" height=\"20\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b15\/f52\/0e4\/b15f520e4e63532baa5067dd0107705c.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b15\/f52\/0e4\/b15f520e4e63532baa5067dd0107705c.svg 781w\" loading=\"lazy\" decode=\"async\"\/>) \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u0430\u044f);<\/p>\n<\/li>\n<li>\n<p>( \u03b5 ) \u2014 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430, \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0430\u044f \u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b.<\/p>\n<\/li>\n<\/ul>\n<h4>8.2 \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0435\u0440\u0435\u0437 SumTree<\/h4>\n<p>\u0414\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0441\u0435\u043c\u043f\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u2014 SumTree. \u042d\u0442\u043e \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0443\u043c\u043c\u0443 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430.<\/p>\n<p><strong>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 SumTree:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u0440\u0435\u043d\u044c:<\/p>\n<p> <img decoding=\"async\" class=\"formula inline\" source=\" \\text{tree}[0] = \\sum_i p_i \" alt=\" \\text{tree}[0] = \\sum_i p_i \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/820\/d18\/a01\/820d18a01c90aed3baeaaa50abaab9ac.svg\" width=\"160\" height=\"56\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/820\/d18\/a01\/820d18a01c90aed3baeaaa50abaab9ac.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/820\/d18\/a01\/820d18a01c90aed3baeaaa50abaab9ac.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/li>\n<li>\n<p>\u041b\u0438\u0441\u0442\u044c\u044f: \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440:<\/strong><\/p>\n<pre><code>       [30]       \/    \\     [12]   [18]    \/  \\    \/  \\  [5] [7] [10] [8] <\/code><\/pre>\n<h4>8.3 \u041f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434 \u0431\u0443\u0444\u0435\u0440\u0430<\/h4>\n<pre><code class=\"python\">class PrioritizedReplayBuffer:     def add(exp, td_error):         p = (abs(td_error) + eps) ** alpha         sum_tree.add(p)         data[ptr] = exp         ptr = (ptr + 1) % capacity      def sample(batch_size):         segment = sum_tree.total \/ batch_size         batch = []         for i in range(batch_size):             z = uniform(i * segment, (i+1) * segment)             idx, p = sum_tree.find(z)             prob = p \/ sum_tree.total             w = (1 \/ (N * prob)) ** beta             batch.append((data[idx], w, idx))         return batch      def update_priorities(indices, td_errors):         for i, delta in zip(indices, td_errors):             p = (abs(delta) + eps) ** alpha             sum_tree.set(i, p) <\/code><\/pre>\n<h4>8.4 \u0421\u0432\u044f\u0437\u044c \u0441 \u0430\u0433\u0435\u043d\u0442\u043e\u043c<\/h4>\n<p>\u0411\u0443\u0444\u0435\u0440 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0432 <code>agent.learn()<\/code> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"python\">batch = buffer.sample(batch_size) ... td_errors = abs(target_q - current_q) buffer.update_priorities(indices, td_errors) <\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<ul>\n<li>\n<p>\u0410\u0433\u0435\u043d\u0442 \u0444\u043e\u043a\u0443\u0441\u0438\u0440\u0443\u0435\u0442 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u0430\u043c\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445;<\/p>\n<\/li>\n<li>\n<p>\u041d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c (\u0447\u0435\u0440\u0435\u0437 importance sampling weights).<\/p>\n<\/li>\n<\/ul>\n<h4>\u0412\u044b\u0432\u043e\u0434<\/h4>\n<p><strong>PER<\/strong> \u2014 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0433\u0434\u0435:<\/p>\n<ul>\n<li>\n<p>\u0432\u0430\u0436\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0440\u0435\u0434\u043a\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0430\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0446\u0435\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432\u0435\u043b\u0438\u043a\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>SumTree \u0438 TD-\u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438 \u0441 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c \u043e\u0431\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445, \u0438\u0437\u0431\u0435\u0433\u0430\u044f \u043f\u043e\u0442\u0435\u0440\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0448\u0430\u0433\u0438.<\/p>\n<h3>9. \u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 <code>train.py<\/code> \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0438 \u043f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0441\u0440\u0435\u0434\u044b, \u0430\u0433\u0435\u043d\u0442\u0430 \u0438 \u0431\u0443\u0444\u0435\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u043f\u0443\u0441\u043a \u0446\u0438\u043a\u043b\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0435\u0439;<\/p>\n<\/li>\n<li>\n<p>\u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043b\u0443\u0447\u0448\u0438\u0445 \u0432\u0435\u0441\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438 \u043e\u0442\u0447\u0451\u0442\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<h4>9.1 \u0426\u0438\u043a\u043b \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/h4>\n<p>\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0431\u0443\u0444\u0435\u0440\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u03b5-\u0436\u0430\u0434\u043d\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"python\">FOR episode IN range(1, EPISODES + 1):     obs \u2190 env.reset()     total_reward \u2190 0     losses \u2190 []      WHILE not done:         action \u2190 agent.select_action(obs)         next_obs, reward, done, _, info \u2190 env.step(action)          agent.store_experience(obs, action, reward, next_obs, done)          IF buffer.ready():             loss \u2190 agent.learn()             IF loss:                 losses.append(loss)          agent.increment_step()         obs \u2190 next_obs         total_reward += reward      \u043b\u043e\u0433\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435: reward, avg_loss, epsilon, win_rate      IF \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 AND episode % VAL_FREQ == 0:         metrics \u2190 evaluate(agent, val_env)         IF \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435:             save best.pth <\/code><\/pre>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c <em>delayed reward<\/em>, \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u043f\u0440\u0438\u0431\u044b\u043b\u044c.<\/p>\n<h4>9.2 \u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c<\/h4>\n<p>\u0412 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0432\u0435\u043b\u0438\u0447\u0438\u043d:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>logging<\/code> (stdout + \u0444\u0430\u0439\u043b) \u0438 <code>tqdm<\/code> \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043b\u043e\u0433\u043e\u0432 \u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430: <code>output\/logs\/<\/code>, <code>output\/plots\/<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 + \u0441\u0433\u043b\u0430\u0436\u0435\u043d\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 (moving average).<\/p>\n<\/li>\n<\/ul>\n<h4>9.3 \u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/h4>\n<ul>\n<li>\n<p><strong>Reward <\/strong><img decoding=\"async\" class=\"formula inline\" source=\"R_{episode} = \\sum_{t=1}^{T} r_t\" alt=\"R_{episode} = \\sum_{t=1}^{T} r_t\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2fb\/557\/647\/2fb5576474f94fce0ec507b71ec6004e.svg\" width=\"170\" height=\"75\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2fb\/557\/647\/2fb5576474f94fce0ec507b71ec6004e.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2fb\/557\/647\/2fb5576474f94fce0ec507b71ec6004e.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u0421\u0443\u043c\u043c\u0430\u0440\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0430\u0434\u0430 \u0437\u0430 \u044d\u043f\u0438\u0437\u043e\u0434. \u041e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438 \u0438 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p><strong>Loss <\/strong><img decoding=\"async\" class=\"formula inline\" source=\"L = \\mathbb{E}_{(s,a,r,s')} \\left[ (Q(s,a) - y)^2 \\right]\" alt=\"L = \\mathbb{E}_{(s,a,r,s')} \\left[ (Q(s,a) - y)^2 \\right]\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/63c\/5d7\/eac\/63c5d7eacb1486f55c7d0df1ff391226.svg\" width=\"306\" height=\"33\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/63c\/5d7\/eac\/63c5d7eacb1486f55c7d0df1ff391226.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/63c\/5d7\/eac\/63c5d7eacb1486f55c7d0df1ff391226.svg 781w\" loading=\"lazy\" decode=\"async\"\/><br \/>\u041e\u0448\u0438\u0431\u043a\u0430 TD-\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u0421\u043b\u0443\u0436\u0438\u0442 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0420\u043e\u0441\u0442 \u043c\u043e\u0436\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e \u043f\u0435\u0440\u0435\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0438 Q-\u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>Win Rate  <\/strong><img decoding=\"async\" class=\"formula inline\" source=\"\\text{WinRate} = \\frac{\\text{\u041f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439}}{\\text{\u041e\u0431\u0449\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u0435\u0441\u0441\u0438\u0439}}\" alt=\"\\text{WinRate} = \\frac{\\text{\u041f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439}}{\\text{\u041e\u0431\u0449\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u0435\u0441\u0441\u0438\u0439}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/67e\/874\/09d\/67e87409dbf7537a06fa7cbc2bcd8cef.svg\" width=\"342\" height=\"59\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/67e\/874\/09d\/67e87409dbf7537a06fa7cbc2bcd8cef.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/67e\/874\/09d\/67e87409dbf7537a06fa7cbc2bcd8cef.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<p>\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439, \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0432\u0448\u0438\u0445\u0441\u044f \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u043c PnL.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0441\u0435\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0413\u0440\u0430\u0444\u0438\u043a<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>training_rewards.png<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0433\u0440\u0430\u0434\u0430 \u043f\u043e \u044d\u043f\u0438\u0437\u043e\u0434\u0430\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>training_losses.png<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0448\u0438\u0431\u043a\u0430 TD \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>training_win_rate.png<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>epsilon_decay.png<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0438\u043d\u0430\u043c\u0438\u043a\u0430 \u03b5-\u0436\u0430\u0434\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412\u0441\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 <code>output\/plots\/<\/code>.<\/p>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440: <\/strong><code><strong>training_rewards.png<\/strong><\/code><\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e48\/900\/0a8\/e489000a8642ea0958a20af1db82a35c.png\" alt=\"\u0413\u0440\u0430\u0444\u0438\u043a \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0430\u0433\u0435\u043d\u0442\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 55_000 \u044d\u043f\u0438\u0437\u043e\u0434\u043e\u0432.\" title=\"\u0413\u0440\u0430\u0444\u0438\u043a \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0430\u0433\u0435\u043d\u0442\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 55_000 \u044d\u043f\u0438\u0437\u043e\u0434\u043e\u0432.\" width=\"3600\" height=\"1800\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e48\/900\/0a8\/e489000a8642ea0958a20af1db82a35c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e48\/900\/0a8\/e489000a8642ea0958a20af1db82a35c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0413\u0440\u0430\u0444\u0438\u043a \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0430\u0433\u0435\u043d\u0442\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 55_000 \u044d\u043f\u0438\u0437\u043e\u0434\u043e\u0432.<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u0410\u043d\u0430\u043b\u0438\u0437 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0438:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>\u041d\u0430\u0447\u0430\u043b\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/strong>: \u0441\u0440\u0435\u0434\u043d\u0438\u0435 \u043d\u0430\u0433\u0440\u0430\u0434\u044b \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043e\u043a\u043e\u043b\u043e \u043d\u0443\u043b\u044f. \u042d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u2014 \u0430\u0433\u0435\u043d\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u0443 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0430<\/strong>: \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043f\u043b\u0430\u0432\u043d\u044b\u0439 \u0440\u043e\u0441\u0442, \u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0445\u0432\u043e\u0441\u0442\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0433\u0440\u0430\u0434 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e\u0435 \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0449\u0443\u044e\u0441\u044f \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u044d\u043f\u0438\u0437\u043e\u0434\u043e\u0432 \u0430\u0433\u0435\u043d\u0442 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0432\u044b\u0433\u043e\u0434\u0443 \u0438\u0437 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441\u0440\u0435\u0434\u044b. <\/p>\n<\/li>\n<li>\n<p><strong>\u041a\u043e\u043d\u0435\u0446 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/strong>: \u043a \u0444\u0438\u043d\u0430\u043b\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u044b\u0448\u0435 \u043d\u0443\u043b\u044f, \u0431\u0435\u0437 \u0440\u0435\u0437\u043a\u0438\u0445 \u043f\u0440\u043e\u0432\u0430\u043b\u043e\u0432 \u2014 \u044d\u0442\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0430\u0433\u0435\u043d\u0442 \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0433\u0440\u0443\u0431\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u0432\u0441\u0451 \u043b\u0443\u0447\u0448\u0435 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0418\u0442\u043e\u0433:<\/h4>\n<ul>\n<li>\n<p>\u0410\u0433\u0435\u043d\u0442 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435, \u043e\u0434\u043d\u0430\u043a\u043e \u0442\u0440\u0435\u043d\u0434 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>\u043b\u0443\u0447\u0448\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c <code>best.pth<\/code> (\u043f\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0435 \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438);<\/p>\n<\/li>\n<li>\n<p>\u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u0432\u0435\u0441\u0430 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f <code>final.pth<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0412\u044b\u0432\u043e\u0434<\/h4>\n<p>\u041e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 pipeline \u0432\u044b\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u043e \u0432\u0441\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430\u043c \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e RL:<\/p>\n<ul>\n<li>\n<p>\u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0438 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435;<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0438 \u043c\u0435\u0442\u0440\u0438\u043a;<\/p>\n<\/li>\n<li>\n<p>\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0435\u0439;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043b\u043d\u0430\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a.<\/p>\n<\/li>\n<\/ul>\n<h2>10. \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h2>\n<p>\u041e\u0446\u0435\u043d\u043a\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0430\u0433\u0435\u043d\u0442\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 <code>test_agent.py<\/code> \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445, \u0440\u0430\u043d\u0435\u0435 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0445 (<code>test_data.npz<\/code>). <\/p>\n<p>\u0426\u0435\u043b\u044c \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u043e\u0431\u043e\u0431\u0449\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e \u043d\u0430 \u043d\u043e\u0432\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445 \u0431\u0435\u0437 \u0443\u0442\u0435\u0447\u0435\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 train\/val.<\/p>\n<h3>10.1 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 test_agent.py<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439:<\/p>\n<ol>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0440\u0435\u0434\u044b \u0441 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u0441\u0435\u0441\u0441\u0438\u044f\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043b\u0443\u0447\u0448\u0435\u0439 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0433\u043e\u043d \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u044d\u043f\u0438\u0437\u043e\u0434\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u0447\u0451\u0442 \u043c\u0435\u0442\u0440\u0438\u043a, \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432.<\/p>\n<\/li>\n<\/ol>\n<h3>10.2 \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0441\u0435\u0441\u0441\u0438\u0439<\/h3>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0438\u0435 \u0438 \u0445\u0443\u0434\u0448\u0438\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u0435 (pnl \u0438\u043b\u0438 win_rate).<br \/>\u041e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <code>plot_sessions()<\/code>.<\/p>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>\u043a\u0440\u0438\u0432\u0430\u044f \u0446\u0435\u043d \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0435\u0441\u0441\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u0446\u0432\u0435\u0442\u043d\u044b\u0445 \u043c\u0430\u0440\u043a\u0435\u0440\u043e\u0432: \u25e6 \u0441\u0435\u0440\u044b\u0439 \u2014 Hold \u25e6 \u0437\u0435\u043b\u0451\u043d\u044b\u0439 \u2014 Long \u25e6 \u0441\u0438\u043d\u0438\u0439 \u2014 Short \u25e6 \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u2014 Close<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u043f\u0438\u0441\u044c: \u0442\u0438\u043a\u0435\u0440, \u0432\u0440\u0435\u043c\u044f, \u043c\u0435\u0442\u0440\u0438\u043a\u0430 (PnL \u0438\u043b\u0438 win rate)<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440: <\/strong><code><strong>profitable_session_1<\/strong><\/code><\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7c7\/71e\/0fa\/7c771e0fa044a14b0e62c6a886740cb5.png\" alt=\"Profitable Session 1\" title=\"Profitable Session 1\" width=\"3600\" height=\"1800\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/7c7\/71e\/0fa\/7c771e0fa044a14b0e62c6a886740cb5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7c7\/71e\/0fa\/7c771e0fa044a14b0e62c6a886740cb5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><code><strong>Profitable Session 1<\/strong><\/code><\/figcaption><\/div>\n<\/figure>\n<ul>\n<li>\n<p>\u0422\u0438\u043a\u0435\u0440<strong>:<\/strong> HIGHUSDT <\/p>\n<\/li>\n<li>\n<p>\u0410\u0433\u0435\u043d\u0442 \u043e\u0442\u043a\u0440\u044b\u043b LONG \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0430 \u0438 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043b \u043f\u0440\u0438\u0431\u044b\u043b\u044c \u043d\u0430 \u0440\u0435\u0437\u043a\u043e\u043c \u043e\u0442\u0441\u043a\u043e\u043a\u0435 \u0432\u0432\u0435\u0440\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<strong>:<\/strong> +1805.02 USDT<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440: <\/strong><code><strong>profitable_session_2<\/strong><\/code><\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/928\/2b9\/c27\/9282b9c2776ef3ccf858021d395dbbf4.png\" alt=\"Profitable Session 2\" title=\"Profitable Session 2\" width=\"3600\" height=\"1800\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/928\/2b9\/c27\/9282b9c2776ef3ccf858021d395dbbf4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/928\/2b9\/c27\/9282b9c2776ef3ccf858021d395dbbf4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><code><strong>Profitable Session 2<\/strong><\/code><\/figcaption><\/div>\n<\/figure>\n<ul>\n<li>\n<p>\u0422\u0438\u043a\u0435\u0440<strong>:<\/strong> COOKIEUSDT <\/p>\n<\/li>\n<li>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u0430\u0433\u0435\u043d\u0442 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0434\u0432\u0435 \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0437\u0438\u0446\u0438, \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 LONG \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u0443\u044f \u0441\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0438\u043c\u043f\u0443\u043b\u044c\u0441, \u0434\u0430\u043b\u0435\u0435 \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u0438\u0431\u044b\u043b\u044c \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u0440\u043e\u0442\u043a\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0432 \u043f\u043b\u044e\u0441\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<strong>:<\/strong> +2562.19 USDT<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440: <\/strong><code><strong>unprofitable_session_1<\/strong><\/code><\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2e7\/18d\/810\/2e718d8105081e14afbcdd995e4ef564.png\" alt=\"Unprofitable Session 1\" title=\"Unprofitable Session 1\" width=\"3600\" height=\"1800\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/2e7\/18d\/810\/2e718d8105081e14afbcdd995e4ef564.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2e7\/18d\/810\/2e718d8105081e14afbcdd995e4ef564.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><code><strong>Unprofitable Session 1<\/strong><\/code><\/figcaption><\/div>\n<\/figure>\n<ul>\n<li>\n<p>\u0422\u0438\u043a\u0435\u0440<strong>:<\/strong> BRETTUSDT<\/p>\n<\/li>\n<li>\n<p>\u0410\u0433\u0435\u043d\u0442 \u043e\u0442\u043a\u0440\u044b\u043b LONG \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0438 \u0446\u0435\u043d\u044b, \u0434\u0430\u043b\u0435\u0435 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0445 \u043c\u0438\u043d\u0443\u0442\u0430\u0445 \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0422\u0438\u043a\u0435\u0440 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u043d\u043e \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b \u0440\u0435\u0437\u043a\u0438\u0439 \u0441\u043f\u0430\u0434. <\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<strong>:<\/strong> \u2212577.59 USDT<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0432\u043e\u0434<strong>:<\/strong> \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0435 \u0443\u0447\u043b\u0430 \u043d\u0430\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0438\u0439 \u043d\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0438\u043c\u043f\u0443\u043b\u044c\u0441. \u041d\u043e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0438\u0441\u043a-\u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442\u043e\u043c (Stop Loss).<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440: <\/strong><code><strong>unprofitable_session_2<\/strong><\/code><\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/598\/a1d\/83f\/598a1d83fd9095a29450438f3dfbe194.png\" width=\"3600\" height=\"1800\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/598\/a1d\/83f\/598a1d83fd9095a29450438f3dfbe194.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/598\/a1d\/83f\/598a1d83fd9095a29450438f3dfbe194.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<ul>\n<li>\n<p>\u0422\u0438\u043a\u0435\u0440<strong>:<\/strong> ARCUSDT<\/p>\n<\/li>\n<li>\n<p>\u0410\u0433\u0435\u043d\u0442 \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442 \u0441 SHORT \u0432 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u0446\u0435\u043d\u0430 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 \u043d\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u043f\u0438\u043a\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u043d\u043e \u0440\u044b\u043d\u043e\u043a \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u0442\u0441\u043a\u0430\u043a\u0438\u0432\u0430\u0435\u0442 \u0438 \u0430\u0433\u0435\u043d\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u044f \u044d\u0442\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u044e. \u0414\u0430\u043b\u0435\u0435 \u0430\u0433\u0435\u043d\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0441\u044f \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0431\u044b\u0442\u043e\u043a, \u043e\u0442\u043a\u0440\u044b\u0432 LONG \u043d\u0430 \u043e\u0442\u043a\u0430\u0442\u0435, \u043d\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432\u0432\u0435\u0440\u0445 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0441\u043b\u0430\u0431\u044b\u043c, \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u0430 \u0431\u0435\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/strong> \u2212161.46 USDT<\/p>\n<\/li>\n<li>\n<p><strong>\u0412\u044b\u0432\u043e\u0434:<\/strong> \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u0432\u0445\u043e\u0434\u0430 \u0431\u044b\u043b\u0430 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e\u0439, \u043d\u043e \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0435\u0440\u0435\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u0433\u0435\u043d\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0430\u0433\u0435\u043d\u0442\u0430: \u043a\u043e\u0433\u0434\u0430 \u0432\u043e\u0448\u0451\u043b, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0448\u0435\u043b, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043b \u0438\u043c\u043f\u0443\u043b\u044c\u0441 \u0438\u043b\u0438 \u0444\u043b\u044d\u0442.<\/p>\n<h3>10.3 \u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430<\/h3>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0442\u0435\u0441\u0442\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041c\u0435\u0442\u0440\u0438\u043a\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Test_mean_reward<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u043d\u0430\u0433\u0440\u0430\u0434\u0430 \u0437\u0430 \u044d\u043f\u0438\u0437\u043e\u0434<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Test_mean_pnl<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u0435\u0434\u043d\u0438\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 PnL \u0437\u0430 \u044d\u043f\u0438\u0437\u043e\u0434<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Test_win_rate<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0434\u043e\u043b\u044f \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Test_all_pnls<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u0430\u0441\u0441\u0438\u0432 PnL \u043f\u043e \u0432\u0441\u0435\u043c \u0441\u0435\u0441\u0441\u0438\u044f\u043c (\u0434\u043b\u044f \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b RL-\u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445:<\/strong><\/p>\n<ul>\n<li>\n<p>\u25b8 \u0421\u0440\u0435\u0434\u043d\u044f\u044f \u043d\u0430\u0433\u0440\u0430\u0434\u0430 (mean_reward): <code>0.00285<\/code><\/p>\n<\/li>\n<li>\n<p>\u25b8 \u0421\u0440\u0435\u0434\u043d\u0438\u0439 PnL \u0437\u0430 \u0441\u0435\u0441\u0441\u0438\u044e (mean_pnl): <code>+28.47 USDT<\/code><\/p>\n<\/li>\n<li>\n<p>\u25b8 \u0414\u043e\u043b\u044f \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439 (win_rate): <code>55.67%<\/code><\/p>\n<\/li>\n<\/ul>\n<p><strong>&gt; \u0412\u0430\u0436\u043d\u043e \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044c:<\/strong> <\/p>\n<ul>\n<li>\n<p>\u042d\u0442\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0431\u044b\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445, \u0434\u0430\u043b\u0451\u043a\u0438\u0445 \u043e\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0443\u043a\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 (10 \u043c\u0438\u043d\u0443\u0442 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u0432\u043c\u0435\u0441\u0442\u043e 60) \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 (30 \u043c\u0438\u043d\u0443\u0442 \u0432\u043c\u0435\u0441\u0442\u043e 90).<\/p>\n<\/li>\n<li>\n<p>\u0426\u0435\u043b\u044c \u2014 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 CPU-\u043c\u0430\u0448\u0438\u043d\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0441\u0442\u043e\u043b\u044c \u0441\u0436\u0430\u0442\u044b\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442, \u0430\u0433\u0435\u043d\u0442 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435, \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0435\u0435 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0439 \u0438 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u044f. <\/p>\n<p>\u042d\u0442\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0432 &#171;\u0434\u0435\u043c\u043e-\u0440\u0435\u0436\u0438\u043c\u0435&#187; RL-\u0430\u0433\u0435\u043d\u0442 \u0443\u0436\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043e\u0431\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044e \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432, \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0432\u0445\u043e\u0434\u0430\/\u0432\u044b\u0445\u043e\u0434\u0430 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439.<\/p>\n<p>\u0424\u043e\u0440\u043c\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0433\u0440\u0430\u0434 \u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0430 \u0440\u0430\u043d\u0435\u0435 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0445 (<code>test_data.npz<\/code>) \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442 \u043e\u0431\u043e\u0431\u0449\u0430\u044e\u0449\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0430\u0433\u0435\u043d\u0442 \u043d\u0435 \u043f\u0435\u0440\u0435\u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438, \u0430 \u0443\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0449\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b, \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b\u0435 \u043a \u0448\u0438\u0440\u043e\u043a\u043e\u043c\u0443 \u0441\u043f\u0435\u043a\u0442\u0440\u0443 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439.<\/p>\n<p>\u0414\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 RL-\u0430\u0433\u0435\u043d\u0442\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u0431\u044b\u043b \u0432\u043d\u0435\u0434\u0440\u0451\u043d \u0447\u0435\u0441\u0442\u043d\u044b\u0439 <strong>baseline<\/strong> \u2014 \u0441\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 (CNN), \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0435 <em>supervised learning<\/em>.<\/p>\n<p><strong>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b baseline-\u043c\u043e\u0434\u0435\u043b\u0438:<\/strong><\/p>\n<ul>\n<li>\n<p>\u25b8 \u0421\u0440\u0435\u0434\u043d\u0438\u0439 PnL: <code>\u201327.95 USDT<\/code><\/p>\n<\/li>\n<li>\n<p>\u25b8 Win Rate: <code>47.85%<\/code><\/p>\n<\/li>\n<\/ul>\n<p>CNN-\u043c\u043e\u0434\u0435\u043b\u044c, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 (~256k), \u043d\u0435 \u0441\u043c\u043e\u0433\u043b\u0430 \u043e\u0431\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438, \u043e\u043d\u0430 \u0443\u0441\u0442\u0443\u043f\u0430\u0435\u0442 RL-\u0430\u0433\u0435\u043d\u0442\u0443 \u043f\u043e \u0432\u0441\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u043b\u0430\u0431\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0435 \u0438 \u0443\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u0435 \u0441\u0435\u0441\u0441\u0438\u0438.<\/p>\n<p>\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430: supervised-\u043f\u043e\u0434\u0445\u043e\u0434 \u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0435, \u043d\u0435 \u0432\u0438\u0434\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0439 \u0441\u0432\u043e\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u0412 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0430\u0433\u0435\u043d\u0442 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 RL \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e \u0441 \u0443\u0447\u0451\u0442\u043e\u043c <em>delayed reward<\/em>, \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0439, \u0440\u0438\u0441\u043a\u0430 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430. \u042d\u0442\u043e \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435\u043c \u0432 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0435.<\/p>\n<h3>10.4 \u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f<\/h3>\n<p><strong>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 PnL:<\/strong><br \/>\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u0430\u0433\u0435\u043d\u0442 \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0438\u043b\u0438 \u0442\u0435\u0440\u044f\u0435\u0442 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438.<\/p>\n<p>\u0418\u0434\u0435\u0430\u043b\u044c\u043d\u043e:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0430\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e \u0441\u0434\u0432\u0438\u043d\u0443\u0442\u043e \u0432\u043f\u0440\u0430\u0432\u043e. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0430\u0433\u0435\u043d\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0443\u0431\u044b\u0442\u043a\u0438 \u0438 \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0431\u044b\u043b\u044c.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 Win Rate:<\/strong><br \/> \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u043b\u044e \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a \u043d\u0430 \u043e\u0434\u043d\u0443 \u0441\u0435\u0441\u0441\u0438\u044e.<br \/> \u0427\u0435\u043c \u0431\u043b\u0438\u0436\u0435 \u043a 1.0, \u0442\u0435\u043c \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0435\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f.<\/p>\n<h3>10.5 \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h3>\n<p>\u0412\u0441\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438:<\/p>\n<ul>\n<li>\n<p><code>test_pnl_distribution.png<\/code><\/p>\n<\/li>\n<li>\n<p><code>test_win_rate_distribution.png<\/code><\/p>\n<\/li>\n<li>\n<p><code>profitable_session_*.png<\/code><\/p>\n<\/li>\n<li>\n<p><code>unprofitable_session_*.png<\/code><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0443\u0442\u044c:<\/strong> <code>output\/plots\/<\/code><\/p>\n<h3>\u0412\u044b\u0432\u043e\u0434<\/h3>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 <code>test_agent.py<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043e\u0431\u043e\u0431\u0449\u0430\u044e\u0449\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0430\u0433\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430 \u043d\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u0435\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430\u0434\u0451\u0436\u043d\u043e \u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e \u0432 \u043d\u043e\u0432\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445.<\/p>\n<h3>11. \u0411\u044d\u043a\u0442\u0435\u0441\u0442: \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0433\u043e \u0430\u0433\u0435\u043d\u0442\u0430<\/h3>\n<p>\u041e\u0446\u0435\u043d\u043a\u0430 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445, \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u043d\u044b\u0445 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0435, \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0430. <\/p>\n<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u043c\u043e\u0434\u0443\u043b\u044c backtest_engine.py \u2014 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430 \u0440\u0430\u043d\u0435\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0426\u0435\u043b\u044c \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0430 \u044d\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0430\u0433\u0435\u043d\u0442\u0430 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432\u0443 \u0438 \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u043f\u0438\u0442\u0430\u043b\u043e\u043c.<\/p>\n<h4>11.1 \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h4>\n<p>\u0411\u044d\u043a\u0442\u0435\u0441\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438, \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0432\u0441\u0435\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0430\u0441\u043f\u0435\u043a\u0442\u043e\u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u044b\u043d\u043a\u0430:<\/p>\n<ul>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f: <\/p>\n<ul>\n<li>\n<p>\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438 (0.04%) \u0438 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u044f (\u00b10.05%);<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0438\u0441\u043a-\u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442: \u0441\u0442\u043e\u043f-\u043b\u043e\u0441\u0441, \u0442\u0435\u0439\u043a-\u043f\u0440\u043e\u0444\u0438\u0442, \u0442\u0440\u0435\u0439\u043b\u0438\u043d\u0433-\u0441\u0442\u043e\u043f.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041b\u043e\u0433\u0433\u0438\u043d\u0433 \u0441\u0434\u0435\u043b\u043e\u043a: <\/p>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043e\u0431\u044a\u0451\u043c, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0446\u0435\u043d\u044b \u0438 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u0431\u0430\u043b\u0430\u043d\u0441, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043b\u043e\u0433 backtest_session.log \u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 \u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>11.2 \u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0432\u044b\u0431\u043e\u0440\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439<\/h4>\n<p>\u0410\u0433\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0439 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>Advantage-based filter, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0435\u0433\u043e advantage \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438:<br \/> <img decoding=\"async\" class=\"formula inline\" source=\"Adv(a)=Q(a)\u2212Q(Hold)&gt;Threshold\" alt=\"Adv(a)=Q(a)\u2212Q(Hold)&gt;Threshold\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ac9\/d41\/9ea\/ac9d419ea7d96820d41324372ef64f65.svg\" width=\"426\" height=\"28\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ac9\/d41\/9ea\/ac9d419ea7d96820d41324372ef64f65.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ac9\/d41\/9ea\/ac9d419ea7d96820d41324372ef64f65.svg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<\/li>\n<li>\n<p>Ensemble Q-Filter (MC Dropout), \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u043e\u0445\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0445\u043e\u0434\u043e\u0432 \u043f\u043e \u0441\u0435\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u043d\u0438\u0435 Q-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u044f (\u043d\u0435\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044c);<\/p>\n<\/li>\n<li>\n<p>\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043f\u043e \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0438 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u043c\u0443 \u0443\u0440\u043e\u0432\u043d\u044e \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0441\u0442\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"(\u03c3): Adv(a)&gt;\u03b8a\u200b,Uncertainty(a)&lt;\u03c3max\u200b\" alt=\"(\u03c3): Adv(a)&gt;\u03b8a\u200b,Uncertainty(a)&lt;\u03c3max\u200b\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/3d\/3d2\/3d2c819369f999f1108e1cd3f114ed06.svg\" width=\"336\" height=\"16\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/3d\/3d2\/3d2c819369f999f1108e1cd3f114ed06.svg 780w,&#10;       https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/3d\/3d2\/3d2c819369f999f1108e1cd3f114ed06.svg 781w\" loading=\"lazy\" decode=\"async\"\/>, \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0443 &#171;soft ensemble&#187; \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0433\u0438\u0431\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u0440\u0438\u0441\u043a\u0430.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>11.3 \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0435\u0440\u0435\u0437 Optuna<\/h4>\n<p>\u0414\u043b\u044f \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0433\u0438\u043f\u0435\u0440\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c optimize_cfg.py, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u0431\u0430\u0437\u0435 Optuna:<\/p>\n<ul>\n<li>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442: <\/p>\n<ul>\n<li>\n<p>\u043f\u043e\u0440\u043e\u0433\u0438 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 (long_thr, short_thr, close_thr);<\/p>\n<\/li>\n<li>\n<p>\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\/\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0440\u0438\u0441\u043a-\u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f stop_loss, take_profit, trailing_stop;<\/p>\n<\/li>\n<li>\n<p>\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u044e \u0432 ensemble_q_filter.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0411\u044d\u043a\u0442\u0435\u0441\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 trial-\u0441\u0435\u0441\u0441\u0438\u0438 (run_backtest()), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f, \u043b\u043e\u0433\u0438 \u0432\u0435\u0434\u0443\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u0442\u0440\u0438\u0430\u043b\u0430\u043c;<\/p>\n<\/li>\n<li>\n<p>\u041b\u0443\u0447\u0448\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a best_backtest_cfg.json, \u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 (optuna_history.png, pareto.png) \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443 \u043f\u043e\u0438\u0441\u043a\u0430.<\/p>\n<\/li>\n<\/ul>\n<h4>11.4 \u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0430<\/h4>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u0435\u0442\u0440\u0438\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0432 MetricsCollector \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u0440\u0435\u0437 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430. \u0412\u0441\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u043e\u0433\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0446\u0435\u043b\u0435\u0432\u044b\u0445 \u0434\u043b\u044f Optuna.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041c\u0435\u0442\u0440\u0438\u043a\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">final_balance_change<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u0430\u043f\u0438\u0442\u0430\u043b\u0430 \u0432 %<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">total_trades<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0449\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">profit_days<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u0435\u0439 \u0441 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">accuracy<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043b\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">sharpe, sortino<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 risk-adjusted \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">max_drawdown<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0430 \u043f\u043e \u0431\u0430\u043b\u0430\u043d\u0441\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">avg_trade_amount<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0434\u0435\u043b\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">total_commission<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0449\u0438\u0435 \u043f\u043e\u0442\u0435\u0440\u0438 \u043d\u0430 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u044f\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">correct_avg_change<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u0435\u0434\u043d\u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0446\u0435\u043d\u044b \u043f\u0440\u0438 \u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043a\u0430\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">incorrect_avg_change<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u0435\u0434\u043d\u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0446\u0435\u043d\u044b \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 (backtest_data.npz):<\/p>\n<pre><code>\u25b8 \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0440\u0442\u0444\u0435\u043b\u044f:     +144.23% \u25b8 Sharpe \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442:                1.85 \u25b8 Sortino \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442:               2.05 \u25b8 Accuracy \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432:                 69.6% \u25b8 \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0430:            \u201322.49% \u25b8 \u041a\u043e\u043b-\u0432\u043e \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u043d\u0435\u0439:              56 \u25b8 \u041f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0445 \u0434\u043d\u0435\u0439:                   44 (78.57%) \u25b8 \u041e\u0431\u0449\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u0434\u0435\u043b\u043e\u043a:               112 \u25b8 \u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0441\u0434\u0435\u043b\u043a\u0430:                  11,324.29 USDT \u25b8 \u0421\u0434\u0435\u043b\u043e\u043a \u0432 \u0434\u0435\u043d\u044c:                     ~2.00 \u25b8 \u041a\u043e\u043c\u0438\u0441\u0441\u0438\u043e\u043d\u043d\u044b\u0435 \u0438\u0437\u0434\u0435\u0440\u0436\u043a\u0438:            \u20139.68%<\/code><\/pre>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u0430\u0433\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u0438\u0432\u0430\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 <code>backtest_balance_curve.png<\/code> (\u0434\u0430\u043d\u043d\u044b\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u0443\u0436\u0435 \u0431\u044b\u043b \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438) \u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u043b\u043e\u0433 \u0441\u0434\u0435\u043b\u043e\u043a.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/789\/881\/a18\/789881a188a13e930c38a55c31b2d34b.png\" alt=\"Backtest Balance Curve\" title=\"Backtest Balance Curve\" width=\"3600\" height=\"1800\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/789\/881\/a18\/789881a188a13e930c38a55c31b2d34b.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/789\/881\/a18\/789881a188a13e930c38a55c31b2d34b.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Backtest Balance Curve<\/figcaption><\/div>\n<\/figure>\n<p>\u0410\u0433\u0435\u043d\u0442 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0440\u0438\u0441\u043a-\u0434\u043e\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u0438: <\/p>\n<ul>\n<li>\n<p>\u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u0430 \u0438\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0434\u043e\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u044c +144.23%, \u0447\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u043c\u0443 \u0434\u043d\u0435\u0432\u043d\u043e\u043c\u0443 \u043f\u0440\u0438\u0440\u043e\u0441\u0442\u0443 \u043a\u0430\u043f\u0438\u0442\u0430\u043b\u0430 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 +1.61%.<\/p>\n<\/li>\n<li>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 Sharpe (1.85) \u0438 Sortino (2.05) \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u0438 \u043a \u0440\u0438\u0441\u043a\u0443, \u0431\u0435\u0437 \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u043e\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0435\u0434\u043a\u0438\u0445 \u044d\u043a\u0441\u0442\u0440\u0435\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u0438\u043a\u0440\u043e\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438:<\/p>\n<pre><code>\u25b8 \u0414\u043e\u043b\u044f \u0432\u0435\u0440\u043d\u044b\u0445 long-\u0441\u0434\u0435\u043b\u043e\u043a:    69.9%  (\u0438\u0437 93 \u043f\u043e\u0437\u0438\u0446\u0438\u0439) \u25b8 \u0414\u043e\u043b\u044f \u0432\u0435\u0440\u043d\u044b\u0445 short-\u0441\u0434\u0435\u043b\u043e\u043a:   68.4%  (\u0438\u0437 19 \u043f\u043e\u0437\u0438\u0446\u0438\u0439) \u25b8 \u0421\u0440\u0435\u0434\u043d\u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0446\u0435\u043d\u044b \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u0442\u0440\u0435\u0439\u0434\u0430\u0445:   +4.38% \u25b8 \u0421\u0440\u0435\u0434\u043d\u0438\u0439 \u0443\u0431\u044b\u0442\u043e\u043a \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435:  \u20133.67%<\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0431\u044b\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0441 \u0442\u0435\u043c\u0438 \u0436\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u0447\u0442\u043e \u0438 \u043d\u0430 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043a\u0435: \u043c\u043e\u0434\u0435\u043b\u044c \u0441 256k \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432, \u0441\u0435\u0441\u0441\u0438\u0438 \u043f\u043e 10 \u043c\u0438\u043d\u0443\u0442, \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u2014 30 \u043c\u0438\u043d\u0443\u0442. \u042d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043c\u0430\u043b\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043e\u0442 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u0430, \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<h4>\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c: \u0441\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043d\u043e\u0443\u0442\u0431\u0443\u043a \u0431\u0435\u0437 GPU), \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430, \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0431\u044b\u043b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d \u043e\u0431\u043b\u0435\u0433\u0447\u0451\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c:<\/p>\n<pre><code>\u25b8 \u0420\u0430\u0437\u043c\u0435\u0440 \u043c\u043e\u0434\u0435\u043b\u0438: ~256,000 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u25b8 \u0418\u0441\u0442\u043e\u0440\u0438\u044f: 30 \u043c\u0438\u043d\u0443\u0442 (\u0432\u043c\u0435\u0441\u0442\u043e 90) \u25b8 \u0421\u0435\u0441\u0441\u0438\u044f: 10 \u043c\u0438\u043d\u0443\u0442 (\u0432\u043c\u0435\u0441\u0442\u043e 60)<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e, \u0447\u0442\u043e\u0431\u044b:<\/p>\n<ul>\n<li>\n<p>\u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0446\u0438\u043a\u043b \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u0435\u0441\u044c \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u0434\u0430\u0436\u0435 \u043d\u0430 CPU;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0442\u0440\u0435\u0439\u0434\u0430\u0445 \u2014 \u0441 \u043f\u043e\u043b\u043d\u043e\u0439 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0432\u0441\u0435\u0445 \u0448\u0430\u0433\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0441\u0435\u0441\u0441\u0438\u0438 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442: 90 \u043c\u0438\u043d\u0443\u0442<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c: 60 \u043c\u0438\u043d\u0443\u0442<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c &gt; 1 \u043c\u043b\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u2014 \u044d\u0442\u043e \u043b\u0438\u0448\u044c \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043b\u044f \u043e\u0442 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0434\u043b\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0433\u043b\u0443\u0431\u0438\u043d\u0443 \u043c\u043e\u0434\u0435\u043b\u0438<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043c\u043e\u0449\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b: iTransformer, Perceiver IO<\/p>\n<\/li>\n<\/ul>\n<h4>11.5 \u0420\u0435\u0436\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/h4>\n<p>\u0411\u044d\u043a\u0442\u0435\u0441\u0442 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438:<\/p>\n<pre><code class=\"bash\"># \u0417\u0430\u043f\u0443\u0441\u043a \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f \u043a\u044d\u0448\u0430 python backtest_engine.py configs\/alpha.py  # \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 python optimize_cfg.py configs\/alpha.py --trials 100 --jobs 1 <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u2014 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c best_backtest_cfg.json \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0435.<\/p>\n<h4>11.6 \u041f\u0440\u0438\u043c\u0435\u0440 \u043b\u043e\u0433\u043e\u0432 \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0430<\/h4>\n<p>\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u0438 \u043c\u0435\u0442\u0440\u0438\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0432 \u0434\u0443\u0445\u0435 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c. \u041d\u0438\u0436\u0435 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0430:<\/p>\n<p><strong>\u041d\u0430\u0447\u0430\u043b\u043e \u0441\u0435\u0441\u0441\u0438\u0438 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430:<\/strong><\/p>\n<pre><code>[Starting backtest...]: [INFO] : Got 1 signals @ Date: 2025-03-04 Time: 05:19 For Tickers -&gt; GPSUSDT [INFO] : (SHORT) SELL 27445.27879275 GPSUSDT for 0.17786 at 2025-03-04 05:20 [INFO] : (CLOSE) BUY TP 27434.30068123 GPSUSDT for 0.15744 at 2025-03-04 05:21 PnL = +556.42 ... [INFO] : Got 1 signals @ Date: 2025-04-06 Time: 21:43 For Tickers -&gt; AUCTIONUSDT [INFO] : (LONG) BUY 653.41295438 AUCTIONUSDT for 13.64841 at 2025-04-06 21:43 [INFO] : (CLOSE) SELL TP 653.15158920 AUCTIONUSDT for 13.97151 at 2025-04-06 21:46 PnL = +203.81<\/code><\/pre>\n<p><strong>\u0421\u0432\u043e\u0434\u043a\u0430 \u0432\u0441\u0435\u0445 \u0441\u0434\u0435\u043b\u043e\u043a:<\/strong><\/p>\n<pre><code>[Trades Summary]: ... [INFO] : 2025-03-27 17:31 LONG  MUBARAKUSDT    5903:   +601.23 (+10.18%  |  +5.09%) PRICE CHANGE: +10.27% [INFO] : 2025-04-14 15:26 LONG  OMUSDT        11094:   +893.56 ( +8.05%  |  +4.03%) PRICE CHANGE: +8.14% [INFO] : 2025-04-29 06:14 LONG  INITUSDT      12111:   -236.20 ( -1.95%  |  -0.98%) PRICE CHANGE: -1.87% [INFO] : 2025-05-21 02:31 LONG  SXTUSDT       13663:   +611.52 ( +4.48%  |  +2.24%) PRICE CHANGE: +4.56% ...<\/code><\/pre>\n<p><strong>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438:<\/strong><\/p>\n<pre><code>[Final Metrics]: [INFO] :        total_commission = -9.68% [INFO] :          avg_commission = -9.13 [INFO] :                max_loss = -3474.09 [INFO] :              max_profit = 5119.57 [INFO] :        total_trade_days = 56 [INFO] :             profit_days = 44 (78.57%) [INFO] :    final_balance_change = 144.23% [INFO] :          exp_day_change = 1.61% [INFO] :            max_drawdown = -22.49% [INFO] :                  sharpe = 1.85 [INFO] :                 sortino = 2.05 [INFO] :           trades_sharpe = 0.18 [INFO] :          trades_sortino = 0.19 [INFO] :                accuracy = 69.6% [INFO] :            total_trades = 112 [INFO] :             total_longs = 93 [INFO] :            total_shorts = 19 [INFO] :           longs_correct = 65 (69.9%) [INFO] :          shorts_correct = 13 (68.4%) [INFO] :      correct_avg_change = 4.38% [INFO] :    incorrect_avg_change = -3.67% [INFO] :        avg_trade_amount = 11324.29 [INFO] :          trades_per_day = 2.00<\/code><\/pre>\n<p><strong>\u0412\u044b\u0432\u043e\u0434:<\/strong><br \/>\u041c\u043e\u0434\u0443\u043b\u044c \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0441 \u043f\u0440\u0438\u0446\u0435\u043b\u043e\u043c \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u044c. \u041e\u043d \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0440\u0438\u0441\u043a\u0430 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u0443\u044e \u0433\u0438\u043f\u0435\u0440\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e. <\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0443 \u043c\u0435\u0442\u0440\u0438\u043a, \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0433\u043b\u0443\u0431\u043e\u043a\u0443\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430 \u0438 \u0435\u0433\u043e \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u043d\u0430 \u043d\u043e\u0432\u044b\u0445, \u0440\u0430\u043d\u0435\u0435 \u043d\u0435 \u0432\u0438\u0434\u0435\u043d\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<h3>12. \u0412\u044b\u0432\u043e\u0434\u044b<\/h3>\n<h4>12.1 \u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/h4>\n<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u044f \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0438 \u043e\u0431\u0443\u0447\u0438\u043b \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0433\u043e \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435\u043c (Reinforcement Learning) \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Dueling Double DQN \u0438 Prioritized Experience Replay \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u043d\u0430 Binance Futures.<\/p>\n<p>\u0410\u0433\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043e\u043a\u043d\u0430 \u043c\u0438\u043d\u0443\u0442\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0434\u043d\u043e \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439: HOLD, LONG, SHORT, CLOSE.<\/p>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0430:<\/p>\n<ul>\n<li>\n<p>\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u044b\u0441\u044f\u0447\u0430\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0440\u0435\u0434\u043d\u0438\u0439 PnL \u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p>\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c, \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c \u0438 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<h4>12.2 \u041f\u043e\u0432\u0435\u0434\u0435\u043d\u0447\u0435\u0441\u043a\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0430\u0433\u0435\u043d\u0442\u0430<\/h4>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u044f \u0432\u044b\u044f\u0432\u0438\u043b, \u0447\u0442\u043e \u0430\u0433\u0435\u043d\u0442 \u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0440\u043e\u0447\u043d\u0443\u044e \u043f\u0440\u0438\u0431\u044b\u043b\u044c, \u043d\u043e \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0440\u0435\u0439\u0434\u0435\u0440\u0430:<\/p>\n<ul>\n<li>\n<p>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u043e\u0432 &#8212; \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0445\u043e\u0434 \u0432 SHORT \u043d\u0430 \u044d\u043a\u0441\u0442\u0440\u0435\u043c\u0443\u043c\u0430\u0445 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0432\u044b\u0445\u043e\u0434\u043e\u043c \u043f\u0440\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u0445 \u043e\u0442\u043a\u0430\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0418\u0437\u0431\u0435\u0436\u0430\u043d\u0438\u0435 \u0441\u0434\u0435\u043b\u043e\u043a \u043d\u0430 \u0444\u043b\u044d\u0442\u043e\u0432\u044b\u0445 \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u0445 &#8212; \u0441\u043d\u0438\u0436\u0435\u043d\u043d\u0430\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u043c\u0430\u043b\u043e\u0439 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0414\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 &#8212; \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0431\u043b\u0438\u0436\u0435 \u043a \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044e \u0441\u0435\u0441\u0441\u0438\u0438, \u0434\u043e \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f;<\/p>\n<\/li>\n<\/ul>\n<h4>12.3 \u041e\u0431\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438<\/h4>\n<p>\u0414\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438 \u0430\u0433\u0435\u043d\u0442 \u0431\u044b\u043b \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0441 CNN baseline-\u043c\u043e\u0434\u0435\u043b\u044c\u044e:<\/p>\n<ul>\n<li>\n<p>\u0421\u0432\u0435\u0440\u0442\u043e\u0447\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 (CNN) &#8212; \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u0430\u044f \u043f\u043e \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438 \u0441 \u0430\u0433\u0435\u043d\u0442\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e.<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: \u0430\u0433\u0435\u043d\u0442 \u043f\u0440\u0435\u0432\u0437\u043e\u0448\u0451\u043b baseline-\u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c mean PnL \u0438 Win Rate, \u0447\u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0439 \u0441\u0440\u0435\u0434\u044b \u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u043e\u0437\u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0435\u043d\u0438\u044f.<\/p>\n<h4>12.5 \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h4>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0443\u044e \u0440\u0435\u0448\u0430\u0442\u044c \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Reinforcement Learning \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u043c \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0430:<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043e\u0442 value-based \u043a policy-based \u043c\u0435\u0442\u043e\u0434\u0430\u043c: Actor-Critic, A3C, PPO, SAC;<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435: \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 Dreamer \u0438 MuZero \u0441 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0440\u0435\u0434\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439: \u043e\u0442 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u043c\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u0438 \u0440\u0438\u0441\u043a\u043e\u043c (DDPG, TD3);<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0430\u043d\u0441\u0430\u043c\u0431\u043b\u0435\u0439 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0445 reward shaping \u0444\u0443\u043d\u043a\u0446\u0438\u0439;<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0441\u043b\u0443\u0436\u0438\u0442 \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0448\u0430\u0433\u0430, \u0433\u0434\u0435 \u0432\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 RL \u0430\u0433\u0435\u043d\u0442\u0430, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043e\u0431\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u0438\u0440\u0430 \u0441 \u0446\u0435\u043b\u044c\u044e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a \u0441\u043b\u043e\u0436\u043d\u043e\u0439, \u0441\u0442\u043e\u0445\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0440\u0438\u0440\u043e\u0434\u0435 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0445 \u0440\u044b\u043d\u043a\u043e\u0432.<\/p>\n<h2>\u0411\u043e\u043d\u0443\u0441: \u041d\u0430\u0431\u043b\u044e\u0434\u0430\u0439\u0442\u0435 \u0437\u0430 \u0430\u0433\u0435\u043d\u0442\u043e\u043c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/h2>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043e\u043d\u043b\u0430\u0439\u043d AI-\u0430\u0433\u0435\u043d\u0442 \u0441 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0440\u044b\u043d\u043e\u043a Binance Futures \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u0441\u0432\u043e\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0432 Telegram.<\/p>\n<p><strong>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0430\u0433\u0435\u043d\u0442:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442 \u0440\u044b\u043d\u043e\u043a \u043f\u043e \u0432\u0441\u0435\u043c \u0442\u0438\u043a\u0435\u0440\u0430\u043c, \u043a\u0430\u0436\u0434\u0443\u044e \u043c\u0438\u043d\u0443\u0442\u0443.<\/p>\n<\/li>\n<li>\n<p>\u0424\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u044b: \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u0442\u0438\u043a\u0435\u0440, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0434\u0435\u043b\u043a\u0438 \u0438 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0445\u043e\u0434\u0438\u0442 \u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043f\u0440\u0438 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u0440\u0438\u0441\u043a\/\u043d\u0430\u0433\u0440\u0430\u0434\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0434\u0435\u043b\u043a\u0438: \u043f\u0440\u0438\u0431\u044b\u043b\u044c \u0438\u043b\u0438 \u0443\u0431\u044b\u0442\u043e\u043a.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/04c\/82a\/a3d\/04c82aa3de43708486a99a64a3df297b.jpg\" alt=\"Live Signal + Prediction                 |                Verification Example  \" title=\"Live Signal + Prediction                 |                Verification Example  \" width=\"1123\" height=\"794\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/04c\/82a\/a3d\/04c82aa3de43708486a99a64a3df297b.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/04c\/82a\/a3d\/04c82aa3de43708486a99a64a3df297b.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Live Signal + Prediction                 |                Verification Example  <\/figcaption><\/div>\n<\/figure>\n<div class=\"floating-image\">\n<p><strong>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435:<\/strong><\/p>\n<\/div>\n<ul>\n<li>\n<p>\u041d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u0430\u0433\u0435\u043d\u0442\u0430 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043b\u043e\u0433\u0438\u043a\u0443 \u0434\u043b\u044f \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0432\u044b\u043a\u043e\u0432 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u0434\u043b\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p><strong>\u0412\u0430\u0436\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/strong> \u0430\u0433\u0435\u043d\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. \u0412\u0441\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438\u0437 \u043a\u0430\u043d\u0430\u043b\u0430, \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u0434 \u0438\u0445 \u043b\u0438\u0447\u043d\u0443\u044e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0435\u043b\u044f\u0445.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/t.me\/binance_ai_agent\" rel=\"noopener noreferrer nofollow\">Telegram-\u043a\u0430\u043d\u0430\u043b \u0430\u0433\u0435\u043d\u0442\u0430<\/a><\/p>\n<hr\/>\n<h3>\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435: \u043f\u0443\u0442\u044c \u043a \u043f\u043e\u043b\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u0438\u0438<\/h3>\n<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b &#8212; \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 RL, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0430\u0442\u044c\u0441\u044f, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a \u0440\u044b\u043d\u043a\u0443. <\/p>\n<p>\u041d\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043e\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043a \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u0434\u0432\u0430 \u0432\u0430\u0436\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430:<\/p>\n<h4>1. \u041f\u043e\u0442\u043e\u043a \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (Stream Layer)<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u0430\u0433\u0435\u043d\u0442 \u043c\u043e\u0433 \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043b\u0438 \u043e\u0431\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0431\u0438\u0440\u0436\u0438.<\/p>\n<p><strong>\u0427\u0442\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e:<\/strong><\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a Binance API (python-binance, ccxt): <\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (kline 1m);<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u043d\u0430 WebSocket \u0434\u043b\u044f live-\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435: <\/p>\n<ul>\n<li>\n<p>PostgreSQL + TimescaleDB &#8212; \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0432\u0441\u0435\u043c \u0442\u0438\u043a\u0435\u0440\u0430\u043c.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f: <\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 Airflow \u0434\u043b\u044f \u043e\u0440\u043a\u0435\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447;<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0439\u0442\u0435 \u043f\u043e\u043b\u043d\u043e\u0442\u0443, \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0435\u043a:<\/strong><\/p>\n<ul>\n<li>\n<p>python-binance &#8212; \u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n<\/li>\n<li>\n<p>PostgreSQL + TimescaleDB &#8212; \u0431\u0430\u0437\u0430<\/p>\n<\/li>\n<li>\n<p>Airflow &#8212; \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/li>\n<\/ul>\n<h4>2. \u0418\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 (Execution Layer)<\/h4>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0435 \u0441\u0434\u0435\u043b\u043a\u0438 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0431\u0438\u0440\u0436\u0435.<\/p>\n<p><strong>\u0427\u0442\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439: <\/p>\n<ul>\n<li>\n<p>LONG \/ SHORT \u2192 MARKET \/ LIMIT &#8212; \u043e\u0440\u0434\u0435\u0440;<\/p>\n<\/li>\n<li>\n<p>CLOSE \u2192 \u043e\u0442\u043c\u0435\u043d\u0430 \/ \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0421\u0432\u044f\u0437\u044c \u0441 Binance (\u0447\u0435\u0440\u0435\u0437 REST API): <\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430, \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043e\u0440\u0434\u0435\u0440\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0440\u0430\u0441\u0447\u0451\u0442 PnL.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c: <\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a \u0447\u0435\u0440\u0435\u0437 Binance Testnet;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 dry-run (\u043b\u043e\u0433\u0438\u043a\u0430 \u0431\u0435\u0437 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a);<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 (Telegram \/ email).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0435\u043a:<\/strong><\/p>\n<ul>\n<li>\n<p>python-binance &#8212; \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<li>\n<p>Telegram Bot API &#8212; \u043d\u043e\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ul>\n<h3>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u044b\u0432\u043e\u0434<\/h3>\n<p>\u0423 \u0432\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043c\u043e\u0437\u0433 \u0441\u0438\u0441\u0442\u0435\u043c\u044b &#8212; \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u044b\u0441\u043b\u044f\u0449\u0438\u0439 RL-\u0430\u0433\u0435\u043d\u0442.<br \/>\u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c:<\/p>\n<ol>\n<li>\n<p>\u041f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u2192 \u0430\u0433\u0435\u043d\u0442 \u043d\u0430\u0447\u043d\u0451\u0442 \u0432\u0438\u0434\u0435\u0442\u044c \u0440\u044b\u043d\u043e\u043a \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438;<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u2192 \u0430\u0433\u0435\u043d\u0442 \u0441\u043c\u043e\u0436\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0438 \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c.<\/p>\n<\/li>\n<\/ol>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u044d\u0442\u0438\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u043d\u0430\u0432\u044b\u043a\u0438 \u0438 \u0433\u043b\u0443\u0431\u0436\u0435 \u043f\u043e\u043d\u044f\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0431\u043e\u0442\u0443 \u0441 API \u0431\u0438\u0440\u0436;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0442\u043e\u043a\u043e\u0432\u0443\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u0434\u0435\u0436\u043d\u0443\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u0438 fault-tolerant \u0434\u0438\u0437\u0430\u0439\u043d.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u0447\u043d\u0438\u0442\u0435 \u0441 \u043c\u0430\u043b\u043e\u0433\u043e: \u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0442\u0440\u0438\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0431\u0430\u0437\u0443 \u0438 \u043c\u043e\u0434\u0443\u043b\u044c dry-run \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<br \/>\u0412\u044b \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u0441\u044c, \u043a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e \u0438\u0437 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u0432\u044b\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430.<br \/>\u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u043e\u0448\u043b\u0438 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u0442\u043e \u044f \u0445\u043e\u0447\u0443 \u0432\u0430\u0441 \u043f\u043e\u0437\u0434\u0440\u0430\u0432\u0438\u0442\u044c, \u0432\u044b \u0443\u0436\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0430\u0448\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 &#8212; \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0438 \u0441\u0442\u0430\u0442\u044c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 AI-\u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433\u043e\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b.<\/p>\n<hr\/>\n<h3>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434, \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b \u0438 \u0440\u0430\u0431\u043e\u0442\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438:<\/h3>\n<ul>\n<li>\n<p><strong>\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441 \u043a\u043e\u0434\u043e\u043c<\/strong>: <a href=\"https:\/\/github.com\/YuriyKolesnikov\/rl-trading-binance\" rel=\"noopener noreferrer nofollow\">github.com\/YuriyKolesnikov\/rl-trading-binance<\/a><\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0430\u0442\u0430\u0441\u0435\u0442\u044b \u043d\u0430 Hugging Face<\/strong>: <a href=\"https:\/\/huggingface.co\/datasets\/ResearchRL\/open-rl-trading-binance-dataset\" rel=\"noopener noreferrer nofollow\">huggingface.co\/datasets\/ResearchRL\/open-rl-trading-binance-dataset<\/a><\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u043d\u043b\u0430\u0439\u043d-\u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0438 \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432 \u0430\u0433\u0435\u043d\u0442\u0430: <\/strong><a href=\"https:\/\/t.me\/binance_ai_agent\" rel=\"noopener noreferrer nofollow\">t.me\/binance_ai_agent<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/934258\/\"> https:\/\/habr.com\/ru\/articles\/934258\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\">\n<div><figcaption><strong>\u041a\u0440\u0438\u0432\u0430\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043d\u0430 \u0431\u044d\u043a\u0442\u0435\u0441\u0442\u0435<\/strong><br \/>\u0414\u0438\u043d\u0430\u043c\u0438\u043a\u0430 \u043a\u0430\u043f\u0438\u0442\u0430\u043b\u0430 \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043f\u0435\u0440\u0438\u043e\u0434: 2025-03-01 \u2014 2025-06-01), \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0439 \u0438 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u0439.<br \/> \u0418\u0442\u043e\u0433\u043e\u0432\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430: <strong>+144.23%<\/strong><\/figcaption><\/div>\n<\/figure>\n<h3>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h3>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0432\u0430\u0441, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438!<br \/>\u0426\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u043c \u043f\u043e\u043b\u043d\u043e\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0433\u043e \u0430\u0433\u0435\u043d\u0442\u0430 (\u043f\u0440\u043e\u0435\u043a\u0442), \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435\u043c <em>(Reinforcement Learning)<\/em>, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b <em>Dueling Double Deep Q-Network (D3QN)<\/em> \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <em>Prioritized Experience Replay (PER)<\/em>.<\/p>\n<p>\u0410\u0433\u0435\u043d\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438 \u043d\u0430 \u0444\u044c\u044e\u0447\u0435\u0440\u0441\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435 <em>Binance Futures<\/em>. \u041e\u043d \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u0438\u043d\u0443\u0442\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043a\u043b\u044e\u0447\u0430\u044f: <code><em>open<\/em><\/code><em>, <\/em><code><em>high<\/em><\/code><em>, <\/em><code><em>low<\/em><\/code><em>, <\/em><code><em>close<\/em><\/code><em>, <\/em><code><em>volume<\/em><\/code><em>, <\/em><code><em>volume_weighted_average<\/em><\/code><em>, <\/em><code><em>num_trades<\/em><\/code><em>.<\/em><\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0446\u0435\u043b\u044c \u0430\u0433\u0435\u043d\u0442\u0430 \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 <em>PnL<\/em> (\u043f\u0440\u0438\u0431\u044b\u043b\u044c\/\u0443\u0431\u044b\u0442\u043e\u043a \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0439 \u0438 \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u044f), \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u044d\u0442\u0430\u043f\u043e\u043c \u043e\u0446\u0435\u043d\u043a\u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0430\u0433\u0435\u043d\u0442\u0430 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u0439 \u0431\u044d\u043a\u0442\u0435\u0441\u0442, \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u043d\u044b\u0445 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0435.<\/p>\n<h4>\u0417\u0430\u0434\u0430\u0447\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h4>\n<p>\u041f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0443\u044e:<\/p>\n<ul>\n<li>\n<p>\u0421\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0438\u0437 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0414\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u043e\u0431\u043e\u0431\u0449\u0430\u044e\u0449\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0440\u0430\u043d\u0435\u0435 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0432 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435:<\/p>\n<ul>\n<li>\n<p>\u0413\u0438\u0431\u043a\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u043e\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 (Dreamer, Soft Actor-Critic \u0438 \u0434\u0440.);<\/p>\n<\/li>\n<li>\n<p>\u0411\u0430\u0437\u043e\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0433\u0438\u043f\u043e\u0442\u0435\u0437, \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432\u043e\u0437\u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0435\u043d\u0438\u044f, \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439, \u0431\u0443\u0444\u0435\u0440\u043e\u0432 \u0438 \u043c\u0435\u0442\u0440\u0438\u043a.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0427\u0442\u043e \u0432\u044b \u043d\u0430\u0439\u0434\u0451\u0442\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435<\/h4>\n<p>\u042f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u0438\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412\u0441\u0435 \u0447\u0430\u0441\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b. \u041a\u043e\u0434, \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435, \u0432\u0441\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u043a\u043e\u043d\u0446\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0438 \u0432 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0420\u0430\u0437\u0434\u0435\u043b<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0414\u0430\u043d\u043d\u044b\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u043a\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0441\u0435\u0441\u0441\u0438\u0439.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0421\u0440\u0435\u0434\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438, \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0441\u0447\u0451\u0442 \u043f\u0440\u0438\u0431\u044b\u043b\u0438 \u0438 \u0443\u0431\u044b\u0442\u043a\u043e\u0432 (PnL), \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0430\u0433\u0435\u043d\u0442\u0430.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0410\u0433\u0435\u043d\u0442<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 D3QN, \u0431\u0443\u0444\u0435\u0440 Prioritized Experience Replay (PER) \u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u03b5-\u0436\u0430\u0434\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0430\u0433\u0435\u043d\u0442\u0443 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0440\u044b\u043d\u043e\u043a \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041b\u043e\u0433\u0438\u043a\u0430 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430, \u043c\u0435\u0442\u043e\u0434\u044b \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438, \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0411\u044d\u043a\u0442\u0435\u0441\u0442<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0430\u044f \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438: \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438, \u043f\u0440\u043e\u0441\u043a\u0430\u043b\u044c\u0437\u044b\u0432\u0430\u043d\u0438\u044f, \u0440\u0438\u0441\u043a-\u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442, \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041c\u043e\u0434\u0443\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0438\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0412\u044b\u0432\u043e\u0434\u044b<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0437\u043e\u0440 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0438 \u043f\u043b\u0430\u043d \u043f\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0443 \u043a \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f (\u043e\u0442 DQN \u0434\u043e Model-Based RL, SAC \u0438 \u0434\u0440.).<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u041e\u0431 \u0430\u0432\u0442\u043e\u0440\u0435<\/h4>\n<p>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u042e\u0440\u0438\u0439. \u042f \u00abSenior Quantitative Researcher\u00bb \u0441 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u043d\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435\u043c (RL). \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u2014 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0445 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0445 \u0440\u044b\u043d\u043a\u0430\u0445.<\/p>\n<h4>\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<\/h4>\n<p>\u041d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0442\u0435\u043c\u0430 RL \u0432 \u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433\u0435 \u043b\u0438\u0431\u043e \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u043e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0430, \u043b\u0438\u0431\u043e \u043b\u0438\u0448\u0435\u043d\u0430 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u0433\u043e\u0441\u0442\u0438, \u043b\u0438\u0431\u043e \u043d\u0435 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043a \u0440\u0435\u0430\u043b\u0438\u044f\u043c \u0440\u044b\u043d\u043a\u0430. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u2014 \u0432\u043e\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0431\u0435\u043b, \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0432, \u043a\u0430\u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0443\u044e RL-\u0441\u0438\u0441\u0442\u0435\u043c\u0443:<\/p>\n<ul>\n<li>\n<p>\u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0441 \u043f\u043e\u043b\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0438 \u0440\u0438\u0441\u043a\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u043a\u0430\u043a \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u044f, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430\u044f:<\/p>\n<ul>\n<li>\n<p>\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0441\u043b\u0430\u0431\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u0432 RL \u0434\u043b\u044f \u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c SOTA-\u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0447\u0435\u0441\u0442\u043d\u044b\u043c baseline.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u0440\u043e\u0431\u0443\u0434\u0438\u0442 \u0432 \u0432\u0430\u0441 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0438 \u0441\u0442\u0430\u043d\u0435\u0442 \u0432\u0430\u0448\u0438\u043c \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u043c \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f RL \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433\u0435.<\/p>\n<h4>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c<\/h4>\n<p>\u0414\u043b\u044f \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u0433\u0435\u043d\u0442\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043c\u043e\u0434\u0443\u043b\u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0412\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0414\u0438\u043d\u0430\u043c\u0438\u043a\u0443 \u043a\u0440\u0438\u0432\u043e\u0439 \u043d\u0430\u0433\u0440\u0430\u0434\u044b \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0442\u0435\u0440\u044c, \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f Win Rate, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0434\u043e\u043b\u044e \u043f\u0440\u0438\u0431\u044b\u043b\u044c\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 PnL \u043f\u043e \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u043c \u0441\u0435\u0441\u0441\u0438\u044f\u043c, \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0449\u0435\u0435 \u043e\u0431\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0430\u0433\u0435\u043d\u0442\u0430, \u043a\u0430\u043a \u0432 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445, \u0442\u0430\u043a \u0438 \u0432 \u043d\u0430\u0438\u043c\u0435\u043d\u0435\u0435 \u0443\u0434\u0430\u0447\u043d\u044b\u0445 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u044f\u0445.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c RL \u0430\u0433\u0435\u043d\u0442\u0430, \u044f \u0432\u043d\u0435\u0434\u0440\u0438\u043b \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0443\u044e baseline-\u043c\u043e\u0434\u0435\u043b\u044c \u2014 CNN \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440, \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441 \u0443\u0447\u0438\u0442\u0435\u043b\u0435\u043c. <\/p>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u0435 \u0436\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 (mean PnL, win rate) \u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0430 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439.<br \/>Baseline-\u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u0451\u0442 \u043d\u0430\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0434\u043b\u044f \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438 RL-\u0430\u0433\u0435\u043d\u0442\u0430.<\/p>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u2014 \u044d\u0442\u043e \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439:<\/p>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u0433\u0438\u043f\u0435\u0440\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043f\u0443\u0442\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <code>configs\/*.py<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u2014 \u043b\u043e\u0433\u0438, \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0438: \u0432\u0441\u0451 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043f\u043e \u043f\u0430\u043f\u043a\u0430\u043c, \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d-\u043f\u043e\u0434\u0445\u043e\u0434\u0430, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0432 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u044b\u043c.<\/p>\n<h4>\u0411\u043e\u043d\u0443\u0441<\/h4>\n<p>\u0412 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u0430\u0441 \u0436\u0434\u0451\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0431\u043e\u043d\u0443\u0441 \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0418\u0418-\u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0430 Binance Futures \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>\ud83d\udcce <strong>\u041a\u043e\u0434, \u0434\u0430\u043d\u043d\u044b\u0435:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434:<\/strong> <a href=\"https:\/\/github.com\/YuriyKolesnikov\/rl-trading-binance\" rel=\"noopener noreferrer nofollow\">github.com\/YuriyKolesnikov\/rl-trading-binance<\/a><\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0430\u0442\u0430\u0441\u0435\u0442\u044b:<\/strong> <a href=\"https:\/\/huggingface.co\/datasets\/ResearchRL\/open-rl-trading-binance-dataset\" rel=\"noopener noreferrer nofollow\">huggingface.co\/datasets\/ResearchRL\/open-rl-trading-binance-dataset<\/a><\/p>\n<\/li>\n<\/ul>\n<h3>2. \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n<h4>\u041e\u0431\u0449\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430<\/h4>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u0438\u0434\u0435\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0443\u0447\u0430\u0442\u044c \u0430\u0433\u0435\u043d\u0442\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0442\u0435\u0445 \u0443\u0447\u0430\u0441\u0442\u043a\u0430\u0445 \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0433\u0434\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0437\u043d\u0430\u0447\u0438\u043c\u0430\u044f \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0430\u044f \u0431\u043b\u0430\u0433\u043e\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438.<\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0441\u044d\u043c\u043f\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u044b\u043d\u043a\u0430, \u043a\u0430\u043a \u044d\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0445 RL-\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u0445, \u0437\u0434\u0435\u0441\u044c \u043e\u0442\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0435 \u0441\u0435\u0441\u0441\u0438\u0438, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u043a \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u043c \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u044f\u043c.<\/p>\n<h4>2.1 \u041e\u0431\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435<\/h4>\n<p>\u041c\u0438\u043d\u0443\u0442\u043d\u044b\u0435 \u043a\u043e\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442 \u043d\u0435\u0441\u0442\u0430\u0446\u0438\u043e\u043d\u0430\u0440\u043d\u043e\u0435, \u0448\u0443\u043c\u043e\u0432\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u0412 \u0442\u0430\u043a\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u044f\u0440\u043a\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430\u0445 \u2014 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u0430\u0445, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0445 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u043f\u0435\u0440\u0435\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043b\u0438\u043a\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0438. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0442\u043e\u0447\u043a\u0430\u0445, \u0430 \u043d\u0430 \u043c\u043e\u0449\u043d\u044b\u0445 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435:<\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u044b\u043c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0446\u0435\u043d\u044b \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 5% \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043d\u0430 \u0444\u043e\u043d\u0435 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0435\u0440\u0446\u0438\u0438 (\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430);<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u0441\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u0430 \u0438\u043b\u0438 \u0440\u0435\u0437\u043a\u0438\u0439 \u043e\u0442\u043a\u0430\u0442.<\/p>\n<\/li>\n<\/ul>\n<h4>2.2 \u041b\u043e\u0433\u0438\u043a\u0430 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439<\/h4>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0433\u043e \u043e\u043a\u043d\u0430 \u0434\u043b\u0438\u043d\u043e\u0439 10 \u043c\u0438\u043d\u0443\u0442, \u0433\u0434\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0443\u0441\u043b\u043e\u0432\u0438\u0435:<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u044b:<\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u044b, \u043e\u043a\u0440\u0443\u0436\u0451\u043d\u043d\u044b\u0435 \u0448\u0443\u043c\u043e\u043c. \u041f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 90 \u043c\u0438\u043d\u0443\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u0438\u043b\u044c\u043d\u044b\u0445 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439:<\/p>\n<\/li>\n<\/ul>\n<p>\u0413\u0434\u0435  \u2014 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 (\u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0432\u0435\u043d 5.0).<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0441\u0438\u0433\u043d\u0430\u043b \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0444\u0438\u043b\u044c\u0442\u0440, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0435 \u043e\u043a\u043d\u043e:<\/p>\n<\/li>\n<\/ul>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0421\u0435\u043a\u0446\u0438\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0414\u043b\u0438\u043d\u0430<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0440\u0435-\u0441\u0438\u0433\u043d\u0430\u043b<\/p>\n<\/td>\n<td>\n<p align=\"left\">90 \u043c\u0438\u043d<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0434\u043b\u044f \u0430\u0433\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u0442-\u0441\u0438\u0433\u043d\u0430\u043b<\/p>\n<\/td>\n<td>\n<p align=\"left\">60 \u043c\u0438\u043d<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u043e\u0440\u0433\u043e\u0432\u0430\u044f \u0441\u0435\u0441\u0441\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041e\u0431\u0449\u0435\u0435 \u043e\u043a\u043d\u043e<\/p>\n<\/td>\n<td>\n<p align=\"left\">150 \u043c\u0438\u043d<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0415\u0434\u0438\u043d\u0438\u0446\u0430 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>2.3 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430<\/h4>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439:<\/p>\n<ul>\n<li>\n<p><code>np.ndarray<\/code> \u0444\u043e\u0440\u043c\u044b <code>(150, 7)<\/code> \u2014 150 \u043c\u0438\u043d\u0443\u0442 \u00d7 7 \u043a\u0430\u043d\u0430\u043b\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043d\u0430\u043b\u044b: <code>open<\/code>, <code>high<\/code>, <code>volume_weighted_average<\/code>, <code>low<\/code>, <code>close<\/code>, <code>volume<\/code>, <code>num_trades<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u044e\u0447: <code>(TICKER, datetime)<\/code>.<\/p>\n<\/li>\n<\/ul>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041a\u043e\u043b-\u0432\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041f\u0435\u0440\u0438\u043e\u0434<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Train<\/p>\n<\/td>\n<td>\n<p align=\"left\">24 104<\/p>\n<\/td>\n<td>\n<p align=\"left\">[2020-01-14 \u2014 2024-08-31)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Validation<\/p>\n<\/td>\n<td>\n<p align=\"left\">1377<\/p>\n<\/td>\n<td>\n<p align=\"left\">[2024-09-01 \u2014 2024-12-01)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0446\u0435\u043d\u043a\u0430 \u043c\u043e\u0434\u0435\u043b\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Test<\/p>\n<\/td>\n<td>\n<p align=\"left\">3400<\/p>\n<\/td>\n<td>\n<p align=\"left\">[2024-12-01 \u2014 2025-03-01)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0441\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Backtest<\/p>\n<\/td>\n<td>\n<p align=\"left\">3186<\/p>\n<\/td>\n<td>\n<p align=\"left\">[2025-03-01 \u2014 2025-06-01)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0430\u044f \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>2.4 \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439<\/h4>\n<p>\u0414\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0438\u0437 \u0432\u0441\u0435\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<ul>\n<li>\n<p>\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u043d\u0430 90-\u0439 \u043c\u0438\u043d\u0443\u0442\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043f\u043e \u043a\u0430\u043d\u0430\u043b\u0443 <code>close<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442: <code>Ticker Name<\/code>, <code>datetime<\/code> (\u0442\u043e\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432 UTC)<\/p>\n<\/li>\n<\/ul>\n<p>\u0413\u0440\u0430\u0444\u0438\u043a\u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043f\u043e\u0434\u0432\u044b\u0431\u043e\u0440\u043e\u043a: Train, Validation, Test, Backtest.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>Train Example<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\">\n<div><figcaption>Validation Example<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\">\n<div><figcaption>Test Example<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\">\n<div><figcaption>Backtest Example<\/figcaption><\/div>\n<\/figure>\n<h4>2.5 \u041c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<p>\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430 \u0441 \u0440\u044b\u043d\u043a\u043e\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u0433\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043a\u043b\u044e\u0447\u0430\u044f:<\/p>\n<ul>\n<li>\n<p>\u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u043a\u0430\u043d\u0430\u043b\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e;<\/p>\n<\/li>\n<li>\n<p>\u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u0449\u0438\u0442\u0443 \u043e\u0442 \u043d\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0438 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0441\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 <code>utils.py<\/code> \u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0435\u0434\u0438\u043d\u043e\u0433\u043e data pipeline:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>load_npz_dataset(path: str)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u0438\u0437 <code>.npz<\/code>, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0435\u0441\u0441\u0438\u0439 \u0438 \u043c\u0435\u0442\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>select_and_arrange_channels(...)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043a\u0430\u043d\u0430\u043b\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>['close', 'volume']<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>calculate_normalization_stats(...)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043f\u043e \u043a\u0430\u043d\u0430\u043b\u0430\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>apply_normalization(...)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0412\u044b\u0432\u043e\u0434<\/h4>\n<ul>\n<li>\n<p>\u0410\u0433\u0435\u043d\u0442 \u043e\u0431\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u0432\u0441\u0451\u043c \u0440\u044b\u043d\u043a\u0435, \u0430 \u043d\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0441\u043e\u043a\u043e\u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u044f\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u0430 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439;<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0435 \u044d\u0442\u0430\u043f\u044b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 <code>utils<\/code>, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044f \u0447\u0438\u0441\u0442\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ul>\n<h3>3. \u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/h3>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0442 \u0430\u0433\u0435\u043d\u0442\u0430 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0438\u0437\u0434\u0435\u0440\u0436\u0435\u043a \u0438 \u0438\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u043e\u0439 \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0438.<\/p>\n<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0444\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a <em>\u044d\u043f\u0438\u0437\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u0435\u043c (RL)<\/em>, \u0433\u0434\u0435 \u0430\u0433\u0435\u043d\u0442 \u0443\u0447\u0438\u0442\u0441\u044f \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h4>3.1 \u0424\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f: RL \u043a\u0430\u043a \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441<\/h4>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u043f\u0438\u0437\u043e\u0434 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0432\u043e\u043b\u0430\u0442\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (\u0441\u043c. \u0440\u0430\u0437\u0434\u0435\u043b 2). \u0410\u0433\u0435\u043d\u0442\u0443 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p><strong>90 \u043c\u0438\u043d\u0443\u0442<\/strong> \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u2014 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p><strong>60 \u0448\u0430\u0433\u043e\u0432<\/strong> \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u2014 \u043e\u043a\u043d\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439 (\u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0442\u0435 \u043d\u0430 \u0448\u0430\u0433).<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0446\u0438\u043a\u043b \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u0430 \u0441\u043e \u0441\u0440\u0435\u0434\u043e\u0439:<\/p>\n<ol>\n<li>\n<p>\u0410\u0433\u0435\u043d\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u200b;<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f  \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 ;<\/p>\n<\/li>\n<li>\n<p>\u0421\u0440\u0435\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u043d\u043e\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 ,<\/p>\n<\/li>\n<li>\n<p>\u0441\u043a\u0430\u043b\u044f\u0440\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0430\u0434\u0443 \u200b,<\/p>\n<\/li>\n<li>\n<p>\u0444\u043b\u0430\u0433 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u044d\u043f\u0438\u0437\u043e\u0434\u0430;<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434  \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u043f\u044b\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-469689","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/469689","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=469689"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/469689\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=469689"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=469689"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=469689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}