Compare commits

..

889 Commits

Author SHA1 Message Date
github-actions[bot] f3e4d51021 Deployed 9003d5e to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-25 06:19:57 +00:00
github-actions[bot] 0108a62dfb Deployed ba6627c to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-24 07:00:38 +00:00
github-actions[bot] f5bd195b10 Deployed 22a6fda to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-23 18:59:20 +00:00
github-actions[bot] a7ac6a4715 Deployed 8165fd6 to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-22 15:08:18 +00:00
github-actions[bot] 7d5aa5eafe Deployed 0d84e80 to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-21 04:31:55 +00:00
github-actions[bot] 89cf1249a0 Deployed 1182c03 to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-20 04:32:12 +00:00
github-actions[bot] 65440b0faa Deployed 6dcea8b to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-19 04:44:42 +00:00
github-actions[bot] ce717cda91 Deployed 674b2c1 to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-18 04:19:21 +00:00
github-actions[bot] e66d75c822 Deployed 03fac42 to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-17 18:04:26 +00:00
github-actions[bot] 8f910a179e Deployed 5bcc4fb to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-15 04:31:55 +00:00
github-actions[bot] ffc3a7f28b Deployed a0627aa to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-14 17:14:39 +00:00
github-actions[bot] 0d93a7f844 Deployed 764b32a to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-14 04:23:01 +00:00
github-actions[bot] 5a8e4e822e Deployed 8cce4be to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-12 04:29:57 +00:00
github-actions[bot] c39f2f1b40 Deployed 0e33e69 to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-11 04:34:53 +00:00
github-actions[bot] ff1b4b7666 Deployed e0df17e to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-10 13:08:31 +00:00
github-actions[bot] d823c4be73 Deployed c2578dc to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-09 07:10:22 +00:00
github-actions[bot] b7534a4a02 Deployed 77cabd2 to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-07 05:49:30 +00:00
github-actions[bot] 0e082cbacf Deployed 2d3ccb8 to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-04 04:34:20 +00:00
github-actions[bot] e50888c6d6 Deployed 5ecd64d to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-03 07:05:20 +00:00
github-actions[bot] 80a4924384 Deployed 17b5e9b to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-05-02 06:27:57 +00:00
github-actions[bot] 9d4c961bac Deployed 281ba60 to 2026.4 in en with MkDocs 1.6.1 and mike 2.2.0 2026-04-30 17:50:19 +00:00
github-actions[bot] c9afc231e3 Deployed 2ea4c4d to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-04-30 04:32:05 +00:00
github-actions[bot] c6f98b502b Deployed 63819fa to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-04-29 05:12:46 +00:00
github-actions[bot] 7f640d267c Deployed 14d6610 to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-04-28 04:37:01 +00:00
github-actions[bot] b0e1a268e9 Deployed ca64192 to develop in en with MkDocs 1.6.1 and mike 2.2.0 2026-04-27 04:30:51 +00:00
github-actions[bot] 7989063480 Deployed 0a49903 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-26 07:07:28 +00:00
github-actions[bot] 256f234bfa Deployed f17e383 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-25 11:25:16 +00:00
github-actions[bot] 88a445fb57 Deployed 9d0fb9b to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-24 05:13:15 +00:00
github-actions[bot] e3846d177a Deployed 2e4b92e to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-23 04:34:20 +00:00
github-actions[bot] b997ca000e Deployed f78e9c9 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-21 04:35:15 +00:00
github-actions[bot] d19b0cfd1d Deployed d9e0a28 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-20 04:29:52 +00:00
github-actions[bot] 2a44e2b064 Deployed 84535a1 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-19 11:31:15 +00:00
github-actions[bot] aa07fbbb4c Deployed c1795c7 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-17 04:21:31 +00:00
github-actions[bot] aaef152b60 Deployed d27de49 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-16 04:45:16 +00:00
github-actions[bot] 3a03955060 Deployed b1747fe to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-15 04:55:22 +00:00
github-actions[bot] 7885425e1a Deployed ac3e089 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-14 04:33:18 +00:00
github-actions[bot] 1fa0e4289a Deployed f7080ac to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-13 04:30:40 +00:00
github-actions[bot] 40d1d00ca0 Deployed 45d4c5d to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-12 08:29:33 +00:00
github-actions[bot] 0a6e2db16e Deployed e5a8aae to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-11 07:06:22 +00:00
github-actions[bot] 8aba47456a Deployed 174a857 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-10 04:39:44 +00:00
github-actions[bot] c6a77575b9 Deployed 7c43833 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-09 04:40:20 +00:00
github-actions[bot] d58c84d1bb Deployed 6a5fb9a to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-09 04:32:36 +00:00
github-actions[bot] 0df07dfe59 Deployed ed6899a to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-07 05:17:04 +00:00
github-actions[bot] 68293232b4 Deployed 70b24fd to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-07 04:44:49 +00:00
github-actions[bot] 3626b2735a Deployed 043281b to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-06 06:30:25 +00:00
github-actions[bot] e0ea9e134d Deployed 3a76235 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-04 07:10:08 +00:00
github-actions[bot] 7b3e9ec069 Deployed b5d400c to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-03 09:56:31 +00:00
github-actions[bot] f19232c4af Deployed a7c99b3 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-02 04:34:48 +00:00
github-actions[bot] 9cfe5880e6 Deployed cdffee2 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-01 20:21:27 +00:00
github-actions[bot] 8a2c4bbaf7 Deployed b0c14d1 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-01 05:04:21 +00:00
Matthias 8b8715222a Deployed dc2abe32a to 2026.3 in en with MkDocs 1.6.1 and mike 2.1.4 2026-04-01 06:01:30 +01:00
github-actions[bot] 970aa93176 Deployed 7e7e475 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-31 05:20:03 +00:00
github-actions[bot] df495f4472 Deployed 36d2ed0 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-31 04:35:28 +00:00
github-actions[bot] 30814d84bc Deployed dc2abe3 to 2026.3 in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-30 17:13:24 +00:00
github-actions[bot] 6e863baebc Deployed 5dccabe to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-30 04:44:32 +00:00
github-actions[bot] 80d3b2a925 Deployed d5417d4 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-29 10:55:52 +00:00
github-actions[bot] f102055676 Deployed 57e489b to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-28 12:50:11 +00:00
github-actions[bot] 6bbf1db608 Deployed 05081df to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-26 06:13:19 +00:00
github-actions[bot] 26c5023b9d Deployed 1b1508d to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-26 06:02:48 +00:00
github-actions[bot] b02b414e34 Deployed a203f41 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-25 18:55:15 +00:00
github-actions[bot] 406f8d77df Deployed 3f9eaba to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-25 11:46:09 +00:00
github-actions[bot] e6fe951a49 Deployed fd858b7 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-25 09:59:11 +00:00
github-actions[bot] be7861cd69 Deployed faf2818 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-24 19:57:50 +00:00
github-actions[bot] fd6529ed0f Deployed c112fa6 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-24 05:30:08 +00:00
github-actions[bot] 57efa0e815 Deployed 2eb5efe to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-23 09:52:25 +00:00
github-actions[bot] 4991718a0c Deployed d384708 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-23 06:54:30 +00:00
github-actions[bot] c4fb9f9cdb Deployed 94d0080 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-23 05:38:03 +00:00
github-actions[bot] 9a207a9849 Deployed 250156f to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-22 18:23:12 +00:00
github-actions[bot] 2db4270181 Deployed 10b2a27 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-22 08:04:29 +00:00
github-actions[bot] 657cffaf3f Deployed bbb1fec to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-21 08:35:01 +00:00
github-actions[bot] c2f33db0e8 Deployed 3242be2 to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-19 06:22:22 +00:00
github-actions[bot] f4ddd76ee9 Deployed 257e26f to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-17 05:30:05 +00:00
github-actions[bot] 5dca27990f Deployed 0f816dd to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-16 06:29:44 +00:00
github-actions[bot] 6e93bcfd53 Deployed 7863d4b to develop in en with MkDocs 1.6.1 and mike 2.1.4 2026-03-16 05:35:28 +00:00
github-actions[bot] 5fb3e9641f Deployed 05ffc2d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-15 18:23:43 +00:00
github-actions[bot] a76b031f24 Deployed bd6f891 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-14 06:52:59 +00:00
github-actions[bot] 4bca526fba Deployed 70fe211 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-13 05:32:14 +00:00
github-actions[bot] 2b0db53ec9 Deployed 23a1785 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-13 05:29:44 +00:00
github-actions[bot] 22c0c8b466 Deployed 6f039fa to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-12 05:32:40 +00:00
github-actions[bot] 921a65fe57 Deployed 9da9250 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-11 18:57:43 +00:00
github-actions[bot] f4e57b1212 Deployed 6b6dcd8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-10 05:52:18 +00:00
github-actions[bot] 390a96757a Deployed 8dd3fda to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-09 05:26:29 +00:00
github-actions[bot] 0a7a5d6f79 Deployed 6d6a961 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-09 05:24:58 +00:00
github-actions[bot] b924ff41db Deployed c49dc36 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-08 14:47:02 +00:00
github-actions[bot] d3050a13a4 Deployed b35082e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-06 05:40:15 +00:00
github-actions[bot] fad2fa1e63 Deployed 02475eb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-05 08:55:19 +00:00
github-actions[bot] 40f2b8ab63 Deployed 428d139 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-05 05:57:57 +00:00
github-actions[bot] 078352d5ee Deployed 9dd2a9e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-05 05:34:20 +00:00
github-actions[bot] 00b15dee88 Deployed 1e33ea0 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-04 06:02:05 +00:00
github-actions[bot] 8567a67b40 Deployed f92c66d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-03 08:55:04 +00:00
github-actions[bot] 6de9be5199 Deployed ac5491b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-03-02 05:30:53 +00:00
github-actions[bot] 97a8381adf Deployed 0e2313b to 2026.2 in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-28 11:30:34 +00:00
github-actions[bot] 07d9b8bd4f Deployed a730287 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-28 07:12:20 +00:00
github-actions[bot] 9926bc3326 Deployed 2e92fcc to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-27 05:39:06 +00:00
github-actions[bot] c85f24a2bf Deployed 1f69caf to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-26 05:35:49 +00:00
github-actions[bot] 70f132ae0a Deployed 5f585e3 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-25 06:20:56 +00:00
github-actions[bot] 5aea8953bd Deployed 6d04874 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-24 22:15:28 +00:00
github-actions[bot] 2cfa180b5c Deployed 6e49a90 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-24 16:57:17 +00:00
github-actions[bot] 806bddd1d9 Deployed 246a904 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-24 05:39:07 +00:00
github-actions[bot] f604ff3f17 Deployed 49e32b2 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-23 19:33:32 +00:00
github-actions[bot] c44ddceeff Deployed 5551a28 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-23 05:32:37 +00:00
github-actions[bot] 3305224625 Deployed f61b50d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-22 18:45:20 +00:00
github-actions[bot] cc31bd2b80 Deployed d2e650d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-21 15:34:35 +00:00
github-actions[bot] e9a3e0ec3e Deployed 088516b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-21 12:21:54 +00:00
github-actions[bot] 05e0d7f326 Deployed 797ea46 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-19 05:50:23 +00:00
github-actions[bot] 25a0fab31d Deployed 7ec495b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-18 17:28:24 +00:00
github-actions[bot] 45213a9fca Deployed 22c0af9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-17 05:35:45 +00:00
github-actions[bot] c5c237ea13 Deployed 82ae8b6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-16 05:37:45 +00:00
github-actions[bot] bf7e9538a0 Deployed ecfbfa2 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-15 10:49:32 +00:00
github-actions[bot] 36d535a948 Deployed 05e759a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-14 07:11:46 +00:00
github-actions[bot] 2ec6b93cb9 Deployed e8aeebb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-13 19:49:50 +00:00
github-actions[bot] b083d3c200 Deployed 7492cf8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-12 18:04:05 +00:00
github-actions[bot] 47f49c4e0f Deployed ba6d210 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-12 06:04:19 +00:00
github-actions[bot] 70911ba290 Deployed aff46ac to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-12 05:37:07 +00:00
github-actions[bot] 795dd94c91 Deployed 12c3698 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-11 05:58:08 +00:00
github-actions[bot] 3582d386e1 Deployed 60b787e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-10 19:39:17 +00:00
github-actions[bot] 91097e46a4 Deployed 2f2b36f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-10 05:44:58 +00:00
github-actions[bot] f41f73f1ba Deployed 3c44a01 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-09 05:30:57 +00:00
github-actions[bot] 015c743222 Deployed 65a713a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-07 12:41:17 +00:00
github-actions[bot] e905b3e060 Deployed 82f71d8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-06 07:03:13 +00:00
github-actions[bot] 43d0fe87af Deployed 2c0a029 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-05 06:23:38 +00:00
github-actions[bot] c1db695f71 Deployed 6c2a5b4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-04 06:14:37 +00:00
github-actions[bot] 0eb1187552 Deployed d73a173 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-03 19:39:45 +00:00
github-actions[bot] b935af7b64 Deployed eed5de4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-02 05:43:20 +00:00
github-actions[bot] 0437b3893e Deployed 35d038c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-02 05:33:58 +00:00
github-actions[bot] afe211cd83 Deployed 98b56a4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-02-01 16:23:41 +00:00
github-actions[bot] d8a95567e9 Deployed c86484b to 2026.1 in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-31 12:11:49 +00:00
github-actions[bot] 536818323a Deployed beec912 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-31 07:31:08 +00:00
github-actions[bot] 158f1abccd Deployed 360f294 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-29 05:49:36 +00:00
github-actions[bot] 1f4221ceb4 Deployed 5d88923 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-27 05:55:37 +00:00
github-actions[bot] c0b4f5346f Deployed 2b7bcdb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-26 05:14:14 +00:00
github-actions[bot] cd4998b5a8 Deployed 6cb459f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-25 09:29:13 +00:00
github-actions[bot] 43845bb618 Deployed 00848c9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-25 09:11:38 +00:00
github-actions[bot] 730da0e391 Deployed 390d504 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-25 07:27:34 +00:00
github-actions[bot] 2134e7bcdc Deployed 121bdab to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-25 07:08:40 +00:00
github-actions[bot] 7915ee7866 Deployed 690080e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-22 05:49:34 +00:00
github-actions[bot] 588b556b83 Deployed 583431e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-22 05:35:03 +00:00
github-actions[bot] 2558b70565 Deployed 63d6001 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-21 17:06:12 +00:00
github-actions[bot] 55370896ea Deployed 4870d45 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-20 18:33:15 +00:00
github-actions[bot] a476c253fd Deployed e8eb6d7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-20 17:08:30 +00:00
github-actions[bot] b2f5f10684 Deployed 4abb871 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-20 05:27:36 +00:00
github-actions[bot] 4f4b097acc Deployed 621e78e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-19 05:32:15 +00:00
github-actions[bot] b1304b3d26 Deployed d5686d5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-18 18:51:10 +00:00
github-actions[bot] 62b25d43a8 Deployed 12f815e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-15 05:51:25 +00:00
github-actions[bot] e428d407f8 Deployed 793ca9c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-14 05:32:30 +00:00
github-actions[bot] 638d2d7144 Deployed 77567f6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-13 05:30:10 +00:00
github-actions[bot] 118a4221d2 Deployed a89ef23 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-12 05:32:21 +00:00
github-actions[bot] a1133e3aa2 Deployed 14aeb56 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-10 18:55:54 +00:00
github-actions[bot] 5ef1f86973 Deployed faa5c4b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-09 19:01:13 +00:00
github-actions[bot] e117c5f0fa Deployed 123897e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-09 18:43:41 +00:00
github-actions[bot] 7291cd5fd3 Deployed 18fa981 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-08 05:49:23 +00:00
github-actions[bot] e921f3e1cd Deployed 519721b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-08 05:32:08 +00:00
github-actions[bot] 85e82a81f1 Deployed 2f011e5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-07 05:33:46 +00:00
github-actions[bot] 50a0c1a4b4 Deployed ed7887c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-06 07:24:12 +00:00
github-actions[bot] f79509da5f Deployed 38c74e5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-05 12:09:56 +00:00
github-actions[bot] 06f45bd13a Deployed 0ee3e43 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-05 07:10:26 +00:00
github-actions[bot] 05db638f3b Deployed 69cc238 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-03 11:51:41 +00:00
github-actions[bot] eaad82d414 Deployed 795df94 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-02 09:19:28 +00:00
github-actions[bot] 7e38401c06 Deployed fd7aff6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2026-01-01 06:14:57 +00:00
github-actions[bot] 893174316b Deployed 8e91fea to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-30 20:03:42 +00:00
github-actions[bot] 0e178b38b3 Deployed 70834b6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-30 07:46:47 +00:00
github-actions[bot] 3da9eab8ab Deployed 9f00a1d to 2025.12 in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-30 07:24:21 +00:00
github-actions[bot] 08cc28b4fc Deployed 90502a6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-29 05:41:48 +00:00
github-actions[bot] 3e33ee5455 Deployed f9fe909 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-29 05:39:12 +00:00
github-actions[bot] 685b00f001 Deployed 5c02ce9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-27 08:54:19 +00:00
github-actions[bot] 4ac7b30a14 Deployed 89c4aa2 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-26 13:07:35 +00:00
github-actions[bot] 6f0bfd594a Deployed f296213 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-25 07:18:50 +00:00
github-actions[bot] 98352b0cd7 Deployed 11eb0c0 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-24 10:59:13 +00:00
github-actions[bot] e6899354ce Deployed 9baa6ee to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-23 05:33:00 +00:00
github-actions[bot] d8227bdd4b Deployed 0feec25 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-23 05:32:15 +00:00
github-actions[bot] 95542d8728 Deployed 18ba324 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-22 05:32:23 +00:00
github-actions[bot] 50b042f2b9 Deployed 5479f20 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-22 05:31:50 +00:00
github-actions[bot] 37b1c7c285 Deployed aa38a36 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-21 11:58:45 +00:00
github-actions[bot] 28593f5b12 Deployed e9847d9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-19 05:27:41 +00:00
github-actions[bot] a76519c22e Deployed f002ce6 to 2025.11.2 in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-18 06:06:37 +00:00
github-actions[bot] 6d5781c21e Deployed 6c8b8f6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-18 05:29:30 +00:00
github-actions[bot] d113dece24 Deployed a9ebff3 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-17 05:32:08 +00:00
github-actions[bot] 1d5e6f6f9a Deployed eb3e8b8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-16 05:29:31 +00:00
github-actions[bot] 8cc64c98ad Deployed 03b5cdb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-15 05:24:51 +00:00
github-actions[bot] f865c93841 Deployed 2851708 to 2025.11.1 in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-14 18:31:41 +00:00
github-actions[bot] 0e602d2186 Deployed 8af0631 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-14 16:57:02 +00:00
github-actions[bot] f4601a2b18 Deployed 6848f91 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-13 07:28:46 +00:00
github-actions[bot] 4584d14271 Deployed d4ced7b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-11 06:06:36 +00:00
github-actions[bot] 30d2c5757f Deployed ae8f059 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-11 05:49:49 +00:00
github-actions[bot] b715dec904 Deployed 23a4260 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-10 16:29:21 +00:00
github-actions[bot] eade808008 Deployed 5919736 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-09 06:24:21 +00:00
github-actions[bot] 31ca898410 Deployed 3689b52 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-08 16:22:25 +00:00
github-actions[bot] 250e11e1cc Deployed 156c1a9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-08 07:10:09 +00:00
github-actions[bot] 9850e98e93 Deployed 262f4ff to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-05 06:12:35 +00:00
github-actions[bot] 35f10fcfe6 Deployed 06a8f3d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-04 05:36:43 +00:00
github-actions[bot] c6c5805ce0 Deployed 6d8fa76 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-02 05:40:52 +00:00
github-actions[bot] d91eeaf682 Deployed 450dc23 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-01 06:16:34 +00:00
github-actions[bot] ab797319b5 Deployed ba650de to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-12-01 05:41:49 +00:00
github-actions[bot] 320567fb6a Deployed 52c73ea to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-30 12:25:56 +00:00
github-actions[bot] a4b22e9f97 Deployed 6eba5ee to 2025.11 in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-30 06:56:19 +00:00
github-actions[bot] b39875929e Deployed 3453bdf to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-29 12:16:23 +00:00
github-actions[bot] 36a3f40022 Deployed 61ecaa4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-28 12:15:56 +00:00
github-actions[bot] 9f633aa3a1 Deployed 682c413 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-27 19:17:08 +00:00
github-actions[bot] e560e9063c Deployed 759c18d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-27 06:04:33 +00:00
github-actions[bot] db541237af Deployed 26f23c1 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-27 05:13:47 +00:00
github-actions[bot] 3ecbf4557c Deployed 67beeb6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-25 05:35:11 +00:00
github-actions[bot] 6555019ab6 Deployed d4188a0 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-24 05:32:41 +00:00
github-actions[bot] 60c13d2cbc Deployed 3932470 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-23 07:09:50 +00:00
github-actions[bot] 453b03fe00 Deployed 1db871e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-22 12:05:27 +00:00
github-actions[bot] c2e611f070 Deployed 2204803 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-21 06:12:01 +00:00
github-actions[bot] 16d0fece90 Deployed 2c6ff3f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-20 19:31:14 +00:00
github-actions[bot] ee92d3d497 Deployed 0835414 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-20 05:30:43 +00:00
github-actions[bot] 53b0aa9a10 Deployed 7b1dd61 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-18 05:28:34 +00:00
github-actions[bot] 651cf546fc Deployed ec51820 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-17 05:28:48 +00:00
github-actions[bot] f779dd253a Deployed 4425e0c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-17 05:27:59 +00:00
github-actions[bot] b194099cf8 Deployed cb28498 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-17 05:27:40 +00:00
github-actions[bot] 867de9a44f Deployed 5c0cf8f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-16 07:41:48 +00:00
github-actions[bot] c49c3a55c0 Deployed af728f8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-15 14:51:28 +00:00
github-actions[bot] 012b5955e2 Deployed 5000927 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-15 14:50:14 +00:00
github-actions[bot] abf92fa3eb Deployed 705849d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-13 05:55:32 +00:00
github-actions[bot] 511051c8fd Deployed 72889e2 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-11 05:33:18 +00:00
github-actions[bot] d825c0a40f Deployed 5970881 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-10 05:38:59 +00:00
github-actions[bot] 782910b532 Deployed d5613cf to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-10 05:36:02 +00:00
github-actions[bot] 2b948be840 Deployed 706955e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-09 08:03:02 +00:00
github-actions[bot] 606450699c Deployed 9aec10b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-09 07:43:51 +00:00
github-actions[bot] 273e7268b0 Deployed 1876656 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-09 07:00:10 +00:00
github-actions[bot] 0968b89572 Deployed a9f9b73 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-08 15:02:20 +00:00
github-actions[bot] 505205da96 Deployed 236df5b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-07 18:46:16 +00:00
github-actions[bot] 6306b3b24a Deployed d1014ce to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-06 06:31:14 +00:00
github-actions[bot] 2f7092b131 Deployed a2ec085 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-06 05:28:55 +00:00
github-actions[bot] b6387215ff Deployed 36593ec to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-05 18:42:38 +00:00
github-actions[bot] f8b43c5791 Deployed 8ddbf4b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-04 05:29:36 +00:00
github-actions[bot] 0f3eb613a8 Deployed d7ef5e8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-03 05:30:52 +00:00
github-actions[bot] a2724addc7 Deployed 8978da7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-02 08:23:31 +00:00
github-actions[bot] d5a874f98c Deployed d38d816 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-01 10:49:48 +00:00
github-actions[bot] b3e97bf13a Deployed 5684d0d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-11-01 10:05:40 +00:00
github-actions[bot] 9a43dd9e94 Deployed 4f1e249 to 2025.10 in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-31 15:54:48 +00:00
github-actions[bot] cfc2385335 Deployed 95f2cc0 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-31 05:29:28 +00:00
github-actions[bot] d815a06f3a Deployed f952502 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-30 05:38:43 +00:00
github-actions[bot] bd2b51fee1 Deployed 4adab37 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-29 17:02:48 +00:00
github-actions[bot] 793b45dd48 Deployed 1391905 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-28 05:20:47 +00:00
github-actions[bot] 42995a5acd Deployed 50f32ee to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-27 08:04:49 +00:00
github-actions[bot] 2c6a3fd4c1 Deployed b892662 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-27 05:40:34 +00:00
github-actions[bot] a0ac3c66a0 Deployed 14b5392 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-26 08:48:24 +00:00
github-actions[bot] c1e5d7678f Deployed c205608 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-25 06:49:53 +00:00
github-actions[bot] ed69978f53 Deployed 803db3b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-24 06:42:26 +00:00
github-actions[bot] 5573df5dca Deployed f8d3373 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-23 17:12:22 +00:00
github-actions[bot] 3c5605d34c Deployed b6bc304 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-21 04:25:55 +00:00
github-actions[bot] ebc2415584 Deployed 2b24f93 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-20 04:23:46 +00:00
github-actions[bot] 950a466660 Deployed 9b1fc7a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-19 14:35:40 +00:00
github-actions[bot] 2f45e76b61 Deployed a0c4b52 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-19 06:27:06 +00:00
github-actions[bot] 0ede2c39d4 Deployed 6a15f0c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-18 06:48:21 +00:00
github-actions[bot] 623debed71 Deployed 5df0530 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-16 18:16:32 +00:00
github-actions[bot] 592ccf8c7a Deployed 46e0219 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-16 04:39:27 +00:00
github-actions[bot] f272a3ab23 Deployed a745136 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-15 05:00:11 +00:00
github-actions[bot] 2878c07b28 Deployed 0041bf5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-14 04:30:54 +00:00
github-actions[bot] 8cb84621c8 Deployed d3bdf1a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-13 04:33:44 +00:00
github-actions[bot] aa11827cc9 Deployed b8e288e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-12 13:37:48 +00:00
github-actions[bot] 0fc61ce3ca Deployed ea0c51c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-12 08:16:12 +00:00
github-actions[bot] dcce1c18dc Deployed 2649ba0 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-11 14:04:34 +00:00
github-actions[bot] 2f0385da25 Deployed 923f687 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-09 04:31:49 +00:00
github-actions[bot] 5fcbfb7334 Deployed d8a89a3 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-08 05:11:59 +00:00
github-actions[bot] 7ad16b8fa6 Deployed e55a196 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-07 17:30:46 +00:00
github-actions[bot] e9a6532d80 Deployed 4c9e608 to 2025.9.1 in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-07 04:38:01 +00:00
github-actions[bot] aee8fddd45 Deployed 96c65da to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-07 04:27:53 +00:00
github-actions[bot] b51125b2f8 Deployed 8bba308 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-06 05:07:07 +00:00
github-actions[bot] 7f5e2e6cb8 Deployed 3a51db7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-06 04:42:10 +00:00
github-actions[bot] 8da7212f59 Deployed 69a715d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-06 04:28:03 +00:00
github-actions[bot] 5eacc9a393 Deployed 89b6e69 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-05 06:10:02 +00:00
github-actions[bot] dc0baf284f Deployed 8e44bc4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-04 09:45:42 +00:00
github-actions[bot] ebe2345deb Deployed 9e4af4f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-03 16:02:33 +00:00
github-actions[bot] 777a6367be Deployed 5542feb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-02 16:07:13 +00:00
github-actions[bot] 367829780c Deployed 0bcd6e0 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-10-02 04:40:07 +00:00
github-actions[bot] dcc08a54ab Deployed 3ea4603 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-30 04:26:54 +00:00
github-actions[bot] 9358540db7 Deployed c66e221 to 2025.9 in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-29 17:35:25 +00:00
github-actions[bot] 9a57be8d3b Deployed 3bcd669 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-29 04:30:49 +00:00
github-actions[bot] 0aa8ec55e7 Deployed 87c5f89 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-28 09:37:18 +00:00
github-actions[bot] ebbc67f935 Deployed 1175721 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-27 13:20:12 +00:00
github-actions[bot] 7550856781 Deployed 9232778 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-27 06:50:14 +00:00
github-actions[bot] 33a52b8eec Deployed 70a25f9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-26 05:14:29 +00:00
github-actions[bot] de38f9fccb Deployed 61f46b9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-25 04:44:08 +00:00
github-actions[bot] 6724252016 Deployed 9aeb2ea to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-24 16:14:15 +00:00
github-actions[bot] d111fd4c02 Deployed f525851 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-23 04:15:21 +00:00
github-actions[bot] ccdcb072ff Deployed 82b05f6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-22 04:28:59 +00:00
github-actions[bot] be708315fd Deployed 5483ade to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-22 04:28:23 +00:00
github-actions[bot] c0d6afd54f Deployed 16117e5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-21 06:03:10 +00:00
github-actions[bot] 4a37515e80 Deployed 78acaf8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-19 18:37:16 +00:00
github-actions[bot] 33c1b0920c Deployed a1dad06 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-19 18:32:37 +00:00
github-actions[bot] d77c217261 Deployed f48f24c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-18 04:29:32 +00:00
github-actions[bot] b3b99cef6e Deployed f6e1442 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-16 19:27:14 +00:00
github-actions[bot] aee86f0206 Deployed 314cd10 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-16 04:29:06 +00:00
github-actions[bot] 54188b3161 Deployed f40d90c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-15 04:55:17 +00:00
github-actions[bot] eed8d51965 Deployed a142817 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-14 08:13:30 +00:00
github-actions[bot] b884f7c154 Deployed a80f3ae to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-13 12:00:46 +00:00
github-actions[bot] 0956512eaa Deployed 8d965d4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-11 17:30:43 +00:00
github-actions[bot] f0073acc0a Deployed 25a3de6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-11 04:31:50 +00:00
github-actions[bot] 3a685a22ba Deployed 54bebea to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-10 17:46:56 +00:00
github-actions[bot] b4277d1080 Deployed 3a17c2b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-10 04:51:51 +00:00
github-actions[bot] c13e86c8b4 Deployed 97578c0 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-09 04:31:54 +00:00
github-actions[bot] 7f21c02bce Deployed a0d1a04 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-08 05:06:08 +00:00
github-actions[bot] e8f1ac91e9 Deployed aa4704e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-08 05:00:11 +00:00
github-actions[bot] e8d44f0d3e Deployed 52d5d35 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-08 04:48:01 +00:00
github-actions[bot] e057f50a1c Deployed 6de7c70 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-07 17:32:25 +00:00
github-actions[bot] dbf907e885 Deployed 19140e9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-07 10:02:04 +00:00
github-actions[bot] 37aff9146c Deployed b51c93f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-07 06:57:47 +00:00
github-actions[bot] 2fe57dfb94 Deployed 66577b7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-06 15:56:06 +00:00
github-actions[bot] eaabd5ba00 Deployed 65b83c4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-05 09:45:02 +00:00
github-actions[bot] 96edd579e6 Deployed a7e7c17 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-04 04:51:53 +00:00
github-actions[bot] 4db7c27f52 Deployed 4beb6a8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-02 16:18:50 +00:00
github-actions[bot] 49e30a23c2 Deployed b1b3b42 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-02 04:59:16 +00:00
github-actions[bot] 46120cb8ac Deployed eb9f233 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-09-01 08:01:31 +00:00
github-actions[bot] a4fc62b345 Deployed aad2119 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-31 06:42:12 +00:00
github-actions[bot] b2d5eabb78 Deployed 9c079cc to 2025.8 in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-31 06:26:51 +00:00
github-actions[bot] a7aa4ade53 Deployed 71e1c91 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-30 15:26:47 +00:00
github-actions[bot] a3f31305c4 Deployed e9718e0 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-30 13:41:42 +00:00
github-actions[bot] 48132399b7 Deployed 2fd703f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-30 13:41:06 +00:00
github-actions[bot] 1a82d3d6d4 Deployed 8610f98 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-30 08:13:37 +00:00
github-actions[bot] 11b8e2133a Deployed e503d4a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-29 18:31:38 +00:00
github-actions[bot] efa80f2680 Deployed 25d4cab to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-28 04:37:03 +00:00
github-actions[bot] 432e7b3ec8 Deployed 22ddd9a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-27 08:01:12 +00:00
github-actions[bot] 98224d3992 Deployed 2495f68 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-26 18:48:00 +00:00
github-actions[bot] e4317d1259 Deployed bb1d34c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-26 17:13:14 +00:00
github-actions[bot] f896784bb7 Deployed e8b967d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-26 04:02:35 +00:00
github-actions[bot] 8ce4cb39b0 Deployed e160739 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-25 06:56:00 +00:00
github-actions[bot] 7d3ca49be7 Deployed 4390324 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-25 05:06:28 +00:00
github-actions[bot] adb7b2f5af Deployed bdd69db to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-24 13:29:08 +00:00
github-actions[bot] 21a4b5bade Deployed 87b0a6d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-21 05:15:44 +00:00
github-actions[bot] 4ae70df5a8 Deployed 1f21d5e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-20 04:45:36 +00:00
github-actions[bot] 63c55acc5b Deployed 5e79a93 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-19 05:01:43 +00:00
github-actions[bot] a32f4d45f5 Deployed 196e599 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-18 07:02:05 +00:00
github-actions[bot] 276d41450a Deployed d4ee725 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-18 04:47:36 +00:00
github-actions[bot] a03f75b0ad Deployed 653c160 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-16 11:40:47 +00:00
github-actions[bot] c2fe56f852 Deployed 6063e4a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-15 11:10:58 +00:00
github-actions[bot] 7b78d25d9a Deployed d064bd4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-14 13:21:18 +00:00
github-actions[bot] af8b76538f Deployed c9dda34 to 2025.7 in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-14 08:11:06 +00:00
github-actions[bot] a312be1e51 Deployed fe8c367 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-14 05:47:56 +00:00
github-actions[bot] 196767d696 Deployed 2e29d35 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-13 11:31:16 +00:00
github-actions[bot] 003b275c38 Deployed 0dc665e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-12 04:58:04 +00:00
github-actions[bot] 60735e9fc0 Deployed bc6ea16 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-12 04:44:23 +00:00
github-actions[bot] e3a8524c35 Deployed 39a5328 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-11 05:37:02 +00:00
github-actions[bot] b978ff2cc1 Deployed b695b5a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-10 14:39:54 +00:00
github-actions[bot] 15d7364538 Deployed 42d3f55 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-09 14:12:11 +00:00
github-actions[bot] df008edfb1 Deployed a3c1c8c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-07 04:01:03 +00:00
github-actions[bot] f4d8244b0e Deployed 457af15 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-06 19:12:32 +00:00
github-actions[bot] e5e0d8fdca Deployed e4e11be to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-05 04:35:27 +00:00
github-actions[bot] 5720d7ef0a Deployed 1adbd52 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-04 05:13:50 +00:00
github-actions[bot] e658b60bc4 Deployed 999fd15 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-04 04:44:44 +00:00
github-actions[bot] 4a5cfb95e1 Deployed 4ad049a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-03 17:53:49 +00:00
github-actions[bot] 063538b369 Deployed 102cc87 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-03 07:47:44 +00:00
github-actions[bot] 1cb74e1d01 Deployed c93c97c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-02 09:24:55 +00:00
github-actions[bot] 42612350a0 Deployed fc21757 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-08-01 04:39:47 +00:00
github-actions[bot] 88cfd694c1 Deployed a5db75d to 2025.7 in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-31 17:48:21 +00:00
github-actions[bot] ac6f93f6fb Deployed a5db75d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-31 04:22:35 +00:00
github-actions[bot] cfcc7b7a60 Deployed e9cc9bb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-30 05:14:53 +00:00
github-actions[bot] 357e5078c1 Deployed a7b7e10 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-29 05:23:31 +00:00
github-actions[bot] 67cfb5a4c6 Deployed 18c37b9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-29 04:42:51 +00:00
github-actions[bot] c6620b4dd9 Deployed 99d2423 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-28 05:10:08 +00:00
github-actions[bot] 05f4c72776 Deployed b8b8da2 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-28 04:53:21 +00:00
github-actions[bot] 16d8d9af88 Deployed 48d1106 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-27 12:43:48 +00:00
github-actions[bot] 7cd7ebba93 Deployed afa1311 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-26 07:13:18 +00:00
github-actions[bot] f26c252d53 Deployed 3ecc9c3 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-24 04:50:30 +00:00
github-actions[bot] 378b3ac669 Deployed 2520b7c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-22 04:43:45 +00:00
github-actions[bot] 55061e66f3 Deployed 3a58297 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-21 04:52:40 +00:00
github-actions[bot] b22beec43d Deployed 65d22f9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-21 04:50:10 +00:00
github-actions[bot] debf627d26 Deployed b7fc924 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-20 08:08:21 +00:00
github-actions[bot] 6ec8003b2c Deployed 25ffc76 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-20 07:46:28 +00:00
github-actions[bot] 25a26f4220 Deployed 15b1cff to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-20 06:39:20 +00:00
github-actions[bot] 41d28269b6 Deployed 29df749 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-19 06:30:39 +00:00
github-actions[bot] a982953b33 Deployed 75081ab to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-18 04:58:55 +00:00
github-actions[bot] 93a5cdd28e Deployed 571497e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-18 04:54:47 +00:00
github-actions[bot] 8248e68ed4 Deployed d33768e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-17 04:39:08 +00:00
github-actions[bot] d412fb532b Deployed 23bbbdd to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-16 18:43:25 +00:00
github-actions[bot] 6ffa8ab6d8 Deployed 8bf8ccf to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-15 04:25:27 +00:00
github-actions[bot] b362f7520f Deployed bf511f1 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-14 05:19:54 +00:00
github-actions[bot] a46ca8cd7b Deployed 469587e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-13 11:33:51 +00:00
github-actions[bot] 53e74a2e97 Deployed dde6001 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-10 04:31:03 +00:00
github-actions[bot] 70b6ee1c64 Deployed 604e083 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-09 04:40:51 +00:00
github-actions[bot] 5dd7185658 Deployed c39f6f8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-08 04:55:06 +00:00
github-actions[bot] 8c843dc1dc Deployed 2dfad98 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-07 04:56:17 +00:00
github-actions[bot] 240afe3c59 Deployed d29cd5b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-07 04:44:46 +00:00
github-actions[bot] 48bd90ed38 Deployed 8ecd701 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-06 06:59:16 +00:00
github-actions[bot] ccf338280a Deployed 701cf47 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-05 17:57:33 +00:00
github-actions[bot] 0b0c3d8408 Deployed e90aa6a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-04 12:39:46 +00:00
github-actions[bot] b7b2d10e90 Deployed f6ed609 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-03 05:35:01 +00:00
github-actions[bot] 5e2f36fe1f Deployed cc807d1 to 2025.6 in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-02 19:16:57 +00:00
github-actions[bot] 9ccd34d88b Deployed 6421f76 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-02 14:50:07 +00:00
github-actions[bot] face45850e Deployed 595db54 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-02 07:17:19 +00:00
github-actions[bot] 7470e70caa Deployed bfa9c81 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-02 06:18:36 +00:00
github-actions[bot] 8c44d90f4d Deployed 3b441cd to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-07-01 05:22:35 +00:00
github-actions[bot] 2d960a1eaa Deployed bc13d16 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-30 06:11:54 +00:00
github-actions[bot] 148e4a52ef Deployed 9f5fd57 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-26 08:47:48 +00:00
github-actions[bot] d8ca973f10 Deployed d27981f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-24 07:06:51 +00:00
github-actions[bot] 87fab14f70 Deployed 4ae8042 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-23 06:10:02 +00:00
github-actions[bot] a04454c722 Deployed e57d0e3 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-23 05:39:20 +00:00
github-actions[bot] fffbfef7d9 Deployed 7b4a6a4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-23 05:17:07 +00:00
github-actions[bot] 84907edde4 Deployed 822dce0 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-22 11:30:15 +00:00
github-actions[bot] cf12524ebf Deployed 3465f35 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-20 18:26:48 +00:00
github-actions[bot] 511a91cef6 Deployed ca85dea to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-19 04:26:04 +00:00
github-actions[bot] 95bdb7fbe3 Deployed d6bf20b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-18 05:07:46 +00:00
github-actions[bot] 61b300c413 Deployed 2d842ea to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-17 04:30:32 +00:00
github-actions[bot] 0e568e2ebb Deployed 913148b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-16 05:01:31 +00:00
github-actions[bot] 92cdb2c132 Deployed 097b272 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-15 07:50:04 +00:00
github-actions[bot] 9b829c59fa Deployed a1207ec to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-13 04:12:47 +00:00
github-actions[bot] 63b1a02796 Deployed 4e0203d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-12 04:25:17 +00:00
github-actions[bot] 371a6940cc Deployed 15353f4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-11 04:49:17 +00:00
github-actions[bot] 14a6ade31c Deployed 5dd5b95 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-10 18:20:20 +00:00
github-actions[bot] 13b4084850 Deployed a3a30f9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-10 04:28:34 +00:00
github-actions[bot] 2159dce061 Deployed 0a31ff3 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-09 06:08:48 +00:00
github-actions[bot] 3342dcb528 Deployed 7fb7c43 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-08 10:52:42 +00:00
github-actions[bot] ded1ea0081 Deployed f2569e3 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-08 06:44:17 +00:00
github-actions[bot] 49bba46407 Deployed a8d617d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-07 06:37:38 +00:00
github-actions[bot] e0000b7fde Deployed dbccc69 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-06 04:36:03 +00:00
github-actions[bot] b6716e41b8 Deployed afc5205 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-05 04:27:01 +00:00
github-actions[bot] f149217bc1 Deployed 582871b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-04 16:25:02 +00:00
github-actions[bot] 5f154f3cdd Deployed 3155dfc to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-03 04:31:09 +00:00
github-actions[bot] 89d01726f6 Deployed cc41cb8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-02 06:31:59 +00:00
github-actions[bot] b37e879ae5 Deployed ce46cd7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-06-01 07:14:23 +00:00
github-actions[bot] 7aca3a5082 Deployed 28399aa to 2025.5 in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-31 15:39:42 +00:00
github-actions[bot] fd895031ef Deployed 6188694 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-31 13:49:57 +00:00
github-actions[bot] 7104d68fab Deployed e58ab78 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-30 05:33:04 +00:00
github-actions[bot] a1cd08af7a Deployed 9fe361f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-29 04:44:30 +00:00
github-actions[bot] 903a8e563c Deployed 4f216eb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-28 13:22:44 +00:00
github-actions[bot] d2f49e8a9c Deployed f3d7f67 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-27 04:32:21 +00:00
github-actions[bot] 4a76863504 Deployed 81456b2 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-26 04:53:03 +00:00
github-actions[bot] 5add686272 Deployed dfc1193 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-25 07:14:01 +00:00
github-actions[bot] 9971e1cb6e Deployed a7ebbd8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-25 06:25:26 +00:00
github-actions[bot] 96f8dc5154 Deployed 47465f1 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-24 08:35:51 +00:00
github-actions[bot] 676a87b29a Deployed ecdd84e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-23 05:27:23 +00:00
github-actions[bot] 5e78ec6f59 Deployed 0ad6a6a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-22 18:26:30 +00:00
github-actions[bot] 38f927e230 Deployed 12a482a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-22 04:26:01 +00:00
github-actions[bot] 95f54cbcf4 Deployed d1ebdf5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-21 17:37:50 +00:00
github-actions[bot] 2101aff7fa Deployed 82f9874 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-21 17:28:14 +00:00
github-actions[bot] 5cc8f2b882 Deployed d8c2466 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-20 04:45:41 +00:00
github-actions[bot] 690fe1d93c Deployed 195c15c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-20 04:28:08 +00:00
github-actions[bot] 90605b4030 Deployed d8c6873 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-19 04:35:05 +00:00
github-actions[bot] 326b70d8d3 Deployed 226f9b7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-19 04:31:35 +00:00
github-actions[bot] 3ead62a5c3 Deployed 1b4802a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-18 06:39:00 +00:00
github-actions[bot] bcfad23924 Deployed fe9de41 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-17 14:16:56 +00:00
github-actions[bot] 909e554e1a Deployed 510c47b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-16 04:39:53 +00:00
github-actions[bot] db01732d2b Deployed 193cfb6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-15 04:28:42 +00:00
github-actions[bot] 4fc08b34e1 Deployed 3fe9e6b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-14 05:03:37 +00:00
github-actions[bot] c3f027c68b Deployed b661404 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-13 18:04:26 +00:00
github-actions[bot] 435b93b232 Deployed deafe39 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-13 05:03:38 +00:00
github-actions[bot] 8dd27a473f Deployed 2c0db90 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-12 11:15:23 +00:00
github-actions[bot] 24d87013a6 Deployed 4db41f0 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-12 04:46:57 +00:00
github-actions[bot] 2c2be0f228 Deployed cc85811 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-12 04:26:52 +00:00
github-actions[bot] e51f43c22c Deployed 950a0df to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-10 06:39:12 +00:00
github-actions[bot] 5a7412daff Deployed 2a0dd4c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-09 07:53:41 +00:00
github-actions[bot] 6e806f4313 Deployed a49b4ab to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-08 04:24:00 +00:00
github-actions[bot] 87ab1cc842 Deployed 2ba59ce to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-06 04:33:35 +00:00
github-actions[bot] 80c6cac1b8 Deployed fca454b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-05 17:53:11 +00:00
github-actions[bot] cf62f8ce03 Deployed a7ba3ca to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-05 04:31:13 +00:00
github-actions[bot] 6edad770c8 Deployed 92bcf67 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-04 17:53:44 +00:00
github-actions[bot] 82ad557d1a Deployed 82186c8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-04 17:26:58 +00:00
github-actions[bot] 88696008aa Deployed 689da4c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-03 06:26:24 +00:00
github-actions[bot] ee1e3cd016 Deployed 9c4abcc to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-02 11:44:05 +00:00
github-actions[bot] 6a08d6d309 Deployed d0b7a52 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-05-01 06:10:28 +00:00
github-actions[bot] 0c5feb024b Deployed b11119d to 2025.4 in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-30 16:05:03 +00:00
github-actions[bot] 402d50903e Deployed 14e2e16 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-30 04:59:22 +00:00
github-actions[bot] 1e29e367e2 Deployed 33c8969 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-29 19:04:33 +00:00
github-actions[bot] 01b9eff101 Deployed f568d63 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-29 18:08:53 +00:00
github-actions[bot] 2df8537198 Deployed 96e8319 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-28 05:42:02 +00:00
github-actions[bot] 2530cadd75 Deployed 02ab0eb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-28 04:31:41 +00:00
github-actions[bot] 868bcbbe9b Deployed 6e83890 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-27 07:04:05 +00:00
github-actions[bot] 7307c5b5c7 Deployed 875216c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-26 07:26:35 +00:00
github-actions[bot] 6ad3f2ff54 Deployed 073b625 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-25 06:29:08 +00:00
github-actions[bot] 282fff57d9 Deployed 956398a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-24 04:26:20 +00:00
github-actions[bot] 4bc321c6eb Deployed 124c051 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-22 17:09:40 +00:00
github-actions[bot] 60536e8fb7 Deployed 67bcf38 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-22 05:20:10 +00:00
github-actions[bot] 411bde82bb Deployed a8b313d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-21 09:53:24 +00:00
github-actions[bot] 4ed3c33b10 Deployed 77c3894 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-21 06:15:12 +00:00
github-actions[bot] a447f56b78 Deployed dcf3855 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-20 14:06:16 +00:00
github-actions[bot] cc1580e490 Deployed 0c6ed58 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-19 12:20:05 +00:00
github-actions[bot] c5025ac3c9 Deployed 45dc667 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-18 13:35:27 +00:00
github-actions[bot] a6e8888cad Deployed 3c20106 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-18 12:54:07 +00:00
github-actions[bot] 183ecf8fb2 Deployed bfadd54 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-17 04:29:44 +00:00
github-actions[bot] 49cc3faa1e Deployed 72786ca to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-16 16:28:42 +00:00
github-actions[bot] 552df89391 Deployed 841f578 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-15 04:36:22 +00:00
github-actions[bot] 881d662951 Deployed a63280b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-14 05:17:47 +00:00
github-actions[bot] 0480d63e7f Deployed d06a531 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-14 04:53:37 +00:00
github-actions[bot] 0fc9c77c28 Deployed b1adb2b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-13 11:09:40 +00:00
github-actions[bot] 3c8fcd5cb3 Deployed 82cd343 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-12 05:59:42 +00:00
github-actions[bot] 16d28a50e2 Deployed 30eb328 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-11 04:31:45 +00:00
github-actions[bot] b21afd40cf Deployed 6ae5724 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-10 05:15:05 +00:00
github-actions[bot] f0f2d4257d Deployed 6e98635 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-10 04:23:11 +00:00
github-actions[bot] c94967044e Deployed 596f671 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-09 16:58:58 +00:00
github-actions[bot] a30b947201 Deployed 9d0f5df to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-08 17:38:50 +00:00
github-actions[bot] 2764b825c7 Deployed 8de5e2b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-08 04:50:18 +00:00
github-actions[bot] 8609601b06 Deployed 9950ed7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-08 04:29:07 +00:00
github-actions[bot] eb5a452e19 Deployed affab24 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-07 04:44:06 +00:00
github-actions[bot] fe053e9498 Deployed 010ed69 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-07 04:27:16 +00:00
github-actions[bot] 97b9c8b129 Deployed a85afd9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-06 10:52:53 +00:00
github-actions[bot] b3203ac640 Deployed b7298f4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-05 16:12:58 +00:00
github-actions[bot] c9a07bfee5 Deployed 91df125 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-04 04:49:09 +00:00
github-actions[bot] 3859521e33 Deployed 1aaf0c2 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-03 04:49:16 +00:00
github-actions[bot] c12a340373 Deployed 60695fe to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-03 04:24:43 +00:00
github-actions[bot] 6e1b00afbc Deployed be2d97b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-02 05:05:13 +00:00
github-actions[bot] 7b114f70ce Deployed bb596d6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-04-01 04:52:22 +00:00
github-actions[bot] ddfad932ca Deployed c81761e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-31 04:28:12 +00:00
github-actions[bot] 31a23d3355 Deployed 8fbb4e1 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-31 04:27:56 +00:00
github-actions[bot] 73f477ec1a Deployed 31aa397 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-30 15:43:49 +00:00
github-actions[bot] 62e66d2d9a Deployed b77739b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-30 13:22:43 +00:00
github-actions[bot] e5ee8c72b3 Deployed 6ee500d to 2025.3 in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-27 16:58:55 +00:00
github-actions[bot] 2f5b35db0b Deployed 3c6500c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-27 05:51:22 +00:00
github-actions[bot] f931bea027 Deployed 9480331 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-26 05:36:48 +00:00
github-actions[bot] 184ec04c6a Deployed 7c5b2fd to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-25 05:31:51 +00:00
github-actions[bot] 40e6b010f4 Deployed e1f2f0c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-24 05:36:08 +00:00
github-actions[bot] 8bd7536500 Deployed 2347195 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-24 05:34:35 +00:00
github-actions[bot] cd416c8167 Deployed 31e4501 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-22 13:38:20 +00:00
github-actions[bot] 12568f8472 Deployed 8e2de9e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-21 06:11:36 +00:00
github-actions[bot] 4c10077751 Deployed 5ea7ba6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-21 06:11:18 +00:00
github-actions[bot] 242b772452 Deployed e3e924d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-21 05:51:30 +00:00
github-actions[bot] 9841d7133a Deployed 26ba076 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-20 06:06:13 +00:00
github-actions[bot] 108aa60887 Deployed b97f3ca to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-20 05:39:00 +00:00
github-actions[bot] 763db4b1b6 Deployed 6b6d7fc to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-18 17:08:35 +00:00
github-actions[bot] 6a34bb12ab Deployed b431c5b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-18 05:37:41 +00:00
github-actions[bot] d356591cb5 Deployed 1aeed39 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-17 05:29:42 +00:00
github-actions[bot] 6645e7b948 Deployed 17b161c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-16 14:20:27 +00:00
github-actions[bot] 363e4758c2 Deployed 55dc2d4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-16 12:08:22 +00:00
github-actions[bot] b920903e61 Deployed 2a6dc3e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-15 07:05:51 +00:00
github-actions[bot] c5b1bd2060 Deployed bfd2c3f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-13 19:44:20 +00:00
github-actions[bot] 32f312b369 Deployed cd43509 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-13 05:29:55 +00:00
github-actions[bot] 359eb2b749 Deployed 8288a5c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-11 19:45:40 +00:00
github-actions[bot] e085c4e761 Deployed 23928e5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-10 05:26:00 +00:00
github-actions[bot] dd4cda9eeb Deployed 805e03b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-09 14:00:51 +00:00
github-actions[bot] e33e71971a Deployed 8bd4926 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-08 16:01:26 +00:00
github-actions[bot] a126c67d22 Deployed 64e2763 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-06 06:18:06 +00:00
github-actions[bot] 707a206430 Deployed 3762f40 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-06 06:00:00 +00:00
github-actions[bot] 1d5369e890 Deployed 6116c6a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-06 05:29:57 +00:00
github-actions[bot] 0834ffdf6b Deployed d461d6f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-05 19:19:41 +00:00
github-actions[bot] 0868937ce5 Deployed 4d87d13 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-04 05:40:15 +00:00
github-actions[bot] 56ea7414af Deployed 3dd7f7f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-03 19:49:13 +00:00
github-actions[bot] 6713ceaf0c Deployed 674d286 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-03 05:45:50 +00:00
github-actions[bot] b71b785037 Deployed 40f87c9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-03 05:43:40 +00:00
github-actions[bot] 4aa8407042 Deployed ccfc690 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-02 15:04:04 +00:00
github-actions[bot] a64afcb711 Deployed cc03375 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-02 13:44:12 +00:00
github-actions[bot] ece1489f21 Deployed 3070e37 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-03-01 07:02:15 +00:00
github-actions[bot] 76a379c823 Deployed a23409b to 2025.2 in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-28 09:35:03 +00:00
github-actions[bot] 9893e89714 Deployed f447de4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-28 05:38:40 +00:00
github-actions[bot] 01c5460401 Deployed 449a5e8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-27 05:20:44 +00:00
github-actions[bot] 1440a8eb4c Deployed 822e7ba to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-25 05:23:41 +00:00
github-actions[bot] 2cc4fc0451 Deployed fde3547 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-24 17:07:27 +00:00
github-actions[bot] f4979cd9ed Deployed 38f1981 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-24 06:03:03 +00:00
github-actions[bot] 1e1318b4d6 Deployed d451dcf to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-24 05:26:04 +00:00
github-actions[bot] 3f521ae1e0 Deployed 063964e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-24 05:24:45 +00:00
github-actions[bot] 8431ca0404 Deployed 901dfa2 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-23 15:25:34 +00:00
github-actions[bot] 96358d7b5c Deployed 0408ad1 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-22 07:21:53 +00:00
github-actions[bot] 04644323f1 Deployed fc4e09f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-20 05:35:52 +00:00
github-actions[bot] 3d113707fe Deployed fa939a7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-18 05:36:49 +00:00
github-actions[bot] 98c45fe643 Deployed cdf3376 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-17 06:12:04 +00:00
github-actions[bot] bd90b60bf5 Deployed 1f575d9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-17 05:27:25 +00:00
github-actions[bot] b711a93ea5 Deployed 2a95a3a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-16 16:28:52 +00:00
github-actions[bot] eb5b093004 Deployed b285cdd to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-16 14:11:45 +00:00
github-actions[bot] c61b8a4d2d Deployed b3e0b42 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-16 13:16:03 +00:00
github-actions[bot] bcfafcabfb Deployed f14c4eb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-15 07:27:11 +00:00
github-actions[bot] e8adca5952 Deployed 8a5ff4e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-13 05:34:23 +00:00
github-actions[bot] e14888bedd Deployed e3a9b0a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-12 05:23:27 +00:00
github-actions[bot] 9105239ffb Deployed a46d41a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-11 05:39:56 +00:00
github-actions[bot] f5b541839e Deployed 5a9f66e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-10 05:31:04 +00:00
github-actions[bot] 05457c6f5a Deployed 4fd77e7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-10 05:30:51 +00:00
github-actions[bot] 92390b6c02 Deployed f060548 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-09 07:13:53 +00:00
github-actions[bot] 62cec09c88 Deployed 18ce8af to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-08 15:52:24 +00:00
github-actions[bot] 78f5235f06 Deployed 9a22e5c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-07 05:57:11 +00:00
github-actions[bot] 083b0c73b8 Deployed 99df346 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-06 05:31:19 +00:00
github-actions[bot] 59a2d93b45 Deployed 85753be to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-05 06:03:23 +00:00
github-actions[bot] 4fe2848f25 Deployed 323b9f8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-04 05:39:21 +00:00
github-actions[bot] f1a5cf8c6d Deployed c1c9f01 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-03 07:01:34 +00:00
github-actions[bot] 0ab0eba728 Deployed 97c67d5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-03 05:54:30 +00:00
github-actions[bot] eb178302d0 Deployed 6d5cd69 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-03 05:24:17 +00:00
github-actions[bot] 06d4c1ef6c Deployed 4c5c054 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-02-02 13:59:56 +00:00
github-actions[bot] 7c422ee75b Deployed 7a17cd7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-31 05:31:46 +00:00
github-actions[bot] a1d2cce1e7 Deployed 7c8b934 to 2025.1 in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-31 05:24:38 +00:00
github-actions[bot] bae27f45f5 Deployed 9401028 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-30 05:31:28 +00:00
github-actions[bot] e1d6d281f0 Deployed a6005fd to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-29 17:21:37 +00:00
github-actions[bot] 020280a3bf Deployed 262cfed to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-28 05:49:14 +00:00
github-actions[bot] 22502c9e6a Deployed f288381 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-27 05:31:12 +00:00
github-actions[bot] 759c245cd1 Deployed 1495a15 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-27 05:30:30 +00:00
github-actions[bot] b139d2e6ba Deployed 77e6b2a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-26 08:00:57 +00:00
github-actions[bot] 181b120535 Deployed 222da03 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-25 11:54:58 +00:00
github-actions[bot] 41c4cc2292 Deployed c3cc58a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-24 05:40:03 +00:00
github-actions[bot] ada4789635 Deployed 713979d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-23 05:31:38 +00:00
github-actions[bot] ff043bedd9 Deployed 4a7a510 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-22 17:57:11 +00:00
github-actions[bot] f3cc5e4df5 Deployed 7f2e696 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-22 17:51:19 +00:00
github-actions[bot] c03feb3e3f Deployed 2b915a7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-21 05:43:03 +00:00
github-actions[bot] aa179094fc Deployed 81b4285 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-20 18:23:33 +00:00
github-actions[bot] 72d1724a02 Deployed 47a86c3 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-20 06:09:30 +00:00
github-actions[bot] 02b6319f63 Deployed ffef87f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-20 05:57:56 +00:00
github-actions[bot] 55971c6ded Deployed 63c6356 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-20 05:34:41 +00:00
github-actions[bot] 2ef6910836 Deployed 36e4842 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-19 13:01:06 +00:00
github-actions[bot] c36f3edf02 Deployed 13050f0 to 2024.12.1 in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-18 13:34:37 +00:00
github-actions[bot] 7b35a5f2c0 Deployed aceb3ac to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-18 07:11:04 +00:00
github-actions[bot] 1f25efa15f Deployed e80ddca to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-16 05:26:50 +00:00
github-actions[bot] e61ef8bde1 Deployed 1f0b23c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-14 05:42:53 +00:00
github-actions[bot] d9149fa5d2 Deployed ea649fb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-13 06:00:32 +00:00
github-actions[bot] b7b4d149df Deployed c52a07f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-13 05:51:54 +00:00
github-actions[bot] c7b9df65af Deployed 1b28be9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-11 07:16:48 +00:00
github-actions[bot] bab98ffdee Deployed 711e680 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-09 19:06:12 +00:00
github-actions[bot] 2c683d03e0 Deployed fbad2d5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-09 05:33:09 +00:00
github-actions[bot] 4607699446 Deployed b57cede to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-07 18:10:48 +00:00
github-actions[bot] e012bea88d Deployed b863c68 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-07 05:49:17 +00:00
github-actions[bot] d8a9fc38c6 Deployed 3a8aba1 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-07 05:00:24 +00:00
github-actions[bot] 3fc79dd8d4 Deployed 82e3e3d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-06 11:41:15 +00:00
github-actions[bot] b0f70a5126 Deployed a883114 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-06 06:53:44 +00:00
github-actions[bot] ec4f22a758 Deployed 00d1f14 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-05 18:36:19 +00:00
github-actions[bot] 2e05c6af0a Deployed 5f0df2c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-05 10:14:32 +00:00
github-actions[bot] 24a3d2ab0d Deployed 37c10c9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-04 16:14:59 +00:00
github-actions[bot] ed366133e7 Deployed 046e153 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-04 13:25:40 +00:00
github-actions[bot] 4a31e5d197 Deployed 676cdab to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-03 12:23:46 +00:00
github-actions[bot] 3df5812ec5 Deployed 32d966a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-02 06:53:47 +00:00
github-actions[bot] 0053c273fd Deployed 9f69b4f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2025-01-01 16:09:00 +00:00
github-actions[bot] 31790da381 Deployed 9beae3d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-31 09:01:35 +00:00
github-actions[bot] 431d427a09 Deployed 503eb1e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-30 16:32:14 +00:00
github-actions[bot] d188295502 Deployed 466e834 to 2024.12 in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-30 06:10:13 +00:00
github-actions[bot] 808e28c0f6 Deployed 5266f74 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-30 05:48:19 +00:00
github-actions[bot] 6a68b3f2ff Deployed 243f219 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-30 05:47:55 +00:00
github-actions[bot] 2c24eea224 Deployed 4285602 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-29 14:40:44 +00:00
github-actions[bot] 6f8eab0624 Deployed 0032f9a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-28 11:50:29 +00:00
github-actions[bot] a96b8e3a57 Deployed fc970a1 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-27 12:39:53 +00:00
github-actions[bot] bf1cb1de0f Deployed b5748fe to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-26 12:54:53 +00:00
github-actions[bot] 40c005c635 Deployed b092dfa to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-26 11:10:49 +00:00
github-actions[bot] 1f53464d95 Deployed 9e30e5c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-25 07:10:26 +00:00
github-actions[bot] a67473d00b Deployed e59bd71 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-24 14:30:00 +00:00
github-actions[bot] 145cd2466f Deployed 93af2b7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-24 07:18:43 +00:00
github-actions[bot] b21ca7fde8 Deployed 90cd381 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-23 07:42:59 +00:00
github-actions[bot] efca1b17a6 Deployed b62fa81 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-23 07:02:01 +00:00
github-actions[bot] 00adc5ef0f Deployed 12cbe70 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-23 07:01:15 +00:00
github-actions[bot] 94a2332ff3 Deployed 503305c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-22 15:23:28 +00:00
github-actions[bot] 7a414d1ad4 Deployed 32f5924 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-21 18:52:31 +00:00
github-actions[bot] 8d7f011371 Deployed 40cb70f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-21 13:33:38 +00:00
github-actions[bot] 56572b8d85 Deployed 0d73e96 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-20 05:27:29 +00:00
github-actions[bot] 17ae428357 Deployed e1f759e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-19 20:06:34 +00:00
github-actions[bot] 2ce76cf2ae Deployed 6edfebd to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-19 07:10:32 +00:00
github-actions[bot] d95d078626 Deployed fced0c4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-17 05:31:16 +00:00
github-actions[bot] 77165c6037 Deployed 6bf4217 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-16 05:29:52 +00:00
github-actions[bot] 0e61c53f04 Deployed 685811e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-15 14:43:52 +00:00
github-actions[bot] e2852d912b Deployed 11f0a59 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-14 17:21:23 +00:00
github-actions[bot] cd3e1ef6c7 Deployed 8dfbf34 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-14 13:13:37 +00:00
github-actions[bot] 8083ccff12 Deployed d0c5d61 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-14 12:08:48 +00:00
github-actions[bot] 72d4de5a3c Deployed e2e1c61 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-14 11:52:32 +00:00
github-actions[bot] eaaa6b7a93 Deployed cc7b1a5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-13 13:24:59 +00:00
github-actions[bot] 46aa43fc1b Deployed abbfe04 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-12 19:12:10 +00:00
github-actions[bot] 3ce77ce8df Deployed 0fb927e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-12 15:43:46 +00:00
github-actions[bot] 8e26d58927 Deployed cb9d828 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-12 05:28:37 +00:00
github-actions[bot] 1da0bfd95e Deployed 3483575 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-11 06:26:51 +00:00
github-actions[bot] 7a4dfcb2e0 Deployed 7552ad5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-10 05:31:58 +00:00
github-actions[bot] b5abf2b42f Deployed 23579df to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-09 05:29:32 +00:00
github-actions[bot] 82268aa717 Deployed 2b91be6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-09 05:27:28 +00:00
github-actions[bot] 1ad6127fdf Deployed 489db37 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-08 07:55:49 +00:00
github-actions[bot] 92a713ba21 Deployed a85f200 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-07 16:49:59 +00:00
github-actions[bot] 535f95c086 Deployed fb9e11b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-07 12:35:47 +00:00
github-actions[bot] afdac1cf61 Deployed 63f8217 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-06 19:12:23 +00:00
github-actions[bot] 2c7aa6f976 Deployed e09d1b4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-06 19:10:21 +00:00
github-actions[bot] 87399d9551 Deployed b1d7d73 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-05 05:29:54 +00:00
github-actions[bot] 1697391d9c Deployed d6c21e2 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-04 06:06:38 +00:00
github-actions[bot] 1baa4e565c Deployed 196c122 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-03 05:31:01 +00:00
github-actions[bot] afc7620753 Deployed 8b5aa08 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-02 05:34:06 +00:00
github-actions[bot] 8e1fbca4d2 Deployed ab42f84 to 2024.11 in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-01 19:23:49 +00:00
github-actions[bot] 81c1c512f4 Deployed 29f86af to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-01 18:42:29 +00:00
github-actions[bot] c2ed8121a7 Deployed 55247b4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-12-01 14:20:14 +00:00
github-actions[bot] 479fd29fe3 Deployed cbbc386 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-30 06:06:23 +00:00
github-actions[bot] c2665f643e Deployed 9ff4298 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-28 18:22:38 +00:00
github-actions[bot] 302bbcbdf0 Deployed cf9c9fe to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-28 05:54:04 +00:00
github-actions[bot] e1c7c25f40 Deployed 58cde32 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-27 05:42:17 +00:00
github-actions[bot] 802be0089f Deployed e9e3f7e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-26 05:01:57 +00:00
github-actions[bot] ffaa2cd571 Deployed 52c9761 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-25 05:31:09 +00:00
github-actions[bot] 7ac3701b7a Deployed 59c3743 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-25 05:30:37 +00:00
github-actions[bot] 0b7c1163bc Deployed b30c152 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-24 09:39:36 +00:00
github-actions[bot] f8cca626e0 Deployed f7e9791 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-23 12:13:43 +00:00
github-actions[bot] 215aa6abd4 Deployed 945f9f8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-21 19:39:12 +00:00
github-actions[bot] ea7a3694c1 Deployed 69be62f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-21 05:28:42 +00:00
github-actions[bot] 2058572271 Deployed b637e7d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-20 06:01:00 +00:00
github-actions[bot] e92dfb6205 Deployed df004a2 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-19 05:27:10 +00:00
github-actions[bot] cb414ed71b Deployed de139af to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-18 05:34:23 +00:00
github-actions[bot] 70b32addcd Deployed 5dcb239 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-17 08:05:12 +00:00
github-actions[bot] 189cd2994c Deployed 85dbe83 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-16 16:07:42 +00:00
github-actions[bot] 6f6bf3c30f Deployed 25aecfa to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-16 12:08:00 +00:00
github-actions[bot] 409fd9c94e Deployed 44dcb4c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-16 10:18:34 +00:00
github-actions[bot] efd5492b3c Deployed c61a71a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-16 07:51:13 +00:00
github-actions[bot] a0c851d2d6 Deployed cbc4bb5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-15 16:34:58 +00:00
github-actions[bot] d67a7da45d Deployed 3276dd6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-14 05:35:02 +00:00
github-actions[bot] 593e84dafe Deployed 4e5ae0a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-12 17:13:40 +00:00
github-actions[bot] 398cf9c40b Deployed 8128b85 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-12 05:24:42 +00:00
github-actions[bot] f6fca98f41 Deployed 0b0b221 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-11 19:25:48 +00:00
github-actions[bot] c620ed1aa0 Deployed eae5b15 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-11 05:29:25 +00:00
github-actions[bot] 9883bbfde6 Deployed 486a0d2 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-11 05:26:19 +00:00
github-actions[bot] 840c3664a9 Deployed b5592b8 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-10 08:06:53 +00:00
github-actions[bot] 0ced66bef1 Deployed e450bae to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-09 17:40:16 +00:00
github-actions[bot] 5139af45c9 Deployed 5ca102f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-09 08:02:41 +00:00
github-actions[bot] b1f9d4c666 Deployed 12560e9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-07 18:58:51 +00:00
github-actions[bot] b18c835d8b Deployed 44ff6d5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-07 06:23:37 +00:00
github-actions[bot] 731e857a08 Deployed 979f7ba to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-07 05:38:56 +00:00
github-actions[bot] 91b090fef9 Deployed 22338d7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-07 05:29:41 +00:00
github-actions[bot] ed6e039098 Deployed 12ab1cb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-05 06:23:24 +00:00
github-actions[bot] a2ee108818 Deployed 84ce065 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-05 05:24:46 +00:00
github-actions[bot] da6811a143 Deployed d1a4b9a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-04 06:48:34 +00:00
github-actions[bot] 15eb0fdb72 Deployed f699989 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-04 05:27:51 +00:00
github-actions[bot] c1de8e6bb9 Deployed 63dfa52 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-03 13:17:34 +00:00
github-actions[bot] f82a4d4a9d Deployed 74507e9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-02 16:25:12 +00:00
github-actions[bot] d00bad3818 Deployed d24bef7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-02 16:04:45 +00:00
github-actions[bot] c0e25c7c0b Deployed 1bf71b4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-01 16:49:34 +00:00
github-actions[bot] 5f42fe5e62 Deployed 67f26fa to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-01 08:30:06 +00:00
github-actions[bot] 9569e3740e Deployed 3da9f6d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-11-01 07:44:44 +00:00
github-actions[bot] 5493d92156 Deployed f5fdd8a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-31 14:47:37 +00:00
github-actions[bot] 8bb90d3fec Deployed 87c5668 to 2024.10 in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-31 07:07:55 +00:00
github-actions[bot] 23b08a1d8a Deployed 7bce16f to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-31 05:43:55 +00:00
github-actions[bot] 1cc6bf656a Deployed 52ae7c3 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-29 05:40:14 +00:00
github-actions[bot] 472df45fcf Deployed 8204ecc to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-28 05:38:00 +00:00
github-actions[bot] 4722350e3b Deployed 4c0341b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-27 20:51:38 +00:00
github-actions[bot] 862ac76797 Deployed 9e53b07 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-27 06:58:29 +00:00
github-actions[bot] 835052c0e5 Deployed b8f8d1d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-25 05:39:23 +00:00
github-actions[bot] efa65f438d Deployed 3d9cbf5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-24 04:07:07 +00:00
github-actions[bot] d08ba5eb1e Deployed 11cef55 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-23 16:01:49 +00:00
github-actions[bot] 17c1cb0150 Deployed 46db0bc to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-22 05:19:34 +00:00
Matthias fe9a5f45d2 docs: add empty robots.txt 2024-10-22 07:08:22 +02:00
Matthias 15f2d8050e docs: add site-map redirects 2024-10-22 07:04:25 +02:00
github-actions[bot] 2abe3e044f Deployed d9766bf to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-22 04:35:47 +00:00
github-actions[bot] 1294e5cf94 Deployed c9246bf to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-21 05:32:43 +00:00
github-actions[bot] 4780246b50 Deployed 4f0380b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-21 04:47:18 +00:00
Matthias adc02e469b Deployed 157cb7d98 to 2024.9 in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-20 12:08:19 +01:00
Matthias bbd42990de Deployed 01d10aebc to 2024.8 in en with MkDocs 1.6.0 and mike 2.1.3 2024-10-20 12:08:05 +01:00
Matthias a454610f38 Deployed af462fa08 to 2024.7.1 in en with MkDocs 1.6.0 and mike 2.1.3 2024-10-20 12:07:52 +01:00
Matthias adfe15c0df Deployed 895485748 to 2024.7 in en with MkDocs 1.6.0 and mike 2.1.3 2024-10-20 12:07:38 +01:00
Matthias ab8ea9111e Deployed a55691ea7 to 2024.6 in en with MkDocs 1.6.0 and mike 2.1.3 2024-10-20 12:07:25 +01:00
Matthias c88d9d4d2d Deployed 8d51a801a to 2024.5 in en with MkDocs 1.6.0 and mike 2.1.3 2024-10-20 12:07:11 +01:00
Matthias ec58a1f8c6 Deployed 2152a9545 to 2024.4 in en with MkDocs 1.6.0 and mike 2.1.3 2024-10-20 12:06:57 +01:00
Matthias c24cd5a6d1 Deployed 73363d925 to 2024.3 in en with MkDocs 1.5.3 and mike 2.1.3 2024-10-20 12:06:44 +01:00
Matthias 53404d6d7e Deployed 1fc69ef11 to 2024.2 in en with MkDocs 1.5.3 and mike 2.1.3 2024-10-20 12:06:31 +01:00
Matthias 826b006a02 Deployed d3b6256f8 to 2024.1 in en with MkDocs 1.5.3 and mike 2.1.3 2024-10-20 12:06:19 +01:00
github-actions[bot] e8a6cae03a Deployed 0a5549e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-20 10:36:45 +00:00
github-actions[bot] 83f9f032ea Deployed d56f46e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-19 11:33:18 +00:00
github-actions[bot] 85abc8ab4b Deployed c6fe8ae to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-19 09:51:58 +00:00
github-actions[bot] 9407389ab4 Deployed e47042d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-18 05:07:53 +00:00
github-actions[bot] 849afb23c1 Deployed aaeaa02 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-17 04:24:48 +00:00
github-actions[bot] af864cc25a Deployed b209548 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-15 04:39:57 +00:00
github-actions[bot] 7269d7d5e7 Deployed c9b31c6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-14 17:11:33 +00:00
github-actions[bot] a103da314c Deployed 42fcdb3 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-14 05:15:12 +00:00
github-actions[bot] 2eff10023a Deployed d503724 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-13 06:31:30 +00:00
github-actions[bot] 13c0bc009e Deployed aa8cefc to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-12 09:06:44 +00:00
github-actions[bot] e3652ed031 Deployed d72f45a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-10 04:29:00 +00:00
github-actions[bot] 7e42b8bcdc Deployed ddeb649 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-08 04:36:39 +00:00
github-actions[bot] 042994e7ca Deployed b320358 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-07 05:51:05 +00:00
github-actions[bot] 4bbeec3f06 Deployed b9caed4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-07 04:53:40 +00:00
github-actions[bot] 796cb0bf76 Deployed b885c3d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-06 06:22:24 +00:00
github-actions[bot] 940cc12711 Deployed 7db0e3a to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-04 04:34:01 +00:00
github-actions[bot] 00b6cd7b19 Deployed 137db2c to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-03 04:45:44 +00:00
github-actions[bot] e7e4f6b637 Deployed c3ad3ff to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-02 05:03:55 +00:00
github-actions[bot] 40cdd78b39 Deployed ad578bb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-02 04:24:12 +00:00
github-actions[bot] e0a538f380 Deployed d8c6c76 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-01 17:47:02 +00:00
github-actions[bot] 2e0de9af37 Deployed a0f00d0 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-10-01 04:28:51 +00:00
github-actions[bot] 6d1c1d183e Deployed 157cb7d to 2024.9 in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-30 09:37:22 +00:00
github-actions[bot] a83667128f Deployed 2bf79a5 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-30 07:05:58 +00:00
github-actions[bot] 7ce6bfe509 Deployed 2a25ac9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-30 05:31:17 +00:00
github-actions[bot] 20111725d1 Deployed b0b866e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-30 04:55:54 +00:00
github-actions[bot] 166789c746 Deployed 415b835 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-29 14:22:48 +00:00
github-actions[bot] f775c922e3 Deployed 5816a59 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-28 09:52:09 +00:00
github-actions[bot] b67a0dca64 Deployed 3dc92b4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-28 07:57:34 +00:00
github-actions[bot] b2efa2e0c3 Deployed f0eaccc to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-26 04:20:40 +00:00
github-actions[bot] 591bce7c70 Deployed 28eabfe to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-25 04:31:10 +00:00
github-actions[bot] 650de0d4bd Deployed 5907de9 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-24 04:30:54 +00:00
github-actions[bot] 5f55e7c624 Deployed 25d8a9d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-24 04:30:36 +00:00
github-actions[bot] d8d7cb40eb Deployed 40ba2cb to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-23 09:04:24 +00:00
github-actions[bot] 1509d7ea63 Deployed 8491f46 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-23 06:38:12 +00:00
github-actions[bot] 6ec2434272 Deployed 4aa909e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-23 06:37:59 +00:00
github-actions[bot] 0a76d79b9d Deployed d377d84 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-22 06:40:51 +00:00
github-actions[bot] a491211d35 Deployed 670a40e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-21 06:45:07 +00:00
github-actions[bot] 08e4e53d83 Deployed 59a44d6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-19 04:29:32 +00:00
github-actions[bot] 7121ed4c7b Deployed ad29594 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-18 05:02:21 +00:00
github-actions[bot] b2be448d7a Deployed c28446d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-17 04:28:43 +00:00
github-actions[bot] 3058c82736 Deployed 4249db4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-16 06:33:16 +00:00
github-actions[bot] 1462081b6e Deployed ae41ab1 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-15 09:29:59 +00:00
github-actions[bot] 579f20ee25 Deployed ae72f10 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-14 07:52:04 +00:00
github-actions[bot] e6b4aa7d57 Deployed 9f34153 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-13 17:48:10 +00:00
github-actions[bot] e4f97c63c0 Deployed e969285 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-12 04:44:00 +00:00
github-actions[bot] 3a4518df57 Deployed 94e38d4 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-12 04:36:42 +00:00
github-actions[bot] b937e542ec Deployed 5605bdc to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-11 04:41:19 +00:00
github-actions[bot] a60ee9ba9e Deployed 593a54e to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-10 04:25:58 +00:00
github-actions[bot] bef1afc3f4 Deployed d4713b2 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-09 06:57:09 +00:00
github-actions[bot] b52bd4bdcd Deployed 6e2aa6b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-08 06:29:18 +00:00
github-actions[bot] 2a1cd79174 Deployed 611a3ce to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-07 18:12:34 +00:00
github-actions[bot] 17ed30ac51 Deployed 396d933 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-07 17:52:29 +00:00
github-actions[bot] d8f8035573 Deployed d9ec666 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-07 06:50:14 +00:00
github-actions[bot] 90f2c897bf Deployed 6a4b641 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-06 19:01:40 +00:00
github-actions[bot] 62e332aac3 Deployed 990dbb6 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-05 03:58:56 +00:00
github-actions[bot] b962f9de4f Deployed 65ba67d to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-04 19:11:37 +00:00
Matthias ed0301b86b Deployed af462fa08 to 2024.7 in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-04 20:09:36 +01:00
Matthias 74ad18fc3d Deployed af462fa08 to 2024.7.1 in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-04 20:09:31 +01:00
Matthias ccd1847b20 Deployed 01d10aebc to 2024.8 in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-04 20:09:06 +01:00
github-actions[bot] fa5771fba4 Deployed 2fdf108 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-04 19:05:08 +00:00
Matthias 12aacfe4a1 Deployed 964d437c7 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-04 19:43:58 +01:00
Matthias 8f2c267ca2 Deployed 01d10aebc to 2024.8 in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-04 19:43:35 +01:00
Matthias 3800c213d9 Deployed af462fa08 to 2024.7.1 in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-04 19:43:16 +01:00
Matthias ab87b8e89a Deployed af462fa08 to 2024.7 in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-04 19:43:01 +01:00
Matthias b6cecdc876 Update CNAME 2024-09-04 20:22:05 +02:00
github-actions[bot] 5e9dd7d4bf Deployed dacb926 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-04 04:12:28 +00:00
github-actions[bot] c93f1ece5b Deployed f46308b to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-03 04:19:24 +00:00
github-actions[bot] f3285b3470 Deployed d4ba837 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-02 05:03:48 +00:00
github-actions[bot] 85c2bce718 Deployed 0aecb24 to develop in en with MkDocs 1.6.1 and mike 2.1.3 2024-09-02 04:57:49 +00:00
github-actions[bot] 078e5e8bea Deployed 97c937e to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-09-01 06:33:45 +00:00
github-actions[bot] 79a781052b Deployed ef96116 to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-31 18:34:33 +00:00
github-actions[bot] 0bd3b6b535 Deployed 01d10ae to 2024.8 in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-31 14:15:32 +00:00
github-actions[bot] 2c979c465e Deployed 7edc508 to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-31 06:45:30 +00:00
github-actions[bot] b9b305e732 Deployed c1f54b1 to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-29 04:32:41 +00:00
Matthias 67b9d039bd Deployed af462fa08 to 2024.7.1 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-28 19:33:16 +01:00
github-actions[bot] 8a7bb8eaba Deployed 655a300 to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-28 18:28:22 +00:00
github-actions[bot] 1a38555fa3 Deployed a58c5b3 to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-27 05:26:46 +00:00
github-actions[bot] f5522315c5 Deployed a2e2c0a to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-26 06:41:02 +00:00
github-actions[bot] 48a08b804b Deployed 8e7bfba to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-26 06:40:55 +00:00
Matthias e116e5b7fb Deployed af462fa08 to 2024.7.1 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-24 14:43:51 +01:00
github-actions[bot] cfae2163cd Deployed d1bc519 to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-24 07:34:32 +00:00
github-actions[bot] 9f70b13129 Deployed e879275 to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-23 16:26:52 +00:00
github-actions[bot] 60bdeba37c Deployed 235d387 to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-22 04:33:49 +00:00
github-actions[bot] f63761aa9a Deployed 0a2be14 to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-21 18:25:40 +00:00
github-actions[bot] 1e71fc1aa7 Deployed 3dce1d3 to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-21 16:16:30 +00:00
Matthias 78e1b53baf chore: update 404 page 2024-08-21 06:47:14 +02:00
Matthias 0de876b4a4 Create CNAME 2024-08-21 06:46:08 +02:00
Matthias 56ce2657fa chore: update 404 page 2024-08-20 21:07:45 +02:00
Matthias 1972f1ecd0 chore: update 404 page 2024-08-20 20:56:31 +02:00
Matthias 88597f5081 chore: fix 404 page 2024-08-20 20:46:58 +02:00
Matthias ac846c52a5 chore: add index and 404 pages 2024-08-20 20:43:12 +02:00
github-actions[bot] 95fd53de5b Deployed e05a6e9 to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-20 18:21:53 +00:00
Matthias b3fe52ee06 Deployed e05a6e976 to develop in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-20 19:20:59 +01:00
Matthias ff6b2d096a Deployed 9e3e5038f to develop in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 19:13:15 +01:00
Matthias 720cde6e27 Set default version to stable in en with mike 2.1.2 2024-08-20 19:12:03 +01:00
Matthias fb288b73a8 Copied 2024.7.1 to stable in en with mike 2.1.2 2024-08-20 19:11:52 +01:00
Matthias efe9a152af Deployed af462fa08 to 2024.7.1 in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-20 19:11:24 +01:00
Matthias 288266958d Deployed 895485748 to 2024.7 in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-20 19:11:01 +01:00
Matthias 03e13f7317 Deployed a55691ea7 to 2024.6 in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-20 19:10:45 +01:00
Matthias 3b24a64f20 Deployed 8d51a801a to 2024.5 in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-20 19:10:29 +01:00
Matthias 4fa10d4bcd Deployed 2152a9545 to 2024.4 in en with MkDocs 1.6.0 and mike 2.1.3 2024-08-20 19:10:07 +01:00
Matthias 312c58c0cf Deployed 73363d925 to 2024.3 in en with MkDocs 1.5.3 and mike 2.1.3 2024-08-20 19:09:42 +01:00
Matthias 26f7d73aca Deployed 1fc69ef11 to 2024.2 in en with MkDocs 1.5.3 and mike 2.1.3 2024-08-20 19:09:24 +01:00
Matthias cd1e949d2a Deployed d3b6256f8 to 2024.1 in en with MkDocs 1.5.3 and mike 2.1.3 2024-08-20 19:09:08 +01:00
Matthias 395060d4b2 Deployed 5c8c53cff to 2023.12 in en with MkDocs 1.5.3 and mike 2.1.3 2024-08-20 19:08:37 +01:00
Matthias a536beea1d Deployed 065418640 to 2023.11 in en with MkDocs 1.5.3 and mike 2.1.3 2024-08-20 19:08:16 +01:00
Matthias e6d68397ff Deployed f142abfb7 to 2023.10 in en with MkDocs 1.5.3 and mike 2.1.3 2024-08-20 19:08:01 +01:00
Matthias d8a31f1010 Deployed e73f215a6 to 2023.9 in en with MkDocs 1.5.3 and mike 2.1.3 2024-08-20 19:07:44 +01:00
Matthias 31eff47e3f Deployed dbf53ce95 to 2023.8 in en with MkDocs 1.5.2 and mike 2.1.3 2024-08-20 19:07:13 +01:00
Matthias 8ccbe38abc Deployed d104fb13a to 2023.7 in en with MkDocs 1.4.3 and mike 2.1.3 2024-08-20 19:06:55 +01:00
Matthias 7b4e529ac9 Deployed eea95f79a to 2023.6 in en with MkDocs 1.4.3 and mike 2.1.3 2024-08-20 19:06:41 +01:00
Matthias c9ed8b7c26 Deployed 61f1701e5 to 2023.5.1 in en with MkDocs 1.4.3 and mike 2.1.3 2024-08-20 19:06:25 +01:00
Matthias 9393bb408a Deployed 43f153738 to 2023.5 in en with MkDocs 1.4.3 and mike 2.1.3 2024-08-20 19:06:01 +01:00
Matthias 96bc550eb9 Deployed 8364fc1bd to 2023.4 in en with MkDocs 1.4.2 and mike 2.1.3 2024-08-20 19:05:46 +01:00
Matthias dc75c3dd9e Deployed 038a111b4 to 2023.3 in en with MkDocs 1.4.2 and mike 2.1.3 2024-08-20 19:05:33 +01:00
Matthias fde553a060 Deployed a31045874 to 2023.2 in en with MkDocs 1.4.2 and mike 2.1.3 2024-08-20 19:05:19 +01:00
Matthias fc4be72c99 Deployed cd6602882 to 2023.1 in en with MkDocs 1.4.2 and mike 2.1.3 2024-08-20 19:05:04 +01:00
Matthias 6422e4561e Deployed 9a4661397 to 2022.12 in en with MkDocs 1.4.2 and mike 2.1.3 2024-08-20 19:04:42 +01:00
Matthias c6ede7e7ff Deployed 77826ebf7 to 2022.11 in en with MkDocs 1.4.2 and mike 2.1.3 2024-08-20 19:04:29 +01:00
Matthias fb808e4ed0 Deployed 9adce8d16 to 2022.10 in en with MkDocs 1.4.1 and mike 2.1.3 2024-08-20 19:04:17 +01:00
Matthias 7c2a169339 Deployed 851d1e9da to 2022.9.1 in en with MkDocs 1.3.1 and mike 2.1.3 2024-08-20 19:04:06 +01:00
Matthias 896645e239 Deployed 0680ca2fe to 2022.9 in en with MkDocs 1.3.1 and mike 2.1.3 2024-08-20 19:03:54 +01:00
Matthias 0a6c1082c9 Deployed 958a4565d to 2022.8 in en with MkDocs 1.3.1 and mike 2.1.3 2024-08-20 19:03:43 +01:00
Matthias e76d39cf0e Deployed 046ae1841 to 2022.7 in en with MkDocs 1.3.1 and mike 2.1.3 2024-08-20 19:03:29 +01:00
Matthias 029a8d88a8 Deployed 2db5cc177 to 2022.6 in en with MkDocs 1.3.0 and mike 2.1.3 2024-08-20 19:03:14 +01:00
Matthias 4f451d5250 Deployed c57db0a33 to 2022.5.1 in en with MkDocs 1.3.0 and mike 2.1.3 2024-08-20 19:03:02 +01:00
Matthias 445a0d3fbe Deployed eed0d6700 to 2022.5 in en with MkDocs 1.3.0 and mike 2.1.3 2024-08-20 19:02:52 +01:00
Matthias fb7bd18fba Deployed 851c5dad3 to 2022.4.2 in en with MkDocs 1.3.0 and mike 2.1.3 2024-08-20 19:02:42 +01:00
Matthias 2f696a3f94 Deployed e7f525207 to 2022.4.1 in en with MkDocs 1.3.0 and mike 2.1.3 2024-08-20 19:02:31 +01:00
Matthias 17a667b27e Deployed 2e397a88e to 2022.3 in en with MkDocs 1.2.3 and mike 2.1.3 2024-08-20 19:02:21 +01:00
Matthias 8972612687 Deployed 4d8d30ea3 to 2022.2.2 in en with MkDocs 1.2.3 and mike 2.1.3 2024-08-20 19:02:08 +01:00
Matthias 5ee1afeecd Deployed a56854819 to 2022.2.1 in en with MkDocs 1.2.3 and mike 2.1.3 2024-08-20 19:01:51 +01:00
Matthias 114e0ac397 Deployed 8f7b857ae to 2022.2 in en with MkDocs 1.2.3 and mike 2.1.3 2024-08-20 19:01:39 +01:00
Matthias 51c41f2e59 Deployed d6482066e to 2022.1 in en with MkDocs 1.2.3 and mike 2.1.3 2024-08-20 19:01:28 +01:00
Matthias fe430836eb Deployed b53060071 to 2021.12 in en with MkDocs 1.2.3 and mike 2.1.3 2024-08-20 19:01:17 +01:00
Matthias 3d04b0a7e0 Deployed 4179a1a79 to 2021.11 in en with MkDocs 1.2.3 and mike 2.1.3 2024-08-20 19:01:06 +01:00
Matthias 2c28c8126b Deployed dadf015c2 to 2021.10 in en with MkDocs 1.2.3 and mike 2.1.3 2024-08-20 19:00:55 +01:00
Matthias dea91f1a09 Deployed a0ee49095 to 2021.9 in en with MkDocs 1.2.2 and mike 2.1.3 2024-08-20 19:00:34 +01:00
Matthias 8f0109b9ea Deployed b4d869e8c to 2021.8 in en with MkDocs 1.2.2 and mike 2.1.3 2024-08-20 19:00:24 +01:00
Matthias 81e9a091ac Deployed a599645b0 to 2021.7 in en with MkDocs 1.2.2 and mike 2.1.3 2024-08-20 19:00:14 +01:00
Matthias a1335b1552 Deployed f9ef30bc0 to 2021.6 in en with MkDocs 1.2.1 and mike 2.1.3 2024-08-20 19:00:03 +01:00
Matthias 6a452db001 Deployed 85c2ca0d0 to 2021.5 in en with MkDocs 1.3.1 and mike 2.1.3 2024-08-20 18:59:52 +01:00
Matthias b1eee11e89 Deployed 27a9b2cc9 to 2021.4 in en with MkDocs 1.3.1 and mike 2.1.3 2024-08-20 18:59:42 +01:00
Matthias 9b4a915dd0 Deployed 2cf36ca54 to 2021.3 in en with MkDocs 1.3.1 and mike 2.1.3 2024-08-20 18:59:32 +01:00
Matthias dadc59fae9 Deployed 38b96f071 to 2021.2 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:57:03 +01:00
Matthias cddb2a1a9e Deployed 766c786d9 to 2021.1 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:57:00 +01:00
Matthias 31c41d2021 Deployed f97e81042 to 2020.12 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:57 +01:00
Matthias 6c53452583 Deployed ab7807cee to 2020.11 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:54 +01:00
Matthias 628613bd83 Deployed 4d4471480 to 2020.10 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:52 +01:00
Matthias 190c641918 Deployed 98a281160 to 2020.9.1 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:49 +01:00
Matthias 502477524e Deployed c14ff2bee to 2020.9 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:46 +01:00
Matthias 5fe3479388 Deployed cb3716608 to 2020.8 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:43 +01:00
Matthias b22e78f31f Deployed 767332405 to 2020.7 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:41 +01:00
Matthias 6673d7cc4f Deployed d0d634260 to 2020.6 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:38 +01:00
Matthias c6a13690c7 Deployed bf53d037b to 2020.5 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:35 +01:00
Matthias 01a53b486d Deployed 2a9653cd4 to 2020.4 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:32 +01:00
Matthias 6dd851bb24 Deployed 9abfdaaaa to 2020.3 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:30 +01:00
Matthias 7429b4e993 Deployed 54c07e5e6 to 2020.02 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:27 +01:00
Matthias 7cc91dae72 Deployed 8371003c0 to 2020.01 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:25 +01:00
Matthias 6b990a5f39 Deployed 7c53dcb0a to 2019.11 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:22 +01:00
Matthias b87e2f1f36 Deployed 159384720 to 2019.10 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:20 +01:00
Matthias 12c4e4c92c Deployed 6bbc0eefe to 2019.9 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:18 +01:00
Matthias b96c5dbb9e Deployed ab3e3797a to 2019.8-1 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:16 +01:00
Matthias 8773a674e8 Deployed ab3e3797a to 2019.8 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:14 +01:00
Matthias 254c54a315 Deployed 0d9d23a88 to 2019.7 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:12 +01:00
Matthias 22c0d2896e Deployed 21f6493b0 to 2019.6 in en with MkDocs 1.6.0 and mike 2.1.2 2024-08-20 18:56:10 +01:00
10777 changed files with 8916547 additions and 28706 deletions
-6
View File
@@ -1,6 +0,0 @@
[run]
omit =
scripts/*
freqtrade/tests/*
freqtrade/vendor/*
freqtrade/__main__.py
-15
View File
@@ -1,15 +0,0 @@
.git
.gitignore
Dockerfile
.dockerignore
config.json*
*.sqlite
.coveragerc
.eggs
.github
.pylintrc
.travis.yml
CONTRIBUTING.md
MANIFEST.in
README.md
freqtrade.service
-32
View File
@@ -1,32 +0,0 @@
## Step 1: Have you search for this issue before posting it?
If you have discovered a bug in the bot, please [search our issue tracker](https://github.com/freqtrade/freqtrade/issues?q=is%3Aissue).
If it hasn't been reported, please create a new issue.
## Step 2: Describe your environment
* Python Version: _____ (`python -V`)
* CCXT version: _____ (`pip freeze | grep ccxt`)
* Branch: Master | Develop
* Last Commit ID: _____ (`git log --format="%H" -n 1`)
## Step 3: Describe the problem:
*Explain the problem you have encountered*
### Steps to reproduce:
1. _____
2. _____
3. _____
### Observed Results:
* What happened?
* What did you expect to happen?
### Relevant code exceptions or logs:
```
// paste your log here
```
-15
View File
@@ -1,15 +0,0 @@
Thank you for sending your pull request. But first, have you included
unit tests, and is your code PEP8 conformant? [More details](https://github.com/freqtrade/freqtrade/blob/develop/CONTRIBUTING.md)
## Summary
Explain in one sentence the goal of this PR
Solve the issue: #___
## Quick changelog
- <change log #1>
- <change log #2>
## What's new?
*Explain in details what this PR solve or improve. You can include visuals.*
-94
View File
@@ -1,94 +0,0 @@
# Freqtrade rules
freqtrade/tests/testdata/*.json
hyperopt_conf.py
config*.json
*.sqlite
.hyperopt
logfile.txt
hyperopt_trials.pickle
user_data/
freqtrade-plot.html
freqtrade-profit-plot.html
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# pyenv
.python-version
.env
.venv
.idea
.vscode
.pytest_cache/
.mypy_cache/
-10
View File
@@ -1,10 +0,0 @@
[MASTER]
extension-pkg-whitelist=numpy,talib,talib.abstract
[BASIC]
good-names=logger
ignore=vendor
[TYPECHECK]
ignored-modules=numpy,talib,talib.abstract
-33
View File
@@ -1,33 +0,0 @@
# autogenerated pyup.io config file
# see https://pyup.io/docs/configuration/ for all available options
# configure updates globally
# default: all
# allowed: all, insecure, False
update: all
# configure dependency pinning globally
# default: True
# allowed: True, False
pin: True
schedule: "every day"
search: False
# Specify requirement files by hand, default is empty
# default: empty
# allowed: list
requirements:
- requirements.txt
- requirements-dev.txt
- requirements-plot.txt
# configure the branch prefix the bot is using
# default: pyup-
branch_prefix: pyup/
# allow to close stale PRs
# default: True
close_prs: True
-8
View File
@@ -1,8 +0,0 @@
# .readthedocs.yml
build:
image: latest
python:
version: 3.6
setup_py_install: false
-59
View File
@@ -1,59 +0,0 @@
sudo: true
os:
- linux
dist: xenial
language: python
python:
- 3.6
services:
- docker
env:
global:
- IMAGE_NAME=freqtradeorg/freqtrade
addons:
apt:
packages:
- libelf-dev
- libdw-dev
- binutils-dev
install:
- cd build_helpers && ./install_ta-lib.sh; cd ..
- export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
- pip install --upgrade pytest-random-order
- pip install -r requirements-dev.txt
- pip install -e .
jobs:
include:
- stage: tests
script:
- pytest --cov=freqtrade --cov-config=.coveragerc freqtrade/tests/
name: pytest
- script:
- cp config.json.example config.json
- python freqtrade/main.py --datadir freqtrade/tests/testdata backtesting
name: backtest
- script:
- cp config.json.example config.json
- python freqtrade/main.py --datadir freqtrade/tests/testdata hyperopt -e 5
name: hyperopt
- script: flake8 freqtrade
name: flake8
- script: mypy freqtrade
name: mypy
- stage: docker
if: branch in (master, develop, feat/improve_travis) AND (type in (push, cron))
script:
- build_helpers/publish_docker.sh
name: "Build and test and push docker image"
after_success:
- coveralls
notifications:
slack:
secure: bKLXmOrx8e2aPZl7W8DA5BdPAXWGpI5UzST33oc1G/thegXcDVmHBTJrBs4sZak6bgAclQQrdZIsRd2eFYzHLalJEaw6pk7hoAw8SvLnZO0ZurWboz7qg2+aZZXfK4eKl/VUe4sM9M4e/qxjkK+yWG7Marg69c4v1ypF7ezUi1fPYILYw8u0paaiX0N5UX8XNlXy+PBlga2MxDjUY70MuajSZhPsY2pDUvYnMY1D/7XN3cFW0g+3O8zXjF0IF4q1Z/1ASQe+eYjKwPQacE+O8KDD+ZJYoTOFBAPllrtpO1jnOPFjNGf3JIbVMZw4bFjIL0mSQaiSUaUErbU3sFZ5Or79rF93XZ81V7uEZ55vD8KMfR2CB1cQJcZcj0v50BxLo0InkFqa0Y8Nra3sbpV4fV5Oe8pDmomPJrNFJnX6ULQhQ1gTCe0M5beKgVms5SITEpt4/Y0CmLUr6iHDT0CUiyMIRWAXdIgbGh1jfaWOMksybeRevlgDsIsNBjXmYI1Sw2ZZR2Eo2u4R6zyfyjOMLwYJ3vgq9IrACv2w5nmf0+oguMWHf6iWi2hiOqhlAN1W74+3HsYQcqnuM3LGOmuCnPprV1oGBqkPXjIFGpy21gNx4vHfO1noLUyJnMnlu2L7SSuN1CdLsnjJ1hVjpJjPfqB4nn8g12x87TqM1bOm+3Q=
cache:
pip: True
directories:
- /usr/local/lib
+27
View File
@@ -0,0 +1,27 @@
<script>
// Check if the current path is versioned, if not, redirect to the default versioned path
const versions = ["stable"]
const defaultVersion = "stable"
const basePath = "en/"
const targetRedirectPath = "404" // path to redirect to, relative to basePath
// if path starts with version, redirect to versioned 404
let foundVersion = false
versions.forEach(version => {
const versionedPath = `${basePath}/${version}`;
if (window.location.pathname.startsWith(versionedPath)) {
// we need this foundVersion guard because the browser is fast and
// will keep the executing code below until the redirect happens
foundVersion = true;
window.location.href = `${versionedPath}/${targetRedirectPath}`
}
});
// if path doesn't start with any version, redirect to defaultVersion
// Replace it in href, so we keep hashes and query params
// Only replace first occurence of basePath
if (!foundVersion){
//window.location.href = window.location.href.replace(basePath, `${basePath}/${defaultVersion}`)
window.location.href = `https://${window.location.hostname}/${basePath}/${defaultVersion}`
}
</script>
+1
View File
@@ -0,0 +1 @@
www.freqtrade.io
-119
View File
@@ -1,119 +0,0 @@
# Contributing
## Contribute to freqtrade
Feel like our bot is missing a feature? We welcome your pull requests!
Issues labeled [good first issue](https://github.com/freqtrade/freqtrade/labels/good%20first%20issue) can be good first contributions, and will help get you familiar with the codebase.
Few pointers for contributions:
- Create your PR against the `develop` branch, not `master`.
- New features need to contain unit tests and must be PEP8 conformant (max-line-length = 100).
If you are unsure, discuss the feature on our [Slack](https://join.slack.com/t/highfrequencybot/shared_invite/enQtMjQ5NTM0OTYzMzY3LWMxYzE3M2MxNDdjMGM3ZTYwNzFjMGIwZGRjNTc3ZGU3MGE3NzdmZGMwNmU3NDM5ZTNmM2Y3NjRiNzk4NmM4OGE)
or in a [issue](https://github.com/freqtrade/freqtrade/issues) before a PR.
## Getting started
Best start by reading the [documentation](https://www.freqtrade.io/) to get a feel for what is possible with the bot, or head straight to the [Developer-documentation](https://www.freqtrade.io/en/latest/developer/) (WIP) which should help you getting started.
## Before sending the PR:
### 1. Run unit tests
All unit tests must pass. If a unit test is broken, change your code to
make it pass. It means you have introduced a regression.
#### Test the whole project
```bash
pytest freqtrade
```
#### Test only one file
```bash
pytest freqtrade/tests/test_<file_name>.py
```
#### Test only one method from one file
```bash
pytest freqtrade/tests/test_<file_name>.py::test_<method_name>
```
### 2. Test if your code is PEP8 compliant
#### Run Flake8
```bash
flake8 freqtrade
```
We receive a lot of code that fails the `flake8` checks.
To help with that, we encourage you to install the git pre-commit
hook that will warn you when you try to commit code that fails these checks.
Guide for installing them is [here](http://flake8.pycqa.org/en/latest/user/using-hooks.html).
### 3. Test if all type-hints are correct
#### Run mypy
``` bash
mypy freqtrade
```
## (Core)-Committer Guide
### Process: Pull Requests
How to prioritize pull requests, from most to least important:
1. Fixes for broken tests. Broken means broken on any supported platform or Python version.
1. Extra tests to cover corner cases.
1. Minor edits to docs.
1. Bug fixes.
1. Major edits to docs.
1. Features.
Ensure that each pull request meets all requirements in the Contributing document.
### Process: Issues
If an issue is a bug that needs an urgent fix, mark it for the next patch release.
Then either fix it or mark as please-help.
For other issues: encourage friendly discussion, moderate debate, offer your thoughts.
### Process: Your own code changes
All code changes, regardless of who does them, need to be reviewed and merged by someone else.
This rule applies to all the core committers.
Exceptions:
- Minor corrections and fixes to pull requests submitted by others.
- While making a formal release, the release manager can make necessary, appropriate changes.
- Small documentation changes that reinforce existing subject matter. Most commonly being, but not limited to spelling and grammar corrections.
### Responsibilities
- Ensure cross-platform compatibility for every change that's accepted. Windows, Mac & Linux.
- Ensure no malicious code is introduced into the core code.
- Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback.
- Keep feature versions as small as possible, preferably one new feature per version.
- Be welcoming to newcomers and encourage diverse new contributors from all backgrounds. See the Python Community Code of Conduct (https://www.python.org/psf/codeofconduct/).
### Becoming a Committer
Contributors may be given commit privileges. Preference will be given to those with:
1. Past contributions to FreqTrade and other related open-source projects. Contributions to FreqTrade include both code (both accepted and pending) and friendly participation in the issue tracker and Pull request reviews. Quantity and quality are considered.
1. A coding style that the other core committers find simple, minimal, and clean.
1. Access to resources for cross-platform development and testing.
1. Time to devote to the project regularly.
Beeing a Committer does not grant write permission on `develop` or `master` for security reasons (Users trust FreqTrade with their Exchange API keys).
After beeing Committer for some time, a Committer may be named Core Committer and given full repository access.
-26
View File
@@ -1,26 +0,0 @@
FROM python:3.7.2-slim-stretch
RUN apt-get update \
&& apt-get -y install curl build-essential \
&& apt-get clean \
&& pip install --upgrade pip
# Prepare environment
RUN mkdir /freqtrade
WORKDIR /freqtrade
# Install TA-lib
COPY build_helpers/* /tmp/
RUN cd /tmp && /tmp/install_ta-lib.sh && rm -r /tmp/*ta-lib*
ENV LD_LIBRARY_PATH /usr/local/lib
# Install dependencies
COPY requirements.txt /freqtrade/
RUN pip install numpy --no-cache-dir \
&& pip install -r requirements.txt --no-cache-dir
# Install and execute
COPY . /freqtrade/
RUN pip install -e . --no-cache-dir
ENTRYPOINT ["freqtrade"]
-9
View File
@@ -1,9 +0,0 @@
FROM freqtradeorg/freqtrade:develop
# Install dependencies
COPY requirements-dev.txt /freqtrade/
RUN pip install numpy --no-cache-dir \
&& pip install -r requirements-dev.txt --no-cache-dir
# Empty the ENTRYPOINT to allow all commands
ENTRYPOINT []
-6
View File
@@ -1,6 +0,0 @@
FROM freqtradeorg/freqtrade:develop
RUN apt-get update \
&& apt-get -y install git \
&& apt-get clean \
&& pip install git+https://github.com/berlinguyinca/technical
-674
View File
@@ -1,674 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{one line to give the program's name and a brief idea of what it does.}
Copyright (C) {year} {name of author}
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
{project} Copyright (C) {year} {fullname}
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
-5
View File
@@ -1,5 +0,0 @@
include LICENSE
include README.md
include config.json.example
recursive-include freqtrade *.py
include freqtrade/tests/testdata/*.json
-198
View File
@@ -1,198 +0,0 @@
# Freqtrade
[![Build Status](https://travis-ci.org/freqtrade/freqtrade.svg?branch=develop)](https://travis-ci.org/freqtrade/freqtrade)
[![Coverage Status](https://coveralls.io/repos/github/freqtrade/freqtrade/badge.svg?branch=develop&service=github)](https://coveralls.io/github/freqtrade/freqtrade?branch=develop)
[![Documentation](https://readthedocs.org/projects/freqtrade/badge/)](https://www.freqtrade.io)
[![Maintainability](https://api.codeclimate.com/v1/badges/5737e6d668200b7518ff/maintainability)](https://codeclimate.com/github/freqtrade/freqtrade/maintainability)
Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram. It contains backtesting, plotting and money management tools as well as strategy optimization by machine learning.
![freqtrade](https://raw.githubusercontent.com/freqtrade/freqtrade/develop/docs/assets/freqtrade-screenshot.png)
## Disclaimer
This software is for educational purposes only. Do not risk money which
you are afraid to lose. USE THE SOFTWARE AT YOUR OWN RISK. THE AUTHORS
AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR TRADING RESULTS.
Always start by running a trading bot in Dry-run and do not engage money
before you understand how it works and what profit/loss you should
expect.
We strongly recommend you to have coding and Python knowledge. Do not
hesitate to read the source code and understand the mechanism of this bot.
## Exchange marketplaces supported
- [X] [Bittrex](https://bittrex.com/)
- [X] [Binance](https://www.binance.com/) ([*Note for binance users](#a-note-on-binance))
- [ ] [113 others to tests](https://github.com/ccxt/ccxt/). _(We cannot guarantee they will work)_
## Documentation
We invite you to read the bot documentation to ensure you understand how the bot is working.
Please find the complete documentation on our [website](https://www.freqtrade.io).
## Features
- [x] **Based on Python 3.6+**: For botting on any operating system - Windows, macOS and Linux.
- [x] **Persistence**: Persistence is achieved through sqlite.
- [x] **Dry-run**: Run the bot without playing money.
- [x] **Backtesting**: Run a simulation of your buy/sell strategy.
- [x] **Strategy Optimization by machine learning**: Use machine learning to optimize your buy/sell strategy parameters with real exchange data.
- [x] **Edge position sizing** Calculate your win rate, risk reward ratio, the best stoploss and adjust your position size before taking a position for each specific market. [Learn more](https://www.freqtrade.io/en/latest/edge/).
- [x] **Whitelist crypto-currencies**: Select which crypto-currency you want to trade or use dynamic whitelists.
- [x] **Blacklist crypto-currencies**: Select which crypto-currency you want to avoid.
- [x] **Manageable via Telegram**: Manage the bot with Telegram.
- [x] **Display profit/loss in fiat**: Display your profit/loss in 33 fiat.
- [x] **Daily summary of profit/loss**: Provide a daily summary of your profit/loss.
- [x] **Performance status report**: Provide a performance status of your current trades.
## Quick start
Freqtrade provides a Linux/macOS script to install all dependencies and help you to configure the bot.
```bash
git clone git@github.com:freqtrade/freqtrade.git
cd freqtrade
git checkout develop
./setup.sh --install
```
For any other type of installation please refer to [Installation doc](https://www.freqtrade.io/en/latest/installation/).
## Basic Usage
### Bot commands
```
usage: main.py [-h] [-v] [--version] [-c PATH] [-d PATH] [-s NAME]
[--strategy-path PATH] [--customhyperopt NAME]
[--dynamic-whitelist [INT]] [--db-url PATH]
{backtesting,edge,hyperopt} ...
Free, open source crypto trading bot
positional arguments:
{backtesting,edge,hyperopt}
backtesting backtesting module
edge edge module
hyperopt hyperopt module
optional arguments:
-h, --help show this help message and exit
-v, --verbose verbose mode (-vv for more, -vvv to get all messages)
--version show program\'s version number and exit
-c PATH, --config PATH
specify configuration file (default: config.json)
-d PATH, --datadir PATH
path to backtest data
-s NAME, --strategy NAME
specify strategy class name (default: DefaultStrategy)
--strategy-path PATH specify additional strategy lookup path
--customhyperopt NAME
specify hyperopt class name (default:
DefaultHyperOpts)
--dynamic-whitelist [INT]
dynamically generate and update whitelist based on 24h
BaseVolume (default: 20) DEPRECATED.
--db-url PATH Override trades database URL, this is useful if
dry_run is enabled or in custom deployments (default:
None)
```
### Telegram RPC commands
Telegram is not mandatory. However, this is a great way to control your bot. More details on our [documentation](https://www.freqtrade.io/en/latest/telegram-usage/)
- `/start`: Starts the trader
- `/stop`: Stops the trader
- `/status [table]`: Lists all open trades
- `/count`: Displays number of open trades
- `/profit`: Lists cumulative profit from all finished trades
- `/forcesell <trade_id>|all`: Instantly sells the given trade (Ignoring `minimum_roi`).
- `/performance`: Show performance of each finished trade grouped by pair
- `/balance`: Show account balance per currency
- `/daily <n>`: Shows profit or loss per day, over the last n days
- `/help`: Show help message
- `/version`: Show version
## Development branches
The project is currently setup in two main branches:
- `develop` - This branch has often new features, but might also cause breaking changes.
- `master` - This branch contains the latest stable release. The bot 'should' be stable on this branch, and is generally well tested.
- `feat/*` - These are feature branches, which are being worked on heavily. Please don't use these unless you want to test a specific feature.
## A note on Binance
For Binance, please add `"BNB/<STAKE>"` to your blacklist to avoid issues.
Accounts having BNB accounts use this to pay for fees - if your first trade happens to be on `BNB`, further trades will consume this position and make the initial BNB order unsellable as the expected amount is not there anymore.
## Support
### Help / Slack
For any questions not covered by the documentation or for further
information about the bot, we encourage you to join our slack channel.
- [Click here to join Slack channel](https://join.slack.com/t/highfrequencybot/shared_invite/enQtMjQ5NTM0OTYzMzY3LWMxYzE3M2MxNDdjMGM3ZTYwNzFjMGIwZGRjNTc3ZGU3MGE3NzdmZGMwNmU3NDM5ZTNmM2Y3NjRiNzk4NmM4OGE).
### [Bugs / Issues](https://github.com/freqtrade/freqtrade/issues?q=is%3Aissue)
If you discover a bug in the bot, please
[search our issue tracker](https://github.com/freqtrade/freqtrade/issues?q=is%3Aissue)
first. If it hasn't been reported, please
[create a new issue](https://github.com/freqtrade/freqtrade/issues/new) and
ensure you follow the template guide so that our team can assist you as
quickly as possible.
### [Feature Requests](https://github.com/freqtrade/freqtrade/labels/enhancement)
Have you a great idea to improve the bot you want to share? Please,
first search if this feature was not [already discussed](https://github.com/freqtrade/freqtrade/labels/enhancement).
If it hasn't been requested, please
[create a new request](https://github.com/freqtrade/freqtrade/issues/new)
and ensure you follow the template guide so that it does not get lost
in the bug reports.
### [Pull Requests](https://github.com/freqtrade/freqtrade/pulls)
Feel like our bot is missing a feature? We welcome your pull requests!
Please read our
[Contributing document](https://github.com/freqtrade/freqtrade/blob/develop/CONTRIBUTING.md)
to understand the requirements before sending your pull-requests.
Coding is not a neccessity to contribute - maybe start with improving our documentation?
Issues labeled [good first issue](https://github.com/freqtrade/freqtrade/labels/good%20first%20issue) can be good first contributions, and will help get you familiar with the codebase.
**Note** before starting any major new feature work, *please open an issue describing what you are planning to do* or talk to us on [Slack](https://join.slack.com/t/highfrequencybot/shared_invite/enQtMjQ5NTM0OTYzMzY3LWMxYzE3M2MxNDdjMGM3ZTYwNzFjMGIwZGRjNTc3ZGU3MGE3NzdmZGMwNmU3NDM5ZTNmM2Y3NjRiNzk4NmM4OGE). This will ensure that interested parties can give valuable feedback on the feature, and let others know that you are working on it.
**Important:** Always create your PR against the `develop` branch, not `master`.
## Requirements
### Uptodate clock
The clock must be accurate, syncronized to a NTP server very frequently to avoid problems with communication to the exchanges.
### Min hardware required
To run this bot we recommend you a cloud instance with a minimum of:
- Minimal (advised) system requirements: 2GB RAM, 1GB disk space, 2vCPU
### Software requirements
- [Python 3.6.x](http://docs.python-guide.org/en/latest/starting/installation/)
- [pip](https://pip.pypa.io/en/stable/installing/)
- [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- [TA-Lib](https://mrjbq7.github.io/ta-lib/install.html)
- [virtualenv](https://virtualenv.pypa.io/en/stable/installation/) (Recommended)
- [Docker](https://www.docker.com/products/docker) (Recommended)
-7
View File
@@ -1,7 +0,0 @@
#!/usr/bin/env python3
import sys
from freqtrade.main import main, set_loggers
set_loggers()
main(sys.argv[1:])
-11
View File
@@ -1,11 +0,0 @@
if [ ! -f "/usr/local/lib/libta_lib.a" ]; then
tar zxvf ta-lib-0.4.0-src.tar.gz
cd ta-lib \
&& sed -i.bak "s|0.00000001|0.000000000000000001 |g" src/ta_func/ta_utility.h \
&& ./configure \
&& make \
&& which sudo && sudo make install || make install \
&& cd ..
else
echo "TA-lib already installed, skipping installation"
fi
-60
View File
@@ -1,60 +0,0 @@
#!/bin/sh
# - export TAG=`if [ "$TRAVIS_BRANCH" == "develop" ]; then echo "latest"; else echo $TRAVIS_BRANCH ; fi`
# Replace / with _ to create a valid tag
TAG=$(echo "${TRAVIS_BRANCH}" | sed -e "s/\//_/")
# Add commit and commit_message to docker container
echo "${TRAVIS_COMMIT} ${TRAVIS_COMMIT_MESSAGE}" > freqtrade_commit
if [ "${TRAVIS_EVENT_TYPE}" = "cron" ]; then
echo "event ${TRAVIS_EVENT_TYPE}: full rebuild - skipping cache"
docker build -t freqtrade:${TAG} .
else
echo "event ${TRAVIS_EVENT_TYPE}: building with cache"
# Pull last build to avoid rebuilding the whole image
docker pull ${IMAGE_NAME}:${TAG}
docker build --cache-from ${IMAGE_NAME}:${TAG} -t freqtrade:${TAG} .
fi
if [ $? -ne 0 ]; then
echo "failed building image"
return 1
fi
# Run backtest
docker run --rm -it -v $(pwd)/config.json.example:/freqtrade/config.json:ro freqtrade:${TAG} --datadir freqtrade/tests/testdata backtesting
if [ $? -ne 0 ]; then
echo "failed running backtest"
return 1
fi
# Tag image for upload
docker tag freqtrade:$TAG ${IMAGE_NAME}:$TAG
if [ $? -ne 0 ]; then
echo "failed tagging image"
return 1
fi
# Tag as latest for develop builds
if [ "${TRAVIS_BRANCH}" = "develop" ]; then
docker tag freqtrade:$TAG ${IMAGE_NAME}:latest
fi
# Login
echo "$DOCKER_PASS" | docker login -u $DOCKER_USER --password-stdin
if [ $? -ne 0 ]; then
echo "failed login"
return 1
fi
# Show all available images
docker images
docker push ${IMAGE_NAME}
if [ $? -ne 0 ]; then
echo "failed pushing repo"
return 1
fi
Binary file not shown.
-81
View File
@@ -1,81 +0,0 @@
{
"max_open_trades": 3,
"stake_currency": "BTC",
"stake_amount": 0.05,
"fiat_display_currency": "USD",
"ticker_interval" : "5m",
"dry_run": false,
"trailing_stop": false,
"unfilledtimeout": {
"buy": 10,
"sell": 30
},
"bid_strategy": {
"ask_last_balance": 0.0,
"use_order_book": false,
"order_book_top": 1,
"check_depth_of_market": {
"enabled": false,
"bids_to_ask_delta": 1
}
},
"ask_strategy":{
"use_order_book": false,
"order_book_min": 1,
"order_book_max": 9
},
"exchange": {
"name": "bittrex",
"key": "your_exchange_key",
"secret": "your_exchange_secret",
"ccxt_config": {"enableRateLimit": true},
"ccxt_async_config": {
"enableRateLimit": false
},
"pair_whitelist": [
"ETH/BTC",
"LTC/BTC",
"ETC/BTC",
"DASH/BTC",
"ZEC/BTC",
"XLM/BTC",
"NXT/BTC",
"POWR/BTC",
"ADA/BTC",
"XMR/BTC"
],
"pair_blacklist": [
"DOGE/BTC"
]
},
"experimental": {
"use_sell_signal": false,
"sell_profit_only": false,
"ignore_roi_if_buy_signal": false
},
"edge": {
"enabled": false,
"process_throttle_secs": 3600,
"calculate_since_number_of_days": 7,
"capital_available_percentage": 0.5,
"allowed_risk": 0.01,
"stoploss_range_min": -0.01,
"stoploss_range_max": -0.1,
"stoploss_range_step": -0.01,
"minimum_winrate": 0.60,
"minimum_expectancy": 0.20,
"min_trade_number": 10,
"max_trade_duration_minute": 1440,
"remove_pumps": false
},
"telegram": {
"enabled": true,
"token": "your_telegram_token",
"chat_id": "your_telegram_chat_id"
},
"initial_state": "running",
"forcebuy_enable": false,
"internals": {
"process_throttle_secs": 5
}
}
-83
View File
@@ -1,83 +0,0 @@
{
"max_open_trades": 3,
"stake_currency": "BTC",
"stake_amount": 0.05,
"fiat_display_currency": "USD",
"ticker_interval" : "5m",
"dry_run": true,
"trailing_stop": false,
"unfilledtimeout": {
"buy": 10,
"sell": 30
},
"bid_strategy": {
"ask_last_balance": 0.0,
"use_order_book": false,
"order_book_top": 1,
"check_depth_of_market": {
"enabled": false,
"bids_to_ask_delta": 1
}
},
"ask_strategy":{
"use_order_book": false,
"order_book_min": 1,
"order_book_max": 9
},
"exchange": {
"name": "binance",
"key": "your_exchange_key",
"secret": "your_exchange_secret",
"ccxt_config": {"enableRateLimit": true},
"ccxt_async_config": {
"enableRateLimit": false
},
"pair_whitelist": [
"AST/BTC",
"ETC/BTC",
"ETH/BTC",
"EOS/BTC",
"IOTA/BTC",
"LTC/BTC",
"MTH/BTC",
"NCASH/BTC",
"TNT/BTC",
"XMR/BTC",
"XLM/BTC",
"XRP/BTC"
],
"pair_blacklist": [
"BNB/BTC"
]
},
"experimental": {
"use_sell_signal": false,
"sell_profit_only": false,
"ignore_roi_if_buy_signal": false
},
"edge": {
"enabled": false,
"process_throttle_secs": 3600,
"calculate_since_number_of_days": 7,
"capital_available_percentage": 0.5,
"allowed_risk": 0.01,
"stoploss_range_min": -0.01,
"stoploss_range_max": -0.1,
"stoploss_range_step": -0.01,
"minimum_winrate": 0.60,
"minimum_expectancy": 0.20,
"min_trade_number": 10,
"max_trade_duration_minute": 1440,
"remove_pumps": false
},
"telegram": {
"enabled": false,
"token": "your_telegram_token",
"chat_id": "your_telegram_chat_id"
},
"initial_state": "running",
"forcebuy_enable": false,
"internals": {
"process_throttle_secs": 5
}
}
-114
View File
@@ -1,114 +0,0 @@
{
"max_open_trades": 3,
"stake_currency": "BTC",
"stake_amount": 0.05,
"fiat_display_currency": "USD",
"amount_reserve_percent" : 0.05,
"dry_run": false,
"ticker_interval": "5m",
"trailing_stop": false,
"trailing_stop_positive": 0.005,
"trailing_stop_positive_offset": 0.0051,
"minimal_roi": {
"40": 0.0,
"30": 0.01,
"20": 0.02,
"0": 0.04
},
"stoploss": -0.10,
"unfilledtimeout": {
"buy": 10,
"sell": 30
},
"bid_strategy": {
"ask_last_balance": 0.0,
"use_order_book": false,
"order_book_top": 1,
"check_depth_of_market": {
"enabled": false,
"bids_to_ask_delta": 1
}
},
"ask_strategy":{
"use_order_book": false,
"order_book_min": 1,
"order_book_max": 9
},
"order_types": {
"buy": "limit",
"sell": "limit",
"stoploss": "market",
"stoploss_on_exchange": "false",
"stoploss_on_exchange_interval": 60
},
"order_time_in_force": {
"buy": "gtc",
"sell": "gtc",
},
"pairlist": {
"method": "VolumePairList",
"config": {
"number_assets": 20,
"sort_key": "quoteVolume"
}
},
"exchange": {
"name": "bittrex",
"key": "your_exchange_key",
"secret": "your_exchange_secret",
"ccxt_config": {"enableRateLimit": true},
"ccxt_async_config": {
"enableRateLimit": false,
"aiohttp_trust_env": false
},
"pair_whitelist": [
"ETH/BTC",
"LTC/BTC",
"ETC/BTC",
"DASH/BTC",
"ZEC/BTC",
"XLM/BTC",
"NXT/BTC",
"POWR/BTC",
"ADA/BTC",
"XMR/BTC"
],
"pair_blacklist": [
"DOGE/BTC"
],
"outdated_offset": 5
},
"edge": {
"enabled": false,
"process_throttle_secs": 3600,
"calculate_since_number_of_days": 7,
"capital_available_percentage": 0.5,
"allowed_risk": 0.01,
"stoploss_range_min": -0.01,
"stoploss_range_max": -0.1,
"stoploss_range_step": -0.01,
"minimum_winrate": 0.60,
"minimum_expectancy": 0.20,
"min_trade_number": 10,
"max_trade_duration_minute": 1440,
"remove_pumps": false
},
"experimental": {
"use_sell_signal": false,
"sell_profit_only": false,
"ignore_roi_if_buy_signal": false
},
"telegram": {
"enabled": true,
"token": "your_telegram_token",
"chat_id": "your_telegram_chat_id"
},
"db_url": "sqlite:///tradesv3.sqlite",
"initial_state": "running",
"forcebuy_enable": false,
"internals": {
"process_throttle_secs": 5
},
"strategy": "DefaultStrategy",
"strategy_path": "/some/folder/"
}
-277
View File
@@ -1,277 +0,0 @@
# Backtesting
This page explains how to validate your strategy performance by using
Backtesting.
## Test your strategy with Backtesting
Now you have good Buy and Sell strategies, you want to test it against
real data. This is what we call
[backtesting](https://en.wikipedia.org/wiki/Backtesting).
Backtesting will use the crypto-currencies (pair) from your config file
and load static tickers located in
[/freqtrade/tests/testdata](https://github.com/freqtrade/freqtrade/tree/develop/freqtrade/tests/testdata).
If the 5 min and 1 min ticker for the crypto-currencies to test is not
already in the `testdata` folder, backtesting will download them
automatically. Testdata files will not be updated until you specify it.
The result of backtesting will confirm you if your bot has better odds of making a profit than a loss.
The backtesting is very easy with freqtrade.
### Run a backtesting against the currencies listed in your config file
#### With 5 min tickers (Per default)
```bash
python3 ./freqtrade/main.py backtesting
```
#### With 1 min tickers
```bash
python3 ./freqtrade/main.py backtesting --ticker-interval 1m
```
#### Update cached pairs with the latest data
```bash
python3 ./freqtrade/main.py backtesting --refresh-pairs-cached
```
#### With live data (do not alter your testdata files)
```bash
python3 ./freqtrade/main.py backtesting --live
```
#### Using a different on-disk ticker-data source
```bash
python3 ./freqtrade/main.py backtesting --datadir freqtrade/tests/testdata-20180101
```
#### With a (custom) strategy file
```bash
python3 ./freqtrade/main.py -s TestStrategy backtesting
```
Where `-s TestStrategy` refers to the class name within the strategy file `test_strategy.py` found in the `freqtrade/user_data/strategies` directory
#### Exporting trades to file
```bash
python3 ./freqtrade/main.py backtesting --export trades
```
The exported trades can be read using the following code for manual analysis, or can be used by the plotting script `plot_dataframe.py` in the scripts folder.
``` python
import json
from pathlib import Path
import pandas as pd
filename=Path('user_data/backtest_data/backtest-result.json')
with filename.open() as file:
data = json.load(file)
columns = ["pair", "profit", "opents", "closets", "index", "duration",
"open_rate", "close_rate", "open_at_end", "sell_reason"]
df = pd.DataFrame(data, columns=columns)
df['opents'] = pd.to_datetime(df['opents'],
unit='s',
utc=True,
infer_datetime_format=True
)
df['closets'] = pd.to_datetime(df['closets'],
unit='s',
utc=True,
infer_datetime_format=True
)
```
If you have some ideas for interesting / helpful backtest data analysis, feel free to submit a PR so the community can benefit from it.
#### Exporting trades to file specifying a custom filename
```bash
python3 ./freqtrade/main.py backtesting --export trades --export-filename=backtest_teststrategy.json
```
#### Running backtest with smaller testset
Use the `--timerange` argument to change how much of the testset
you want to use. The last N ticks/timeframes will be used.
Example:
```bash
python3 ./freqtrade/main.py backtesting --timerange=-200
```
#### Advanced use of timerange
Doing `--timerange=-200` will get the last 200 timeframes
from your inputdata. You can also specify specific dates,
or a range span indexed by start and stop.
The full timerange specification:
- Use last 123 tickframes of data: `--timerange=-123`
- Use first 123 tickframes of data: `--timerange=123-`
- Use tickframes from line 123 through 456: `--timerange=123-456`
- Use tickframes till 2018/01/31: `--timerange=-20180131`
- Use tickframes since 2018/01/31: `--timerange=20180131-`
- Use tickframes since 2018/01/31 till 2018/03/01 : `--timerange=20180131-20180301`
- Use tickframes between POSIX timestamps 1527595200 1527618600:
`--timerange=1527595200-1527618600`
#### Downloading new set of ticker data
To download new set of backtesting ticker data, you can use a download script.
If you are using Binance for example:
- create a folder `user_data/data/binance` and copy `pairs.json` in that folder.
- update the `pairs.json` to contain the currency pairs you are interested in.
```bash
mkdir -p user_data/data/binance
cp freqtrade/tests/testdata/pairs.json user_data/data/binance
```
Then run:
```bash
python scripts/download_backtest_data.py --exchange binance
```
This will download ticker data for all the currency pairs you defined in `pairs.json`.
- To use a different folder than the exchange specific default, use `--export user_data/data/some_directory`.
- To change the exchange used to download the tickers, use `--exchange`. Default is `bittrex`.
- To use `pairs.json` from some other folder, use `--pairs-file some_other_dir/pairs.json`.
- To download ticker data for only 10 days, use `--days 10`.
- Use `--timeframes` to specify which tickers to download. Default is `--timeframes 1m 5m` which will download 1-minute and 5-minute tickers.
For help about backtesting usage, please refer to [Backtesting commands](#backtesting-commands).
## Understand the backtesting result
The most important in the backtesting is to understand the result.
A backtesting result will look like that:
```
========================================================= BACKTESTING REPORT ========================================================
| pair | buy count | avg profit % | cum profit % | tot profit BTC | tot profit % | avg duration | profit | loss |
|:---------|------------:|---------------:|---------------:|-----------------:|---------------:|:---------------|---------:|-------:|
| ADA/BTC | 35 | -0.11 | -3.88 | -0.00019428 | -1.94 | 4:35:00 | 14 | 21 |
| ARK/BTC | 11 | -0.41 | -4.52 | -0.00022647 | -2.26 | 2:03:00 | 3 | 8 |
| BTS/BTC | 32 | 0.31 | 9.78 | 0.00048938 | 4.89 | 5:05:00 | 18 | 14 |
| DASH/BTC | 13 | -0.08 | -1.07 | -0.00005343 | -0.53 | 4:39:00 | 6 | 7 |
| ENG/BTC | 18 | 1.36 | 24.54 | 0.00122807 | 12.27 | 2:50:00 | 8 | 10 |
| EOS/BTC | 36 | 0.08 | 3.06 | 0.00015304 | 1.53 | 3:34:00 | 16 | 20 |
| ETC/BTC | 26 | 0.37 | 9.51 | 0.00047576 | 4.75 | 6:14:00 | 11 | 15 |
| ETH/BTC | 33 | 0.30 | 9.96 | 0.00049856 | 4.98 | 7:31:00 | 16 | 17 |
| IOTA/BTC | 32 | 0.03 | 1.09 | 0.00005444 | 0.54 | 3:12:00 | 14 | 18 |
| LSK/BTC | 15 | 1.75 | 26.26 | 0.00131413 | 13.13 | 2:58:00 | 6 | 9 |
| LTC/BTC | 32 | -0.04 | -1.38 | -0.00006886 | -0.69 | 4:49:00 | 11 | 21 |
| NANO/BTC | 17 | 1.26 | 21.39 | 0.00107058 | 10.70 | 1:55:00 | 10 | 7 |
| NEO/BTC | 23 | 0.82 | 18.97 | 0.00094936 | 9.48 | 2:59:00 | 10 | 13 |
| REQ/BTC | 9 | 1.17 | 10.54 | 0.00052734 | 5.27 | 3:47:00 | 4 | 5 |
| XLM/BTC | 16 | 1.22 | 19.54 | 0.00097800 | 9.77 | 3:15:00 | 7 | 9 |
| XMR/BTC | 23 | -0.18 | -4.13 | -0.00020696 | -2.07 | 5:30:00 | 12 | 11 |
| XRP/BTC | 35 | 0.66 | 22.96 | 0.00114897 | 11.48 | 3:49:00 | 12 | 23 |
| ZEC/BTC | 22 | -0.46 | -10.18 | -0.00050971 | -5.09 | 2:22:00 | 7 | 15 |
| TOTAL | 429 | 0.36 | 152.41 | 0.00762792 | 76.20 | 4:12:00 | 186 | 243 |
========================================================= SELL REASON STATS =========================================================
| Sell Reason | Count |
|:-------------------|--------:|
| trailing_stop_loss | 205 |
| stop_loss | 166 |
| sell_signal | 56 |
| force_sell | 2 |
====================================================== LEFT OPEN TRADES REPORT ======================================================
| pair | buy count | avg profit % | cum profit % | tot profit BTC | tot profit % | avg duration | profit | loss |
|:---------|------------:|---------------:|---------------:|-----------------:|---------------:|:---------------|---------:|-------:|
| ADA/BTC | 1 | 0.89 | 0.89 | 0.00004434 | 0.44 | 6:00:00 | 1 | 0 |
| LTC/BTC | 1 | 0.68 | 0.68 | 0.00003421 | 0.34 | 2:00:00 | 1 | 0 |
| TOTAL | 2 | 0.78 | 1.57 | 0.00007855 | 0.78 | 4:00:00 | 2 | 0 |
```
The 1st table will contain all trades the bot made.
The 2nd table will contain a recap of sell reasons.
The 3rd table will contain all trades the bot had to `forcesell` at the end of the backtest period to present a full picture.
These trades are also included in the first table, but are extracted separately for clarity.
The last line will give you the overall performance of your strategy,
here:
```
| TOTAL | 429 | 0.36 | 152.41 | 0.00762792 | 76.20 | 4:12:00 | 186 | 243 |
```
We understand the bot has made `429` trades for an average duration of
`4:12:00`, with a performance of `76.20%` (profit), that means it has
earned a total of `0.00762792 BTC` starting with a capital of 0.01 BTC.
The column `avg profit %` shows the average profit for all trades made while the column `cum profit %` sums all the profits/losses.
The column `tot profit %` shows instead the total profit % in relation to allocated capital
(`max_open_trades * stake_amount`). In the above results we have `max_open_trades=2 stake_amount=0.005` in config
so `(76.20/100) * (0.005 * 2) =~ 0.00762792 BTC`.
As you will see your strategy performance will be influenced by your buy
strategy, your sell strategy, and also by the `minimal_roi` and
`stop_loss` you have set.
As for an example if your minimal_roi is only `"0": 0.01`. You cannot
expect the bot to make more profit than 1% (because it will sell every
time a trade will reach 1%).
```json
"minimal_roi": {
"0": 0.01
},
```
On the other hand, if you set a too high `minimal_roi` like `"0": 0.55`
(55%), there is a lot of chance that the bot will never reach this
profit. Hence, keep in mind that your performance is a mix of your
strategies, your configuration, and the crypto-currency you have set up.
## Backtesting multiple strategies
To backtest multiple strategies, a list of Strategies can be provided.
This is limited to 1 ticker-interval per run, however, data is only loaded once from disk so if you have multiple
strategies you'd like to compare, this should give a nice runtime boost.
All listed Strategies need to be in the same folder.
``` bash
freqtrade backtesting --timerange 20180401-20180410 --ticker-interval 5m --strategy-list Strategy001 Strategy002 --export trades
```
This will save the results to `user_data/backtest_data/backtest-result-<strategy>.json`, injecting the strategy-name into the target filename.
There will be an additional table comparing win/losses of the different strategies (identical to the "Total" row in the first table).
Detailed output for all strategies one after the other will be available, so make sure to scroll up.
```
=========================================================== Strategy Summary ===========================================================
| Strategy | buy count | avg profit % | cum profit % | tot profit BTC | tot profit % | avg duration | profit | loss |
|:------------|------------:|---------------:|---------------:|-----------------:|---------------:|:---------------|---------:|-------:|
| Strategy1 | 429 | 0.36 | 152.41 | 0.00762792 | 76.20 | 4:12:00 | 186 | 243 |
| Strategy2 | 1487 | -0.13 | -197.58 | -0.00988917 | -98.79 | 4:43:00 | 662 | 825 |
```
## Next step
Great, your strategy is profitable. What if the bot can give your the
optimal parameters to use for your strategy?
Your next step is to learn [how to find optimal parameters with Hyperopt](hyperopt.md)
-372
View File
@@ -1,372 +0,0 @@
# Optimization
This page explains where to customize your strategies, and add new
indicators.
## Install a custom strategy file
This is very simple. Copy paste your strategy file into the folder
`user_data/strategies`.
Let assume you have a class called `AwesomeStrategy` in the file `awesome-strategy.py`:
1. Move your file into `user_data/strategies` (you should have `user_data/strategies/awesome-strategy.py`
2. Start the bot with the param `--strategy AwesomeStrategy` (the parameter is the class name)
```bash
python3 ./freqtrade/main.py --strategy AwesomeStrategy
```
## Change your strategy
The bot includes a default strategy file. However, we recommend you to
use your own file to not have to lose your parameters every time the default
strategy file will be updated on Github. Put your custom strategy file
into the folder `user_data/strategies`.
Best copy the test-strategy and modify this copy to avoid having bot-updates override your changes.
`cp user_data/strategies/test_strategy.py user_data/strategies/awesome-strategy.py`
### Anatomy of a strategy
A strategy file contains all the information needed to build a good strategy:
- Indicators
- Buy strategy rules
- Sell strategy rules
- Minimal ROI recommended
- Stoploss strongly recommended
The bot also include a sample strategy called `TestStrategy` you can update: `user_data/strategies/test_strategy.py`.
You can test it with the parameter: `--strategy TestStrategy`
```bash
python3 ./freqtrade/main.py --strategy AwesomeStrategy
```
**For the following section we will use the [user_data/strategies/test_strategy.py](https://github.com/freqtrade/freqtrade/blob/develop/user_data/strategies/test_strategy.py)
file as reference.**
!!! Note: Strategies and Backtesting
To avoid problems and unexpected differences between Backtesting and dry/live modes, please be aware
that during backtesting the full time-interval is passed to the `populate_*()` methods at once.
It is therefore best to use vectorized operations (across the whole dataframe, not loops) and
avoid index referencing (`df.iloc[-1]`), but instead use `df.shift()` to get to the previous candle.
### Customize Indicators
Buy and sell strategies need indicators. You can add more indicators by extending the list contained in the method `populate_indicators()` from your strategy file.
You should only add the indicators used in either `populate_buy_trend()`, `populate_sell_trend()`, or to populate another indicator, otherwise performance may suffer.
It's important to always return the dataframe without removing/modifying the columns `"open", "high", "low", "close", "volume"`, otherwise these fields would contain something unexpected.
Sample:
```python
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
"""
Adds several different TA indicators to the given DataFrame
Performance Note: For the best performance be frugal on the number of indicators
you are using. Let uncomment only the indicator you are using in your strategies
or your hyperopt configuration, otherwise you will waste your memory and CPU usage.
:param dataframe: Raw data from the exchange and parsed by parse_ticker_dataframe()
:param metadata: Additional information, like the currently traded pair
:return: a Dataframe with all mandatory indicators for the strategies
"""
dataframe['sar'] = ta.SAR(dataframe)
dataframe['adx'] = ta.ADX(dataframe)
stoch = ta.STOCHF(dataframe)
dataframe['fastd'] = stoch['fastd']
dataframe['fastk'] = stoch['fastk']
dataframe['blower'] = ta.BBANDS(dataframe, nbdevup=2, nbdevdn=2)['lowerband']
dataframe['sma'] = ta.SMA(dataframe, timeperiod=40)
dataframe['tema'] = ta.TEMA(dataframe, timeperiod=9)
dataframe['mfi'] = ta.MFI(dataframe)
dataframe['rsi'] = ta.RSI(dataframe)
dataframe['ema5'] = ta.EMA(dataframe, timeperiod=5)
dataframe['ema10'] = ta.EMA(dataframe, timeperiod=10)
dataframe['ema50'] = ta.EMA(dataframe, timeperiod=50)
dataframe['ema100'] = ta.EMA(dataframe, timeperiod=100)
dataframe['ao'] = awesome_oscillator(dataframe)
macd = ta.MACD(dataframe)
dataframe['macd'] = macd['macd']
dataframe['macdsignal'] = macd['macdsignal']
dataframe['macdhist'] = macd['macdhist']
hilbert = ta.HT_SINE(dataframe)
dataframe['htsine'] = hilbert['sine']
dataframe['htleadsine'] = hilbert['leadsine']
dataframe['plus_dm'] = ta.PLUS_DM(dataframe)
dataframe['plus_di'] = ta.PLUS_DI(dataframe)
dataframe['minus_dm'] = ta.MINUS_DM(dataframe)
dataframe['minus_di'] = ta.MINUS_DI(dataframe)
return dataframe
```
!!! Note "Want more indicator examples?"
Look into the [user_data/strategies/test_strategy.py](https://github.com/freqtrade/freqtrade/blob/develop/user_data/strategies/test_strategy.py).<br/>
Then uncomment indicators you need.
### Buy signal rules
Edit the method `populate_buy_trend()` in your strategy file to update your buy strategy.
It's important to always return the dataframe without removing/modifying the columns `"open", "high", "low", "close", "volume"`, otherwise these fields would contain something unexpected.
This will method will also define a new column, `"buy"`, which needs to contain 1 for buys, and 0 for "no action".
Sample from `user_data/strategies/test_strategy.py`:
```python
def populate_buy_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
"""
Based on TA indicators, populates the buy signal for the given dataframe
:param dataframe: DataFrame populated with indicators
:param metadata: Additional information, like the currently traded pair
:return: DataFrame with buy column
"""
dataframe.loc[
(
(dataframe['adx'] > 30) &
(dataframe['tema'] <= dataframe['bb_middleband']) &
(dataframe['tema'] > dataframe['tema'].shift(1))
),
'buy'] = 1
return dataframe
```
### Sell signal rules
Edit the method `populate_sell_trend()` into your strategy file to update your sell strategy.
Please note that the sell-signal is only used if `use_sell_signal` is set to true in the configuration.
It's important to always return the dataframe without removing/modifying the columns `"open", "high", "low", "close", "volume"`, otherwise these fields would contain something unexpected.
This will method will also define a new column, `"sell"`, which needs to contain 1 for sells, and 0 for "no action".
Sample from `user_data/strategies/test_strategy.py`:
```python
def populate_sell_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
"""
Based on TA indicators, populates the sell signal for the given dataframe
:param dataframe: DataFrame populated with indicators
:param metadata: Additional information, like the currently traded pair
:return: DataFrame with buy column
"""
dataframe.loc[
(
(dataframe['adx'] > 70) &
(dataframe['tema'] > dataframe['bb_middleband']) &
(dataframe['tema'] < dataframe['tema'].shift(1))
),
'sell'] = 1
return dataframe
```
### Minimal ROI
This dict defines the minimal Return On Investment (ROI) a trade should reach before selling, independent from the sell signal.
It is of the following format, with the dict key (left side of the colon) being the minutes passed since the trade opened, and the value (right side of the colon) being the percentage.
```python
minimal_roi = {
"40": 0.0,
"30": 0.01,
"20": 0.02,
"0": 0.04
}
```
The above configuration would therefore mean:
- Sell whenever 4% profit was reached
- Sell when 2% profit was reached (in effect after 20 minutes)
- Sell when 1% profit was reached (in effect after 30 minutes)
- Sell when trade is non-loosing (in effect after 40 minutes)
The calculation does include fees.
To disable ROI completely, set it to an insanely high number:
```python
minimal_roi = {
"0": 100
}
```
While technically not completely disabled, this would sell once the trade reaches 10000% Profit.
### Stoploss
Setting a stoploss is highly recommended to protect your capital from strong moves against you.
Sample:
``` python
stoploss = -0.10
```
This would signify a stoploss of -10%.
If your exchange supports it, it's recommended to also set `"stoploss_on_exchange"` in the order dict, so your stoploss is on the exchange and cannot be missed for network-problems (or other problems).
For more information on order_types please look [here](https://github.com/freqtrade/freqtrade/blob/develop/docs/configuration.md#understand-order_types).
### Ticker interval
This is the set of candles the bot should download and use for the analysis.
Common values are `"1m"`, `"5m"`, `"15m"`, `"1h"`, however all values supported by your exchange should work.
Please note that the same buy/sell signals may work with one interval, but not the other.
This setting is accessible within the strategy by using `self.ticker_interval`.
### Metadata dict
The metadata-dict (available for `populate_buy_trend`, `populate_sell_trend`, `populate_indicators`) contains additional information.
Currently this is `pair`, which can be accessed using `metadata['pair']` - and will return a pair in the format `XRP/BTC`.
The Metadata-dict should not be modified and does not persist information across multiple calls.
Instead, have a look at the section [Storing information](#Storing-information)
### Storing information
Storing information can be accomplished by crating a new dictionary within the strategy class.
The name of the variable can be choosen at will, but should be prefixed with `cust_` to avoid naming collisions with predefined strategy variables.
```python
class Awesomestrategy(IStrategy):
# Create custom dictionary
cust_info = {}
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# Check if the entry already exists
if "crosstime" in self.cust_info[metadata["pair"]:
self.cust_info[metadata["pair"]["crosstime"] += 1
else:
self.cust_info[metadata["pair"]["crosstime"] = 1
```
!!! Warning:
The data is not persisted after a bot-restart (or config-reload). Also, the amount of data should be kept smallish (no DataFrames and such), otherwise the bot will start to consume a lot of memory and eventually run out of memory and crash.
!!! Note:
If the data is pair-specific, make sure to use pair as one of the keys in the dictionary.
### Additional data (DataProvider)
The strategy provides access to the `DataProvider`. This allows you to get additional data to use in your strategy.
!!!Note:
The DataProvier is currently not available during backtesting / hyperopt, but this is planned for the future.
All methods return `None` in case of failure (do not raise an exception).
Please always check if the `DataProvider` is available to avoid failures during backtesting.
#### Possible options for DataProvider
- `available_pairs` - Property with tuples listing cached pairs with their intervals. (pair, interval)
- `ohlcv(pair, ticker_interval)` - Currently cached ticker data for all pairs in the whitelist, returns DataFrame or empty DataFrame
- `historic_ohlcv(pair, ticker_interval)` - Data stored on disk
- `runmode` - Property containing the current runmode.
#### ohlcv / historic_ohlcv
``` python
if self.dp:
if dp.runmode == 'live':
if ('ETH/BTC', ticker_interval) in self.dp.available_pairs:
data_eth = self.dp.ohlcv(pair='ETH/BTC',
ticker_interval=ticker_interval)
else:
# Get historic ohlcv data (cached on disk).
history_eth = self.dp.historic_ohlcv(pair='ETH/BTC',
ticker_interval='1h')
```
!!! Warning: Warning about backtesting
Be carefull when using dataprovider in backtesting. `historic_ohlcv()` provides the full time-range in one go,
so please be aware of it and make sure to not "look into the future" to avoid surprises when running in dry/live mode).
#### Available Pairs
``` python
if self.dp:
for pair, ticker in self.dp.available_pairs:
print(f"available {pair}, {ticker}")
```
#### Get data for non-tradeable pairs
Data for additional, informative pairs (reference pairs) can be beneficial for some strategies.
Ohlcv data for these pairs will be downloaded as part of the regular whitelist refresh process and is available via `DataProvider` just as other pairs (see above).
These parts will **not** be traded unless they are also specified in the pair whitelist, or have been selected by Dynamic Whitelisting.
The pairs need to be specified as tuples in the format `("pair", "interval")`, with pair as the first and time interval as the second argument.
Sample:
``` python
def informative_pairs(self):
return [("ETH/USDT", "5m"),
("BTC/TUSD", "15m"),
]
```
!!! Warning:
As these pairs will be refreshed as part of the regular whitelist refresh, it's best to keep this list short.
All intervals and all pairs can be specified as long as they are available (and active) on the used exchange.
It is however better to use resampling to longer time-intervals when possible
to avoid hammering the exchange with too many requests and risk beeing blocked.
### Additional data - Wallets
The strategy provides access to the `Wallets` object. This contains the current balances on the exchange.
!!!NOTE:
Wallets is not available during backtesting / hyperopt.
Please always check if `Wallets` is available to avoid failures during backtesting.
``` python
if self.wallets:
free_eth = self.wallets.get_free('ETH')
used_eth = self.wallets.get_used('ETH')
total_eth = self.wallets.get_total('ETH')
```
#### Possible options for Wallets
- `get_free(asset)` - currently available balance to trade
- `get_used(asset)` - currently tied up balance (open orders)
- `get_total(asset)` - total available balance - sum of the 2 above
### Where is the default strategy?
The default buy strategy is located in the file
[freqtrade/default_strategy.py](https://github.com/freqtrade/freqtrade/blob/develop/freqtrade/strategy/default_strategy.py).
### Specify custom strategy location
If you want to use a strategy from a different folder you can pass `--strategy-path`
```bash
python3 ./freqtrade/main.py --strategy AwesomeStrategy --strategy-path /some/folder
```
### Further strategy ideas
To get additional Ideas for strategies, head over to our [strategy repository](https://github.com/freqtrade/freqtrade-strategies). Feel free to use them as they are - but results will depend on the current market situation, pairs used etc. - therefore please backtest the strategy for your exchange/desired pairs first, evaluate carefully, use at your own risk.
Feel free to use any of them as inspiration for your own strategies.
We're happy to accept Pull Requests containing new Strategies to that repo.
We also got a *strategy-sharing* channel in our [Slack community](https://join.slack.com/t/highfrequencybot/shared_invite/enQtMjQ5NTM0OTYzMzY3LWMxYzE3M2MxNDdjMGM3ZTYwNzFjMGIwZGRjNTc3ZGU3MGE3NzdmZGMwNmU3NDM5ZTNmM2Y3NjRiNzk4NmM4OGE) which is a great place to get and/or share ideas.
## Next step
Now you have a perfect strategy you probably want to backtest it.
Your next step is to learn [How to use the Backtesting](backtesting.md).
-253
View File
@@ -1,253 +0,0 @@
# Start the bot
This page explains the different parameters of the bot and how to run it.
## Bot commands
```
usage: main.py [-h] [-v] [--version] [-c PATH] [-d PATH] [-s NAME]
[--strategy-path PATH] [--customhyperopt NAME]
[--dynamic-whitelist [INT]] [--db-url PATH]
{backtesting,edge,hyperopt} ...
Free, open source crypto trading bot
positional arguments:
{backtesting,edge,hyperopt}
backtesting backtesting module
edge edge module
hyperopt hyperopt module
optional arguments:
-h, --help show this help message and exit
-v, --verbose verbose mode (-vv for more, -vvv to get all messages)
--version show program\'s version number and exit
-c PATH, --config PATH
specify configuration file (default: config.json)
-d PATH, --datadir PATH
path to backtest data
-s NAME, --strategy NAME
specify strategy class name (default: DefaultStrategy)
--strategy-path PATH specify additional strategy lookup path
--customhyperopt NAME
specify hyperopt class name (default:
DefaultHyperOpts)
--dynamic-whitelist [INT]
dynamically generate and update whitelist based on 24h
BaseVolume (default: 20) DEPRECATED.
--db-url PATH Override trades database URL, this is useful if
dry_run is enabled or in custom deployments (default:
None)
```
### How to use a different config file?
The bot allows you to select which config file you want to use. Per
default, the bot will load the file `./config.json`
```bash
python3 ./freqtrade/main.py -c path/far/far/away/config.json
```
### How to use **--strategy**?
This parameter will allow you to load your custom strategy class.
Per default without `--strategy` or `-s` the bot will load the
`DefaultStrategy` included with the bot (`freqtrade/strategy/default_strategy.py`).
The bot will search your strategy file within `user_data/strategies` and `freqtrade/strategy`.
To load a strategy, simply pass the class name (e.g.: `CustomStrategy`) in this parameter.
**Example:**
In `user_data/strategies` you have a file `my_awesome_strategy.py` which has
a strategy class called `AwesomeStrategy` to load it:
```bash
python3 ./freqtrade/main.py --strategy AwesomeStrategy
```
If the bot does not find your strategy file, it will display in an error
message the reason (File not found, or errors in your code).
Learn more about strategy file in [optimize your bot](https://github.com/freqtrade/freqtrade/blob/develop/docs/bot-optimization.md).
### How to use **--strategy-path**?
This parameter allows you to add an additional strategy lookup path, which gets
checked before the default locations (The passed path must be a folder!):
```bash
python3 ./freqtrade/main.py --strategy AwesomeStrategy --strategy-path /some/folder
```
#### How to install a strategy?
This is very simple. Copy paste your strategy file into the folder
`user_data/strategies` or use `--strategy-path`. And voila, the bot is ready to use it.
### How to use **--dynamic-whitelist**?
!!! danger "DEPRECATED"
Dynamic-whitelist is deprecated. Please move your configurations to the configuration as outlined [here](/configuration/#dynamic-pairlists)
Per default `--dynamic-whitelist` will retrieve the 20 currencies based
on BaseVolume. This value can be changed when you run the script.
**By Default**
Get the 20 currencies based on BaseVolume.
```bash
python3 ./freqtrade/main.py --dynamic-whitelist
```
**Customize the number of currencies to retrieve**
Get the 30 currencies based on BaseVolume.
```bash
python3 ./freqtrade/main.py --dynamic-whitelist 30
```
**Exception**
`--dynamic-whitelist` must be greater than 0. If you enter 0 or a
negative value (e.g -2), `--dynamic-whitelist` will use the default
value (20).
### How to use **--db-url**?
When you run the bot in Dry-run mode, per default no transactions are
stored in a database. If you want to store your bot actions in a DB
using `--db-url`. This can also be used to specify a custom database
in production mode. Example command:
```bash
python3 ./freqtrade/main.py -c config.json --db-url sqlite:///tradesv3.dry_run.sqlite
```
## Backtesting commands
Backtesting also uses the config specified via `-c/--config`.
```
usage: main.py backtesting [-h] [-i TICKER_INTERVAL] [--timerange TIMERANGE]
[--eps] [--dmmp] [-l] [-r]
[--strategy-list STRATEGY_LIST [STRATEGY_LIST ...]]
[--export EXPORT] [--export-filename PATH]
optional arguments:
-h, --help show this help message and exit
-i TICKER_INTERVAL, --ticker-interval TICKER_INTERVAL
specify ticker interval (1m, 5m, 30m, 1h, 1d)
--timerange TIMERANGE
specify what timerange of data to use.
--eps, --enable-position-stacking
Allow buying the same pair multiple times (position
stacking)
--dmmp, --disable-max-market-positions
Disable applying `max_open_trades` during backtest
(same as setting `max_open_trades` to a very high
number)
-l, --live using live data
-r, --refresh-pairs-cached
refresh the pairs files in tests/testdata with the
latest data from the exchange. Use it if you want to
run your backtesting with up-to-date data.
--strategy-list STRATEGY_LIST [STRATEGY_LIST ...]
Provide a commaseparated list of strategies to
backtest Please note that ticker-interval needs to be
set either in config or via command line. When using
this together with --export trades, the strategy-name
is injected into the filename (so backtest-data.json
becomes backtest-data-DefaultStrategy.json
--export EXPORT export backtest results, argument are: trades Example
--export=trades
--export-filename PATH
Save backtest results to this filename requires
--export to be set as well Example --export-
filename=user_data/backtest_data/backtest_today.json
(default: user_data/backtest_data/backtest-
result.json)
```
### How to use **--refresh-pairs-cached** parameter?
The first time your run Backtesting, it will take the pairs you have
set in your config file and download data from Bittrex.
If for any reason you want to update your data set, you use
`--refresh-pairs-cached` to force Backtesting to update the data it has.
!!! Note
Use it only if you want to update your data set. You will not be able to come back to the previous version.
To test your strategy with latest data, we recommend continuing using
the parameter `-l` or `--live`.
## Hyperopt commands
To optimize your strategy, you can use hyperopt parameter hyperoptimization
to find optimal parameter values for your stategy.
```
usage: freqtrade hyperopt [-h] [-i TICKER_INTERVAL] [--eps] [--dmmp]
[--timerange TIMERANGE] [-e INT]
[-s {all,buy,roi,stoploss} [{all,buy,roi,stoploss} ...]]
optional arguments:
-h, --help show this help message and exit
-i TICKER_INTERVAL, --ticker-interval TICKER_INTERVAL
specify ticker interval (1m, 5m, 30m, 1h, 1d)
--eps, --enable-position-stacking
Allow buying the same pair multiple times (position
stacking)
--dmmp, --disable-max-market-positions
Disable applying `max_open_trades` during backtest
(same as setting `max_open_trades` to a very high
number)
--timerange TIMERANGE
specify what timerange of data to use.
--hyperopt PATH specify hyperopt file (default:
freqtrade/optimize/default_hyperopt.py)
-e INT, --epochs INT specify number of epochs (default: 100)
-s {all,buy,roi,stoploss} [{all,buy,roi,stoploss} ...], --spaces {all,buy,roi,stoploss} [{all,buy,roi,stoploss} ...]
Specify which parameters to hyperopt. Space separate
list. Default: all
```
## Edge commands
To know your trade expectacny and winrate against historical data, you can use Edge.
```
usage: main.py edge [-h] [-i TICKER_INTERVAL] [--timerange TIMERANGE] [-r]
[--stoplosses STOPLOSS_RANGE]
optional arguments:
-h, --help show this help message and exit
-i TICKER_INTERVAL, --ticker-interval TICKER_INTERVAL
specify ticker interval (1m, 5m, 30m, 1h, 1d)
--timerange TIMERANGE
specify what timerange of data to use.
-r, --refresh-pairs-cached
refresh the pairs files in tests/testdata with the
latest data from the exchange. Use it if you want to
run your edge with up-to-date data.
--stoplosses STOPLOSS_RANGE
defines a range of stoploss against which edge will
assess the strategythe format is "min,max,step"
(without any space).example:
--stoplosses=-0.01,-0.1,-0.001
```
To understand edge and how to read the results, please read the [edge documentation](edge.md).
## A parameter missing in the configuration?
All parameters for `main.py`, `backtesting`, `hyperopt` are referenced
in [misc.py](https://github.com/freqtrade/freqtrade/blob/develop/freqtrade/misc.py#L84)
## Next step
The optimal strategy of the bot will change with time depending of the market trends. The next step is to
[optimize your bot](bot-optimization.md).
-373
View File
@@ -1,373 +0,0 @@
# Configure the bot
This page explains how to configure your `config.json` file.
## Setup config.json
We recommend to copy and use the `config.json.example` as a template
for your bot configuration.
The table below will list all configuration parameters.
Mandatory Parameters are marked as **Required**.
| Command | Default | Description |
|----------|---------|-------------|
| `max_open_trades` | 3 | **Required.** Number of trades open your bot will have. If -1 then it is ignored (i.e. potentially unlimited open trades)
| `stake_currency` | BTC | **Required.** Crypto-currency used for trading.
| `stake_amount` | 0.05 | **Required.** Amount of crypto-currency your bot will use for each trade. Per default, the bot will use (0.05 BTC x 3) = 0.15 BTC in total will be always engaged. Set it to `"unlimited"` to allow the bot to use all available balance.
| `amount_reserve_percent` | 0.05 | Reserve some amount in min pair stake amount. Default is 5%. The bot will reserve `amount_reserve_percent` + stop-loss value when calculating min pair stake amount in order to avoid possible trade refusals.
| `ticker_interval` | [1m, 5m, 30m, 1h, 1d] | The ticker interval to use (1min, 5 min, 30 min, 1 hour or 1 day). Default is 5 minutes. [Strategy Override](#parameters-in-strategy).
| `fiat_display_currency` | USD | **Required.** Fiat currency used to show your profits. More information below.
| `dry_run` | true | **Required.** Define if the bot must be in Dry-run or production mode.
| `process_only_new_candles` | false | If set to true indicators are processed only once a new candle arrives. If false each loop populates the indicators, this will mean the same candle is processed many times creating system load but can be useful of your strategy depends on tick data not only candle. [Strategy Override](#parameters-in-strategy).
| `minimal_roi` | See below | Set the threshold in percent the bot will use to sell a trade. More information below. [Strategy Override](#parameters-in-strategy).
| `stoploss` | -0.10 | Value of the stoploss in percent used by the bot. More information below. More details in the [stoploss documentation](stoploss.md). [Strategy Override](#parameters-in-strategy).
| `trailing_stop` | false | Enables trailing stop-loss (based on `stoploss` in either configuration or strategy file). More details in the [stoploss documentation](stoploss.md). [Strategy Override](#parameters-in-strategy).
| `trailing_stop_positive` | 0 | Changes stop-loss once profit has been reached. More details in the [stoploss documentation](stoploss.md). [Strategy Override](#parameters-in-strategy).
| `trailing_stop_positive_offset` | 0 | Offset on when to apply `trailing_stop_positive`. Percentage value which should be positive. More details in the [stoploss documentation](stoploss.md). [Strategy Override](#parameters-in-strategy).
| `unfilledtimeout.buy` | 10 | **Required.** How long (in minutes) the bot will wait for an unfilled buy order to complete, after which the order will be cancelled.
| `unfilledtimeout.sell` | 10 | **Required.** How long (in minutes) the bot will wait for an unfilled sell order to complete, after which the order will be cancelled.
| `bid_strategy.ask_last_balance` | 0.0 | **Required.** Set the bidding price. More information [below](#understand-ask_last_balance).
| `bid_strategy.use_order_book` | false | Allows buying of pair using the rates in Order Book Bids.
| `bid_strategy.order_book_top` | 0 | Bot will use the top N rate in Order Book Bids. Ie. a value of 2 will allow the bot to pick the 2nd bid rate in Order Book Bids.
| `bid_strategy. check_depth_of_market.enabled` | false | Does not buy if the % difference of buy orders and sell orders is met in Order Book.
| `bid_strategy. check_depth_of_market.bids_to_ask_delta` | 0 | The % difference of buy orders and sell orders found in Order Book. A value lesser than 1 means sell orders is greater, while value greater than 1 means buy orders is higher.
| `ask_strategy.use_order_book` | false | Allows selling of open traded pair using the rates in Order Book Asks.
| `ask_strategy.order_book_min` | 0 | Bot will scan from the top min to max Order Book Asks searching for a profitable rate.
| `ask_strategy.order_book_max` | 0 | Bot will scan from the top min to max Order Book Asks searching for a profitable rate.
| `order_types` | None | Configure order-types depending on the action (`"buy"`, `"sell"`, `"stoploss"`, `"stoploss_on_exchange"`). [More information below](#understand-order_types). [Strategy Override](#parameters-in-strategy).
| `order_time_in_force` | None | Configure time in force for buy and sell orders. [More information below](#understand-order_time_in_force). [Strategy Override](#parameters-in-strategy).
| `exchange.name` | bittrex | **Required.** Name of the exchange class to use. [List below](#user-content-what-values-for-exchangename).
| `exchange.key` | key | API key to use for the exchange. Only required when you are in production mode.
| `exchange.secret` | secret | API secret to use for the exchange. Only required when you are in production mode.
| `exchange.pair_whitelist` | [] | List of currency to use by the bot. Can be overrided with `--dynamic-whitelist` param.
| `exchange.pair_blacklist` | [] | List of currency the bot must avoid. Useful when using `--dynamic-whitelist` param.
| `exchange.ccxt_rate_limit` | True | DEPRECATED!! Have CCXT handle Exchange rate limits. Depending on the exchange, having this to false can lead to temporary bans from the exchange.
| `exchange.ccxt_config` | None | Additional CCXT parameters passed to the regular ccxt instance. Parameters may differ from exchange to exchange and are documented in the [ccxt documentation](https://ccxt.readthedocs.io/en/latest/manual.html#instantiation)
| `exchange.ccxt_async_config` | None | Additional CCXT parameters passed to the async ccxt instance. Parameters may differ from exchange to exchange and are documented in the [ccxt documentation](https://ccxt.readthedocs.io/en/latest/manual.html#instantiation)
| `edge` | false | Please refer to [edge configuration document](edge.md) for detailed explanation.
| `experimental.use_sell_signal` | false | Use your sell strategy in addition of the `minimal_roi`. [Strategy Override](#parameters-in-strategy).
| `experimental.sell_profit_only` | false | Waits until you have made a positive profit before taking a sell decision. [Strategy Override](#parameters-in-strategy).
| `experimental.ignore_roi_if_buy_signal` | false | Does not sell if the buy-signal is still active. Takes preference over `minimal_roi` and `use_sell_signal`. [Strategy Override](#parameters-in-strategy).
| `pairlist.method` | StaticPairList | Use Static whitelist. [More information below](#dynamic-pairlists).
| `pairlist.config` | None | Additional configuration for dynamic pairlists. [More information below](#dynamic-pairlists).
| `telegram.enabled` | true | **Required.** Enable or not the usage of Telegram.
| `telegram.token` | token | Your Telegram bot token. Only required if `telegram.enabled` is `true`.
| `telegram.chat_id` | chat_id | Your personal Telegram account id. Only required if `telegram.enabled` is `true`.
| `webhook.enabled` | false | Enable usage of Webhook notifications
| `webhook.url` | false | URL for the webhook. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details.
| `webhook.webhookbuy` | false | Payload to send on buy. Only required if `webhook.enabled` is `true`. See the [webhook documentationV](webhook-config.md) for more details.
| `webhook.webhooksell` | false | Payload to send on sell. Only required if `webhook.enabled` is `true`. See the [webhook documentationV](webhook-config.md) for more details.
| `webhook.webhookstatus` | false | Payload to send on status calls. Only required if `webhook.enabled` is `true`. See the [webhook documentationV](webhook-config.md) for more details.
| `db_url` | `sqlite:///tradesv3.sqlite`| Declares database URL to use. NOTE: This defaults to `sqlite://` if `dry_run` is `True`.
| `initial_state` | running | Defines the initial application state. More information below.
| `forcebuy_enable` | false | Enables the RPC Commands to force a buy. More information below.
| `strategy` | DefaultStrategy | Defines Strategy class to use.
| `strategy_path` | null | Adds an additional strategy lookup path (must be a folder).
| `internals.process_throttle_secs` | 5 | **Required.** Set the process throttle. Value in second.
### Parameters in strategy
The following parameters can be set in either configuration or strategy.
Values in the configuration are always overwriting values set in the strategy.
* `minimal_roi`
* `ticker_interval`
* `stoploss`
* `trailing_stop`
* `trailing_stop_positive`
* `trailing_stop_positive_offset`
* `process_only_new_candles`
* `order_types`
* `order_time_in_force`
* `use_sell_signal` (experimental)
* `sell_profit_only` (experimental)
* `ignore_roi_if_buy_signal` (experimental)
### Understand stake_amount
`stake_amount` is an amount of crypto-currency your bot will use for each trade.
The minimal value is 0.0005. If there is not enough crypto-currency in
the account an exception is generated.
To allow the bot to trade all the available `stake_currency` in your account set
```json
"stake_amount" : "unlimited",
```
In this case a trade amount is calclulated as:
```python
currency_balanse / (max_open_trades - current_open_trades)
```
### Understand minimal_roi
`minimal_roi` is a JSON object where the key is a duration
in minutes and the value is the minimum ROI in percent.
See the example below:
```json
"minimal_roi": {
"40": 0.0, # Sell after 40 minutes if the profit is not negative
"30": 0.01, # Sell after 30 minutes if there is at least 1% profit
"20": 0.02, # Sell after 20 minutes if there is at least 2% profit
"0": 0.04 # Sell immediately if there is at least 4% profit
},
```
Most of the strategy files already include the optimal `minimal_roi`
value. This parameter is optional. If you use it, it will take over the
`minimal_roi` value from the strategy file.
### Understand stoploss
`stoploss` is loss in percentage that should trigger a sale.
For example value `-0.10` will cause immediate sell if the
profit dips below -10% for a given trade. This parameter is optional.
Most of the strategy files already include the optimal `stoploss`
value. This parameter is optional. If you use it, it will take over the
`stoploss` value from the strategy file.
### Understand trailing stoploss
Go to the [trailing stoploss Documentation](stoploss.md) for details on trailing stoploss.
### Understand initial_state
`initial_state` is an optional field that defines the initial application state.
Possible values are `running` or `stopped`. (default=`running`)
If the value is `stopped` the bot has to be started with `/start` first.
### Understand forcebuy_enable
`forcebuy_enable` enables the usage of forcebuy commands via Telegram.
This is disabled for security reasons by default, and will show a warning message on startup if enabled.
You send `/forcebuy ETH/BTC` to the bot, who buys the pair and holds it until a regular sell-signal appears (ROI, stoploss, /forcesell).
Can be dangerous with some strategies, so use with care
See [the telegram documentation](telegram-usage.md) for details on usage.
### Understand process_throttle_secs
`process_throttle_secs` is an optional field that defines in seconds how long the bot should wait
before asking the strategy if we should buy or a sell an asset. After each wait period, the strategy is asked again for
every opened trade wether or not we should sell, and for all the remaining pairs (either the dynamic list of pairs or
the static list of pairs) if we should buy.
### Understand ask_last_balance
`ask_last_balance` sets the bidding price. Value `0.0` will use `ask` price, `1.0` will
use the `last` price and values between those interpolate between ask and last
price. Using `ask` price will guarantee quick success in bid, but bot will also
end up paying more then would probably have been necessary.
### Understand order_types
`order_types` contains a dict mapping order-types to market-types as well as stoploss on or off exchange type and stoploss on exchange update interval in seconds. This allows to buy using limit orders, sell using limit-orders, and create stoploss orders using market. It also allows to set the stoploss "on exchange" which means stoploss order would be placed immediately once the buy order is fulfilled. In case stoploss on exchange and `trailing_stop` are both set, then the bot will use `stoploss_on_exchange_interval` to check it periodically and update it if necessary (e.x. in case of trailing stoploss).
This can be set in the configuration or in the strategy. Configuration overwrites strategy configurations.
If this is configured, all 4 values (`"buy"`, `"sell"`, `"stoploss"` and `"stoploss_on_exchange"`) need to be present, otherwise the bot warn about it and will fail to start.
The below is the default which is used if this is not configured in either Strategy or configuration.
```python
"order_types": {
"buy": "limit",
"sell": "limit",
"stoploss": "market",
"stoploss_on_exchange": False,
"stoploss_on_exchange_interval": 60
},
```
!!! Note
Not all exchanges support "market" orders.
The following message will be shown if your exchange does not support market orders: `"Exchange <yourexchange> does not support market orders."`
!!! Note
stoploss on exchange interval is not mandatory. Do not change it's value if you are unsure of what you are doing. For more information about how stoploss works please read [the stoploss documentation](stoploss.md).
### Understand order_time_in_force
`order_time_in_force` defines the policy by which the order is executed on the exchange. Three commonly used time in force are:<br/>
**GTC (Goog Till Canceled):**
This is most of the time the default time in force. It means the order will remain on exchange till it is canceled by user. It can be fully or partially fulfilled. If partially fulfilled, the remaining will stay on the exchange till cancelled.<br/>
**FOK (Full Or Kill):**
It means if the order is not executed immediately AND fully then it is canceled by the exchange.<br/>
**IOC (Immediate Or Canceled):**
It is the same as FOK (above) except it can be partially fulfilled. The remaining part is automatically cancelled by the exchange.
<br/>
`order_time_in_force` contains a dict buy and sell time in force policy. This can be set in the configuration or in the strategy. Configuration overwrites strategy configurations.<br/>
possible values are: `gtc` (default), `fok` or `ioc`.<br/>
``` python
"order_time_in_force": {
"buy": "gtc",
"sell": "gtc"
},
```
!!! Warning
This is an ongoing work. For now it is supported only for binance and only for buy orders. Please don't change the default value unless you know what you are doing.
### What values for exchange.name?
Freqtrade is based on [CCXT library](https://github.com/ccxt/ccxt) that supports 115 cryptocurrency
exchange markets and trading APIs. The complete up-to-date list can be found in the
[CCXT repo homepage](https://github.com/ccxt/ccxt/tree/master/python). However, the bot was tested
with only Bittrex and Binance.
The bot was tested with the following exchanges:
- [Bittrex](https://bittrex.com/): "bittrex"
- [Binance](https://www.binance.com/): "binance"
Feel free to test other exchanges and submit your PR to improve the bot.
### What values for fiat_display_currency?
`fiat_display_currency` set the base currency to use for the conversion from coin to fiat in Telegram.
The valid values are:<br/>
```json
"AUD", "BRL", "CAD", "CHF", "CLP", "CNY", "CZK", "DKK", "EUR", "GBP", "HKD", "HUF", "IDR", "ILS", "INR", "JPY", "KRW", "MXN", "MYR", "NOK", "NZD", "PHP", "PKR", "PLN", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "ZAR", "USD"
```
In addition to FIAT currencies, a range of cryto currencies are supported.
The valid values are:
```json
"BTC", "ETH", "XRP", "LTC", "BCH", "USDT"
```
## Switch to dry-run mode
We recommend starting the bot in dry-run mode to see how your bot will
behave and how is the performance of your strategy. In Dry-run mode the
bot does not engage your money. It only runs a live simulation without
creating trades.
1. Edit your `config.json` file
2. Switch dry-run to true and specify db_url for a persistent db
```json
"dry_run": true,
"db_url": "sqlite:///tradesv3.dryrun.sqlite",
```
3. Remove your Exchange API key (change them by fake api credentials)
```json
"exchange": {
"name": "bittrex",
"key": "key",
"secret": "secret",
...
}
```
Once you will be happy with your bot performance, you can switch it to
production mode.
### Dynamic Pairlists
Dynamic pairlists select pairs for you based on the logic configured.
The bot runs against all pairs (with that stake) on the exchange, and a number of assets (`number_assets`) is selected based on the selected criteria.
By default, a Static Pairlist is used (configured as `"pair_whitelist"` under the `"exchange"` section of this configuration).
**Available Pairlist methods:**
* `"StaticPairList"`
* uses configuration from `exchange.pair_whitelist` and `exchange.pair_blacklist`
* `"VolumePairList"`
* Formerly available as `--dynamic-whitelist [<number_assets>]`
* Selects `number_assets` top pairs based on `sort_key`, which can be one of `askVolume`, `bidVolume` and `quoteVolume`, defaults to `quoteVolume`.
```json
"pairlist": {
"method": "VolumePairList",
"config": {
"number_assets": 20,
"sort_key": "quoteVolume"
}
},
```
## Switch to production mode
In production mode, the bot will engage your money. Be careful a wrong
strategy can lose all your money. Be aware of what you are doing when
you run it in production mode.
### To switch your bot in production mode
**Edit your `config.json` file.**
**Switch dry-run to false and don't forget to adapt your database URL if set:**
```json
"dry_run": false,
```
**Insert your Exchange API key (change them by fake api keys):**
```json
"exchange": {
"name": "bittrex",
"key": "af8ddd35195e9dc500b9a6f799f6f5c93d89193b",
"secret": "08a9dc6db3d7b53e1acebd9275677f4b0a04f1a5",
...
}
```
!!! Note
If you have an exchange API key yet, [see our tutorial](/pre-requisite).
### Using proxy with FreqTrade
To use a proxy with freqtrade, add the kwarg `"aiohttp_trust_env"=true` to the `"ccxt_async_kwargs"` dict in the exchange section of the configuration.
An example for this can be found in `config_full.json.example`
``` json
"ccxt_async_config": {
"aiohttp_trust_env": true
}
```
Then, export your proxy settings using the variables `"HTTP_PROXY"` and `"HTTPS_PROXY"` set to the appropriate values
``` bash
export HTTP_PROXY="http://addr:port"
export HTTPS_PROXY="http://addr:port"
freqtrade
```
### Embedding Strategies
FreqTrade provides you with with an easy way to embed the strategy into your configuration file.
This is done by utilizing BASE64 encoding and providing this string at the strategy configuration field,
in your chosen config file.
#### Encoding a string as BASE64
This is a quick example, how to generate the BASE64 string in python
```python
from base64 import urlsafe_b64encode
with open(file, 'r') as f:
content = f.read()
content = urlsafe_b64encode(content.encode('utf-8'))
```
The variable 'content', will contain the strategy file in a BASE64 encoded form. Which can now be set in your configurations file as following
```json
"strategy": "NameOfStrategy:BASE64String"
```
Please ensure that 'NameOfStrategy' is identical to the strategy name!
## Next step
Now you have configured your config.json, the next step is to [start your bot](bot-usage.md).
-117
View File
@@ -1,117 +0,0 @@
# Development Help
This page is intended for developers of FreqTrade, people who want to contribute to the FreqTrade codebase or documentation, or people who want to understand the source code of the application they're running.
All contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas are welcome. We [track issues](https://github.com/freqtrade/freqtrade/issues) on [GitHub](https://github.com) and also have a dev channel in [slack](https://join.slack.com/t/highfrequencybot/shared_invite/enQtMjQ5NTM0OTYzMzY3LWMxYzE3M2MxNDdjMGM3ZTYwNzFjMGIwZGRjNTc3ZGU3MGE3NzdmZGMwNmU3NDM5ZTNmM2Y3NjRiNzk4NmM4OGE) where you can ask questions.
## Documentation
Documentation is available at [https://freqtrade.io](https://www.freqtrade.io/) and needs to be provided with every new feature PR.
Special fields for the documentation (like Note boxes, ...) can be found [here](https://squidfunk.github.io/mkdocs-material/extensions/admonition/).
## Developer setup
To configure a development environment, use best use the `setup.sh` script and answer "y" when asked "Do you want to install dependencies for dev [y/N]? ".
Alternatively (if your system is not supported by the setup.sh script), follow the manual installation process and run `pip3 install -r requirements-dev.txt`.
This will install all required tools for development, including `pytest`, `flake8`, `mypy`, and `coveralls`.
## Modules
### Dynamic Pairlist
You have a great idea for a new pair selection algorithm you would like to try out? Great.
Hopefully you also want to contribute this back upstream.
Whatever your motivations are - This should get you off the ground in trying to develop a new Pairlist provider.
First of all, have a look at the [VolumePairList](https://github.com/freqtrade/freqtrade/blob/develop/freqtrade/pairlist/VolumePairList.py) provider, and best copy this file with a name of your new Pairlist Provider.
This is a simple provider, which however serves as a good example on how to start developing.
Next, modify the classname of the provider (ideally align this with the Filename).
The base-class provides the an instance of the bot (`self._freqtrade`), as well as the configuration (`self._config`), and initiates both `_blacklist` and `_whitelist`.
```python
self._freqtrade = freqtrade
self._config = config
self._whitelist = self._config['exchange']['pair_whitelist']
self._blacklist = self._config['exchange'].get('pair_blacklist', [])
```
Now, let's step through the methods which require actions:
#### configuration
Configuration for PairListProvider is done in the bot configuration file in the element `"pairlist"`.
This Pairlist-object may contain a `"config"` dict with additional configurations for the configured pairlist.
By convention, `"number_assets"` is used to specify the maximum number of pairs to keep in the whitelist. Please follow this to ensure a consistent user experience.
Additional elements can be configured as needed. `VolumePairList` uses `"sort_key"` to specify the sorting value - however feel free to specify whatever is necessary for your great algorithm to be successfull and dynamic.
#### short_desc
Returns a description used for Telegram messages.
This should contain the name of the Provider, as well as a short description containing the number of assets. Please follow the format `"PairlistName - top/bottom X pairs"`.
#### refresh_pairlist
Override this method and run all calculations needed in this method.
This is called with each iteration of the bot - so consider implementing caching for compute/network heavy calculations.
Assign the resulting whiteslist to `self._whitelist` and `self._blacklist` respectively. These will then be used to run the bot in this iteration. Pairs with open trades will be added to the whitelist to have the sell-methods run correctly.
Please also run `self._validate_whitelist(pairs)` and to check and remove pairs with inactive markets. This function is available in the Parent class (`StaticPairList`) and should ideally not be overwritten.
##### sample
``` python
def refresh_pairlist(self) -> None:
# Generate dynamic whitelist
pairs = self._gen_pair_whitelist(self._config['stake_currency'], self._sort_key)
# Validate whitelist to only have active market pairs
self._whitelist = self._validate_whitelist(pairs)[:self._number_pairs]
```
#### _gen_pair_whitelist
This is a simple method used by `VolumePairList` - however serves as a good example.
It implements caching (`@cached(TTLCache(maxsize=1, ttl=1800))`) as well as a configuration option to allow different (but similar) strategies to work with the same PairListProvider.
## Creating a release
This part of the documentation is aimed at maintainers, and shows how to create a release.
### create release branch
``` bash
# make sure you're in develop branch
git checkout develop
# create new branch
git checkout -b new_release
```
* edit `freqtrade/__init__.py` and add the desired version (for example `0.18.0`)
* Commit this part
* push that branch to the remote and create a PR
### create changelog from git commits
``` bash
# Needs to be done before merging / pulling that branch.
git log --oneline --no-decorate --no-merges master..develop
```
### Create github release / tag
* Use the version-number specified as tag.
* Use "master" as reference (this step comes after the above PR is merged).
* use the above changelog as release comment (as codeblock)
### After-release
* update version in develop to next valid version and postfix that with `-dev` (`0.18.0 -> 0.18.1-dev`)
-212
View File
@@ -1,212 +0,0 @@
# Edge positioning
This page explains how to use Edge Positioning module in your bot in order to enter into a trade only if the trade has a reasonable win rate and risk reward ratio, and consequently adjust your position size and stoploss.
!!! Warning
Edge positioning is not compatible with dynamic whitelist. it overrides dynamic whitelist.
!!! Note
Edge won't consider anything else than buy/sell/stoploss signals. So trailing stoploss, ROI, and everything else will be ignored in its calculation.
## Introduction
Trading is all about probability. No one can claim that he has a strategy working all the time. You have to assume that sometimes you lose.<br/><br/>
But it doesn't mean there is no rule, it only means rules should work "most of the time". Let's play a game: we toss a coin, heads: I give you 10$, tails: You give me 10$. Is it an interesting game ? no, it is quite boring, isn't it?<br/><br/>
But let's say the probability that we have heads is 80%, and the probability that we have tails is 20%. Now it is becoming interesting ...
That means 10$ x 80% versus 10$ x 20%. 8$ versus 2$. That means over time you will win 8$ risking only 2$ on each toss of coin.<br/><br/>
Let's complicate it more: you win 80% of the time but only 2$, I win 20% of the time but 8$. The calculation is: 80% * 2$ versus 20% * 8$. It is becoming boring again because overtime you win $1.6$ (80% x 2$) and me $1.6 (20% * 8$) too.<br/><br/>
The question is: How do you calculate that? how do you know if you wanna play?
The answer comes to two factors:
- Win Rate
- Risk Reward Ratio
### Win Rate
Means over X trades what is the percentage of winning trades to total number of trades (note that we don't consider how much you gained but only If you won or not).
`W = (Number of winning trades) / (Total number of trades)`
### Risk Reward Ratio
Risk Reward Ratio is a formula used to measure the expected gains of a given investment against the risk of loss. It is basically what you potentially win divided by what you potentially lose:
`R = Profit / Loss`
Over time, on many trades, you can calculate your risk reward by dividing your average profit on winning trades by your average loss on losing trades:
`Average profit = (Sum of profits) / (Number of winning trades)`
`Average loss = (Sum of losses) / (Number of losing trades)`
`R = (Average profit) / (Average loss)`
### Expectancy
At this point we can combine W and R to create an expectancy ratio. This is a simple process of multiplying the risk reward ratio by the percentage of winning trades, and subtracting the percentage of losing trades, which is calculated as follows:
Expectancy Ratio = (Risk Reward Ratio x Win Rate) Loss Rate
So lets say your Win rate is 28% and your Risk Reward Ratio is 5:
`Expectancy = (5 * 0.28) - 0.72 = 0.68`
Superficially, this means that on average you expect this strategys trades to return .68 times the size of your losers. This is important for two reasons: First, it may seem obvious, but you know right away that you have a positive return. Second, you now have a number you can compare to other candidate systems to make decisions about which ones you employ.
It is important to remember that any system with an expectancy greater than 0 is profitable using past data. The key is finding one that will be profitable in the future.
You can also use this number to evaluate the effectiveness of modifications to this system.
**NOTICE:** It's important to keep in mind that Edge is testing your expectancy using historical data , there's no guarantee that you will have a similar edge in the future. It's still vital to do this testing in order to build confidence in your methodology, but be wary of "curve-fitting" your approach to the historical data as things are unlikely to play out the exact same way for future trades.
## How does it work?
If enabled in config, Edge will go through historical data with a range of stoplosses in order to find buy and sell/stoploss signals. It then calculates win rate and expectancy over X trades for each stoploss. Here is an example:
| Pair | Stoploss | Win Rate | Risk Reward Ratio | Expectancy |
|----------|:-------------:|-------------:|------------------:|-----------:|
| XZC/ETH | -0.03 | 0.52 |1.359670 | 0.228 |
| XZC/ETH | -0.01 | 0.50 |1.176384 | 0.088 |
| XZC/ETH | -0.02 | 0.51 |1.115941 | 0.079 |
The goal here is to find the best stoploss for the strategy in order to have the maximum expectancy. In the above example stoploss at 3% leads to the maximum expectancy according to historical data.
Edge then forces stoploss to your strategy dynamically.
### Position size
Edge dictates the stake amount for each trade to the bot according to the following factors:
- Allowed capital at risk
- Stoploss
Allowed capital at risk is calculated as follows:
**allowed capital at risk** = **capital_available_percentage** X **allowed risk per trade**
**Stoploss** is calculated as described above against historical data.
Your position size then will be:
**position size** = **allowed capital at risk** / **stoploss**
Example:<br/>
Let's say the stake currency is ETH and you have 10 ETH on the exchange, your **capital_available_percentage** is 50% and you would allow 1% of risk for each trade. thus your available capital for trading is **10 x 0.5 = 5 ETH** and allowed capital at risk would be **5 x 0.01 = 0.05 ETH**. <br/>
Let's assume Edge has calculated that for **XLM/ETH** market your stoploss should be at 2%. So your position size will be **0.05 / 0.02 = 2.5ETH**.<br/>
Bot takes a position of 2.5ETH on XLM/ETH (call it trade 1). Up next, you receive another buy signal while trade 1 is still open. This time on BTC/ETH market. Edge calculated stoploss for this market at 4%. So your position size would be 0.05 / 0.04 = 1.25ETH (call it trade 2).<br/>
Note that available capital for trading didnt change for trade 2 even if you had already trade 1. The available capital doesnt mean the free amount on your wallet.<br/>
Now you have two trades open. The Bot receives yet another buy signal for another market: **ADA/ETH**. This time the stoploss is calculated at 1%. So your position size is **0.05 / 0.01 = 5ETH**. But there are already 4ETH blocked in two previous trades. So the position size for this third trade would be 1ETH.<br/>
Available capital doesnt change before a position is sold. Lets assume that trade 1 receives a sell signal and it is sold with a profit of 1ETH. Your total capital on exchange would be 11 ETH and the available capital for trading becomes 5.5ETH. <br/>
So the Bot receives another buy signal for trade 4 with a stoploss at 2% then your position size would be **0.055 / 0.02 = 2.75**.
## Configurations
Edge has following configurations:
#### enabled
If true, then Edge will run periodically.<br/>
(default to false)
#### process_throttle_secs
How often should Edge run in seconds? <br/>
(default to 3600 so one hour)
#### calculate_since_number_of_days
Number of days of data against which Edge calculates Win Rate, Risk Reward and Expectancy
Note that it downloads historical data so increasing this number would lead to slowing down the bot.<br/>
(default to 7)
#### capital_available_percentage
This is the percentage of the total capital on exchange in stake currency. <br/>
As an example if you have 10 ETH available in your wallet on the exchange and this value is 0.5 (which is 50%), then the bot will use a maximum amount of 5 ETH for trading and considers it as available capital.<br/>
(default to 0.5)
#### allowed_risk
Percentage of allowed risk per trade.<br/>
(default to 0.01 [1%])
#### stoploss_range_min
Minimum stoploss.<br/>
(default to -0.01)
#### stoploss_range_max
Maximum stoploss.<br/>
(default to -0.10)
#### stoploss_range_step
As an example if this is set to -0.01 then Edge will test the strategy for [-0.01, -0,02, -0,03 ..., -0.09, -0.10] ranges.
Note than having a smaller step means having a bigger range which could lead to slow calculation. <br/>
if you set this parameter to -0.001, you then slow down the Edge calculation by a factor of 10. <br/>
(default to -0.01)
#### minimum_winrate
It filters pairs which don't have at least minimum_winrate.
This comes handy if you want to be conservative and don't comprise win rate in favor of risk reward ratio.<br/>
(default to 0.60)
#### minimum_expectancy
It filters paris which have an expectancy lower than this number .
Having an expectancy of 0.20 means if you put 10$ on a trade you expect a 12$ return.<br/>
(default to 0.20)
#### min_trade_number
When calculating W and R and E (expectancy) against historical data, you always want to have a minimum number of trades. The more this number is the more Edge is reliable. Having a win rate of 100% on a single trade doesn't mean anything at all. But having a win rate of 70% over past 100 trades means clearly something. <br/>
(default to 10, it is highly recommended not to decrease this number)
#### max_trade_duration_minute
Edge will filter out trades with long duration. If a trade is profitable after 1 month, it is hard to evaluate the strategy based on it. But if most of trades are profitable and they have maximum duration of 30 minutes, then it is clearly a good sign.<br/>
**NOTICE:** While configuring this value, you should take into consideration your ticker interval. as an example filtering out trades having duration less than one day for a strategy which has 4h interval does not make sense. default value is set assuming your strategy interval is relatively small (1m or 5m, etc).<br/>
(default to 1 day, 1440 = 60 * 24)
#### remove_pumps
Edge will remove sudden pumps in a given market while going through historical data. However, given that pumps happen very often in crypto markets, we recommend you keep this off.<br/>
(default to false)
## Running Edge independently
You can run Edge independently in order to see in details the result. Here is an example:
```bash
python3 ./freqtrade/main.py edge
```
An example of its output:
| pair | stoploss | win rate | risk reward ratio | required risk reward | expectancy | total number of trades | average duration (min) |
|:----------|-----------:|-----------:|--------------------:|-----------------------:|-------------:|-------------------------:|-------------------------:|
| AGI/BTC | -0.02 | 0.64 | 5.86 | 0.56 | 3.41 | 14 | 54 |
| NXS/BTC | -0.03 | 0.64 | 2.99 | 0.57 | 1.54 | 11 | 26 |
| LEND/BTC | -0.02 | 0.82 | 2.05 | 0.22 | 1.50 | 11 | 36 |
| VIA/BTC | -0.01 | 0.55 | 3.01 | 0.83 | 1.19 | 11 | 48 |
| MTH/BTC | -0.09 | 0.56 | 2.82 | 0.80 | 1.12 | 18 | 52 |
| ARDR/BTC | -0.04 | 0.42 | 3.14 | 1.40 | 0.73 | 12 | 42 |
| BCPT/BTC | -0.01 | 0.71 | 1.34 | 0.40 | 0.67 | 14 | 30 |
| WINGS/BTC | -0.02 | 0.56 | 1.97 | 0.80 | 0.65 | 27 | 42 |
| VIBE/BTC | -0.02 | 0.83 | 0.91 | 0.20 | 0.59 | 12 | 35 |
| MCO/BTC | -0.02 | 0.79 | 0.97 | 0.27 | 0.55 | 14 | 31 |
| GNT/BTC | -0.02 | 0.50 | 2.06 | 1.00 | 0.53 | 18 | 24 |
| HOT/BTC | -0.01 | 0.17 | 7.72 | 4.81 | 0.50 | 209 | 7 |
| SNM/BTC | -0.03 | 0.71 | 1.06 | 0.42 | 0.45 | 17 | 38 |
| APPC/BTC | -0.02 | 0.44 | 2.28 | 1.27 | 0.44 | 25 | 43 |
| NEBL/BTC | -0.03 | 0.63 | 1.29 | 0.58 | 0.44 | 19 | 59 |
### Update cached pairs with the latest data
```bash
python3 ./freqtrade/main.py edge --refresh-pairs-cached
```
### Precising stoploss range
```bash
python3 ./freqtrade/main.py edge --stoplosses=-0.01,-0.1,-0.001 #min,max,step
```
### Advanced use of timerange
```bash
python3 ./freqtrade/main.py edge --timerange=20181110-20181113
```
Doing --timerange=-200 will get the last 200 timeframes from your inputdata. You can also specify specific dates, or a range span indexed by start and stop.
The full timerange specification:
* Use last 123 tickframes of data: --timerange=-123
* Use first 123 tickframes of data: --timerange=123-
* Use tickframes from line 123 through 456: --timerange=123-456
* Use tickframes till 2018/01/31: --timerange=-20180131
* Use tickframes since 2018/01/31: --timerange=20180131-
* Use tickframes since 2018/01/31 till 2018/03/01 : --timerange=20180131-20180301
* Use tickframes between POSIX timestamps 1527595200 1527618600: --timerange=1527595200-1527618600
-70
View File
@@ -1,70 +0,0 @@
# freqtrade FAQ
#### I have waited 5 minutes, why hasn't the bot made any trades yet?!
Depending on the buy strategy, the amount of whitelisted coins, the
situation of the market etc, it can take up to hours to find good entry
position for a trade. Be patient!
#### I have made 12 trades already, why is my total profit negative?!
I understand your disappointment but unfortunately 12 trades is just
not enough to say anything. If you run backtesting, you can see that our
current algorithm does leave you on the plus side, but that is after
thousands of trades and even there, you will be left with losses on
specific coins that you have traded tens if not hundreds of times. We
of course constantly aim to improve the bot but it will _always_ be a
gamble, which should leave you with modest wins on monthly basis but
you can't say much from few trades.
#### Id like to change the stake amount. Can I just stop the bot with
/stop and then change the config.json and run it again?
Not quite. Trades are persisted to a database but the configuration is
currently only read when the bot is killed and restarted. `/stop` more
like pauses. You can stop your bot, adjust settings and start it again.
#### I want to improve the bot with a new strategy
That's great. We have a nice backtesting and hyperoptimizing setup. See
the tutorial [here|Testing-new-strategies-with-Hyperopt](bot-usage.md#hyperopt-commands).
#### Is there a setting to only SELL the coins being held and not
perform anymore BUYS?
You can use the `/forcesell all` command from Telegram.
### How many epoch do I need to get a good Hyperopt result?
Per default Hyperopts without `-e` or `--epochs` parameter will only
run 100 epochs, means 100 evals of your triggers, guards, .... Too few
to find a great result (unless if you are very lucky), so you probably
have to run it for 10.000 or more. But it will take an eternity to
compute.
We recommend you to run it at least 10.000 epochs:
```bash
python3 ./freqtrade/main.py hyperopt -e 10000
```
or if you want intermediate result to see
```bash
for i in {1..100}; do python3 ./freqtrade/main.py hyperopt -e 100; done
```
#### Why it is so long to run hyperopt?
Finding a great Hyperopt results takes time.
If you wonder why it takes a while to find great hyperopt results
This answer was written during the under the release 0.15.1, when we had
:
- 8 triggers
- 9 guards: let's say we evaluate even 10 values from each
- 1 stoploss calculation: let's say we want 10 values from that too to
be evaluated
The following calculation is still very rough and not very precise
but it will give the idea. With only these triggers and guards there is
already 8*10^9*10 evaluations. A roughly total of 80 billion evals.
Did you run 100 000 evals? Congrats, you've done roughly 1 / 100 000 th
of the search space.
-297
View File
@@ -1,297 +0,0 @@
# Hyperopt
This page explains how to tune your strategy by finding the optimal
parameters, a process called hyperparameter optimization. The bot uses several
algorithms included in the `scikit-optimize` package to accomplish this. The
search will burn all your CPU cores, make your laptop sound like a fighter jet
and still take a long time.
!!! Bug
Hyperopt will crash when used with only 1 CPU Core as found out in [Issue #1133](https://github.com/freqtrade/freqtrade/issues/1133)
## Prepare Hyperopting
Before we start digging into Hyperopt, we recommend you to take a look at
an example hyperopt file located into [user_data/hyperopts/](https://github.com/freqtrade/freqtrade/blob/develop/user_data/hyperopts/test_hyperopt.py)
Configuring hyperopt is similar to writing your own strategy, and many tasks will be similar and a lot of code can be copied across from the strategy.
### Checklist on all tasks / possibilities in hyperopt
Depending on the space you want to optimize, only some of the below are required.
* fill `populate_indicators` - probably a copy from your strategy
* fill `buy_strategy_generator` - for buy signal optimization
* fill `indicator_space` - for buy signal optimzation
* fill `sell_strategy_generator` - for sell signal optimization
* fill `sell_indicator_space` - for sell signal optimzation
* fill `roi_space` - for ROI optimization
* fill `generate_roi_table` - for ROI optimization (if you need more than 3 entries)
* fill `stoploss_space` - stoploss optimization
* Optional but recommended
* copy `populate_buy_trend` from your strategy - otherwise default-strategy will be used
* copy `populate_sell_trend` from your strategy - otherwise default-strategy will be used
### 1. Install a Custom Hyperopt File
Put your hyperopt file into the folder`user_data/hyperopts`.
Let assume you want a hyperopt file `awesome_hyperopt.py`:
Copy the file `user_data/hyperopts/sample_hyperopt.py` into `user_data/hyperopts/awesome_hyperopt.py`
### 2. Configure your Guards and Triggers
There are two places you need to change in your hyperopt file to add a new buy hyperopt for testing:
- Inside `indicator_space()` - the parameters hyperopt shall be optimizing.
- Inside `populate_buy_trend()` - applying the parameters.
There you have two different types of indicators: 1. `guards` and 2. `triggers`.
1. Guards are conditions like "never buy if ADX < 10", or never buy if current price is over EMA10.
2. Triggers are ones that actually trigger buy in specific moment, like "buy when EMA5 crosses over EMA10" or "buy when close price touches lower bollinger band".
Hyperoptimization will, for each eval round, pick one trigger and possibly
multiple guards. The constructed strategy will be something like
"*buy exactly when close price touches lower bollinger band, BUT only if
ADX > 10*".
If you have updated the buy strategy, ie. changed the contents of
`populate_buy_trend()` method you have to update the `guards` and
`triggers` hyperopts must use.
#### Sell optimization
Similar to the buy-signal above, sell-signals can also be optimized.
Place the corresponding settings into the following methods
* Inside `sell_indicator_space()` - the parameters hyperopt shall be optimizing.
* Inside `populate_sell_trend()` - applying the parameters.
The configuration and rules are the same than for buy signals.
To avoid naming collisions in the search-space, please prefix all sell-spaces with `sell-`.
## Solving a Mystery
Let's say you are curious: should you use MACD crossings or lower Bollinger
Bands to trigger your buys. And you also wonder should you use RSI or ADX to
help with those buy decisions. If you decide to use RSI or ADX, which values
should I use for them? So let's use hyperparameter optimization to solve this
mystery.
We will start by defining a search space:
```python
def indicator_space() -> List[Dimension]:
"""
Define your Hyperopt space for searching strategy parameters
"""
return [
Integer(20, 40, name='adx-value'),
Integer(20, 40, name='rsi-value'),
Categorical([True, False], name='adx-enabled'),
Categorical([True, False], name='rsi-enabled'),
Categorical(['bb_lower', 'macd_cross_signal'], name='trigger')
]
```
Above definition says: I have five parameters I want you to randomly combine
to find the best combination. Two of them are integer values (`adx-value`
and `rsi-value`) and I want you test in the range of values 20 to 40.
Then we have three category variables. First two are either `True` or `False`.
We use these to either enable or disable the ADX and RSI guards. The last
one we call `trigger` and use it to decide which buy trigger we want to use.
So let's write the buy strategy using these values:
``` python
def populate_buy_trend(dataframe: DataFrame) -> DataFrame:
conditions = []
# GUARDS AND TRENDS
if 'adx-enabled' in params and params['adx-enabled']:
conditions.append(dataframe['adx'] > params['adx-value'])
if 'rsi-enabled' in params and params['rsi-enabled']:
conditions.append(dataframe['rsi'] < params['rsi-value'])
# TRIGGERS
if 'trigger' in params:
if params['trigger'] == 'bb_lower':
conditions.append(dataframe['close'] < dataframe['bb_lowerband'])
if params['trigger'] == 'macd_cross_signal':
conditions.append(qtpylib.crossed_above(
dataframe['macd'], dataframe['macdsignal']
))
dataframe.loc[
reduce(lambda x, y: x & y, conditions),
'buy'] = 1
return dataframe
return populate_buy_trend
```
Hyperopting will now call this `populate_buy_trend` as many times you ask it (`epochs`)
with different value combinations. It will then use the given historical data and make
buys based on the buy signals generated with the above function and based on the results
it will end with telling you which paramter combination produced the best profits.
The search for best parameters starts with a few random combinations and then uses a
regressor algorithm (currently ExtraTreesRegressor) to quickly find a parameter combination
that minimizes the value of the objective function `calculate_loss` in `hyperopt.py`.
The above setup expects to find ADX, RSI and Bollinger Bands in the populated indicators.
When you want to test an indicator that isn't used by the bot currently, remember to
add it to the `populate_indicators()` method in `hyperopt.py`.
## Execute Hyperopt
Once you have updated your hyperopt configuration you can run it.
Because hyperopt tries a lot of combinations to find the best parameters it will take time you will have the result (more than 30 mins).
We strongly recommend to use `screen` or `tmux` to prevent any connection loss.
```bash
python3 ./freqtrade/main.py --hyperopt <hyperoptname> -c config.json hyperopt -e 5000 --spaces all
```
Use `<hyperoptname>` as the name of the custom hyperopt used.
The `-e` flag will set how many evaluations hyperopt will do. We recommend
running at least several thousand evaluations.
The `--spaces all` flag determines that all possible parameters should be optimized. Possibilities are listed below.
!!! Warning
When switching parameters or changing configuration options, the file `user_data/hyperopt_results.pickle` should be removed. It's used to be able to continue interrupted calculations, but does not detect changes to settings or the hyperopt file.
### Execute Hyperopt with Different Ticker-Data Source
If you would like to hyperopt parameters using an alternate ticker data that
you have on-disk, use the `--datadir PATH` option. Default hyperopt will
use data from directory `user_data/data`.
### Running Hyperopt with Smaller Testset
Use the `--timerange` argument to change how much of the testset
you want to use. The last N ticks/timeframes will be used.
Example:
```bash
python3 ./freqtrade/main.py hyperopt --timerange -200
```
### Running Hyperopt with Smaller Search Space
Use the `--spaces` argument to limit the search space used by hyperopt.
Letting Hyperopt optimize everything is a huuuuge search space. Often it
might make more sense to start by just searching for initial buy algorithm.
Or maybe you just want to optimize your stoploss or roi table for that awesome
new buy strategy you have.
Legal values are:
- `all`: optimize everything
- `buy`: just search for a new buy strategy
- `sell`: just search for a new sell strategy
- `roi`: just optimize the minimal profit table for your strategy
- `stoploss`: search for the best stoploss value
- space-separated list of any of the above values for example `--spaces roi stoploss`
## Understand the Hyperopt Result
Once Hyperopt is completed you can use the result to create a new strategy.
Given the following result from hyperopt:
```
Best result:
135 trades. Avg profit 0.57%. Total profit 0.03871918 BTC (0.7722Σ%). Avg duration 180.4 mins.
with values:
{ 'adx-value': 44,
'rsi-value': 29,
'adx-enabled': False,
'rsi-enabled': True,
'trigger': 'bb_lower'}
```
You should understand this result like:
- The buy trigger that worked best was `bb_lower`.
- You should not use ADX because `adx-enabled: False`)
- You should **consider** using the RSI indicator (`rsi-enabled: True` and the best value is `29.0` (`rsi-value: 29.0`)
You have to look inside your strategy file into `buy_strategy_generator()`
method, what those values match to.
So for example you had `rsi-value: 29.0` so we would look at `rsi`-block, that translates to the following code block:
```
(dataframe['rsi'] < 29.0)
```
Translating your whole hyperopt result as the new buy-signal
would then look like:
```python
def populate_buy_trend(self, dataframe: DataFrame) -> DataFrame:
dataframe.loc[
(
(dataframe['rsi'] < 29.0) & # rsi-value
dataframe['close'] < dataframe['bb_lowerband'] # trigger
),
'buy'] = 1
return dataframe
```
### Understand Hyperopt ROI results
If you are optimizing ROI, you're result will look as follows and include a ROI table.
```
Best result:
135 trades. Avg profit 0.57%. Total profit 0.03871918 BTC (0.7722Σ%). Avg duration 180.4 mins.
with values:
{ 'adx-value': 44,
'rsi-value': 29,
'adx-enabled': false,
'rsi-enabled': True,
'trigger': 'bb_lower',
'roi_t1': 40,
'roi_t2': 57,
'roi_t3': 21,
'roi_p1': 0.03634636907306948,
'roi_p2': 0.055237357937802885,
'roi_p3': 0.015163796015548354,
'stoploss': -0.37996664668703606
}
ROI table:
{ 0: 0.10674752302642071,
21: 0.09158372701087236,
78: 0.03634636907306948,
118: 0}
```
This would translate to the following ROI table:
``` python
minimal_roi = {
"118": 0,
"78": 0.0363463,
"21": 0.0915,
"0": 0.106
}
```
### Validate backtest result
Once the optimized strategy has been implemented into your strategy, you should backtest this strategy to make sure everything is working as expected.
To archive the same results (number of trades, ...) than during hyperopt, please use the command line flag `--disable-max-market-positions`.
This setting is the default for hyperopt for speed reasons. You can overwrite this in the configuration by setting `"position_stacking"=false` or by changing the relevant line in your hyperopt file [here](https://github.com/freqtrade/freqtrade/blob/develop/freqtrade/optimize/hyperopt.py#L283).
!!! Note:
Dry/live runs will **NOT** use position stacking - therefore it does make sense to also validate the strategy without this as it's closer to reality.
## Next Step
Now you have a perfect bot and want to control it from Telegram. Your
next step is to learn the [Telegram usage](telegram-usage.md).
-67
View File
@@ -1,67 +0,0 @@
# Freqtrade
[![Build Status](https://travis-ci.org/freqtrade/freqtrade.svg?branch=develop)](https://travis-ci.org/freqtrade/freqtrade)
[![Coverage Status](https://coveralls.io/repos/github/freqtrade/freqtrade/badge.svg?branch=develop&service=github)](https://coveralls.io/github/freqtrade/freqtrade?branch=develop)
[![Maintainability](https://api.codeclimate.com/v1/badges/5737e6d668200b7518ff/maintainability)](https://codeclimate.com/github/freqtrade/freqtrade/maintainability)
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/freqtrade/freqtrade" data-icon="octicon-star" data-size="large" aria-label="Star freqtrade/freqtrade on GitHub">Star</a>
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/freqtrade/freqtrade/fork" data-icon="octicon-repo-forked" data-size="large" aria-label="Fork freqtrade/freqtrade on GitHub">Fork</a>
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/freqtrade/freqtrade/archive/master.zip" data-icon="octicon-cloud-download" data-size="large" aria-label="Download freqtrade/freqtrade on GitHub">Download</a>
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/freqtrade" data-size="large" aria-label="Follow @freqtrade on GitHub">Follow @freqtrade</a>
## Introduction
Freqtrade is a cryptocurrency trading bot written in Python.
!!! Danger "DISCLAIMER"
This software is for educational purposes only. Do not risk money which you are afraid to lose. USE THE SOFTWARE AT YOUR OWN RISK. THE AUTHORS AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR TRADING RESULTS.
Always start by running a trading bot in Dry-run and do not engage money before you understand how it works and what profit/loss you should expect.
We strongly recommend you to have coding and Python knowledge. Do not hesitate to read the source code and understand the mechanism of this bot.
## Features
- Based on Python 3.6+: For botting on any operating system - Windows, macOS and Linux
- Persistence: Persistence is achieved through sqlite
- Dry-run: Run the bot without playing money.
- Backtesting: Run a simulation of your buy/sell strategy.
- Strategy Optimization by machine learning: Use machine learning to optimize your buy/sell strategy parameters with real exchange data.
- Edge position sizing Calculate your win rate, risk reward ratio, the best stoploss and adjust your position size before taking a position for each specific market. Learn more
- Whitelist crypto-currencies: Select which crypto-currency you want to trade or use dynamic whitelists.
- Blacklist crypto-currencies: Select which crypto-currency you want to avoid.
- Manageable via Telegram: Manage the bot with Telegram
- Display profit/loss in fiat: Display your profit/loss in 33 fiat.
- Daily summary of profit/loss: Provide a daily summary of your profit/loss.
- Performance status report: Provide a performance status of your current trades.
## Requirements
### Uptodate clock
The clock must be accurate, syncronized to a NTP server very frequently to avoid problems with communication to the exchanges.
### Hardware requirements
To run this bot we recommend you a cloud instance with a minimum of:
- 2GB RAM
- 1GB disk space
- 2vCPU
### Software requirements
- Python 3.6.x
- pip
- git
- TA-Lib
- virtualenv (Recommended)
- Docker (Recommended)
## Support
Help / Slack
For any questions not covered by the documentation or for further information about the bot, we encourage you to join our slack channel.
Click [here](https://join.slack.com/t/highfrequencybot/shared_invite/enQtMjQ5NTM0OTYzMzY3LWMxYzE3M2MxNDdjMGM3ZTYwNzFjMGIwZGRjNTc3ZGU3MGE3NzdmZGMwNmU3NDM5ZTNmM2Y3NjRiNzk4NmM4OGE) to join Slack channel.
## Ready to try?
Begin by reading our installation guide [here](installation).
-484
View File
@@ -1,484 +0,0 @@
# Installation
This page explains how to prepare your environment for running the bot.
## Prerequisite
Before running your bot in production you will need to setup few
external API. In production mode, the bot required valid Bittrex API
credentials and a Telegram bot (optional but recommended).
- [Setup your exchange account](#setup-your-exchange-account)
- [Backtesting commands](#setup-your-telegram-bot)
### Setup your exchange account
*To be completed, please feel free to complete this section.*
### Setup your Telegram bot
The only things you need is a working Telegram bot and its API token.
Below we explain how to create your Telegram Bot, and how to get your
Telegram user id.
### 1. Create your Telegram bot
**1.1. Start a chat with https://telegram.me/BotFather**
**1.2. Send the message `/newbot`. ** *BotFather response:*
```
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
```
**1.3. Choose the public name of your bot (e.x. `Freqtrade bot`)**
*BotFather response:*
```
Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
```
**1.4. Choose the name id of your bot (e.x "`My_own_freqtrade_bot`")**
**1.5. Father bot will return you the token (API key)**<br/>
Copy it and keep it you will use it for the config parameter `token`.
*BotFather response:*
```hl_lines="4"
Done! Congratulations on your new bot. You will find it at t.me/My_own_freqtrade_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.
Use this token to access the HTTP API:
521095879:AAEcEZEL7ADJ56FtG_qD0bQJSKETbXCBCi0
For a description of the Bot API, see this page: https://core.telegram.org/bots/api
```
**1.6. Don't forget to start the conversation with your bot, by clicking /START button**
### 2. Get your user id
**2.1. Talk to https://telegram.me/userinfobot**
**2.2. Get your "Id", you will use it for the config parameter
`chat_id`.**
<hr/>
## Quick start
Freqtrade provides a Linux/MacOS script to install all dependencies and help you to configure the bot.
```bash
git clone git@github.com:freqtrade/freqtrade.git
cd freqtrade
git checkout develop
./setup.sh --install
```
!!! Note
Windows installation is explained [here](#windows).
<hr/>
## Easy Installation - Linux Script
If you are on Debian, Ubuntu or MacOS a freqtrade provides a script to Install, Update, Configure, and Reset your bot.
```bash
$ ./setup.sh
usage:
-i,--install Install freqtrade from scratch
-u,--update Command git pull to update.
-r,--reset Hard reset your develop/master branch.
-c,--config Easy config generator (Will override your existing file).
```
** --install **
This script will install everything you need to run the bot:
* Mandatory software as: `Python3`, `ta-lib`, `wget`
* Setup your virtualenv
* Configure your `config.json` file
This script is a combination of `install script` `--reset`, `--config`
** --update **
Update parameter will pull the last version of your current branch and update your virtualenv.
** --reset **
Reset parameter will hard reset your branch (only if you are on `master` or `develop`) and recreate your virtualenv.
** --config **
Config parameter is a `config.json` configurator. This script will ask you questions to setup your bot and create your `config.json`.
------
## Automatic Installation - Docker
Start by downloading Docker for your platform:
* [Mac](https://www.docker.com/products/docker#/mac)
* [Windows](https://www.docker.com/products/docker#/windows)
* [Linux](https://www.docker.com/products/docker#/linux)
Once you have Docker installed, simply create the config file (e.g. `config.json`) and then create a Docker image for `freqtrade` using the Dockerfile in this repo.
### 1. Prepare the Bot
**1.1. Clone the git repository**
Linux/Mac/Windows with WSL
```bash
git clone https://github.com/freqtrade/freqtrade.git
```
Windows with docker
```bash
git clone --config core.autocrlf=input https://github.com/freqtrade/freqtrade.git
```
**1.2. (Optional) Checkout the develop branch**
```bash
git checkout develop
```
**1.3. Go into the new directory**
```bash
cd freqtrade
```
**1.4. Copy `config.json.example` to `config.json`**
```bash
cp -n config.json.example config.json
```
> To edit the config please refer to the [Bot Configuration](configuration.md) page.
**1.5. Create your database file *(optional - the bot will create it if it is missing)**
Production
```bash
touch tradesv3.sqlite
````
Dry-Run
```bash
touch tradesv3.dryrun.sqlite
```
### 2. Download or build the docker image
Either use the prebuilt image from docker hub - or build the image yourself if you would like more control on which version is used.
Branches / tags available can be checked out on [Dockerhub](https://hub.docker.com/r/freqtradeorg/freqtrade/tags/).
**2.1. Download the docker image**
Pull the image from docker hub and (optionally) change the name of the image
```bash
docker pull freqtradeorg/freqtrade:develop
# Optionally tag the repository so the run-commands remain shorter
docker tag freqtradeorg/freqtrade:develop freqtrade
```
To update the image, simply run the above commands again and restart your running container.
**2.2. Build the Docker image**
```bash
cd freqtrade
docker build -t freqtrade .
```
If you are developing using Docker, use `Dockerfile.develop` to build a dev Docker image, which will also set up develop dependencies:
```bash
docker build -f ./Dockerfile.develop -t freqtrade-dev .
```
For security reasons, your configuration file will not be included in the image, you will need to bind mount it. It is also advised to bind mount an SQLite database file (see the "5. Run a restartable docker image" section) to keep it between updates.
### 3. Verify the Docker image
After the build process you can verify that the image was created with:
```bash
docker images
```
### 4. Run the Docker image
You can run a one-off container that is immediately deleted upon exiting with the following command (`config.json` must be in the current working directory):
```bash
docker run --rm -v /etc/localtime:/etc/localtime:ro -v `pwd`/config.json:/freqtrade/config.json -it freqtrade
```
There is known issue in OSX Docker versions after 17.09.1, whereby /etc/localtime cannot be shared causing Docker to not start. A work-around for this is to start with the following cmd.
```bash
docker run --rm -e TZ=`ls -la /etc/localtime | cut -d/ -f8-9` -v `pwd`/config.json:/freqtrade/config.json -it freqtrade
```
More information on this docker issue and work-around can be read [here](https://github.com/docker/for-mac/issues/2396).
In this example, the database will be created inside the docker instance and will be lost when you will refresh your image.
### 5. Run a restartable docker image
To run a restartable instance in the background (feel free to place your configuration and database files wherever it feels comfortable on your filesystem).
**5.1. Move your config file and database**
```bash
mkdir ~/.freqtrade
mv config.json ~/.freqtrade
mv tradesv3.sqlite ~/.freqtrade
```
**5.2. Run the docker image**
```bash
docker run -d \
--name freqtrade \
-v /etc/localtime:/etc/localtime:ro \
-v ~/.freqtrade/config.json:/freqtrade/config.json \
-v ~/.freqtrade/tradesv3.sqlite:/freqtrade/tradesv3.sqlite \
freqtrade --db-url sqlite:///tradesv3.sqlite
```
!!! Note
db-url defaults to `sqlite:///tradesv3.sqlite` but it defaults to `sqlite://` if `dry_run=True` is being used.
To override this behaviour use a custom db-url value: i.e.: `--db-url sqlite:///tradesv3.dryrun.sqlite`
### 6. Monitor your Docker instance
You can then use the following commands to monitor and manage your container:
```bash
docker logs freqtrade
docker logs -f freqtrade
docker restart freqtrade
docker stop freqtrade
docker start freqtrade
```
For more information on how to operate Docker, please refer to the [official Docker documentation](https://docs.docker.com/).
!!! Note
You do not need to rebuild the image for configuration changes, it will suffice to edit `config.json` and restart the container.
### 7. Backtest with docker
The following assumes that the above steps (1-4) have been completed successfully.
Also, backtest-data should be available at `~/.freqtrade/user_data/`.
```bash
docker run -d \
--name freqtrade \
-v /etc/localtime:/etc/localtime:ro \
-v ~/.freqtrade/config.json:/freqtrade/config.json \
-v ~/.freqtrade/tradesv3.sqlite:/freqtrade/tradesv3.sqlite \
-v ~/.freqtrade/user_data/:/freqtrade/user_data/ \
freqtrade --strategy AwsomelyProfitableStrategy backtesting
```
Head over to the [Backtesting Documentation](backtesting.md) for more details.
!!! Note
Additional parameters can be appended after the image name (`freqtrade` in the above example).
------
## Custom Installation
We've included/collected install instructions for Ubuntu 16.04, MacOS, and Windows. These are guidelines and your success may vary with other distros.
OS Specific steps are listed first, the [Common](#common) section below is necessary for all systems.
### Requirements
Click each one for install guide:
* [Python >= 3.6.x](http://docs.python-guide.org/en/latest/starting/installation/)
* [pip](https://pip.pypa.io/en/stable/installing/)
* [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
* [virtualenv](https://virtualenv.pypa.io/en/stable/installation/) (Recommended)
* [TA-Lib](https://mrjbq7.github.io/ta-lib/install.html)
### Linux - Ubuntu 16.04
#### Install Python 3.6, Git, and wget
```bash
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6 python3.6-venv python3.6-dev build-essential autoconf libtool pkg-config make wget git
```
#### Raspberry Pi / Raspbian
Before installing FreqTrade on a Raspberry Pi running the official Raspbian Image, make sure you have at least Python 3.6 installed. The default image only provides Python 3.5. Probably the easiest way to get a recent version of python is [miniconda](https://repo.continuum.io/miniconda/).
The following assumes that miniconda3 is installed and available in your environment. Last miniconda3 installation file use python 3.4, we will update to python 3.6 on this installation.
It's recommended to use (mini)conda for this as installation/compilation of `numpy`, `scipy` and `pandas` takes a long time.
If you have installed it from (mini)conda, you can remove `numpy`, `scipy`, and `pandas` from `requirements.txt` before you install it with `pip`.
Additional package to install on your Raspbian, `libffi-dev` required by cryptography (from python-telegram-bot).
``` bash
conda config --add channels rpi
conda install python=3.6
conda create -n freqtrade python=3.6
conda activate freqtrade
conda install scipy pandas numpy
sudo apt install libffi-dev
python3 -m pip install -r requirements.txt
python3 -m pip install -e .
```
### MacOS
#### Install Python 3.6, git and wget
```bash
brew install python3 git wget
```
### Common
#### 1. Install TA-Lib
Official webpage: https://mrjbq7.github.io/ta-lib/install.html
```bash
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
tar xvzf ta-lib-0.4.0-src.tar.gz
cd ta-lib
sed -i.bak "s|0.00000001|0.000000000000000001 |g" src/ta_func/ta_utility.h
./configure --prefix=/usr/local
make
sudo make install
cd ..
rm -rf ./ta-lib*
```
!!! Note
An already downloaded version of ta-lib is included in the repository, as the sourceforge.net source seems to have problems frequently.
#### 2. Setup your Python virtual environment (virtualenv)
!!! Note
This step is optional but strongly recommended to keep your system organized
```bash
python3 -m venv .env
source .env/bin/activate
```
#### 3. Install FreqTrade
Clone the git repository:
```bash
git clone https://github.com/freqtrade/freqtrade.git
```
Optionally checkout the stable/master branch:
```bash
git checkout master
```
#### 4. Initialize the configuration
```bash
cd freqtrade
cp config.json.example config.json
```
> *To edit the config please refer to [Bot Configuration](configuration.md).*
#### 5. Install python dependencies
``` bash
pip3 install --upgrade pip
pip3 install -r requirements.txt
pip3 install -e .
```
#### 6. Run the Bot
If this is the first time you run the bot, ensure you are running it in Dry-run `"dry_run": true,` otherwise it will start to buy and sell coins.
```bash
python3.6 ./freqtrade/main.py -c config.json
```
*Note*: If you run the bot on a server, you should consider using [Docker](#automatic-installation---docker) a terminal multiplexer like `screen` or [`tmux`](https://en.wikipedia.org/wiki/Tmux) to avoid that the bot is stopped on logout.
#### 7. [Optional] Configure `freqtrade` as a `systemd` service
From the freqtrade repo... copy `freqtrade.service` to your systemd user directory (usually `~/.config/systemd/user`) and update `WorkingDirectory` and `ExecStart` to match your setup.
After that you can start the daemon with:
```bash
systemctl --user start freqtrade
```
For this to be persistent (run when user is logged out) you'll need to enable `linger` for your freqtrade user.
```bash
sudo loginctl enable-linger "$USER"
```
------
## Windows
We recommend that Windows users use [Docker](#docker) as this will work much easier and smoother (also more secure).
If that is not possible, try using the Windows Linux subsystem (WSL) - for which the Ubuntu instructions should work.
If that is not available on your system, feel free to try the instructions below, which led to success for some.
### Install freqtrade manually
#### Clone the git repository
```bash
git clone https://github.com/freqtrade/freqtrade.git
```
copy paste `config.json` to ``\path\freqtrade-develop\freqtrade`
#### Install ta-lib
Install ta-lib according to the [ta-lib documentation](https://github.com/mrjbq7/ta-lib#windows).
As compiling from source on windows has heavy dependencies (requires a partial visual studio installation), there is also a repository of unofficial precompiled windows Wheels [here](https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib), which needs to be downloaded and installed using `pip install TA_Lib0.4.17cp36cp36mwin32.whl` (make sure to use the version matching your python version)
```cmd
>cd \path\freqtrade-develop
>python -m venv .env
>cd .env\Scripts
>activate.bat
>cd \path\freqtrade-develop
REM optionally install ta-lib from wheel
REM >pip install TA_Lib0.4.17cp36cp36mwin32.whl
>pip install -r requirements.txt
>pip install -e .
>python freqtrade\main.py
```
> Thanks [Owdr](https://github.com/Owdr) for the commands. Source: [Issue #222](https://github.com/freqtrade/freqtrade/issues/222)
#### Error during installation under Windows
``` bash
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools
```
Unfortunately, many packages requiring compilation don't provide a pre-build wheel. It is therefore mandatory to have a C/C++ compiler installed and available for your python environment to use.
The easiest way is to download install Microsoft Visual Studio Community [here](https://visualstudio.microsoft.com/downloads/) and make sure to install "Common Tools for Visual C++" to enable building c code on Windows. Unfortunately, this is a heavy download / dependency (~4Gb) so you might want to consider WSL or docker first.
---
Now you have an environment ready, the next step is
[Bot Configuration](configuration.md).
-52
View File
@@ -1,52 +0,0 @@
<header class="md-header" data-md-component="header">
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="{{ config.site_url | default(nav.homepage.url, true) | url }}" title="{{ config.site_name }}"
class="md-header-nav__button md-logo">
{% if config.theme.logo.icon %}
<i class="md-icon">{{ config.theme.logo.icon }}</i>
{% else %}
<img src="{{ config.theme.logo | url }}" width="24" height="24">
{% endif %}
</a>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
</div>
<div class="md-flex__cell md-flex__cell--stretch">
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
{% block site_name %}
{% if config.site_name == page.title %}
{{ config.site_name }}
{% else %}
<span class="md-header-nav__topic">
{{ config.site_name }}
</span>
<span class="md-header-nav__topic">
{{ page.title }}
</span>
{% endif %}
{% endblock %}
</div>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
{% block search_box %}
{% if "search" in config["plugins"] %}
<label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
{% include "partials/search.html" %}
{% endif %}
{% endblock %}
</div>
{% if config.repo_url %}
<div class="md-flex__cell md-flex__cell--shrink">
<div class="md-header-nav__source">
{% include "partials/source.html" %}
</div>
</div>
{% endif %}
</div>
</nav>
<!-- Place this tag in your head or just before your close body tag. -->
<script async defer src="https://buttons.github.io/buttons.js"></script>
</header>
-88
View File
@@ -1,88 +0,0 @@
# Plotting
This page explains how to plot prices, indicator, profits.
## Installation
Plotting scripts use Plotly library. Install/upgrade it with:
```
pip install --upgrade plotly
```
At least version 2.3.0 is required.
## Plot price and indicators
Usage for the price plotter:
```
script/plot_dataframe.py [-h] [-p pairs] [--live]
```
Example
```
python scripts/plot_dataframe.py -p BTC/ETH
```
The `-p` pairs argument, can be used to specify
pairs you would like to plot.
**Advanced use**
To plot multiple pairs, separate them with a comma:
```
python scripts/plot_dataframe.py -p BTC/ETH,XRP/ETH
```
To plot the current live price use the `--live` flag:
```
python scripts/plot_dataframe.py -p BTC/ETH --live
```
To plot a timerange (to zoom in):
```
python scripts/plot_dataframe.py -p BTC/ETH --timerange=100-200
```
Timerange doesn't work with live data.
To plot trades stored in a database use `--db-url` argument:
```
python scripts/plot_dataframe.py --db-url sqlite:///tradesv3.dry_run.sqlite -p BTC/ETH
```
To plot a test strategy the strategy should have first be backtested.
The results may then be plotted with the -s argument:
```
python scripts/plot_dataframe.py -s Strategy_Name -p BTC/ETH --datadir user_data/data/<exchange_name>/
```
## Plot profit
The profit plotter show a picture with three plots:
1) Average closing price for all pairs
2) The summarized profit made by backtesting.
Note that this is not the real-world profit, but
more of an estimate.
3) Each pair individually profit
The first graph is good to get a grip of how the overall market
progresses.
The second graph will show how you algorithm works or doesnt.
Perhaps you want an algorithm that steadily makes small profits,
or one that acts less seldom, but makes big swings.
The third graph can be useful to spot outliers, events in pairs
that makes profit spikes.
Usage for the profit plotter:
```
script/plot_profit.py [-h] [-p pair] [--datadir directory] [--ticker_interval num]
```
The `-p` pair argument, can be used to plot a single pair
Example
```
python3 scripts/plot_profit.py --datadir ../freqtrade/freqtrade/tests/testdata-20171221/ -p BTC_LTC
```
-141
View File
@@ -1,141 +0,0 @@
# Sandbox API testing
Where an exchange provides a sandbox for risk-free integration, or end-to-end, testing CCXT provides access to these.
This document is a *light overview of configuring Freqtrade and GDAX sandbox.
This can be useful to developers and trader alike as Freqtrade is quite customisable.
When testing your API connectivity, make sure to use the following URLs.
***Website**
https://public.sandbox.gdax.com
***REST API**
https://api-public.sandbox.gdax.com
---
# Configure a Sandbox account on Gdax
Aim of this document section
- An sanbox account
- create 2FA (needed to create an API)
- Add test 50BTC to account
- Create :
- - API-KEY
- - API-Secret
- - API Password
## Acccount
This link will redirect to the sandbox main page to login / create account dialogues:
https://public.sandbox.pro.coinbase.com/orders/
After registration and Email confimation you wil be redirected into your sanbox account. It is easy to verify you're in sandbox by checking the URL bar.
> https://public.sandbox.pro.coinbase.com/
## Enable 2Fa (a prerequisite to creating sandbox API Keys)
From within sand box site select your profile, top right.
>Or as a direct link: https://public.sandbox.pro.coinbase.com/profile
From the menu panel to the left of the screen select
> Security: "*View or Update*"
In the new site select "enable authenticator" as typical google Authenticator.
- open Google Authenticator on your phone
- scan barcode
- enter your generated 2fa
## Enable API Access
From within sandbox select profile>api>create api-keys
>or as a direct link: https://public.sandbox.pro.coinbase.com/profile/api
Click on "create one" and ensure **view** and **trade** are "checked" and sumbit your 2FA
- **Copy and paste the Passphase** into a notepade this will be needed later
- **Copy and paste the API Secret** popup into a notepad this will needed later
- **Copy and paste the API Key** into a notepad this will needed later
## Add 50 BTC test funds
To add funds, use the web interface deposit and withdraw buttons.
To begin select 'Wallets' from the top menu.
> Or as a direct link: https://public.sandbox.pro.coinbase.com/wallets
- Deposits (bottom left of screen)
- - Deposit Funds Bitcoin
- - - Coinbase BTC Wallet
- - - - Max (50 BTC)
- - - - - Deposit
*This process may be repeated for other currencies, ETH as example*
---
# Configure Freqtrade to use Gax Sandbox
The aim of this document section
- Enable sandbox URLs in Freqtrade
- Configure API
- - secret
- - key
- - passphrase
## Sandbox URLs
Freqtrade makes use of CCXT which in turn provides a list of URLs to Freqtrade.
These include `['test']` and `['api']`.
- `[Test]` if available will point to an Exchanges sandbox.
- `[Api]` normally used, and resolves to live API target on the exchange
To make use of sandbox / test add "sandbox": true, to your config.json
```json
"exchange": {
"name": "gdax",
"sandbox": true,
"key": "5wowfxemogxeowo;heiohgmd",
"secret": "/ZMH1P62rCVmwefewrgcewX8nh4gob+lywxfwfxwwfxwfNsH1ySgvWCUR/w==",
"password": "1bkjfkhfhfu6sr",
"outdated_offset": 5
"pair_whitelist": [
"BTC/USD"
```
Also insert your
- api-key (noted earlier)
- api-secret (noted earlier)
- password (the passphrase - noted earlier)
---
## You should now be ready to test your sandbox
Ensure Freqtrade logs show the sandbox URL, and trades made are shown in sandbox.
** Typically the BTC/USD has the most activity in sandbox to test against.
## GDAX - Old Candles problem
It is my experience that GDAX sandbox candles may be 20+- minutes out of date. This can cause trades to fail as one of Freqtrades safety checks.
To disable this check, add / change the `"outdated_offset"` parameter in the exchange section of your configuration to adjust for this delay.
Example based on the above configuration:
```json
"exchange": {
"name": "gdax",
"sandbox": true,
"key": "5wowfxemogxeowo;heiohgmd",
"secret": "/ZMH1P62rCVmwefewrgcewX8nh4gob+lywxfwfxwwfxwfNsH1ySgvWCUR/w==",
"password": "1bkjfkhfhfu6sr",
"outdated_offset": 30
"pair_whitelist": [
"BTC/USD"
```
-93
View File
@@ -1,93 +0,0 @@
# SQL Helper
This page constains some help if you want to edit your sqlite db.
## Install sqlite3
**Ubuntu/Debian installation**
```bash
sudo apt-get install sqlite3
```
## Open the DB
```bash
sqlite3
.open <filepath>
```
## Table structure
### List tables
```bash
.tables
```
### Display table structure
```bash
.schema <table_name>
```
### Trade table structure
```sql
CREATE TABLE trades (
id INTEGER NOT NULL,
exchange VARCHAR NOT NULL,
pair VARCHAR NOT NULL,
is_open BOOLEAN NOT NULL,
fee_open FLOAT NOT NULL,
fee_close FLOAT NOT NULL,
open_rate FLOAT,
open_rate_requested FLOAT,
close_rate FLOAT,
close_rate_requested FLOAT,
close_profit FLOAT,
stake_amount FLOAT NOT NULL,
amount FLOAT,
open_date DATETIME NOT NULL,
close_date DATETIME,
open_order_id VARCHAR,
PRIMARY KEY (id),
CHECK (is_open IN (0, 1))
);
```
## Get all trades in the table
```sql
SELECT * FROM trades;
```
## Fix trade still open after a /forcesell
```sql
UPDATE trades
SET is_open=0, close_date=<close_date>, close_rate=<close_rate>, close_profit=close_rate/open_rate-1
WHERE id=<trade_ID_to_update>;
```
**Example:**
```sql
UPDATE trades
SET is_open=0, close_date='2017-12-20 03:08:45.103418', close_rate=0.19638016, close_profit=0.0496
WHERE id=31;
```
## Insert manually a new trade
```sql
INSERT
INTO trades (exchange, pair, is_open, fee_open, fee_close, open_rate, stake_amount, amount, open_date)
VALUES ('BITTREX', 'BTC_<COIN>', 1, 0.0025, 0.0025, <open_rate>, <stake_amount>, <amount>, '<datetime>')
```
**Example:**
```sql
INSERT INTO trades (exchange, pair, is_open, fee_open, fee_close, open_rate, stake_amount, amount, open_date) VALUES ('BITTREX', 'BTC_ETC', 1, 0.0025, 0.0025, 0.00258580, 0.002, 0.7715262081, '2017-11-28 12:44:24.000000')
```
## Fix wrong fees in the table
If your DB was created before
[PR#200](https://github.com/freqtrade/freqtrade/pull/200) was merged
(before 12/23/17).
```sql
UPDATE trades SET fee=0.0025 WHERE fee=0.005;
```
-62
View File
@@ -1,62 +0,0 @@
# Stop Loss support
At this stage the bot contains the following stoploss support modes:
1. static stop loss, defined in either the strategy or configuration.
2. trailing stop loss, defined in the configuration.
3. trailing stop loss, custom positive loss, defined in configuration.
!!! Note
All stoploss properties can be configured in either Strategy or configuration. Configuration values override strategy values.
Those stoploss modes can be *on exchange* or *off exchange*. If the stoploss is *on exchange* it means a stoploss limit order is placed on the exchange immediately after buy order happens successfuly. This will protect you against sudden crashes in market as the order will be in the queue immediately and if market goes down then the order has more chance of being fulfilled.
In case of stoploss on exchange there is another parameter called `stoploss_on_exchange_interval`. This configures the interval in seconds at which the bot will check the stoploss and update it if necessary. As an example in case of trailing stoploss if the order is on the exchange and the market is going up then the bot automatically cancels the previous stoploss order and put a new one with a stop value higher than previous one. It is clear that the bot cannot do it every 5 seconds otherwise it gets banned. So this parameter will tell the bot how often it should update the stoploss order. The default value is 60 (1 minute).
!!! Note
Stoploss on exchange is only supported for Binance as of now.
## Static Stop Loss
This is very simple, basically you define a stop loss of x in your strategy file or alternative in the configuration, which
will overwrite the strategy definition. This will basically try to sell your asset, the second the loss exceeds the defined loss.
## Trail Stop Loss
The initial value for this stop loss, is defined in your strategy or configuration. Just as you would define your Stop Loss normally.
To enable this Feauture all you have to do is to define the configuration element:
``` json
"trailing_stop" : True
```
This will now activate an algorithm, which automatically moves your stop loss up every time the price of your asset increases.
For example, simplified math,
* you buy an asset at a price of 100$
* your stop loss is defined at 2%
* which means your stop loss, gets triggered once your asset dropped below 98$
* assuming your asset now increases to 102$
* your stop loss, will now be 2% of 102$ or 99.96$
* now your asset drops in value to 101$, your stop loss, will still be 99.96$
basically what this means is that your stop loss will be adjusted to be always be 2% of the highest observed price
### Custom positive loss
Due to demand, it is possible to have a default stop loss, when you are in the red with your buy, but once your profit surpasses a certain percentage,
the system will utilize a new stop loss, which can be a different value. For example your default stop loss is 5%, but once you have 1.1% profit,
it will be changed to be only a 1% stop loss, which trails the green candles until it goes below them.
Both values can be configured in the main configuration file and requires `"trailing_stop": true` to be set to true.
``` json
"trailing_stop_positive": 0.01,
"trailing_stop_positive_offset": 0.011,
```
The 0.01 would translate to a 1% stop loss, once you hit 1.1% profit.
You should also make sure to have this value (`trailing_stop_positive_offset`) lower than your minimal ROI, otherwise minimal ROI will apply first and sell your trade.
-148
View File
@@ -1,148 +0,0 @@
# Telegram usage
This page explains how to command your bot with Telegram.
## Prerequisite
To control your bot with Telegram, you need first to
[set up a Telegram bot](installation.md)
and add your Telegram API keys into your config file.
## Telegram commands
Per default, the Telegram bot shows predefined commands. Some commands
are only available by sending them to the bot. The table below list the
official commands. You can ask at any moment for help with `/help`.
| Command | Default | Description |
|----------|---------|-------------|
| `/start` | | Starts the trader
| `/stop` | | Stops the trader
| `/reload_conf` | | Reloads the configuration file
| `/status` | | Lists all open trades
| `/status table` | | List all open trades in a table format
| `/count` | | Displays number of trades used and available
| `/profit` | | Display a summary of your profit/loss from close trades and some stats about your performance
| `/forcesell <trade_id>` | | Instantly sells the given trade (Ignoring `minimum_roi`).
| `/forcesell all` | | Instantly sells all open trades (Ignoring `minimum_roi`).
| `/forcebuy <pair> [rate]` | | Instantly buys the given pair. Rate is optional. (`forcebuy_enable` must be set to True)
| `/performance` | | Show performance of each finished trade grouped by pair
| `/balance` | | Show account balance per currency
| `/daily <n>` | 7 | Shows profit or loss per day, over the last n days
| `/help` | | Show help message
| `/version` | | Show version
## Telegram commands in action
Below, example of Telegram message you will receive for each command.
### /start
> **Status:** `running`
### /stop
> `Stopping trader ...`
> **Status:** `stopped`
## /status
For each open trade, the bot will send you the following message.
> **Trade ID:** `123`
> **Current Pair:** CVC/BTC
> **Open Since:** `1 days ago`
> **Amount:** `26.64180098`
> **Open Rate:** `0.00007489`
> **Close Rate:** `None`
> **Current Rate:** `0.00007489`
> **Close Profit:** `None`
> **Current Profit:** `12.95%`
> **Open Order:** `None`
## /status table
Return the status of all open trades in a table format.
```
ID Pair Since Profit
---- -------- ------- --------
67 SC/BTC 1 d 13.33%
123 CVC/BTC 1 h 12.95%
```
## /count
Return the number of trades used and available.
```
current max
--------- -----
2 10
```
## /profit
Return a summary of your profit/loss and performance.
> **ROI:** Close trades
> ∙ `0.00485701 BTC (258.45%)`
> ∙ `62.968 USD`
> **ROI:** All trades
> ∙ `0.00255280 BTC (143.43%)`
> ∙ `33.095 EUR`
>
> **Total Trade Count:** `138`
> **First Trade opened:** `3 days ago`
> **Latest Trade opened:** `2 minutes ago`
> **Avg. Duration:** `2:33:45`
> **Best Performing:** `PAY/BTC: 50.23%`
## /forcesell <trade_id>
> **BITTREX:** Selling BTC/LTC with limit `0.01650000 (profit: ~-4.07%, -0.00008168)`
## /forcebuy <pair>
> **BITTREX**: Buying ETH/BTC with limit `0.03400000` (`1.000000 ETH`, `225.290 USD`)
Note that for this to work, `forcebuy_enable` needs to be set to true.
## /performance
Return the performance of each crypto-currency the bot has sold.
> Performance:
> 1. `RCN/BTC 57.77%`
> 2. `PAY/BTC 56.91%`
> 3. `VIB/BTC 47.07%`
> 4. `SALT/BTC 30.24%`
> 5. `STORJ/BTC 27.24%`
> ...
## /balance
Return the balance of all crypto-currency your have on the exchange.
> **Currency:** BTC
> **Available:** 3.05890234
> **Balance:** 3.05890234
> **Pending:** 0.0
> **Currency:** CVC
> **Available:** 86.64180098
> **Balance:** 86.64180098
> **Pending:** 0.0
## /daily <n>
Per default `/daily` will return the 7 last days.
The example below if for `/daily 3`:
> **Daily Profit over the last 3 days:**
```
Day Profit BTC Profit USD
---------- -------------- ------------
2018-01-03 0.00224175 BTC 29,142 USD
2018-01-02 0.00033131 BTC 4,307 USD
2018-01-01 0.00269130 BTC 34.986 USD
```
## /version
> **Version:** `0.14.3`
-75
View File
@@ -1,75 +0,0 @@
# Webhook usage
This page explains how to configure your bot to talk to webhooks.
## Configuration
Enable webhooks by adding a webhook-section to your configuration file, and setting `webhook.enabled` to `true`.
Sample configuration (tested using IFTTT).
```json
"webhook": {
"enabled": true,
"url": "https://maker.ifttt.com/trigger/<YOUREVENT>/with/key/<YOURKEY>/",
"webhookbuy": {
"value1": "Buying {pair}",
"value2": "limit {limit:8f}",
"value3": "{stake_amount:8f} {stake_currency}"
},
"webhooksell": {
"value1": "Selling {pair}",
"value2": "limit {limit:8f}",
"value3": "profit: {profit_amount:8f} {stake_currency}"
},
"webhookstatus": {
"value1": "Status: {status}",
"value2": "",
"value3": ""
}
},
```
The url in `webhook.url` should point to the correct url for your webhook. If you're using [IFTTT](https://ifttt.com) (as shown in the sample above) please insert our event and key to the url.
Different payloads can be configured for different events. Not all fields are necessary, but you should configure at least one of the dicts, otherwise the webhook will never be called.
### Webhookbuy
The fields in `webhook.webhookbuy` are filled when the bot executes a buy. Parameters are filled using string.format.
Possible parameters are:
* exchange
* pair
* market_url
* limit
* stake_amount
* stake_amount_fiat
* stake_currency
* fiat_currency
### Webhooksell
The fields in `webhook.webhooksell` are filled when the bot sells a trade. Parameters are filled using string.format.
Possible parameters are:
* exchange
* pair
* gain
* market_url
* limit
* amount
* open_rate
* current_rate
* profit_amount
* profit_percent
* profit_fiat
* stake_currency
* fiat_currency
* sell_reason
### Webhookstatus
The fields in `webhook.webhookstatus` are used for regular status messages (Started / Stopped / ...). Parameters are filled using string.format.
The only possible value here is `{status}`.
+810
View File
@@ -0,0 +1,810 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="icon" href="/assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.30">
<title>Freqtrade</title>
<link rel="stylesheet" href="/assets/stylesheets/main.3cba04c6.min.css">
<link rel="stylesheet" href="/assets/stylesheets/palette.06af60db.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="/stylesheets/ft.extra.css">
<script>__md_scope=new URL("/",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="blue-grey" data-md-color-accent="tear">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
</div>
<div data-md-component="announce">
</div>
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="/." title="Freqtrade" class="md-header__button md-logo" aria-label="Freqtrade" data-md-component="logo">
<img src="/images/logo.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Freqtrade
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="/." title="Freqtrade" class="md-nav__button md-logo" aria-label="Freqtrade" data-md-component="logo">
<img src="/images/logo.png" alt="logo">
</a>
Freqtrade
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="/." class="md-nav__link">
<span class="md-ellipsis">
About
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/installation/" class="md-nav__link">
<span class="md-ellipsis">
Installation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/docker/" class="md-nav__link">
<span class="md-ellipsis">
Installation Docker
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/strategy-customization/" class="md-nav__link">
<span class="md-ellipsis">
Strategy Customization
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/stoploss/" class="md-nav__link">
<span class="md-ellipsis">
Stoploss
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/bot-usage/" class="md-nav__link">
<span class="md-ellipsis">
Start the bot
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
<span class="md-ellipsis">
Control the bot
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
Control the bot
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="/telegram-usage/" class="md-nav__link">
<span class="md-ellipsis">
Telegram
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/webhook-config/" class="md-nav__link">
<span class="md-ellipsis">
Web Hook
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/rest-api/" class="md-nav__link">
<span class="md-ellipsis">
REST API
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="/data-download/" class="md-nav__link">
<span class="md-ellipsis">
Data Downloading
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/backtesting/" class="md-nav__link">
<span class="md-ellipsis">
Backtesting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/hyperopt/" class="md-nav__link">
<span class="md-ellipsis">
Hyperopt
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/edge/" class="md-nav__link">
<span class="md-ellipsis">
Edge Positioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/utils/" class="md-nav__link">
<span class="md-ellipsis">
Utility Subcommands
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/faq/" class="md-nav__link">
<span class="md-ellipsis">
FAQ
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" >
<label class="md-nav__link" for="__nav_15" id="__nav_15_label" tabindex="0">
<span class="md-ellipsis">
Data Analysis
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_15">
<span class="md-nav__icon md-icon"></span>
Data Analysis
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="/data-analysis/" class="md-nav__link">
<span class="md-ellipsis">
Jupyter Notebooks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/strategy_analysis_example/" class="md-nav__link">
<span class="md-ellipsis">
Strategy analysis
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/plotting/" class="md-nav__link">
<span class="md-ellipsis">
Plotting
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="/sql_cheatsheet/" class="md-nav__link">
<span class="md-ellipsis">
SQL Cheatsheet
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/sandbox-testing/" class="md-nav__link">
<span class="md-ellipsis">
Sandbox Testing
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/deprecated/" class="md-nav__link">
<span class="md-ellipsis">
Deprecated Features
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/developer/" class="md-nav__link">
<span class="md-ellipsis">
Contributors Guide
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1>404 - Not found</h1>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "/", "features": [], "search": "/assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
<script src="/assets/javascripts/bundle.fe8b6f2b.min.js"></script>
</body>
</html>

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+18
View File
@@ -0,0 +1,18 @@
/*!
* Lunr languages, `Danish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){var e,r=f.cursor+3;if(d=f.limit,0<=r&&r<=f.limit){for(a=r;;){if(e=f.cursor,f.in_grouping(w,97,248)){f.cursor=e;break}if(f.cursor=e,e>=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d<a&&(d=a)}}function n(){var e,r;if(f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}});
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Z-zA-0-9-",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}});
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hy=function(){this.pipeline.reset(),this.pipeline.add(e.hy.trimmer,e.hy.stopWordFilter)},e.hy.wordCharacters="[A-Za-z԰-֏ff-ﭏ]",e.hy.trimmer=e.trimmerSupport.generateTrimmer(e.hy.wordCharacters),e.Pipeline.registerFunction(e.hy.trimmer,"trimmer-hy"),e.hy.stopWordFilter=e.generateStopWordFilter("դու և եք էիր էիք հետո նաև նրանք որը վրա է որ պիտի են այս մեջ ն իր ու ի այդ որոնք այն կամ էր մի ես համար այլ իսկ էին ենք հետ ին թ էինք մենք նրա նա դուք եմ էի ըստ որպես ում".split(" ")),e.Pipeline.registerFunction(e.hy.stopWordFilter,"stopWordFilter-hy"),e.hy.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}(),e.Pipeline.registerFunction(e.hy.stemmer,"stemmer-hy")}});
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n<p.length;n++)r?a.push(new e.Token(p[n],{position:[f,p[n].length],index:a.length})):a.push(p[n]),f+=p[n].length;l=c+1}return a},e.ja.stemmer=function(){return function(e){return e}}(),e.Pipeline.registerFunction(e.ja.stemmer,"stemmer-ja"),e.ja.wordCharacters="一二三四五六七八九十百千万億兆一-龠々〆ヵヶぁ-んァ-ヴーア-ン゙a-zA-Z-zA-0-9-",e.ja.trimmer=e.trimmerSupport.generateTrimmer(e.ja.wordCharacters),e.Pipeline.registerFunction(e.ja.trimmer,"trimmer-ja"),e.ja.stopWordFilter=e.generateStopWordFilter("これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" ")),e.Pipeline.registerFunction(e.ja.stopWordFilter,"stopWordFilter-ja"),e.jp=e.ja,e.Pipeline.registerFunction(e.jp.stemmer,"stemmer-jp"),e.Pipeline.registerFunction(e.jp.trimmer,"trimmer-jp"),e.Pipeline.registerFunction(e.jp.stopWordFilter,"stopWordFilter-jp")}});
+1
View File
@@ -0,0 +1 @@
module.exports=require("./lunr.ja");
+1
View File
@@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.kn=function(){this.pipeline.reset(),this.pipeline.add(e.kn.trimmer,e.kn.stopWordFilter,e.kn.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.kn.stemmer))},e.kn.wordCharacters="ಀ-಄ಅ-ಔಕ-ಹಾ-ೌ಼-ಽೕ-ೖೝ-ೞೠ-ೡೢ-ೣ೤೥೦-೯ೱ-ೳ",e.kn.trimmer=e.trimmerSupport.generateTrimmer(e.kn.wordCharacters),e.Pipeline.registerFunction(e.kn.trimmer,"trimmer-kn"),e.kn.stopWordFilter=e.generateStopWordFilter("ಮತ್ತು ಈ ಒಂದು ರಲ್ಲಿ ಹಾಗೂ ಎಂದು ಅಥವಾ ಇದು ರ ಅವರು ಎಂಬ ಮೇಲೆ ಅವರ ತನ್ನ ಆದರೆ ತಮ್ಮ ನಂತರ ಮೂಲಕ ಹೆಚ್ಚು ನ ಆ ಕೆಲವು ಅನೇಕ ಎರಡು ಹಾಗು ಪ್ರಮುಖ ಇದನ್ನು ಇದರ ಸುಮಾರು ಅದರ ಅದು ಮೊದಲ ಬಗ್ಗೆ ನಲ್ಲಿ ರಂದು ಇತರ ಅತ್ಯಂತ ಹೆಚ್ಚಿನ ಸಹ ಸಾಮಾನ್ಯವಾಗಿ ನೇ ಹಲವಾರು ಹೊಸ ದಿ ಕಡಿಮೆ ಯಾವುದೇ ಹೊಂದಿದೆ ದೊಡ್ಡ ಅನ್ನು ಇವರು ಪ್ರಕಾರ ಇದೆ ಮಾತ್ರ ಕೂಡ ಇಲ್ಲಿ ಎಲ್ಲಾ ವಿವಿಧ ಅದನ್ನು ಹಲವು ರಿಂದ ಕೇವಲ ದ ದಕ್ಷಿಣ ಗೆ ಅವನ ಅತಿ ನೆಯ ಬಹಳ ಕೆಲಸ ಎಲ್ಲ ಪ್ರತಿ ಇತ್ಯಾದಿ ಇವು ಬೇರೆ ಹೀಗೆ ನಡುವೆ ಇದಕ್ಕೆ ಎಸ್ ಇವರ ಮೊದಲು ಶ್ರೀ ಮಾಡುವ ಇದರಲ್ಲಿ ರೀತಿಯ ಮಾಡಿದ ಕಾಲ ಅಲ್ಲಿ ಮಾಡಲು ಅದೇ ಈಗ ಅವು ಗಳು ಎ ಎಂಬುದು ಅವನು ಅಂದರೆ ಅವರಿಗೆ ಇರುವ ವಿಶೇಷ ಮುಂದೆ ಅವುಗಳ ಮುಂತಾದ ಮೂಲ ಬಿ ಮೀ ಒಂದೇ ಇನ್ನೂ ಹೆಚ್ಚಾಗಿ ಮಾಡಿ ಅವರನ್ನು ಇದೇ ಯ ರೀತಿಯಲ್ಲಿ ಜೊತೆ ಅದರಲ್ಲಿ ಮಾಡಿದರು ನಡೆದ ಆಗ ಮತ್ತೆ ಪೂರ್ವ ಆತ ಬಂದ ಯಾವ ಒಟ್ಟು ಇತರೆ ಹಿಂದೆ ಪ್ರಮಾಣದ ಗಳನ್ನು ಕುರಿತು ಯು ಆದ್ದರಿಂದ ಅಲ್ಲದೆ ನಗರದ ಮೇಲಿನ ಏಕೆಂದರೆ ರಷ್ಟು ಎಂಬುದನ್ನು ಬಾರಿ ಎಂದರೆ ಹಿಂದಿನ ಆದರೂ ಆದ ಸಂಬಂಧಿಸಿದ ಮತ್ತೊಂದು ಸಿ ಆತನ ".split(" ")),e.kn.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.kn.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var n=t.toString().toLowerCase().replace(/^\s+/,"");return r.cut(n).split("|")},e.Pipeline.registerFunction(e.kn.stemmer,"stemmer-kn"),e.Pipeline.registerFunction(e.kn.stopWordFilter,"stopWordFilter-kn")}});
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),i=t.join("-"),r="",n=[],s=[],p=0;p<t.length;++p)"en"==t[p]?(r+="\\w",n.unshift(e.stopWordFilter),n.push(e.stemmer),s.push(e.stemmer)):(r+=e[t[p]].wordCharacters,e[t[p]].stopWordFilter&&n.unshift(e[t[p]].stopWordFilter),e[t[p]].stemmer&&(n.push(e[t[p]].stemmer),s.push(e[t[p]].stemmer)));var o=e.trimmerSupport.generateTrimmer(r);return e.Pipeline.registerFunction(o,"lunr-multi-trimmer-"+i),n.unshift(o),function(){this.pipeline.reset(),this.pipeline.add.apply(this.pipeline,n),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add.apply(this.searchPipeline,s))}}}});
File diff suppressed because one or more lines are too long
+18
View File
@@ -0,0 +1,18 @@
/*!
* Lunr languages, `Norwegian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a<s&&(a=s)}}function i(){var e,r,n;if(w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sa=function(){this.pipeline.reset(),this.pipeline.add(e.sa.trimmer,e.sa.stopWordFilter,e.sa.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sa.stemmer))},e.sa.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿ꣠-꣱ꣲ-ꣷ꣸-ꣻ꣼-ꣽꣾ-ꣿᆰ0-ᆰ9",e.sa.trimmer=e.trimmerSupport.generateTrimmer(e.sa.wordCharacters),e.Pipeline.registerFunction(e.sa.trimmer,"trimmer-sa"),e.sa.stopWordFilter=e.generateStopWordFilter('तथा अयम्‌ एकम्‌ इत्यस्मिन्‌ तथा तत्‌ वा अयम्‌ इत्यस्य ते आहूत उपरि तेषाम्‌ किन्तु तेषाम्‌ तदा इत्यनेन अधिकः इत्यस्य तत्‌ केचन बहवः द्वि तथा महत्वपूर्णः अयम्‌ अस्य विषये अयं अस्ति तत्‌ प्रथमः विषये इत्युपरि इत्युपरि इतर अधिकतमः अधिकः अपि सामान्यतया ठ इतरेतर नूतनम्‌ द न्यूनम्‌ कश्चित्‌ वा विशालः द सः अस्ति तदनुसारम् तत्र अस्ति केवलम्‌ अपि अत्र सर्वे विविधाः तत्‌ बहवः यतः इदानीम्‌ द दक्षिण इत्यस्मै तस्य उपरि नथ अतीव कार्यम्‌ सर्वे एकैकम्‌ इत्यादि। एते सन्ति उत इत्थम्‌ मध्ये एतदर्थं . स कस्य प्रथमः श्री. करोति अस्मिन् प्रकारः निर्मिता कालः तत्र कर्तुं समान अधुना ते सन्ति स एकः अस्ति सः अर्थात् तेषां कृते . स्थितम् विशेषः अग्रिम तेषाम्‌ समान स्रोतः ख म समान इदानीमपि अधिकतया करोतु ते समान इत्यस्य वीथी सह यस्मिन् कृतवान्‌ धृतः तदा पुनः पूर्वं सः आगतः किम्‌ कुल इतर पुरा मात्रा स विषये उ अतएव अपि नगरस्य उपरि यतः प्रतिशतं कतरः कालः साधनानि भूत तथापि जात सम्बन्धि अन्यत्‌ ग अतः अस्माकं स्वकीयाः अस्माकं इदानीं अन्तः इत्यादयः भवन्तः इत्यादयः एते एताः तस्य अस्य इदम् एते तेषां तेषां तेषां तान् तेषां तेषां तेषां समानः सः एकः च तादृशाः बहवः अन्ये च वदन्ति यत् कियत् कस्मै कस्मै यस्मै यस्मै यस्मै यस्मै न अतिनीचः किन्तु प्रथमं सम्पूर्णतया ततः चिरकालानन्तरं पुस्तकं सम्पूर्णतया अन्तः किन्तु अत्र वा इह इव श्रद्धाय अवशिष्यते परन्तु अन्ये वर्गाः सन्ति ते सन्ति शक्नुवन्ति सर्वे मिलित्वा सर्वे एकत्र"'.split(" ")),e.sa.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.sa.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var i=t.toString().toLowerCase().replace(/^\s+/,"");return r.cut(i).split("|")},e.Pipeline.registerFunction(e.sa.stemmer,"stemmer-sa"),e.Pipeline.registerFunction(e.sa.stopWordFilter,"stopWordFilter-sa")}});
@@ -0,0 +1 @@
!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s<t;s++)i[s]=r.charCodeAt(s);return i},!r&&""!=r||!t&&0!=t||!i)throw"Bad Among initialisation: s:"+r+", substring_i: "+t+", result: "+i;this.s_size=r.length,this.s=this.toCharArray(r),this.substring_i=t,this.result=i,this.method=s},SnowballProgram:function(){var r;return{bra:0,ket:0,limit:0,cursor:0,limit_backward:0,setCurrent:function(t){r=t,this.cursor=0,this.limit=t.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},getCurrent:function(){var t=r;return r=null,t},in_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e>s||e<i)return this.cursor++,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e<i)return this.cursor--,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor+s)!=i.charCodeAt(s))return!1;return this.cursor+=t,!0},eq_s_b:function(t,i){if(this.cursor-this.limit_backward<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor-t+s)!=i.charCodeAt(s))return!1;return this.cursor-=t,!0},find_among:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=l;m<_.s_size;m++){if(n+l==u){f=-1;break}if(f=r.charCodeAt(n+l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=_.s_size-1-l;m>=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});
+18
View File
@@ -0,0 +1,18 @@
/*!
* Lunr languages, `Swedish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o<a&&(o=a)}}function t(){var e,r=w.limit_backward;if(w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}});
+1
View File
@@ -0,0 +1 @@
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ta=function(){this.pipeline.reset(),this.pipeline.add(e.ta.trimmer,e.ta.stopWordFilter,e.ta.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ta.stemmer))},e.ta.wordCharacters="஀-உஊ-ஏஐ-ஙச-ட஠-னப-யர-ஹ஺-ிீ-௉ொ-௏ௐ-௙௚-௟௠-௩௪-௯௰-௹௺-௿a-zA-Z-zA-0-9-",e.ta.trimmer=e.trimmerSupport.generateTrimmer(e.ta.wordCharacters),e.Pipeline.registerFunction(e.ta.trimmer,"trimmer-ta"),e.ta.stopWordFilter=e.generateStopWordFilter("அங்கு அங்கே அது அதை அந்த அவர் அவர்கள் அவள் அவன் அவை ஆக ஆகவே ஆகையால் ஆதலால் ஆதலினால் ஆனாலும் ஆனால் இங்கு இங்கே இது இதை இந்த இப்படி இவர் இவர்கள் இவள் இவன் இவை இவ்வளவு உனக்கு உனது உன் உன்னால் எங்கு எங்கே எது எதை எந்த எப்படி எவர் எவர்கள் எவள் எவன் எவை எவ்வளவு எனக்கு எனது எனவே என் என்ன என்னால் ஏது ஏன் தனது தன்னால் தானே தான் நாங்கள் நாம் நான் நீ நீங்கள்".split(" ")),e.ta.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.ta.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.ta.stemmer,"stemmer-ta"),e.Pipeline.registerFunction(e.ta.stopWordFilter,"stopWordFilter-ta")}});
+1
View File
@@ -0,0 +1 @@
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.te=function(){this.pipeline.reset(),this.pipeline.add(e.te.trimmer,e.te.stopWordFilter,e.te.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.te.stemmer))},e.te.wordCharacters="ఀ-ఄఅ-ఔక-హా-ౌౕ-ౖౘ-ౚౠ-ౡౢ-ౣ౦-౯౸-౿఼ఽ్ౝ౷౤౥",e.te.trimmer=e.trimmerSupport.generateTrimmer(e.te.wordCharacters),e.Pipeline.registerFunction(e.te.trimmer,"trimmer-te"),e.te.stopWordFilter=e.generateStopWordFilter("అందరూ అందుబాటులో అడగండి అడగడం అడ్డంగా అనుగుణంగా అనుమతించు అనుమతిస్తుంది అయితే ఇప్పటికే ఉన్నారు ఎక్కడైనా ఎప్పుడు ఎవరైనా ఎవరో ఏ ఏదైనా ఏమైనప్పటికి ఒక ఒకరు కనిపిస్తాయి కాదు కూడా గా గురించి చుట్టూ చేయగలిగింది తగిన తర్వాత దాదాపు దూరంగా నిజంగా పై ప్రకారం ప్రక్కన మధ్య మరియు మరొక మళ్ళీ మాత్రమే మెచ్చుకో వద్ద వెంట వేరుగా వ్యతిరేకంగా సంబంధం".split(" ")),e.te.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var t=e.wordcut;t.init(),e.te.tokenizer=function(r){if(!arguments.length||null==r||void 0==r)return[];if(Array.isArray(r))return r.map(function(t){return isLunr2?new e.Token(t.toLowerCase()):t.toLowerCase()});var i=r.toString().toLowerCase().replace(/^\s+/,"");return t.cut(i).split("|")},e.Pipeline.registerFunction(e.te.stemmer,"stemmer-te"),e.Pipeline.registerFunction(e.te.stopWordFilter,"stopWordFilter-te")}});
+1
View File
@@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[฀-๿]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}});
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}});
+1
View File
@@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("@node-rs/jieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 為 以 于 於 上 他 而 后 後 之 来 來 及 了 因 下 可 到 由 这 這 与 與 也 此 但 并 並 个 個 其 已 无 無 小 我 们 們 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 當 从 從 得 打 凡 儿 兒 尔 爾 该 該 各 给 給 跟 和 何 还 還 即 几 幾 既 看 据 據 距 靠 啦 另 么 麽 每 嘛 拿 哪 您 凭 憑 且 却 卻 让 讓 仍 啥 如 若 使 谁 誰 虽 雖 随 隨 同 所 她 哇 嗡 往 些 向 沿 哟 喲 用 咱 则 則 怎 曾 至 致 着 著 诸 諸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}});
@@ -0,0 +1,206 @@
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function () {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
// TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript
// (c) 2008 Taku Kudo <taku@chasen.org>
// TinySegmenter is freely distributable under the terms of a new BSD licence.
// For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt
function TinySegmenter() {
var patterns = {
"[一二三四五六七八九十百千万億兆]":"M",
"[一-龠々〆ヵヶ]":"H",
"[ぁ-ん]":"I",
"[ァ-ヴーア-ン゙ー]":"K",
"[a-zA-Z-zA-]":"A",
"[0-9-]":"N"
}
this.chartype_ = [];
for (var i in patterns) {
var regexp = new RegExp(i);
this.chartype_.push([regexp, patterns[i]]);
}
this.BIAS__ = -332
this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378};
this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920};
this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266};
this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352};
this.BP2__ = {"BO":60,"OO":-1762};
this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965};
this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146};
this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699};
this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973};
this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682};
this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"11":-669};
this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990};
this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832};
this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649};
this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393};
this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841};
this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68};
this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591};
this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685};
this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156};
this.TW1__ = {"につい":-4681,"東京都":2026};
this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216};
this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287};
this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865};
this.UC1__ = {"A":484,"K":93,"M":645,"O":-505};
this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646};
this.UC3__ = {"A":-1370,"I":2311};
this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646};
this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831};
this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387};
this.UP1__ = {"O":-214};
this.UP2__ = {"B":69,"O":935};
this.UP3__ = {"B":189};
this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422};
this.UQ2__ = {"BH":216,"BI":113,"OK":1759};
this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212};
this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135};
this.UW2__ = {",":-829,"、":-829,"":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568};
this.UW3__ = {",":4889,"1":-800,"":-1723,"、":4889,"々":-2311,"":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278};
this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637};
this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"":-514,"E2":-32768,"「":363,"イ":241,"ル":451,"ン":-343};
this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"":-270,"E1":306,"ル":-673,"ン":-496};
return this;
}
TinySegmenter.prototype.ctype_ = function(str) {
for (var i in this.chartype_) {
if (str.match(this.chartype_[i][0])) {
return this.chartype_[i][1];
}
}
return "O";
}
TinySegmenter.prototype.ts_ = function(v) {
if (v) { return v; }
return 0;
}
TinySegmenter.prototype.segment = function(input) {
if (input == null || input == undefined || input == "") {
return [];
}
var result = [];
var seg = ["B3","B2","B1"];
var ctype = ["O","O","O"];
var o = input.split("");
for (i = 0; i < o.length; ++i) {
seg.push(o[i]);
ctype.push(this.ctype_(o[i]))
}
seg.push("E1");
seg.push("E2");
seg.push("E3");
ctype.push("O");
ctype.push("O");
ctype.push("O");
var word = seg[3];
var p1 = "U";
var p2 = "U";
var p3 = "U";
for (var i = 4; i < seg.length - 3; ++i) {
var score = this.BIAS__;
var w1 = seg[i-3];
var w2 = seg[i-2];
var w3 = seg[i-1];
var w4 = seg[i];
var w5 = seg[i+1];
var w6 = seg[i+2];
var c1 = ctype[i-3];
var c2 = ctype[i-2];
var c3 = ctype[i-1];
var c4 = ctype[i];
var c5 = ctype[i+1];
var c6 = ctype[i+2];
score += this.ts_(this.UP1__[p1]);
score += this.ts_(this.UP2__[p2]);
score += this.ts_(this.UP3__[p3]);
score += this.ts_(this.BP1__[p1 + p2]);
score += this.ts_(this.BP2__[p2 + p3]);
score += this.ts_(this.UW1__[w1]);
score += this.ts_(this.UW2__[w2]);
score += this.ts_(this.UW3__[w3]);
score += this.ts_(this.UW4__[w4]);
score += this.ts_(this.UW5__[w5]);
score += this.ts_(this.UW6__[w6]);
score += this.ts_(this.BW1__[w2 + w3]);
score += this.ts_(this.BW2__[w3 + w4]);
score += this.ts_(this.BW3__[w4 + w5]);
score += this.ts_(this.TW1__[w1 + w2 + w3]);
score += this.ts_(this.TW2__[w2 + w3 + w4]);
score += this.ts_(this.TW3__[w3 + w4 + w5]);
score += this.ts_(this.TW4__[w4 + w5 + w6]);
score += this.ts_(this.UC1__[c1]);
score += this.ts_(this.UC2__[c2]);
score += this.ts_(this.UC3__[c3]);
score += this.ts_(this.UC4__[c4]);
score += this.ts_(this.UC5__[c5]);
score += this.ts_(this.UC6__[c6]);
score += this.ts_(this.BC1__[c2 + c3]);
score += this.ts_(this.BC2__[c3 + c4]);
score += this.ts_(this.BC3__[c4 + c5]);
score += this.ts_(this.TC1__[c1 + c2 + c3]);
score += this.ts_(this.TC2__[c2 + c3 + c4]);
score += this.ts_(this.TC3__[c3 + c4 + c5]);
score += this.ts_(this.TC4__[c4 + c5 + c6]);
// score += this.ts_(this.TC5__[c4 + c5 + c6]);
score += this.ts_(this.UQ1__[p1 + c1]);
score += this.ts_(this.UQ2__[p2 + c2]);
score += this.ts_(this.UQ3__[p3 + c3]);
score += this.ts_(this.BQ1__[p2 + c2 + c3]);
score += this.ts_(this.BQ2__[p2 + c3 + c4]);
score += this.ts_(this.BQ3__[p3 + c2 + c3]);
score += this.ts_(this.BQ4__[p3 + c3 + c4]);
score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]);
score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]);
score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]);
score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]);
var p = "O";
if (score > 0) {
result.push(word);
word = "";
p = "B";
}
p1 = p2;
p2 = p3;
p3 = p;
word += seg[i];
}
result.push(word);
return result;
}
lunr.TinySegmenter = TinySegmenter;
};
}));
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"version":3,"sources":["src/templates/assets/stylesheets/palette/_scheme.scss","../../../../src/templates/assets/stylesheets/palette.scss","src/templates/assets/stylesheets/palette/_accent.scss","src/templates/assets/stylesheets/palette/_primary.scss","src/templates/assets/stylesheets/utilities/_break.scss"],"names":[],"mappings":"AA2BA,cAGE,6BAME,sDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CACA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CAGA,mDAAA,CACA,gDAAA,CAGA,0BAAA,CACA,mCAAA,CAGA,iCAAA,CACA,kCAAA,CACA,mCAAA,CACA,mCAAA,CACA,kCAAA,CACA,iCAAA,CACA,+CAAA,CACA,6DAAA,CACA,gEAAA,CACA,4DAAA,CACA,4DAAA,CACA,6DAAA,CAGA,6CAAA,CAGA,+CAAA,CAGA,uDAAA,CACA,6DAAA,CACA,2DAAA,CAGA,iCAAA,CAGA,yDAAA,CACA,iEAAA,CAGA,mDAAA,CACA,mDAAA,CAGA,qDAAA,CACA,uDAAA,CAGA,8DAAA,CAKA,8DAAA,CAKA,0DAAA,CAvEA,iBCeF,CD6DE,kHAEE,YC3DJ,CDkFE,yDACE,4BChFJ,CD+EE,2DACE,4BC7EJ,CD4EE,gEACE,4BC1EJ,CDyEE,2DACE,4BCvEJ,CDsEE,yDACE,4BCpEJ,CDmEE,0DACE,4BCjEJ,CDgEE,gEACE,4BC9DJ,CD6DE,0DACE,4BC3DJ,CD0DE,2OACE,4BC/CJ,CDsDA,+FAGE,iCCpDF,CACF,CC/CE,2BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD2CN,CCrDE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDkDN,CC5DE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDyDN,CCnEE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDgEN,CC1EE,8BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDuEN,CCjFE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD8EN,CCxFE,kCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDqFN,CC/FE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD4FN,CCtGE,4BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDmGN,CC7GE,6BACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCD0GN,CCpHE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDiHN,CC3HE,4BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCD2HN,CClIE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDkIN,CCzIE,6BACE,yBAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDyIN,CChJE,8BACE,4BAAA,CACA,2CAAA,CAIE,8BAAA,CACA,qCDgJN,CCvJE,mCACE,4BAAA,CACA,2CAAA,CAOE,yBAAA,CACA,qCDoJN,CEzJE,4BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsJN,CEjKE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8JN,CEzKE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsKN,CEjLE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8KN,CEzLE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsLN,CEjME,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8LN,CEzME,mCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsMN,CEjNE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8MN,CEzNE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsNN,CEjOE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8NN,CEzOE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsON,CEjPE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFiPN,CEzPE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFyPN,CEjQE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFiQN,CEzQE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,+BAAA,CACA,sCFyQN,CEjRE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCF8QN,CEzRE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCFsRN,CEjSE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BF0RN,CE1SE,kCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,sCAAA,CAKA,4BFmSN,CEpRE,sEACE,4BFuRJ,CExRE,+DACE,4BF2RJ,CE5RE,iEACE,4BF+RJ,CEhSE,gEACE,4BFmSJ,CEpSE,iEACE,4BFuSJ,CE9RA,8BACE,mDAAA,CACA,4DAAA,CACA,0DAAA,CACA,oDAAA,CACA,2DAAA,CAGA,4BF+RF,CE5RE,yCACE,+BF8RJ,CE3RI,kDAEE,0CAAA,CACA,sCAAA,CAFA,mCF+RN,CG3MI,mCD1EA,+CACE,8CFwRJ,CErRI,qDACE,8CFuRN,CElRE,iEACE,mCFoRJ,CACF,CGtNI,sCDvDA,uCACE,oCFgRJ,CACF,CEvQA,8BACE,kDAAA,CACA,4DAAA,CACA,wDAAA,CACA,oDAAA,CACA,6DAAA,CAGA,4BFwQF,CErQE,yCACE,+BFuQJ,CEpQI,kDAEE,0CAAA,CACA,sCAAA,CAFA,mCFwQN,CEjQE,yCACE,6CFmQJ,CG5NI,0CDhCA,8CACE,gDF+PJ,CACF,CGjOI,0CDvBA,iFACE,6CF2PJ,CACF,CGzPI,sCDKA,uCACE,6CFuPJ,CACF","file":"palette.css"}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+984
View File
@@ -0,0 +1,984 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="prev" href="../sandbox-testing/">
<link rel="next" href="../developer/">
<link rel="icon" href="../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.30">
<title>Deprecated Features - Freqtrade</title>
<link rel="stylesheet" href="../assets/stylesheets/main.3cba04c6.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../stylesheets/ft.extra.css">
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="blue-grey" data-md-color-accent="tear">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#deprecated-features" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href=".." title="Freqtrade" class="md-header__button md-logo" aria-label="Freqtrade" data-md-component="logo">
<img src="../images/logo.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Freqtrade
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Deprecated Features
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href=".." title="Freqtrade" class="md-nav__button md-logo" aria-label="Freqtrade" data-md-component="logo">
<img src="../images/logo.png" alt="logo">
</a>
Freqtrade
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href=".." class="md-nav__link">
<span class="md-ellipsis">
About
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../installation/" class="md-nav__link">
<span class="md-ellipsis">
Installation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../docker/" class="md-nav__link">
<span class="md-ellipsis">
Installation Docker
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../configuration/" class="md-nav__link">
<span class="md-ellipsis">
Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../strategy-customization/" class="md-nav__link">
<span class="md-ellipsis">
Strategy Customization
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../stoploss/" class="md-nav__link">
<span class="md-ellipsis">
Stoploss
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../bot-usage/" class="md-nav__link">
<span class="md-ellipsis">
Start the bot
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
<span class="md-ellipsis">
Control the bot
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
Control the bot
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../telegram-usage/" class="md-nav__link">
<span class="md-ellipsis">
Telegram
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../webhook-config/" class="md-nav__link">
<span class="md-ellipsis">
Web Hook
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../rest-api/" class="md-nav__link">
<span class="md-ellipsis">
REST API
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../data-download/" class="md-nav__link">
<span class="md-ellipsis">
Data Downloading
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../backtesting/" class="md-nav__link">
<span class="md-ellipsis">
Backtesting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../hyperopt/" class="md-nav__link">
<span class="md-ellipsis">
Hyperopt
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../edge/" class="md-nav__link">
<span class="md-ellipsis">
Edge Positioning
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../utils/" class="md-nav__link">
<span class="md-ellipsis">
Utility Subcommands
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../faq/" class="md-nav__link">
<span class="md-ellipsis">
FAQ
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_15" >
<label class="md-nav__link" for="__nav_15" id="__nav_15_label" tabindex="0">
<span class="md-ellipsis">
Data Analysis
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_15">
<span class="md-nav__icon md-icon"></span>
Data Analysis
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../data-analysis/" class="md-nav__link">
<span class="md-ellipsis">
Jupyter Notebooks
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../strategy_analysis_example/" class="md-nav__link">
<span class="md-ellipsis">
Strategy analysis
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../plotting/" class="md-nav__link">
<span class="md-ellipsis">
Plotting
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../sql_cheatsheet/" class="md-nav__link">
<span class="md-ellipsis">
SQL Cheatsheet
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../sandbox-testing/" class="md-nav__link">
<span class="md-ellipsis">
Sandbox Testing
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Deprecated Features
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Deprecated Features
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#removed-features" class="md-nav__link">
<span class="md-ellipsis">
Removed features
</span>
</a>
<nav class="md-nav" aria-label="Removed features">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#the-refresh-pairs-cached-command-line-option" class="md-nav__link">
<span class="md-ellipsis">
the --refresh-pairs-cached command line option
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#the-dynamic-whitelist-command-line-option" class="md-nav__link">
<span class="md-ellipsis">
The --dynamic-whitelist command line option
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#the-live-command-line-option" class="md-nav__link">
<span class="md-ellipsis">
the --live command line option
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../developer/" class="md-nav__link">
<span class="md-ellipsis">
Contributors Guide
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#removed-features" class="md-nav__link">
<span class="md-ellipsis">
Removed features
</span>
</a>
<nav class="md-nav" aria-label="Removed features">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#the-refresh-pairs-cached-command-line-option" class="md-nav__link">
<span class="md-ellipsis">
the --refresh-pairs-cached command line option
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#the-dynamic-whitelist-command-line-option" class="md-nav__link">
<span class="md-ellipsis">
The --dynamic-whitelist command line option
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#the-live-command-line-option" class="md-nav__link">
<span class="md-ellipsis">
the --live command line option
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="deprecated-features">Deprecated features<a class="headerlink" href="#deprecated-features" title="Permanent link">&para;</a></h1>
<p>This page contains description of the command line arguments, configuration parameters
and the bot features that were declared as DEPRECATED by the bot development team
and are no longer supported. Please avoid their usage in your configuration.</p>
<h2 id="removed-features">Removed features<a class="headerlink" href="#removed-features" title="Permanent link">&para;</a></h2>
<h3 id="the-refresh-pairs-cached-command-line-option">the <code>--refresh-pairs-cached</code> command line option<a class="headerlink" href="#the-refresh-pairs-cached-command-line-option" title="Permanent link">&para;</a></h3>
<p><code>--refresh-pairs-cached</code> in the context of backtesting, hyperopt and edge allows to refresh candle data for backtesting.
Since this leads to much confusion, and slows down backtesting (while not being part of backtesting) this has been singled out
as a seperate freqtrade subcommand <code>freqtrade download-data</code>.</p>
<p>This command line option was deprecated in 2019.7-dev (develop branch) and removed in 2019.9 (master branch).</p>
<h3 id="the-dynamic-whitelist-command-line-option">The <strong>--dynamic-whitelist</strong> command line option<a class="headerlink" href="#the-dynamic-whitelist-command-line-option" title="Permanent link">&para;</a></h3>
<p>This command line option was deprecated in 2018 and removed freqtrade 2019.6-dev (develop branch)
and in freqtrade 2019.7 (master branch).</p>
<h3 id="the-live-command-line-option">the <code>--live</code> command line option<a class="headerlink" href="#the-live-command-line-option" title="Permanent link">&para;</a></h3>
<p><code>--live</code> in the context of backtesting allowed to download the latest tick data for backtesting.
Did only download the latest 500 candles, so was ineffective in getting good backtest data.
Removed in 2019-7-dev (develop branch) and in freqtrade 2019-8 (master branch)</p>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
<script src="../assets/javascripts/bundle.fe8b6f2b.min.js"></script>
</body>
</html>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More