Compare commits

...

550 Commits

Author SHA1 Message Date
Cryptoval Trading Technologies a53b8bbe38 20260623 2026-06-23 00:29:01 +00:00
Cryptoval Trading Technologies cfc9184ab2 20260604 2026-06-04 02:39:01 +00:00
Cryptoval Trading Technologies 423fc1290a 20260604 2026-06-04 00:27:01 +00:00
Cryptoval Trading Technologies cef10794ae 20260604 2026-06-04 00:26:01 +00:00
Cryptoval Trading Technologies 2b3fc2e9f7 20260603 2026-06-03 23:45:01 +00:00
Cryptoval Trading Technologies ff05b16b28 20260603 2026-06-03 23:42:01 +00:00
Cryptoval Trading Technologies 9be2378a67 20260602 2026-06-02 20:35:01 +00:00
Cryptoval Trading Technologies dfdb6fa062 20260602 2026-06-02 20:32:01 +00:00
Cryptoval Trading Technologies b430ce0168 20260602 2026-06-02 00:59:01 +00:00
Cryptoval Trading Technologies 9e8faa8c6b 20260602 2026-06-02 00:57:01 +00:00
Cryptoval Trading Technologies a99552e327 20260602 2026-06-02 00:56:01 +00:00
Cryptoval Trading Technologies cfccd4487d 20260602 2026-06-02 00:51:01 +00:00
Cryptoval Trading Technologies 0122bb0b23 20260602 2026-06-02 00:50:01 +00:00
Cryptoval Trading Technologies d4664dcccd 20260602 2026-06-02 00:27:01 +00:00
Cryptoval Trading Technologies 78e02fc50b 20260602 2026-06-02 00:26:01 +00:00
Cryptoval Trading Technologies 3d90bf9706 20260601 2026-06-01 20:28:01 +00:00
Cryptoval Trading Technologies 8f9bd63608 20260530 2026-05-30 01:59:01 +00:00
Cryptoval Trading Technologies 175120b243 20260530 2026-05-30 01:58:01 +00:00
Cryptoval Trading Technologies 32e7dc793d 20260530 2026-05-30 00:54:01 +00:00
Cryptoval Trading Technologies aa86af13b4 20260530 2026-05-30 00:53:01 +00:00
Cryptoval Trading Technologies 0e0fbb31a9 20260526 2026-05-26 21:51:01 +00:00
Cryptoval Trading Technologies 80e29056da 20260523 2026-05-23 00:11:01 +00:00
Cryptoval Trading Technologies 5c84c99cb9 20260522 2026-05-22 03:28:01 +00:00
Cryptoval Trading Technologies b0ef831e97 20260522 2026-05-22 03:27:01 +00:00
Cryptoval Trading Technologies 5be9bea25f 20260520 2026-05-20 19:39:01 +00:00
Cryptoval Trading Technologies 18a03b3708 20260519 2026-05-19 21:09:01 +00:00
Cryptoval Trading Technologies 19936b9514 20260517 2026-05-17 04:19:01 +00:00
Cryptoval Trading Technologies 1fe3a77b14 20260517 2026-05-17 03:18:01 +00:00
Cryptoval Trading Technologies 909411084d 20260517 2026-05-17 02:10:01 +00:00
Cryptoval Trading Technologies 0957250d05 20260516 2026-05-16 22:02:01 +00:00
Cryptoval Trading Technologies fcef747166 20260515 2026-05-15 20:59:01 +00:00
Cryptoval Trading Technologies f0216b64f7 20260515 2026-05-15 20:44:01 +00:00
Cryptoval Trading Technologies 83cd4355e9 20260515 2026-05-15 20:43:01 +00:00
Cryptoval Trading Technologies 8bd124d682 20260514 2026-05-14 18:59:01 +00:00
Cryptoval Trading Technologies 212f11b512 20260514 2026-05-14 18:58:01 +00:00
Cryptoval Trading Technologies 21a97b19e3 20260514 2026-05-14 01:41:01 +00:00
Cryptoval Trading Technologies 5c1a09fb13 20260513 2026-05-13 00:15:01 +00:00
Cryptoval Trading Technologies 2f51e4a39b 20260513 2026-05-13 00:14:01 +00:00
Cryptoval Trading Technologies f103e22f13 20260512 2026-05-12 18:37:01 +00:00
Cryptoval Trading Technologies 6998655781 20260512 2026-05-12 18:33:01 +00:00
Cryptoval Trading Technologies 65b1c0640d 20260512 2026-05-12 18:32:01 +00:00
Cryptoval Trading Technologies d7ca44567c 20260512 2026-05-12 18:31:01 +00:00
Cryptoval Trading Technologies 9d3354af1f 20260512 2026-05-12 18:02:01 +00:00
Cryptoval Trading Technologies dcec809ba1 20260512 2026-05-12 17:59:01 +00:00
Cryptoval Trading Technologies 26eafcd4bb 20260512 2026-05-12 17:58:01 +00:00
Cryptoval Trading Technologies 26cf52baca 20260512 2026-05-12 17:55:01 +00:00
Cryptoval Trading Technologies 48de845aaa 20260512 2026-05-12 03:28:01 +00:00
Cryptoval Trading Technologies 1f59c9514b 20260512 2026-05-12 02:48:01 +00:00
Cryptoval Trading Technologies 418782fc63 20260511 2026-05-11 21:00:01 +00:00
Cryptoval Trading Technologies c00955e29d 20260511 2026-05-11 20:59:01 +00:00
Cryptoval Trading Technologies 027819df65 20260511 2026-05-11 20:57:01 +00:00
Cryptoval Trading Technologies cf5a3b7806 20260511 2026-05-11 19:53:01 +00:00
Cryptoval Trading Technologies 03a455493a 20260511 2026-05-11 19:31:01 +00:00
Cryptoval Trading Technologies 9b4c463189 20260511 2026-05-11 19:26:01 +00:00
Cryptoval Trading Technologies 9bf524b0fa 20260510 2026-05-10 23:29:01 +00:00
Cryptoval Trading Technologies 755793c915 20260510 2026-05-10 23:28:01 +00:00
Cryptoval Trading Technologies df1e9977fc 20260510 2026-05-10 23:26:01 +00:00
Cryptoval Trading Technologies 7895841d34 20260510 2026-05-10 23:23:01 +00:00
Cryptoval Trading Technologies b779f76b5d 20260510 2026-05-10 23:18:01 +00:00
Cryptoval Trading Technologies e6712e1249 20260510 2026-05-10 23:16:01 +00:00
Cryptoval Trading Technologies 2e4b128f01 20260505 2026-05-05 18:24:01 +00:00
Cryptoval Trading Technologies 9a8d2719be 20260505 2026-05-05 18:23:01 +00:00
Cryptoval Trading Technologies f1cde6ec1c 20260501 2026-05-01 21:47:01 +00:00
Cryptoval Trading Technologies 7a76ed1f61 20260501 2026-05-01 21:46:01 +00:00
Cryptoval Trading Technologies 979d1ffe67 20260501 2026-05-01 21:45:01 +00:00
Cryptoval Trading Technologies fc5f8f1130 20260501 2026-05-01 21:44:01 +00:00
Cryptoval Trading Technologies 3c81e6ec6c 20260501 2026-05-01 21:43:01 +00:00
Cryptoval Trading Technologies 493bc729bd 20260501 2026-05-01 21:42:02 +00:00
Cryptoval Trading Technologies 3ba7970b14 20260501 2026-05-01 21:41:01 +00:00
Cryptoval Trading Technologies d9115fa899 20260501 2026-05-01 18:14:01 +00:00
Cryptoval Trading Technologies 2ebeb5e91a 20260501 2026-05-01 01:36:01 +00:00
Cryptoval Trading Technologies fd3b13a0ad 20260501 2026-05-01 01:35:01 +00:00
Cryptoval Trading Technologies 6bd24db80e 20260427 2026-04-27 21:44:01 +00:00
Cryptoval Trading Technologies 25602a5557 20260427 2026-04-27 21:43:02 +00:00
Cryptoval Trading Technologies e2215ba63f 20260426 2026-04-26 01:47:01 +00:00
Cryptoval Trading Technologies 0ab935ade5 20260426 2026-04-26 01:46:01 +00:00
Cryptoval Trading Technologies 3ad85603df 20260426 2026-04-26 01:45:01 +00:00
Cryptoval Trading Technologies 542e6ff93f 20260425 2026-04-25 22:28:01 +00:00
Cryptoval Trading Technologies 3766ef2ca4 20260425 2026-04-25 22:27:01 +00:00
Cryptoval Trading Technologies fd823f4a06 20260425 2026-04-25 22:26:01 +00:00
Cryptoval Trading Technologies 1123a84e81 20260423 2026-04-23 19:02:01 +00:00
Cryptoval Trading Technologies 13c1123075 20260423 2026-04-23 19:01:01 +00:00
Cryptoval Trading Technologies c62f36011f 20260423 2026-04-23 18:27:01 +00:00
Cryptoval Trading Technologies 0445202db2 20260423 2026-04-23 18:25:01 +00:00
Cryptoval Trading Technologies cdcd010287 20260423 2026-04-23 18:24:01 +00:00
Cryptoval Trading Technologies 83b5d36713 20260423 2026-04-23 18:21:01 +00:00
Cryptoval Trading Technologies cd6148ae67 20260423 2026-04-23 03:34:01 +00:00
Cryptoval Trading Technologies 920bb1e37b 20260423 2026-04-23 03:33:01 +00:00
Cryptoval Trading Technologies 7804352a3d 20260423 2026-04-23 03:31:01 +00:00
Cryptoval Trading Technologies ad604395cd 20260423 2026-04-23 03:30:01 +00:00
Cryptoval Trading Technologies bdea94022c 20260423 2026-04-23 03:27:01 +00:00
Cryptoval Trading Technologies f64555f0c0 20260423 2026-04-23 03:26:01 +00:00
Cryptoval Trading Technologies c36c872b4d 20260423 2026-04-23 03:17:01 +00:00
Cryptoval Trading Technologies 349b6cc233 20260423 2026-04-23 03:16:01 +00:00
Cryptoval Trading Technologies b8246205ec 20260423 2026-04-23 02:54:01 +00:00
Cryptoval Trading Technologies 5c88c15f65 20260421 2026-04-21 19:57:01 +00:00
Cryptoval Trading Technologies 6c6016b6dc 20260421 2026-04-21 19:56:01 +00:00
Cryptoval Trading Technologies 20199546d9 20260421 2026-04-21 19:31:01 +00:00
Cryptoval Trading Technologies 6927c07958 20260421 2026-04-21 18:40:01 +00:00
Cryptoval Trading Technologies 6fab5171ab 20260421 2026-04-21 18:37:01 +00:00
Cryptoval Trading Technologies fb8ea54d11 20260421 2026-04-21 18:36:01 +00:00
Cryptoval Trading Technologies d2437a982e 20260420 2026-04-20 22:44:01 +00:00
Cryptoval Trading Technologies 885cb2d764 20260420 2026-04-20 21:34:01 +00:00
Cryptoval Trading Technologies 74f9e30b00 20260420 2026-04-20 21:26:01 +00:00
Cryptoval Trading Technologies c1cc8c450a 20260420 2026-04-20 21:00:02 +00:00
Cryptoval Trading Technologies 0b86307903 20260420 2026-04-20 20:59:01 +00:00
Cryptoval Trading Technologies 403c97b1db 20260420 2026-04-20 20:57:01 +00:00
Cryptoval Trading Technologies 607f590c1b 20260420 2026-04-20 20:53:01 +00:00
Cryptoval Trading Technologies de13cbef0f 20260420 2026-04-20 00:00:01 +00:00
Cryptoval Trading Technologies 0c3ad5bb64 . 2026-04-17 22:21:23 +00:00
Cryptoval Trading Technologies 79a3fcc14b 20260417 2026-04-17 20:35:01 +00:00
Cryptoval Trading Technologies f58b5ee037 20260417 2026-04-17 20:34:01 +00:00
Cryptoval Trading Technologies d4810e6533 20260417 2026-04-17 20:29:01 +00:00
Cryptoval Trading Technologies 88471f7721 20260417 2026-04-17 19:10:01 +00:00
Cryptoval Trading Technologies dc65ce12a0 20260417 2026-04-17 19:08:01 +00:00
Cryptoval Trading Technologies ff39bcabf3 20260417 2026-04-17 19:07:01 +00:00
Cryptoval Trading Technologies affb77fcb8 20260417 2026-04-17 19:06:01 +00:00
Cryptoval Trading Technologies a4df2710d9 20260417 2026-04-17 19:03:01 +00:00
Cryptoval Trading Technologies 6775054da5 20260417 2026-04-17 19:02:01 +00:00
Cryptoval Trading Technologies b1aa63e56e 20260417 2026-04-17 19:01:01 +00:00
Cryptoval Trading Technologies d1a1c07ea6 20260417 2026-04-17 19:00:01 +00:00
Cryptoval Trading Technologies ce39ddefa8 20260415 2026-04-15 17:12:01 +00:00
Cryptoval Trading Technologies c15f495bd2 20260415 2026-04-15 17:08:01 +00:00
Cryptoval Trading Technologies 9ca46362f8 20260415 2026-04-15 17:06:01 +00:00
Cryptoval Trading Technologies c4cbe8a434 20260415 2026-04-15 17:05:01 +00:00
Cryptoval Trading Technologies 6e96103ff2 20260409 2026-04-09 01:44:01 +00:00
Cryptoval Trading Technologies 43bc6e1c38 20260409 2026-04-09 01:43:01 +00:00
Cryptoval Trading Technologies 6836d3317d 20260408 2026-04-08 23:33:01 +00:00
Cryptoval Trading Technologies 853a7cea90 20260408 2026-04-08 21:48:01 +00:00
Cryptoval Trading Technologies dab5c88c9a 20260408 2026-04-08 21:46:01 +00:00
Cryptoval Trading Technologies 259f4c818f 20260408 2026-04-08 18:06:01 +00:00
Cryptoval Trading Technologies 93e2773567 20260408 2026-04-08 18:05:01 +00:00
Cryptoval Trading Technologies 40de8db193 20260408 2026-04-08 17:59:01 +00:00
Cryptoval Trading Technologies b7510a4590 20260406 2026-04-06 17:35:01 +00:00
Cryptoval Trading Technologies 88091fb1d7 20260405 2026-04-05 22:49:01 +00:00
Cryptoval Trading Technologies 11bc3634e6 20260405 2026-04-05 22:48:01 +00:00
Cryptoval Trading Technologies bac0b204b1 20260405 2026-04-05 22:32:01 +00:00
Cryptoval Trading Technologies db8cbe3d74 20260405 2026-04-05 22:31:01 +00:00
Cryptoval Trading Technologies 556f252031 20260405 2026-04-05 20:44:01 +00:00
Cryptoval Trading Technologies 631d961064 20260405 2026-04-05 20:43:01 +00:00
Cryptoval Trading Technologies f8cc54d4ba 20260405 2026-04-05 20:42:01 +00:00
Cryptoval Trading Technologies 9c55a2d271 20260404 2026-04-04 18:22:01 +00:00
Cryptoval Trading Technologies f0f58340d1 20260404 2026-04-04 18:21:01 +00:00
Cryptoval Trading Technologies eaa25ad7c4 20260403 2026-04-03 19:06:01 +00:00
Cryptoval Trading Technologies 7cebeefdd0 20260403 2026-04-03 19:01:01 +00:00
Cryptoval Trading Technologies dc46fce8be 20260403 2026-04-03 18:10:01 +00:00
Cryptoval Trading Technologies 0a06ca677c . 2026-04-03 18:08:23 +00:00
Cryptoval Trading Technologies b20ae93eb0 sim config 2026-04-03 18:06:51 +00:00
Cryptoval Trading Technologies e73697d611 20260403 2026-04-03 17:18:01 +00:00
Cryptoval Trading Technologies eecc771f1c 20260403 2026-04-03 17:17:01 +00:00
Cryptoval Trading Technologies 2fd756db01 20260402 2026-04-02 18:32:01 +00:00
Cryptoval Trading Technologies d710888f80 20260402 2026-04-02 02:16:01 +00:00
Cryptoval Trading Technologies 5d246fb62f 20260402 2026-04-02 02:15:01 +00:00
Cryptoval Trading Technologies 965953fb93 20260402 2026-04-02 01:57:01 +00:00
Cryptoval Trading Technologies 6e4937d078 20260402 2026-04-02 01:50:01 +00:00
Cryptoval Trading Technologies a93b308ee1 20260402 2026-04-02 01:47:01 +00:00
Cryptoval Trading Technologies 64f9ecce0b 20260402 2026-04-02 01:43:01 +00:00
Cryptoval Trading Technologies 436de91453 20260402 2026-04-02 01:38:01 +00:00
Cryptoval Trading Technologies 81d234e4c1 20260402 2026-04-02 01:37:01 +00:00
Cryptoval Trading Technologies 1d0f1749f7 20260402 2026-04-02 01:28:01 +00:00
Cryptoval Trading Technologies 49ba28a2ef 20260402 2026-04-02 01:22:01 +00:00
Cryptoval Trading Technologies 280b42bf23 20260402 2026-04-02 01:21:01 +00:00
Cryptoval Trading Technologies f19ac24d52 20260402 2026-04-02 01:12:01 +00:00
Cryptoval Trading Technologies c6fa4bbc4b 20260402 2026-04-02 01:11:01 +00:00
Cryptoval Trading Technologies c04c574408 20260402 2026-04-02 01:10:01 +00:00
Cryptoval Trading Technologies 63049279c6 20260402 2026-04-02 00:57:01 +00:00
Cryptoval Trading Technologies 55f1806c02 20260402 2026-04-02 00:56:01 +00:00
Cryptoval Trading Technologies b50ea22bc4 20260402 2026-04-02 00:55:02 +00:00
Cryptoval Trading Technologies 7265c89edc 20260402 2026-04-02 00:54:01 +00:00
Cryptoval Trading Technologies 22e7f1366f 20260402 2026-04-02 00:53:01 +00:00
Cryptoval Trading Technologies fc73f204e1 20260402 2026-04-02 00:51:01 +00:00
Cryptoval Trading Technologies 87d6e21959 20260402 2026-04-02 00:50:01 +00:00
Cryptoval Trading Technologies dbda873b75 20260402 2026-04-02 00:49:01 +00:00
Cryptoval Trading Technologies 3773ef78e9 20260402 2026-04-02 00:48:01 +00:00
Cryptoval Trading Technologies 831f912146 20260402 2026-04-02 00:47:01 +00:00
Cryptoval Trading Technologies b5038118cc 20260402 2026-04-02 00:46:01 +00:00
Cryptoval Trading Technologies 96fa518223 20260402 2026-04-02 00:45:01 +00:00
Cryptoval Trading Technologies fec7143fe2 20260402 2026-04-02 00:41:01 +00:00
Cryptoval Trading Technologies a9bea8ac3f 20260402 2026-04-02 00:40:01 +00:00
Cryptoval Trading Technologies 9d03608dd6 20260402 2026-04-02 00:39:01 +00:00
Cryptoval Trading Technologies ca62fae1e8 20260402 2026-04-02 00:38:01 +00:00
Cryptoval Trading Technologies 5ac78da037 20260402 2026-04-02 00:37:01 +00:00
Cryptoval Trading Technologies bb354ae879 20260402 2026-04-02 00:36:01 +00:00
Cryptoval Trading Technologies 7cb2d2397a 20260402 2026-04-02 00:27:01 +00:00
Cryptoval Trading Technologies 72ad80a56c 20260327 2026-03-27 21:34:01 +00:00
Cryptoval Trading Technologies bde39fe8de 20260327 2026-03-27 21:33:01 +00:00
Cryptoval Trading Technologies f89a3771d3 20260327 2026-03-27 19:51:01 +00:00
Cryptoval Trading Technologies d1a575f15d 20260327 2026-03-27 19:50:01 +00:00
Cryptoval Trading Technologies 76a717362c 20260327 2026-03-27 16:28:01 +00:00
Cryptoval Trading Technologies 6e37330347 20260327 2026-03-27 16:23:01 +00:00
Cryptoval Trading Technologies a932d582b0 20260327 2026-03-27 02:06:01 +00:00
Cryptoval Trading Technologies 5a77f32ac0 20260327 2026-03-27 02:05:01 +00:00
Cryptoval Trading Technologies 919bf5b3d1 20260327 2026-03-27 02:04:01 +00:00
Cryptoval Trading Technologies 26ed26162d 20260327 2026-03-27 01:32:01 +00:00
Cryptoval Trading Technologies ee58c1491c 20260327 2026-03-27 01:31:01 +00:00
Cryptoval Trading Technologies 3d51bc2ede 20260327 2026-03-27 01:30:01 +00:00
Cryptoval Trading Technologies 4d3897ef3d 20260327 2026-03-27 01:29:01 +00:00
Cryptoval Trading Technologies 3c36085620 20260326 2026-03-26 20:25:01 +00:00
Cryptoval Trading Technologies 0ec2315950 20260326 2026-03-26 20:24:01 +00:00
Cryptoval Trading Technologies 5fba841645 20260326 2026-03-26 20:07:01 +00:00
Cryptoval Trading Technologies 6000990563 20260326 2026-03-26 20:06:01 +00:00
Cryptoval Trading Technologies bc0ae59f15 20260326 2026-03-26 03:12:01 +00:00
Cryptoval Trading Technologies 40e8d0dd0b 20260326 2026-03-26 03:11:01 +00:00
Cryptoval Trading Technologies c7c77d09ec 20260326 2026-03-26 03:10:01 +00:00
Cryptoval Trading Technologies 61a21d5b45 20260326 2026-03-26 03:05:01 +00:00
Cryptoval Trading Technologies d865d84a87 20260326 2026-03-26 03:02:01 +00:00
Cryptoval Trading Technologies 1e0db61b07 20260326 2026-03-26 02:47:01 +00:00
Cryptoval Trading Technologies 42639ba16e 20260326 2026-03-26 02:36:01 +00:00
Cryptoval Trading Technologies c8023d154e 20260326 2026-03-26 02:24:01 +00:00
Cryptoval Trading Technologies 2071f5b8b9 20260326 2026-03-26 02:23:01 +00:00
Cryptoval Trading Technologies 4617932f78 20260326 2026-03-26 02:22:01 +00:00
Cryptoval Trading Technologies 3f7222ecf9 20260326 2026-03-26 02:05:01 +00:00
Cryptoval Trading Technologies 409064e9d3 20260326 2026-03-26 01:51:01 +00:00
Cryptoval Trading Technologies 9717c4cfad 20260326 2026-03-26 01:48:01 +00:00
Cryptoval Trading Technologies e29069cdb3 20260326 2026-03-26 01:47:01 +00:00
Cryptoval Trading Technologies 45b9856967 20260324 2026-03-24 20:25:01 +00:00
Cryptoval Trading Technologies 547ddb3bd2 20260324 2026-03-24 20:24:01 +00:00
Cryptoval Trading Technologies 294d944f90 20260324 2026-03-24 20:23:01 +00:00
Cryptoval Trading Technologies 8dcc2070e0 20260324 2026-03-24 20:18:01 +00:00
Cryptoval Trading Technologies cf20a79755 20260324 2026-03-24 20:17:01 +00:00
Cryptoval Trading Technologies f1e5dbb355 20260324 2026-03-24 20:16:01 +00:00
Cryptoval Trading Technologies dd206be73f 20260324 2026-03-24 20:15:01 +00:00
Cryptoval Trading Technologies 0a9bdb806e 20260323 2026-03-23 20:01:01 +00:00
Cryptoval Trading Technologies fd83ca2c25 20260323 2026-03-23 20:00:01 +00:00
Cryptoval Trading Technologies 3320c37a7e 20260323 2026-03-23 19:59:01 +00:00
Cryptoval Trading Technologies 5a3ec67ed1 20260323 2026-03-23 17:55:01 +00:00
Cryptoval Trading Technologies 563eb80504 20260321 2026-03-21 23:44:01 +00:00
Cryptoval Trading Technologies 79b3ce6cc5 20260321 2026-03-21 23:43:01 +00:00
Cryptoval Trading Technologies 6b359dd4ee 20260321 2026-03-21 23:42:01 +00:00
Cryptoval Trading Technologies bb157ec31f 20260321 2026-03-21 23:41:01 +00:00
Cryptoval Trading Technologies 4a9fd6f37d 20260321 2026-03-21 23:40:01 +00:00
Cryptoval Trading Technologies b141e3bb47 20260321 2026-03-21 23:39:01 +00:00
Cryptoval Trading Technologies 38e75acdac 20260321 2026-03-21 23:38:01 +00:00
Cryptoval Trading Technologies f382a793be 20260320 2026-03-20 21:39:02 +00:00
Cryptoval Trading Technologies 731a70b700 20260320 2026-03-20 21:22:01 +00:00
Cryptoval Trading Technologies 8ef0e83e88 20260320 2026-03-20 21:21:01 +00:00
Cryptoval Trading Technologies c71449f500 20260320 2026-03-20 18:50:01 +00:00
Cryptoval Trading Technologies f62dc8fb90 20260320 2026-03-20 16:23:01 +00:00
Cryptoval Trading Technologies 68d80359ca 20260320 2026-03-20 16:22:01 +00:00
Cryptoval Trading Technologies 26e15b4f01 20260320 2026-03-20 16:21:01 +00:00
Cryptoval Trading Technologies 9e88596812 20260320 2026-03-20 16:17:01 +00:00
Cryptoval Trading Technologies d6d838b7b1 20260319 2026-03-19 21:09:01 +00:00
Cryptoval Trading Technologies 55b6e6484a 20260319 2026-03-19 21:08:01 +00:00
Cryptoval Trading Technologies 6c9385ec6a 20260319 2026-03-19 17:12:01 +00:00
Cryptoval Trading Technologies 8235f36d5d 20260319 2026-03-19 01:10:02 +00:00
Cryptoval Trading Technologies cad5a451cc 20260319 2026-03-19 00:58:01 +00:00
Cryptoval Trading Technologies 2119fe1633 20260319 2026-03-19 00:57:01 +00:00
Cryptoval Trading Technologies cd077e8b92 20260319 2026-03-19 00:56:01 +00:00
Cryptoval Trading Technologies 393985f7e6 20260319 2026-03-19 00:55:01 +00:00
Cryptoval Trading Technologies 992fac596c 20260319 2026-03-19 00:54:01 +00:00
Cryptoval Trading Technologies 19774c63c5 20260319 2026-03-19 00:53:01 +00:00
Cryptoval Trading Technologies 46018d204e 20260318 2026-03-18 23:45:01 +00:00
Cryptoval Trading Technologies 2b219be0d5 20260318 2026-03-18 23:44:01 +00:00
Cryptoval Trading Technologies 9b63d6f459 20260318 2026-03-18 23:43:01 +00:00
Cryptoval Trading Technologies 8261c01f98 20260318 2026-03-18 23:42:01 +00:00
Cryptoval Trading Technologies 6b1e9f162f 20260318 2026-03-18 19:22:01 +00:00
Cryptoval Trading Technologies efac824836 20260318 2026-03-18 19:21:01 +00:00
Cryptoval Trading Technologies 35a641c74e 20260318 2026-03-18 19:20:01 +00:00
Cryptoval Trading Technologies 70c55482ed 20260318 2026-03-18 19:19:01 +00:00
Cryptoval Trading Technologies cf1d5ecc3b 20260318 2026-03-18 19:18:01 +00:00
Cryptoval Trading Technologies a04939f839 20260318 2026-03-18 19:17:01 +00:00
Cryptoval Trading Technologies d72e9c6d69 20260318 2026-03-18 18:18:01 +00:00
Cryptoval Trading Technologies e00bf07a3b 20260318 2026-03-18 18:17:01 +00:00
Cryptoval Trading Technologies b741f14a58 20260318 2026-03-18 18:16:01 +00:00
Cryptoval Trading Technologies 707209b929 20260318 2026-03-18 16:41:01 +00:00
Cryptoval Trading Technologies d8b1e9bc91 20260318 2026-03-18 16:04:01 +00:00
Cryptoval Trading Technologies e9d1384c21 20260317 2026-03-17 22:01:01 +00:00
Cryptoval Trading Technologies e83a1988bf 20260317 2026-03-17 20:27:01 +00:00
Cryptoval Trading Technologies 5bb1f63704 20260317 2026-03-17 20:26:01 +00:00
Cryptoval Trading Technologies 546038864e 20260313 2026-03-13 18:10:01 +00:00
Cryptoval Trading Technologies 99b26cbd67 20260313 2026-03-13 15:46:01 +00:00
Cryptoval Trading Technologies 1853aafb1c 20260313 2026-03-13 15:45:01 +00:00
Cryptoval Trading Technologies faa4ec0d3c 20260313 2026-03-13 00:19:01 +00:00
Cryptoval Trading Technologies dbd9da9b1a 20260313 2026-03-13 00:18:01 +00:00
Cryptoval Trading Technologies c2cc714046 20260313 2026-03-13 00:16:01 +00:00
Cryptoval Trading Technologies 8af6536346 20260313 2026-03-13 00:15:01 +00:00
Cryptoval Trading Technologies eda2b8b150 20260312 2026-03-12 19:08:01 +00:00
Cryptoval Trading Technologies cdbecde1c3 20260312 2026-03-12 17:41:01 +00:00
Cryptoval Trading Technologies 6e60af48e9 20260312 2026-03-12 17:40:01 +00:00
Cryptoval Trading Technologies 8b2e84238f 20260312 2026-03-12 00:44:01 +00:00
Cryptoval Trading Technologies 7c4f549b20 20260312 2026-03-12 00:43:01 +00:00
Cryptoval Trading Technologies f8a42bec43 20260312 2026-03-12 00:42:01 +00:00
Cryptoval Trading Technologies 181385f512 20260312 2026-03-12 00:39:01 +00:00
Cryptoval Trading Technologies 755d0a1e80 20260312 2026-03-12 00:38:01 +00:00
Cryptoval Trading Technologies cf487995ca 20260312 2026-03-12 00:37:01 +00:00
Cryptoval Trading Technologies b2088de1d7 20260312 2026-03-12 00:31:01 +00:00
Cryptoval Trading Technologies 40ff529889 20260312 2026-03-12 00:30:01 +00:00
Cryptoval Trading Technologies 23a369aee7 20260312 2026-03-12 00:29:01 +00:00
Cryptoval Trading Technologies dd96d897ba 20260312 2026-03-12 00:26:01 +00:00
Cryptoval Trading Technologies 7e97aaa77c 20260312 2026-03-12 00:25:01 +00:00
Cryptoval Trading Technologies 13f8289de2 20260312 2026-03-12 00:24:02 +00:00
Cryptoval Trading Technologies 35d04fdd08 20260312 2026-03-12 00:23:01 +00:00
Cryptoval Trading Technologies 555cc40a77 20260312 2026-03-12 00:22:01 +00:00
Cryptoval Trading Technologies 247d60a7ea 20260312 2026-03-12 00:21:01 +00:00
Cryptoval Trading Technologies 98050e740b 20260312 2026-03-12 00:20:01 +00:00
Cryptoval Trading Technologies a5f0fe0c4b 20260312 2026-03-12 00:19:01 +00:00
Cryptoval Trading Technologies 9960cbfe26 20260312 2026-03-12 00:18:01 +00:00
Cryptoval Trading Technologies 11b09ef71a 20260312 2026-03-12 00:17:01 +00:00
Cryptoval Trading Technologies 8b08c14627 20260312 2026-03-12 00:16:02 +00:00
Cryptoval Trading Technologies 13b51900e9 20260311 2026-03-11 23:39:01 +00:00
Cryptoval Trading Technologies 4141e78d33 20260311 2026-03-11 23:38:01 +00:00
Cryptoval Trading Technologies acb130966f 20260311 2026-03-11 23:37:01 +00:00
Cryptoval Trading Technologies 3e78afe244 20260311 2026-03-11 23:36:01 +00:00
Cryptoval Trading Technologies 8809772ba5 20260311 2026-03-11 23:35:01 +00:00
Cryptoval Trading Technologies f901bde9d9 20260311 2026-03-11 23:34:01 +00:00
Cryptoval Trading Technologies bfa166f874 20260307 2026-03-07 08:38:01 +00:00
Cryptoval Trading Technologies 68858ffb57 20260221 2026-02-21 17:38:01 +00:00
Cryptoval Trading Technologies 31ca5e7a32 20260221 2026-02-21 17:37:01 +00:00
Cryptoval Trading Technologies e75912bf2b 20260221 2026-02-21 17:36:01 +00:00
Cryptoval Trading Technologies 116c56c622 20260221 2026-02-21 17:35:01 +00:00
Cryptoval Trading Technologies 4ab4207ca2 20260218 2026-02-18 22:51:01 +00:00
Cryptoval Trading Technologies a42865b119 20260218 2026-02-18 22:50:01 +00:00
Cryptoval Trading Technologies 4721d9ab71 20260218 2026-02-18 22:49:01 +00:00
Cryptoval Trading Technologies fd34f67abf 20260218 2026-02-18 22:48:01 +00:00
Cryptoval Trading Technologies 81e360b6a8 20260218 2026-02-18 22:47:01 +00:00
Cryptoval Trading Technologies 9a75264925 20260209 2026-02-09 20:41:01 +00:00
Cryptoval Trading Technologies 19d26dec4d 20260209 2026-02-09 20:40:01 +00:00
Cryptoval Trading Technologies 686ba904c8 20260209 2026-02-09 20:39:01 +00:00
Cryptoval Trading Technologies 274b71633b 20260209 2026-02-09 19:53:01 +00:00
Cryptoval Trading Technologies 44f32b839e 20260209 2026-02-09 18:48:01 +00:00
Cryptoval Trading Technologies f0501522a2 20260208 2026-02-08 00:00:01 +00:00
Cryptoval Trading Technologies 744959736f 20260207 2026-02-07 23:59:01 +00:00
Cryptoval Trading Technologies 685239fa8f 20260207 2026-02-07 23:48:01 +00:00
Cryptoval Trading Technologies 16549415b0 20260207 2026-02-07 23:47:01 +00:00
Cryptoval Trading Technologies 3aa9dd1bcf 20260207 2026-02-07 23:46:01 +00:00
Cryptoval Trading Technologies 8ab405f03d 20260203 2026-02-03 17:36:01 +00:00
Cryptoval Trading Technologies 48ba0fdefe 20260203 2026-02-03 17:33:01 +00:00
Cryptoval Trading Technologies c87d71bbda 20260203 2026-02-03 17:12:01 +00:00
Cryptoval Trading Technologies cf4e10b653 20260203 2026-02-03 17:11:01 +00:00
Cryptoval Trading Technologies d5cf22c77c 20260203 2026-02-03 03:06:01 +00:00
Cryptoval Trading Technologies 5c5c076a3b 20260203 2026-02-03 03:05:01 +00:00
Cryptoval Trading Technologies 3245f15b4f 20260129 2026-01-29 22:34:01 +00:00
Cryptoval Trading Technologies 63ff576d1e 20260129 2026-01-29 22:33:01 +00:00
Cryptoval Trading Technologies f0c90a9766 20260126 2026-01-26 23:00:01 +00:00
Cryptoval Trading Technologies 2a3ad605e6 20260126 2026-01-26 22:59:01 +00:00
Cryptoval Trading Technologies c8cd4ad1c0 20260126 2026-01-26 22:58:01 +00:00
Cryptoval Trading Technologies d5e67c33e0 20260126 2026-01-26 18:53:01 +00:00
Cryptoval Trading Technologies cef7fc759a 20260126 2026-01-26 18:28:01 +00:00
Cryptoval Trading Technologies d1035c4c8b 20260126 2026-01-26 18:21:01 +00:00
Cryptoval Trading Technologies 02e66cfa93 20260126 2026-01-26 18:20:01 +00:00
Cryptoval Trading Technologies 5174fbdc8e 20260124 2026-01-24 23:00:01 +00:00
Cryptoval Trading Technologies 78d62de236 20260124 2026-01-24 18:34:01 +00:00
Cryptoval Trading Technologies a77f9a34e9 20260124 2026-01-24 18:33:01 +00:00
Cryptoval Trading Technologies 9eef23ca71 20260124 2026-01-24 18:32:01 +00:00
Cryptoval Trading Technologies 11a81e5eb7 20260124 2026-01-24 18:31:01 +00:00
Cryptoval Trading Technologies 685051d9e1 20260124 2026-01-24 18:30:01 +00:00
Cryptoval Trading Technologies 6de3879c7a 20260124 2026-01-24 18:29:01 +00:00
Cryptoval Trading Technologies d2196799ac 20260124 2026-01-24 18:28:01 +00:00
Cryptoval Trading Technologies 211f2216ae 20260124 2026-01-24 18:27:01 +00:00
Cryptoval Trading Technologies 23e79d9df8 20260124 2026-01-24 18:26:01 +00:00
Cryptoval Trading Technologies f463590151 20260124 2026-01-24 18:25:01 +00:00
Cryptoval Trading Technologies 41508f0357 20260124 2026-01-24 18:24:01 +00:00
Cryptoval Trading Technologies c8383993ce 20260124 2026-01-24 18:23:01 +00:00
Cryptoval Trading Technologies 1e45b608a1 20260124 2026-01-24 18:22:01 +00:00
Cryptoval Trading Technologies c0f7f303da 20260124 2026-01-24 18:09:01 +00:00
Cryptoval Trading Technologies 70a7e299f2 20260124 2026-01-24 18:08:01 +00:00
Cryptoval Trading Technologies 02e6410240 20260124 2026-01-24 18:07:01 +00:00
Cryptoval Trading Technologies e87f2c3187 20260124 2026-01-24 18:06:01 +00:00
Cryptoval Trading Technologies f09a538843 20260124 2026-01-24 18:05:01 +00:00
Cryptoval Trading Technologies dee2c64700 20260124 2026-01-24 18:04:01 +00:00
Cryptoval Trading Technologies e02317908a 20260124 2026-01-24 18:03:01 +00:00
Cryptoval Trading Technologies 4258184245 20260124 2026-01-24 18:02:01 +00:00
Cryptoval Trading Technologies 0fa3515f2b 20260124 2026-01-24 18:01:01 +00:00
Cryptoval Trading Technologies c4640a7109 20260124 2026-01-24 17:59:01 +00:00
Cryptoval Trading Technologies a0add61e03 20260124 2026-01-24 17:58:01 +00:00
Cryptoval Trading Technologies e409e0a61d 20260124 2026-01-24 17:57:01 +00:00
Cryptoval Trading Technologies 1b40acc220 20260124 2026-01-24 17:56:01 +00:00
Cryptoval Trading Technologies 98c9fb1f9a 20260124 2026-01-24 17:55:01 +00:00
Cryptoval Trading Technologies bfc3a8f941 20260124 2026-01-24 17:54:01 +00:00
Cryptoval Trading Technologies 66a48cc710 20260124 2026-01-24 17:53:01 +00:00
Cryptoval Trading Technologies 460b618fae 20260124 2026-01-24 17:49:01 +00:00
Cryptoval Trading Technologies 06f2a13b1d 20260124 2026-01-24 17:48:01 +00:00
Cryptoval Trading Technologies c234702a8d 20260124 2026-01-24 17:47:01 +00:00
Cryptoval Trading Technologies 69e22b24e2 20260124 2026-01-24 00:17:01 +00:00
Cryptoval Trading Technologies 29ed21e193 20260124 2026-01-24 00:16:01 +00:00
Cryptoval Trading Technologies aeb7426ad0 20260124 2026-01-24 00:15:01 +00:00
Cryptoval Trading Technologies db8f735aa6 20260124 2026-01-24 00:14:01 +00:00
Cryptoval Trading Technologies 12285b8a8d 20260124 2026-01-24 00:13:01 +00:00
Cryptoval Trading Technologies 2776fc94f0 20260124 2026-01-24 00:12:01 +00:00
Cryptoval Trading Technologies 5d82f50ec0 20260124 2026-01-24 00:11:01 +00:00
Cryptoval Trading Technologies e6c0cbc03e 20260124 2026-01-24 00:10:01 +00:00
Cryptoval Trading Technologies 5a0f3ab0ac 20260124 2026-01-24 00:09:01 +00:00
Cryptoval Trading Technologies b91e149c07 20260124 2026-01-24 00:08:01 +00:00
Cryptoval Trading Technologies 9e1dd5c29c 20260124 2026-01-24 00:05:01 +00:00
Cryptoval Trading Technologies 5c77e7593f 20260124 2026-01-24 00:04:01 +00:00
Cryptoval Trading Technologies aa111d29d7 20260124 2026-01-24 00:03:01 +00:00
Cryptoval Trading Technologies 6cab5e8617 20260123 2026-01-23 23:50:01 +00:00
Cryptoval Trading Technologies cfe7556501 20260123 2026-01-23 23:49:01 +00:00
Cryptoval Trading Technologies 2e9a8148b4 20260123 2026-01-23 23:48:01 +00:00
Cryptoval Trading Technologies fa71461128 20260123 2026-01-23 23:47:01 +00:00
Cryptoval Trading Technologies eff9a4ea2f 20260123 2026-01-23 23:46:01 +00:00
Cryptoval Trading Technologies a597582ea8 20260123 2026-01-23 23:45:01 +00:00
Cryptoval Trading Technologies 3db3cf57f0 20260123 2026-01-23 23:44:01 +00:00
Cryptoval Trading Technologies 4acfe8bb41 20260123 2026-01-23 23:43:01 +00:00
Cryptoval Trading Technologies 4ec2df42f4 20260123 2026-01-23 23:42:01 +00:00
Cryptoval Trading Technologies 0cfeb4dc04 20260123 2026-01-23 22:32:01 +00:00
Cryptoval Trading Technologies e008d86b5f 20260123 2026-01-23 22:21:01 +00:00
Cryptoval Trading Technologies 1db1724010 20260123 2026-01-23 22:19:01 +00:00
Cryptoval Trading Technologies 228da4819d 20260123 2026-01-23 22:18:01 +00:00
Cryptoval Trading Technologies e988c410a6 20260123 2026-01-23 22:17:01 +00:00
Cryptoval Trading Technologies e620dca6de 20260123 2026-01-23 22:05:01 +00:00
Cryptoval Trading Technologies 91496c3f67 20260122 2026-01-22 21:22:01 +00:00
Cryptoval Trading Technologies e07d7ebba2 20260122 2026-01-22 20:34:01 +00:00
Cryptoval Trading Technologies f712b43ea0 20260121 2026-01-21 19:12:01 +00:00
Cryptoval Trading Technologies 3632d05c2f 20260121 2026-01-21 18:02:01 +00:00
Cryptoval Trading Technologies f19a46dd2d 20260121 2026-01-21 18:01:01 +00:00
Cryptoval Trading Technologies 5bcf5cd890 20260121 2026-01-21 18:00:01 +00:00
Cryptoval Trading Technologies 3ca18ecbcc 20260121 2026-01-21 17:59:01 +00:00
Cryptoval Trading Technologies f736fb40c0 20260121 2026-01-21 16:46:01 +00:00
Cryptoval Trading Technologies 9ea5410298 20260116 2026-01-16 16:29:01 +00:00
Cryptoval Trading Technologies 5787929846 20260116 2026-01-16 16:27:01 +00:00
Cryptoval Trading Technologies b26f5345e0 20260116 2026-01-16 16:26:01 +00:00
Cryptoval Trading Technologies 288287c0bc 20260116 2026-01-16 16:25:01 +00:00
Cryptoval Trading Technologies f630df7db4 20260116 2026-01-16 16:24:01 +00:00
Cryptoval Trading Technologies 90cac8c797 20260116 2026-01-16 16:23:01 +00:00
Cryptoval Trading Technologies dc0b14b490 20260116 2026-01-16 16:18:01 +00:00
Cryptoval Trading Technologies 2bf57ce6ec 20260116 2026-01-16 16:17:01 +00:00
Cryptoval Trading Technologies 41cd1750bb 20260113 2026-01-13 20:25:01 +00:00
Cryptoval Trading Technologies 9a4fe26335 20260112 2026-01-12 15:59:01 +00:00
Cryptoval Trading Technologies fa41082dcb 20260112 2026-01-12 15:57:01 +00:00
Cryptoval Trading Technologies 51c4973918 20260101 2026-01-01 18:11:01 +00:00
Cryptoval Trading Technologies 19237f4876 20251218 2025-12-18 21:35:01 +00:00
Cryptoval Trading Technologies 0572a592a9 20251218 2025-12-18 21:34:01 +00:00
Cryptoval Trading Technologies bdb714fbba 20251218 2025-12-18 21:33:01 +00:00
Cryptoval Trading Technologies 5d8e174d16 20251218 2025-12-18 21:32:01 +00:00
Cryptoval Trading Technologies e9bad38929 20251218 2025-12-18 21:13:01 +00:00
Cryptoval Trading Technologies c9b179bd0a 20251218 2025-12-18 21:12:01 +00:00
Cryptoval Trading Technologies b6d755cbd7 20251218 2025-12-18 21:11:01 +00:00
Cryptoval Trading Technologies 3002e5cd40 20251218 2025-12-18 21:08:01 +00:00
Cryptoval Trading Technologies 767741f068 20251218 2025-12-18 21:07:01 +00:00
Cryptoval Trading Technologies fff7295743 20251218 2025-12-18 20:57:01 +00:00
Cryptoval Trading Technologies e53bf00fad 20251217 2025-12-17 23:31:01 +00:00
Cryptoval Trading Technologies d0b91451fb 20251217 2025-12-17 23:30:01 +00:00
Cryptoval Trading Technologies 61b66c2151 20251209 2025-12-09 18:47:01 +00:00
Cryptoval Trading Technologies 725386272f 20251209 2025-12-09 18:28:01 +00:00
Cryptoval Trading Technologies aa0b29d1a8 20251209 2025-12-09 03:37:01 +00:00
Cryptoval Trading Technologies 3255a12fe6 20251209 2025-12-09 03:36:01 +00:00
Cryptoval Trading Technologies 8387afd0ae 20251209 2025-12-09 03:11:02 +00:00
Cryptoval Trading Technologies 99a4e1376c 20251209 2025-12-09 03:09:01 +00:00
Cryptoval Trading Technologies 81ed8c866a 20251209 2025-12-09 03:08:01 +00:00
Cryptoval Trading Technologies cced17f02a 20251209 2025-12-09 03:01:01 +00:00
Cryptoval Trading Technologies e128b2ca7d 20251209 2025-12-09 02:56:01 +00:00
Cryptoval Trading Technologies 3dbbf784be 20251209 2025-12-09 02:55:01 +00:00
Cryptoval Trading Technologies 976ce74667 20251209 2025-12-09 02:52:01 +00:00
Cryptoval Trading Technologies 4fdd2d81e5 20251209 2025-12-09 02:51:01 +00:00
Cryptoval Trading Technologies e89d748211 20251209 2025-12-09 02:50:01 +00:00
Cryptoval Trading Technologies da804410ca 20251209 2025-12-09 02:49:01 +00:00
Cryptoval Trading Technologies 4ff6597d94 20251209 2025-12-09 02:48:01 +00:00
Cryptoval Trading Technologies 191c9666c4 20251209 2025-12-09 02:47:01 +00:00
Cryptoval Trading Technologies 87ccaebeca 20251209 2025-12-09 02:46:01 +00:00
Cryptoval Trading Technologies a6a373eb76 20251209 2025-12-09 02:45:01 +00:00
Cryptoval Trading Technologies a6825406a4 20251209 2025-12-09 02:44:01 +00:00
Cryptoval Trading Technologies 9b977ccd57 20251209 2025-12-09 02:43:01 +00:00
Cryptoval Trading Technologies 9148f23a75 20251209 2025-12-09 02:42:01 +00:00
Cryptoval Trading Technologies ac4b047054 20251209 2025-12-09 02:41:01 +00:00
Cryptoval Trading Technologies 6c8ba5fe79 20251209 2025-12-09 02:40:01 +00:00
Cryptoval Trading Technologies be298b72d8 20251209 2025-12-09 02:39:01 +00:00
Cryptoval Trading Technologies 5dead13487 20251209 2025-12-09 02:38:01 +00:00
Cryptoval Trading Technologies 2cbbc5c0fb 20251208 2025-12-08 22:37:01 +00:00
Cryptoval Trading Technologies 1b101615b8 20251208 2025-12-08 22:36:01 +00:00
Cryptoval Trading Technologies e910ec3e2c 20251208 2025-12-08 22:35:01 +00:00
Cryptoval Trading Technologies de68ccd176 20251208 2025-12-08 22:34:01 +00:00
Cryptoval Trading Technologies 46f824eed2 20251208 2025-12-08 22:33:01 +00:00
Cryptoval Trading Technologies b3f6cb5968 20251208 2025-12-08 22:32:01 +00:00
Cryptoval Trading Technologies 0be6be6812 20251208 2025-12-08 22:31:01 +00:00
Cryptoval Trading Technologies 2e8be6c6b6 20251208 2025-12-08 22:20:01 +00:00
Cryptoval Trading Technologies 353dc50ec8 20251208 2025-12-08 22:19:02 +00:00
Cryptoval Trading Technologies dae3c0984c 20251208 2025-12-08 22:13:01 +00:00
Cryptoval Trading Technologies b23d92ad44 20251208 2025-12-08 22:11:02 +00:00
Cryptoval Trading Technologies a27876287e 20251208 2025-12-08 22:10:01 +00:00
Cryptoval Trading Technologies bb8d36dc10 20251208 2025-12-08 22:08:01 +00:00
Cryptoval Trading Technologies 45e7021152 20251208 2025-12-08 21:54:01 +00:00
Cryptoval Trading Technologies ce740d1d7d 20251208 2025-12-08 21:53:01 +00:00
Cryptoval Trading Technologies b4e8d3bba4 20251208 2025-12-08 21:33:01 +00:00
Cryptoval Trading Technologies 7ad83f2ee3 20251208 2025-12-08 21:32:01 +00:00
Cryptoval Trading Technologies 3ddd2d1806 20251208 2025-12-08 21:31:01 +00:00
Cryptoval Trading Technologies 18087c11cf 20251205 2025-12-05 21:49:01 +00:00
Cryptoval Trading Technologies 9175b62752 20251205 2025-12-05 21:48:01 +00:00
Cryptoval Trading Technologies 1f7f7cc77c 20251205 2025-12-05 21:47:01 +00:00
Cryptoval Trading Technologies 6d822203ef 20251205 2025-12-05 21:46:01 +00:00
Cryptoval Trading Technologies e03ab00b2f 20251205 2025-12-05 21:45:01 +00:00
Cryptoval Trading Technologies bcba3cf87f 20251205 2025-12-05 21:44:01 +00:00
Cryptoval Trading Technologies 677bd3fc50 20251205 2025-12-05 21:42:01 +00:00
Cryptoval Trading Technologies e2a123bcc9 20251205 2025-12-05 19:12:01 +00:00
Cryptoval Trading Technologies 1373c67aad 20251205 2025-12-05 19:11:01 +00:00
Cryptoval Trading Technologies 758e46f59d 20251205 2025-12-05 17:26:01 +00:00
Cryptoval Trading Technologies c3f9b71f3c 20251205 2025-12-05 17:10:01 +00:00
Cryptoval Trading Technologies f8d6b00d92 20251205 2025-12-05 02:41:01 +00:00
Cryptoval Trading Technologies 05b475d2a6 20251205 2025-12-05 02:40:01 +00:00
Cryptoval Trading Technologies 912ee2fb2e 20251205 2025-12-05 02:35:02 +00:00
Cryptoval Trading Technologies 04878ebacc 20251205 2025-12-05 02:34:01 +00:00
Cryptoval Trading Technologies aff69f1539 20251205 2025-12-05 02:32:01 +00:00
Cryptoval Trading Technologies fc8019ca8a 20251205 2025-12-05 02:31:01 +00:00
Cryptoval Trading Technologies 7a12c09e9b 20251205 2025-12-05 02:30:01 +00:00
Cryptoval Trading Technologies c8b85456f5 20251204 2025-12-04 23:58:01 +00:00
Cryptoval Trading Technologies 244667f280 20251204 2025-12-04 23:57:01 +00:00
Cryptoval Trading Technologies c7cd78e7cb 20251204 2025-12-04 23:56:01 +00:00
Cryptoval Trading Technologies 80ce6ca4d0 20251204 2025-12-04 23:50:02 +00:00
Cryptoval Trading Technologies a03e80861c 20251204 2025-12-04 23:44:01 +00:00
Cryptoval Trading Technologies b42ce5c74b 20251204 2025-12-04 23:43:01 +00:00
Cryptoval Trading Technologies 6f020ba5a8 20251204 2025-12-04 23:42:01 +00:00
Cryptoval Trading Technologies 6518ff1e04 20251204 2025-12-04 23:41:01 +00:00
Cryptoval Trading Technologies 890e6871f5 20251204 2025-12-04 23:40:01 +00:00
Cryptoval Trading Technologies 7d908572e4 20251204 2025-12-04 23:39:01 +00:00
Cryptoval Trading Technologies 765e168d45 20251204 2025-12-04 23:38:01 +00:00
Cryptoval Trading Technologies a346520e62 20251204 2025-12-04 23:37:01 +00:00
Cryptoval Trading Technologies 731ab6d60d 20251204 2025-12-04 23:36:01 +00:00
Cryptoval Trading Technologies 8fa13b32de 20251203 2025-12-03 19:28:01 +00:00
Cryptoval Trading Technologies 9d947bf11e 20251203 2025-12-03 19:27:01 +00:00
Cryptoval Trading Technologies 9fe83ff479 20251202 2025-12-02 17:18:01 +00:00
Cryptoval Trading Technologies 1cfc3c558f 20251202 2025-12-02 17:17:01 +00:00
Cryptoval Trading Technologies 4a36924ee3 20251202 2025-12-02 17:16:01 +00:00
Cryptoval Trading Technologies fb657505df 20251202 2025-12-02 17:15:01 +00:00
Cryptoval Trading Technologies 65a65e26f1 20251202 2025-12-02 17:14:01 +00:00
Cryptoval Trading Technologies 2823439a17 20251202 2025-12-02 17:13:01 +00:00
Cryptoval Trading Technologies 05fb99b414 20251202 2025-12-02 17:12:01 +00:00
Cryptoval Trading Technologies 4560a37ea3 20251202 2025-12-02 17:11:01 +00:00
Cryptoval Trading Technologies c023217e13 20251202 2025-12-02 17:09:01 +00:00
Cryptoval Trading Technologies 9ee7640386 20251202 2025-12-02 17:08:01 +00:00
Cryptoval Trading Technologies d22b1d12af 20251202 2025-12-02 17:07:01 +00:00
Cryptoval Trading Technologies a59029831a 20251202 2025-12-02 17:06:01 +00:00
Cryptoval Trading Technologies ec1afdf6f2 20251202 2025-12-02 17:04:01 +00:00
Cryptoval Trading Technologies f1648818e6 20251202 2025-12-02 17:03:01 +00:00
Cryptoval Trading Technologies d100780f16 20251202 2025-12-02 17:02:01 +00:00
Cryptoval Trading Technologies ebc9569fa8 20251201 2025-12-01 18:50:01 +00:00
Cryptoval Trading Technologies 79c4b9a19d 20251126 2025-11-26 18:11:01 +00:00
Cryptoval Trading Technologies 9b8ebac9a1 20251126 2025-11-26 18:10:01 +00:00
Cryptoval Trading Technologies 2430ff0fe0 20251126 2025-11-26 18:09:01 +00:00
Cryptoval Trading Technologies 93c0e5bb55 20251122 2025-11-22 01:54:01 +00:00
Cryptoval Trading Technologies c2b70c3ae5 20251122 2025-11-22 01:50:01 +00:00
Cryptoval Trading Technologies 0eb0f63f5b 20251122 2025-11-22 01:48:01 +00:00
Cryptoval Trading Technologies 178b601842 20251122 2025-11-22 01:47:01 +00:00
Cryptoval Trading Technologies 43eaee4ffb 20251122 2025-11-22 01:46:01 +00:00
Cryptoval Trading Technologies ca480015ea 20251119 2025-11-19 23:02:01 +00:00
Cryptoval Trading Technologies 60b30ab7d3 20251119 2025-11-19 23:01:01 +00:00
Cryptoval Trading Technologies daa2e7db7a 20251119 2025-11-19 21:20:01 +00:00
Cryptoval Trading Technologies d72fc523e5 20251119 2025-11-19 20:52:01 +00:00
Cryptoval Trading Technologies c61186eb41 20251119 2025-11-19 20:51:01 +00:00
Cryptoval Trading Technologies 94fdd1d337 20251119 2025-11-19 20:50:01 +00:00
Cryptoval Trading Technologies 8a0dff7226 20251119 2025-11-19 20:49:01 +00:00
Cryptoval Trading Technologies 05be8c7b96 20251119 2025-11-19 20:48:01 +00:00
Cryptoval Trading Technologies c2f5d25402 20251119 2025-11-19 20:47:01 +00:00
Cryptoval Trading Technologies b2dcdd0971 20251108 2025-11-08 22:30:02 +00:00
Cryptoval Trading Technologies a799555b54 20251024 2025-10-24 17:33:01 +00:00
Cryptoval Trading Technologies fab2765f18 20251024 2025-10-24 17:32:01 +00:00
Cryptoval Trading Technologies ba09d897a6 20251024 2025-10-24 17:31:01 +00:00
Cryptoval Trading Technologies 11a650770e 20251024 2025-10-24 17:30:01 +00:00
Cryptoval Trading Technologies 84b24c8a55 20251023 2025-10-23 19:30:01 +00:00
Cryptoval Trading Technologies 1aa24bbcfb 20251023 2025-10-23 19:29:01 +00:00
Cryptoval Trading Technologies 5798005c14 20251023 2025-10-23 19:20:01 +00:00
49 changed files with 2800 additions and 2899 deletions
+2
View File
@@ -1 +1,3 @@
.vscode .vscode
tmp/
__DEPRECATED__/
+6 -1
View File
@@ -3,5 +3,10 @@
{ {
"path": "." "path": "."
} }
] ],
"settings": {
"editor.detectIndentation": false,
"editor.tabSize": 4,
"editor.insertSpaces": true
}
} }
+1
View File
@@ -0,0 +1 @@
dist.json.cfg - MUST BE STRICT JSON: no comments, macros, etc.
+10 -37
View File
@@ -7,11 +7,11 @@
{ {
"cvtt.vpn": { "cvtt.vpn": {
// ----------- C l o u d // ----------- C l o u d
"cloud11": { # "cloud11": {
"type": "cloud", # "type": "cloud",
"users": ["oleg", "cvtt"], # "users": ["oleg", "cvtt"],
"docker": "true", # "docker": "true",
}, # },
"cloud15": { "cloud15": {
"type": "cloud", "type": "cloud",
"users": ["oleg"], "users": ["oleg"],
@@ -27,11 +27,6 @@
"users": ["oleg", "cvtt", "cvttdist", "git"], "users": ["oleg", "cvtt", "cvttdist", "git"],
"docker": "true", "docker": "true",
}, },
"cloud22": {
"type": "cloud",
"users": ["oleg"],
"docker": "false",
},
"cloud23": { "cloud23": {
"type": "cloud", "type": "cloud",
"users": ["oleg", "cvtt"], "users": ["oleg", "cvtt"],
@@ -57,6 +52,11 @@
"users": ["oleg", "cvtt"], "users": ["oleg", "cvtt"],
"docker": "true", "docker": "true",
}, },
"cloud32": {
"type": "cloud",
"users": ["oleg"],
"docker": "false",
},
// ----------- B a r e M e t a l // ----------- B a r e M e t a l
"hs01": { "hs01": {
@@ -114,30 +114,11 @@
}, },
// -- Headless // -- Headless
# "cvtt-build": {
# "type": "vm",
# "users": ["oleg"],
# "docker": "true",
# "to_check": "No",
# },
"cvtt-md": { "cvtt-md": {
"type": "vm", "type": "vm",
"users": ["oleg", "cvtt"], "users": ["oleg", "cvtt"],
"docker": "true", "docker": "true",
}, },
# "cvtt-testserver": {
# "type": "vm",
# "users": ["oleg", "cvtt"],
# "docker": "true",
# "to_check": "No",
# },
# "cvtt-testdb": {
# "type": "vm",
# "users": ["oleg", "cvtt"],
# "docker": "true",
# "to_check": "false",
# "timeout_sec": 11,
# },
"ops-server": { "ops-server": {
"type": "vm", "type": "vm",
"users": ["oleg", "cvtt"], "users": ["oleg", "cvtt"],
@@ -156,13 +137,5 @@
"to_check": "Yes", "to_check": "Yes",
}, },
}, },
"cryptovaltrading.com": {
"cloud18": {
"users": ["oleg"],
"type": "cloud",
"ssh_port": 7822,
},
},
} }
+7 -7
View File
@@ -2,7 +2,7 @@
"Mattermost": { "Mattermost": {
"to_check": "Yes", "to_check": "Yes",
"protocol": "https", "protocol": "https",
"host": "mattermost.cryptovaltrading.com", "host": "mattermost.cvtt.net",
"port": 443 "port": 443
}, },
"Gitea": { "Gitea": {
@@ -45,12 +45,12 @@
"host": "trading-calendar.cvtt.net", "host": "trading-calendar.cvtt.net",
"port": 443 "port": 443
}, },
"US EQTY Rel.Liquidity": { # "US EQTY Rel.Liquidity": {
"to_check": "Yes", # "to_check": "Yes",
"protocol": "http", # "protocol": "http",
"host": "cloud23.cvtt.vpn", # "host": "cloud23.cvtt.vpn",
"port": 5678 # "port": 5678
}, # },
# "PyTorch (Jupyter)": { # "PyTorch (Jupyter)": {
# "to_check": "No", # "to_check": "No",
# "protocol": "http", # "protocol": "http",
+61
View File
@@ -0,0 +1,61 @@
{
"cvttpy_tools": {
"dist_root": "/home/cvttdist/software/cvtt2",
"dist_user": "cvttdist",
"dist_locations": [
"cloud21.cvtt.vpn:22",
"hpbs01.cvtt.vpn:22"
]
},
"cvttpy_trading": {
"dist_root": "/home/cvttdist/software/cvtt2",
"dist_user": "cvttdist",
"dist_locations": [
"cloud21.cvtt.vpn:22",
"hpbs01.cvtt.vpn:22"
],
"dependencies": [
"cvttpy_tools"
]
},
"cvttpy_apps": {
"dist_root": "/home/cvttdist/software/cvtt2",
"dist_user": "cvttdist",
"dist_locations": [
"cloud21.cvtt.vpn:22",
"hpbs01.cvtt.vpn:22"
],
"dependencies": [
"cvttpy_tools",
"cvttpy_trading"
]
},
"cvttpy_microservices": {
"dist_root": "/home/cvttdist/software/cvtt2",
"dist_user": "cvttdist",
"dist_locations": [
"cloud21.cvtt.vpn:22",
"hpbs01.cvtt.vpn:22"
],
"dependencies": [
"cvttpy_tools",
"cvttpy_trading"
]
},
"cvtt_docker": {
"dist_root": "/home/cvttdist/software/cvtt2",
"dist_user": "cvttdist",
"dist_locations": [
"cloud21.cvtt.vpn:22",
"hpbs01.cvtt.vpn:22"
]
},
"cvtt_dashboard": {
"dist_root": "/home/cvttdist/software/cvtt2",
"dist_user": "cvttdist",
"dist_locations": [
"cloud21.cvtt.vpn:22",
"hpbs01.cvtt.vpn:22"
]
}
}
@@ -1,32 +0,0 @@
{
"CVTT_QST001": {
"class": "cvttpy.trading.strategies.test_strat.SeesawTestStrategy"
, "params": {
"dummy": "dummy"
}
}
, "VWAP001": {
"class": "cvttpy.trading.strategies.vwap_strat.VWAP001"
, "params": {
"vwap_interval": "1 hour"
, "hist_md_source": {
"loader_class": "cvttpy.research.time_series.loaders.tsdb_loader.TsMdLoader"
, "credentials_key": "TSDB_MD_CVTTDATA_RO"
, "interval": "2 hours"
#, "from_time" is calculated
}
}
}
, "DAILY_STOCK_001": {
"class": "cvttpy.trading.strategies.daily_stocks_strat.DailyStocksStrategy"
, "params": {
"liquidate_at": "15:45" # EDT Time
}
}
, "MAN-TPOS-BY-REDIS": {
"class": "cvttpy.trading.strategies.manual_strat.TgtPosByRedisStrategy"
, "params": {
"redis_subject": "MAN_TGT_POS"
}
}
}
@@ -1,10 +0,0 @@
{
"ALPACA_SNDBX": {
"dynamic_stock_list": {
"exchange_id": "ALPACA"
, "list_source": "redis"
, "comm_settings": "/comm/pubsub/redis/cvtt-prod-eqty-01"
, "redis_key": "DAY_STOCK_LIST"
}
}
}
-251
View File
@@ -1,251 +0,0 @@
@var ResultPath=/tmp
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "comm_settings": "/comm/pubsub/redis/cloud17"
# , "cvttcomm": {
# "type": "redis"
# # , "comm_settings": "/comm/pubsub/redis/localhost"
# , "comm_settings": "/comm/pubsub/redis/cloud17"
# }
, "session_type": "PERMANENT"
, "books": {
"CVTT_BK01": {}
}
###### N E W S E C T I O N (example)
, "simulation": {
"speed_factor": 0.0,
"time_events_interval_ms": 100
}
, "market_simulator" : {
"market_data": {
"sources": [
{
"loader_class": "cvttpy.research.time_series.loaders.tsdb_loader.TimescaleTSLoader"
, "credentials_key": "TSDB_MD_CVTTDATA_RO"
# , "interval": "4 hours"
, "interval": "2 hours"
, "from_time": "2024-04-15 09:00:00"
}
# , {
# "loader_class": "cvttpy.research.time_series.loaders.sqlite_loader.SqliteMdLoader",
# "file_name": "${SourcePath}/20240424.ALPACA.QAT.db"
# }
]
}
, "accounting": {
"initial_positions": {
"COINBASE": {
"BTC": 0
, "USD": 1000.0
}
}
}
, "order_entry": {
"execution": {
"top_only": true
,"min_order_age_sec": 0.1
, "pricing_method": "BY_MKT_TRD_PRICE_BY_ORDER"
# , "presubscribe_md_types": ["BOOK_TOP", "TRADES"]
}
}
}
###### N E W S E C T I O N - end
, "backtest": {
"exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
}
,"order_entry": {
"enabled": true
, "streaming": true
}
,"accounting": {
"enabled": true
, "streaming": false
}
}
}
, "source": {
"database": {
"class": "cvttpy.tools.db.timescale.tsdb_client.TimescaleDbClient"
, "credentials_key": "TSDB_MD_CVTTDATA_RO"
}
# , "interval": "4 hours"
, "interval": "6 hours"
, "from_time": "2024-04-01 09:00:00"
}
, "initial_positions": {
"COINBASE": {
"BTC": 0
, "USD": 1000.0
}
}
, "simulation": {
"speed_factor": 0.0
}
, "execution": {
"top_only": true
,"min_order_age_sec": 0.1
, "pricing_method": "BY_MKT_TRD_PRICE_BY_ORDER"
# , "presubscribe_md_types": ["BOOK_TOP", "TRADES"]
}
, "result": {
"repository": "${ResultPath}/backtest_results.json"
, "db_file": "${ResultPath}/%T.backtest.db"
}
}
# --------------------------------------------------------------------
, "trader": {
"app_channel": "TRDR" active_exchanges_: str
, "is_short_allowed": false
, "exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": true
, "streaming": true
},
}
}
, "algos": {
"TRDALGO_001": {
"class": "cvttpy.trading.algos.simple.SimpleTradingAlgo"
, "params": {}
}
, "TRDALGO_MOOMOC_01": {
"class": "cvttpy.trading.algos.moo_moc.MooMocTradingAlgo"
, "params": {
},
}
, "TRDALGO_TWAP01": {
"class": "cvttpy.trading.algos.twap.BasicTwapAlgo"
, "params": {
"num_slices": 5
, "duration_sec": 1500 # 25 min
, "max_order_usd": 100
, "passive_stage_t1": 0.4 # join BBO, the rest is aggressive
, "aggressive_stage_t2": 0.4
, "aggressivity_scale": [0.5, 1.0] # 0.5 = mid, 1.0= BBO-1 tick
, "marketable_stage_added_ticks": 0
},
}
, "TRDALGO_ICEBERG01": {
"class": "cvttpy.trading.algos.twap.BasicTwapAlgo"
, "params": {
"num_slices": 5
, "duration_sec": 1500 # 25 min
, "max_order_usd": 100
, "passive_stage_t1": 0
, "aggressive_stage_t2": 0
, "aggressivity_scale": [0.5, 1.0] # 0.5 = mid, 1.0= BBO-1 tick
, "marketable_stage_added_ticks": 0
},
}
}
, "trading_pos_diff_pct_trigger": 10.0
, "trading_depth": {
"BTC": 0.001
# "BTC": 0.1
}
}
# --------------------------------------------------------------------
"executor": {
"app_channel": "EXEC"
, "exchanges_settings": {
"COINBASE_AT": {
"order_entry": {
"enabled": true
, "streaming": true
},
"mkt_data": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
}
, "credentials_key": {
"read_only": "COINBASE_ADV_RO"
, "trade": "COINBASE_ADV_TRD"
}
}
}
}
# --------------------------------------------------------------------
, "quant": {
"app_channel": "QUANT"
, "strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/strategies
, "exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": true
, "streaming": true
},
}
}
}
# --------------------------------------------------------------------
, "risk_manager": {
"app_channel": "RMGR"
, "books": {
"CVTT_BK01": {}
}
, "db": {
"positions_table": "prod.cvtt_positions"
, "cred_key": {
"write": "TSDB_TRD_CVTTDATA"
, "read_only": "TSDB_TRD_CVTTDATA"
}
}
, "positions": {
"load_interval_sec": 10.0
, "to_store_zero_positions": false
, "to_save_unchanged_positions": false
}
, "publish_value_interval": 10.0
, "exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": true
, "streaming": false
}
, "credentials_key": {
"trade": "COINBASE_ADV"
, "read_only": "COINBASE_ADV_RO"
}
}
}
}
, "trading_recorder": {
# "format": "CSV"
# "format": "TSDB"
"format": "SQLite"
, "csv_settings": {
"order_events_file_path": "%T.order_events.csv"
"position_events_file_path": "%T.position_events.csv"
}
, "tsdb_settings": {
"db": {
"class": "cvttpy.tools.db.timescale.tsdb_client.TimescaleDbClient"
, "cred_key": "TSDB_TRD_CVTTDATA_DB_TEST"
}
, "order_events_table": "backtest.trading_orders"
, "trade_events_table": "backtest.trading_trades"
, "trading_md_summary_table": "backtest.trading_md"
}
, "sqlite_settings": {
# "file_name": "/tmp/%T.cvtt_backtest.db"
"file_name": "/tmp/cvtt_backtest.db"
}
}
}
@@ -1,214 +0,0 @@
@var ResultPath=/tmp
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "comm_settings": "/comm/pubsub/redis/cloud17"
# , "cvttcomm": {
# "type": "redis"
# }
, "session_type": "PERMANENT"
, "books": {
"CVTT_BK01": {}
}
###### N E W S E C T I O N (example)
, "simulation": {
"speed_factor": 0.0,
"time_events_interval_ms": 100
}
, "market_simulator" : {
"market_data": {
"sources": [
{
"loader_class": "cvttpy.research.time_series.loaders.tsdb_loader.TimescaleTSLoader"
, "credentials_key": "TSDB_MD_CVTTDATA_RO"
# , "interval": "4 hours"
, "interval": "2 hours"
, "from_time": "2024-04-15 09:00:00"
}
# , {
# "loader_class": "cvttpy.research.time_series.loaders.sqlite_loader.SqliteMdLoader",
# "file_name": "${SourcePath}/20240424.ALPACA.QAT.db"
# }
]
}
, "accounting": {
"initial_positions": {
"COINBASE": {
"BTC": 0
, "USD": 1000.0
}
}
}
, "order_entry": {
"execution": {
"top_only": true
,"min_order_age_sec": 0.1
, "pricing_method": "BY_MKT_TRD_PRICE_BY_ORDER"
# , "presubscribe_md_types": ["BOOK_TOP", "TRADES"]
}
}
}
###### N E W S E C T I O N - end
, "backtest": {
"exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
}
,"order_entry": {
"enabled": true
, "streaming": true
}
,"accounting": {
"enabled": true
, "streaming": false
}
}
}
, "source": {
"loader_class": "cvttpy.research.time_series.loaders.tsdb_loader.TimescaleTSLoader"
, "credentials_key": "TSDB_MD_CVTTDATA_RO"
# , "interval": "4 hours"
, "interval": "2 hours"
, "from_time": "2024-04-15 09:00:00"
}
, "initial_positions": {
"COINBASE": {
"BTC": 0
, "USD": 1000.0
}
}
, "simulation": {
"speed_factor": 0.0
}
, "execution": {
"top_only": true
,"min_order_age_sec": 0.1
, "pricing_method": "BY_MKT_TRD_PRICE_BY_ORDER"
# , "presubscribe_md_types": ["BOOK_TOP", "TRADES"]
}
, "result": {
"repository": "${ResultPath}/backtest_results.json"
, "db_file": "${ResultPath}/%T.backtest.db"
}
}
# --------------------------------------------------------------------
, "trader": {
"app_channel": "TRDR" active_exchanges_: str
, "is_short_allowed": false
, "exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": true
, "streaming": true
},
}
}
, "algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos
, "trading_pos_diff_pct_trigger": 10.0
, "trading_depth": {
"BTC": 0.001
# "BTC": 0.1
}
}
# --------------------------------------------------------------------
"executor": {
"app_channel": "EXEC"
, "exchanges_settings": {
"COINBASE_AT": {
"order_entry": {
"enabled": true
, "streaming": true
},
"mkt_data": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
}
, "credentials_key": {
"read_only": "COINBASE_ADV_RO"
, "trade": "COINBASE_ADV_TRD"
}
}
}
}
# --------------------------------------------------------------------
, "quant": {
"app_channel": "QUANT"
, "strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/strategies
, "exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": true
, "streaming": true
},
}
}
}
# --------------------------------------------------------------------
, "risk_manager": {
"app_channel": "RMGR"
, "books": {
"CVTT_BK01": {}
}
, "db": {
"positions_table": "prod.cvtt_positions"
, "cred_key": {
"write": "TSDB_TRD_CVTTDATA"
, "read_only": "TSDB_TRD_CVTTDATA"
}
}
, "positions": {
"load_interval_sec": 10.0
, "to_store_zero_positions": false
, "to_save_unchanged_positions": false
}
, "publish_value_interval": 10.0
, "exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": true
, "streaming": false
}
, "credentials_key": {
"trade": "COINBASE_ADV"
, "read_only": "COINBASE_ADV_RO"
}
}
}
}
, "trading_recorder": {
# "format": "CSV"
# "format": "TSDB"
"format": "SQLite"
, "csv_settings": {
"order_events_file_path": "%T.order_events.csv"
"position_events_file_path": "%T.position_events.csv"
}
, "tsdb_settings": {
"db": {
"class": "cvttpy.tools.db.timescale.tsdb_client.TimescaleDbClient"
, "cred_key": "TSDB_TRD_CVTTDATA_DB_TEST"
}
, "order_events_table": "backtest.trading_orders"
, "trade_events_table": "backtest.trading_trades"
, "trading_md_summary_table": "backtest.trading_md"
}
, "sqlite_settings": {
# "file_name": "/tmp/%T.cvtt_backtest.db"
"file_name": "/tmp/cvtt_backtest.db"
}
}
}
-11
View File
@@ -1,11 +0,0 @@
{
"type": "redis",
"comm_settings": "/comm/pubsub/redis/localhost"
, "app_channels": {
"executor": "EXEC"
, "risk_manager": "RMGR"
, "trader": "TRDR"
, "quant": "QUANT"
}
}
@@ -1,57 +0,0 @@
@var DatabaseHost=cryptoval1.cvtt.vpn
# @var DatabaseHost=cryptoval1.sheynin.home
{
"__DUMMY__": {}
# ----------------------------- A
, "ALPACA_PROD01": {
"exchange": "ALPACA_PROD",
"credentials_key": "ALPACA_PROD"
}
, "ALPACA_SIM": {
"exchange": "ALPACA_SIM",
"credentials_key": "ALPACA_PROD"
}
, "ALPACA_SNDBX01": {
"exchange": "ALPACA_SNDBX",
"credentials_key": "ALPACA_SANDBOX"
}
# ---------------------------- B
, "BITSTAMP_ACCT": {
"exchange": "BITSTAMP",
}
, "BNBSPOT_ACCT": {
"exchange": "BNBSPOT"
}
, "BNBFUT01": {
"exchange": "BNBFUT"
}
, "BNBFUT02": {
"exchange": "BNBFUT-2"
}
, "BNBSPOT_US01": {
"exchange": "BNBSPOT_US"
}
, "COINBASE_PROD01": {
"exchange": "COINBASE_AT"
}
, "COINBASE_SIM": {
"exchange_id": "COINBASE_SIM"
}
# ---------------------------- G
, "GEMINI01": {
"exchange": "GEMINI"
}
, "GEMINI-SNDBX01": {
"exchange": "GEMINI-SNDBX"
}
# ---------------------------- K
, "KRAKEN01": {
"exchange": "KRAKEN"
}
# ---------------------------- O
, "OKX01": {
"exchange": "OKX"
}
}
-24
View File
@@ -1,24 +0,0 @@
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "exchanges_settings": {
"COINBASE_AT": {
"order_entry": {
"enabled": true
, "streaming": true
},
"mkt_data": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
}
, "credentials_key": {
"read_only": "COINBASE_ADV_RO"
, "trade": "COINBASE_ADV_TRD"
}
}
}
}
-5
View File
@@ -1,5 +0,0 @@
{
# ----------------------------------
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
}
@@ -1,54 +0,0 @@
{
"check_interval_sec": 10.0
, "status_report_interval_sec": 3600.0
, "after_alert_interval_sec": 180.0 #
, "db": {
"CLD21": {
"class": "cvttpy.tools.db.timescale.tsdb_client.TimescaleDbClient"
, "cred_key": "TSDB_MD_CLD21_RO"
}
}
, "mmost": {
"cred_key": "MATTERMOST"
, "alert_channel": "Alerts-CVTT"
, "status_channel": "Status-CVTT"
}
, "data_checks": {
"BNBFUT-1": {
"tables": ["bnbfut.md_booktops"]
, "exchange_id": "BNBFUT"
, "instruments": ["PERP-BTC-USDT"]
, "threshold_sec": 30.0
}
, "BNBFUT-2": {
"tables": ["bnbfut.md_trades"]
, "exchange_id": "BNBFUT"
, "instruments": ["PERP-BTC-USDT"]
, "threshold_sec": 30.0
}
, "BNBSPOT-1": {
"tables": ["bnbspot.md_booktops"]
, "exchange_id": "BNBSPOT"
, "instruments": ["PAIR-BTC-USDT"]
, "threshold_sec": 30.0
}
, "BNBSPOT-2": {
"tables": ["bnbspot.md_trades"]
, "exchange_id": "BNBSPOT"
, "instruments": ["PAIR-BTC-USDT"]
, "threshold_sec": 30.0
}
, "COINBASE-1": {
"tables": ["coinbase.md_booktops"]
, "exchange_id": "COINBASE"
, "instruments": ["PAIR-BTC-USD"]
, "threshold_sec": 30.0
}
, "COINBASE-2": {
"tables": ["coinbase.md_trades"]
, "exchange_id": "COINBASE"
, "instruments": ["PAIR-BTC-USD"]
, "threshold_sec": 30.0
}
}
}
@@ -1,102 +0,0 @@
@var WINDOW_SIZE_SEC=2592000 # 30 days
{
"md_recorder": {
"db": {
"class": "cvttpy.tools.db.timescale.tsdb_client.TimescaleDbClient"
, "connect": {
"host": "cryptoval1.cvtt.vpn"
, "port": 5432
, "database": "coinbase"
}
}
, "trades_tbl": "md_trades" # D_E_P_R_E_C_A_T_E_D
, "booktop_tbl": "md_booktops" # D_E_P_R_E_C_A_T_E_D
, "booksnap_tbl": "md_booksnaps" # D_E_P_R_E_C_A_T_E_D
, "flush_interval_sec": 0.5
, "prune_interval_sec": 3600
, "collections": {
"__dummy__": null
, "COINBASE": {
"instruments": {
"PAIR-BTC-USD": {
"TRADES": ${WINDOW_SIZE_SEC},
"BOOK_TOP": ${WINDOW_SIZE_SEC},
# "BOOK_DEPTH": 3600
}
, "PAIR-ETH-USD": {
"TRADES": ${WINDOW_SIZE_SEC},
"BOOK_TOP": ${WINDOW_SIZE_SEC},
# "BOOK_DEPTH": null
}
, "PAIR-LTC-USD": {
"TRADES": ${WINDOW_SIZE_SEC},
"BOOK_TOP": ${WINDOW_SIZE_SEC},
}
, "PAIR-XRP-USD": {
"TRADES": ${WINDOW_SIZE_SEC},
"BOOK_TOP": ${WINDOW_SIZE_SEC},
}
}
}
, "BNBSPOT": {
"instruments": {
"PAIR-BTC-USDT": {
"TRADES": ${WINDOW_SIZE_SEC},
"BOOK_TOP": ${WINDOW_SIZE_SEC},
}
, "PAIR-ETH-USDT": {
"TRADES": ${WINDOW_SIZE_SEC},
"BOOK_TOP": ${WINDOW_SIZE_SEC},
}
, "PAIR-LTC-USDT": {
"TRADES": ${WINDOW_SIZE_SEC},
"BOOK_TOP": ${WINDOW_SIZE_SEC},
}
, "PAIR-XRP-USDT": {
"TRADES": ${WINDOW_SIZE_SEC},
"BOOK_TOP": ${WINDOW_SIZE_SEC},
}
, "PAIR-USDT-USD": {
"TRADES": ${WINDOW_SIZE_SEC},
"BOOK_TOP": ${WINDOW_SIZE_SEC},
}
}
}
}
}
# ----------------------------------
, "refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "exchanges_settings": {
"COINBASE_AT": {
"order_entry": {
"enabled": false
, "streaming": true
},
"mkt_data": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": false
, "streaming": false
}
}
"BNBSPOT": {
"order_entry": {
"enabled": false
, "streaming": false
},
"mkt_data": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": false
, "streaming": false
}
}
}
}
-39
View File
@@ -1,39 +0,0 @@
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "quant": {
"books": {
"CVTT_BK01": {}
}
, "strategies": {
"CVTT_QST001": {
"class": "cvttpy.trading.strategies.test_strat.TestStrategy"
, "params": {
"dummy": "dummy"
}
}
}
}
, "exchanges_settings": {
"COINBASE_AT": {
"order_entry": {
"enabled": false
, "streaming": false
},
"mkt_data": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": true
, "streaming": false
}
, "credentials_key": {
"trade": "COINBASE_ADV"
"read_only": "COINBASE_ADV_RO"
}
}
}
}
@@ -1,41 +0,0 @@
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "risk_manager": {
"book": "CVTT_BK01"
, "database": {
"positions_table": "cvtt_positions"
, "credentials_key": {
"write": "CVTT_DB_01"
, "read_only": "CVTT_DB_01"
}
}
, "positions": {
"load_interval_sec": 10.0
, "to_store_zero_positions": false
, "to_save_unchanged_positions": false
}
, "publish_value_interval": 10.0
}
, "exchanges_settings": {
"COINBASE_AT": {
"order_entry": {
"enabled": false
, "streaming": false
},
"mkt_data": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": true
, "streaming": false
}
, "credentials_key": {
"trade": "COINBASE_ADV"
"read_only": "COINBASE_ADV_RO"
}
}
}
}
-25
View File
@@ -1,25 +0,0 @@
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": true
, "streaming": true
},
}
}
, "trader": {
"books": {
"CVTT_BK01": {}
}
, "algos": {
"TRDALGO_001": {
"class": "cvttpy.trading.algos.simple.SimpleTradingAlgo"
, "params": {}
}
}
, "trading_pos_diff_pct_trigger": 10.0
}
}
-89
View File
@@ -1,89 +0,0 @@
@var ResultPath=/tmp
@var SourcePath=/home/oleg/develop/cvtt2/tmp
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos
, "session_type": "CALENDAR"
, "calendar_session": {
"trading_hours_url": [
"GET"
, "https://trading-calendar.cvtt.net/api/v1/markets/hours?mic=XNYS&start={start}&end={end}"
]
}
###### N E W S E C T I O N (example)
, "simulation": {
"speed_factor": 0.0,
"time_events_interval_ms": 100
}
, "market_simulator" : {
"market_data": {
"sources": [
{
"loader_class": "cvttpy.research.time_series.loaders.tsdb_loader.TimescaleTSLoader"
, "credentials_key": "TSDB_MD_CVTTDATA_RO"
# , "interval": "4 hours"
, "interval": "2 hours"
, "from_time": "2024-04-15 09:00:00"
}
# , {
# "loader_class": "cvttpy.research.time_series.loaders.sqlite_loader.SqliteMdLoader",
# "file_name": "${SourcePath}/20240424.ALPACA.QAT.db"
# }
]
}
, "accounting": {
"initial_positions": {
"COINBASE": {
"BTC": 0
, "USD": 1000.0
}
}
}
, "order_entry": {
"execution": {
"top_only": true
,"min_order_age_sec": 0.1
, "pricing_method": "BY_MKT_TRD_PRICE_BY_ORDER"
# , "presubscribe_md_types": ["BOOK_TOP", "TRADES"]
}
}
}
###### N E W S E C T I O N - end
, "backtest": {
"source": {
"loader_class": "cvttpy.research.time_series.loaders.sqlite_loader.SqliteMdLoader"
, "file_name": "${SourcePath}/20240424.ALPACA.QAT.db"
# , "from_time": "09:29"
}
, "result": {
# "repository": "${ResultPath}/backtest_results.json"
"db_file": "${ResultPath}/%D.backtest.db"
}
, "simulation": {
"speed_factor": 0.0
}
, "execution": {
"top_only": true
,"min_order_age_sec": 0.1
, "pricing_method": "BY_MKT_TRD_PRICE_BY_ORDER"
}
}
, "exchanges_settings": {
"*": {
"order_entry": {
"enabled": true
, "streaming": true
},
"mkt_data": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": false
, "streaming": false
}
}
}
}
+43 -53
View File
@@ -1,55 +1,45 @@
{ {
"DIRECT_ORDER_ALGO": { "DISABLED": {
"class": "cvttpy_trading.trading.algos.common.trading_algo.DirOrdTradingAlgo" "name": "Disabled Trading Algo",
, "params": {} "class": "cvttpy_trading.trading.algos.disabled.DisabledTradingAlgo",
} "params": {}
, "TGT_POS_ALGO": { },
"class": "cvttpy_trading.trading.algos.tgt_pos.TgtPosTradingAlgo" "PASS_THROUGH": {
, "params": {} "name": "PassThrough Trading Algo",
} "class": "cvttpy_trading.trading.algos.passthrough.PassThroughTradingAlgo",
# , "TRDALGO_SIMPLE_BO": { "params": {
# "class": "cvttpy_trading.trading.algos.bid_and_offer.SimpleBidAndOfferTradingAlgo" "support_send_order": true,
# , "params": {} "support_cancel_order": true,
# } }
# , "TRDALGO_MOOMOC_01": { },
# "class": "cvttpy_trading.trading.algos.moo_moc.MooMocTradingAlgo" "LIQUIDATE": {
# , "params": {} "name": "Liquidation Trading Algo",
# } "class": "cvttpy_trading.trading.algos.liquidate.LiquidateTradingAlgo",
# , "TRDALGO_TWAP01": { "params": {
# "class": "cvttpy_trading.trading.algos.twap.TwapAlgo" "order_pricer": {
# , "params": { "class": "BookTopJoinPricer",
# "num_slices": 5 "shift_bps": 10
# , "duration_sec": 1500 # 25 min },
# , "max_order_usd": 100 "instruments": [
# , "passive_stage_t1": 0.4 # join BBO, the rest is aggressive ["COINBASE", "PAIR-BTC-USD"],
# , "aggressive_stage_t2": 0.4 ["COINBASE", "PAIR-ETH-USD"]
# , "aggressivity_scale": [0.5, 1.0] # 0.5 = mid, 1.0= BBO-1 tick ]
# , "marketable_stage_added_ticks": 0 }
# }, },
# } "TARGET_POSITIONS": {
# , "TRDALGO_ICEBERG01_COINBS": { "name": "Target Positions Trading Algo"
# "class": "cvttpy_trading.trading.algos.twap.TwapAlgo" "class": "cvttpy_trading.trading.algos.tgt_pos.TgtPosTradingAlgo",
# , "params": { "params": {
# "num_slices": 5 "order_pricer": {
# , "duration_sec": 1500 # 25 min #overloaded by --duration "class": "BookTopMidPricer",
# , "max_order_usd": 100. "shift_bps": 0
# , "passive_stage_t1": 0 },
# , "aggressive_stage_t2": 0 "pos_diff_pct_trigger": 10.0,
# # , "aggressivity_scale": [0.5, 1.0] # 0.5 = mid, 1.0= BBO-1 tick "mkt_data_threshold_sec": 1.0,
# , "marketable_stage_added_ticks": 0 "instruments": [
# , "advance_on_slice_full_fill": true # default true ["COINBASE", "PAIR-BTC-USD"],
# }, ["COINBASE", "PAIR-ETH-USD"]
# } ]
# , "TRDALGO_ICEBERG01_ALPACA": { }
# "class": "cvttpy_trading.trading.algos.twap.TwapAlgo" },
# , "params": {
# "num_slices": 5
# , "duration_sec": 1500 # 25 min
# , "max_order_usd": 1000.
# , "passive_stage_t1": 0
# , "aggressive_stage_t2": 0
# # , "aggressivity_scale": [0.5, 1.0] # 0.5 = mid, 1.0= BBO-1 tick
# , "marketable_stage_added_ticks": 0
# },
# }
} }
+54 -31
View File
@@ -7,6 +7,7 @@
, "read_timeout" : 0.01 , "read_timeout" : 0.01
, "ping_timeout_secs": 2.0 , "ping_timeout_secs": 2.0
, "verbose": false , "verbose": false
, "unsubscribe_timeout_sec": 0.5
} }
, "REDIS_LCLHOST": { , "REDIS_LCLHOST": {
"type": "redis" "type": "redis"
@@ -14,6 +15,7 @@
, "read_timeout" : 0.01 , "read_timeout" : 0.01
, "ping_timeout_secs": 2.0 , "ping_timeout_secs": 2.0
, "verbose": false , "verbose": false
, "unsubscribe_timeout_sec": 0.5
} }
, "REDIS_LCLHOST_2_DCKR_COMPOSE": { , "REDIS_LCLHOST_2_DCKR_COMPOSE": {
"type": "redis" "type": "redis"
@@ -22,42 +24,63 @@
, "ping_timeout_secs": 2.0 , "ping_timeout_secs": 2.0
, "verbose": false , "verbose": false
} }
, "REDIS_tester-01_2_DCKR_COMPOSE": { # to use docker compose service from outside , "REDIS_tester-01_2_DCKR_COMPOSE": {
"type": "redis" "type": "redis"
, "url": "redis://cvtt-tester-01.cvtt.vpn:16379" , "url": "redis://cvtt-tester-01.cvtt.vpn:16379"
, "read_timeout" : 0.01 , "read_timeout" : 0.01
, "ping_timeout_secs": 2.0 , "ping_timeout_secs": 2.0
, "verbose": false , "verbose": false
} }
# , "redis": { , "REDIS_CLD32_TESTER": { # to use docker compose service from outside
# "docker_microservices": { # docker compose used "type": "redis"
# "url": "redis://redis:6379" , "url": "redis://cld32-tester.cvtt.vpn:16379"
# , "type": "redis" , "read_timeout" : 0.01
# , "read_timeout" : 0.01 , "ping_timeout_secs": 2.0
# , "ping_timeout_secs": 2.0 , "verbose": false
# , "verbose": false }
# } }
# , "localhost": { , "cache": {
# "url": "redis://localhost" "REDIS_DCKR_COMPOSE": {
# , "type": "redis" "type": "redis"
# , "read_timeout" : 0.01 , "url": "redis://redis:6379"
# , "ping_timeout_secs": 2.0 }
# , "verbose": false , "REDIS_LCLHOST": {
# } "type": "redis"
# , "localhost-2-docker": { , "url": "redis://localhost:6379"
# "url": "redis://localhost:16379" }
# , "type": "redis" , "REDIS_LCLHOST_2_DCKR_COMPOSE": {
# , "read_timeout" : 0.01 "type": "redis"
# , "ping_timeout_secs": 2.0 , "url": "redis://localhost:16379"
# , "verbose": false }
# } , "REDIS_tester-01_2_DCKR_COMPOSE": { # to use docker compose service from outside
# , "tester-01": { # to use docker compose service from outside "type": "redis"
# "url": "redis://cvtt-tester-01.cvtt.vpn:16379" , "url": "redis://cvtt-tester-01.cvtt.vpn:16379"
# , "type": "redis" }
# , "read_timeout" : 0.01 , "REDIS_CLD32_TESTER": { # to use docker compose service from outside
# , "ping_timeout_secs": 2.0 "type": "redis"
# , "verbose": false , "url": "redis://cld32-tester.cvtt.vpn:16379"
# } }
# } }
, "md_cache": {
"REDIS_DCKR_COMPOSE": {
"type": "redis"
, "url": "redis://redis:6379/2"
}
, "REDIS_LCLHOST": {
"type": "redis"
, "url": "redis://localhost:6379/2"
}
, "REDIS_LCLHOST_2_DCKR_COMPOSE": {
"type": "redis"
, "url": "redis://localhost:16379/2"
}
, "REDIS_tester-01_2_DCKR_COMPOSE": { # to use docker compose service from outside
"type": "redis"
, "url": "redis://cvtt-tester-01.cvtt.vpn:16379/2"
}
, "REDIS_CLD32_TESTER": { # to use docker compose service from outside
"type": "redis"
, "url": "redis://cld32-tester.cvtt.vpn:16379/2"
}
} }
} }
+8 -4
View File
@@ -1,8 +1,12 @@
{ {
"DISABLED": {
"name": "Disabled (Prohibitive) Risk Strategy",
"class": "cvttpy_trading.trading.risk.base_risk.ProhibitiveRiskStrategy",
"params": {}
},
"PERMISSIVE_RISK_STRATEGY": { "PERMISSIVE_RISK_STRATEGY": {
"class": "cvttpy.trading.risk.permissive.PermissiveRiskStrategy" "name": "Permissive Risk Strategy",
, "params": { "class": "cvttpy_trading.trading.risk.base_risk.PermissiveRiskStrategy",
"dummy": "dummy" "params": {}
}
} }
} }
-31
View File
@@ -1,31 +0,0 @@
{
"hist_md_loaders": @inc=http://@env{CONFIG_SERVICE}/apps/common/hist_md_loaders
, "CVTT_QST001": {
"class": "cvttpy.trading.strategies.test_strat.SeesawTestStrategy"
, "default_params": {}
}
, "VWAP001": {
"class": "cvttpy.trading.strategies.vwap_strat.VWAP001"
, "default_params": {
"vwap_interval": "1 hour" , "hist_md_source": {
"loader": "TimescaleMktDataLoader"
, "interval": "2 hours"
#, "from_time" is calculated
}
}
}
# , "DAILY_STOCK_001": {
# "class": "cvttpy.trading.strategies.daily_stocks_strat.DailyStocksStrategy"
# , "params": {
# "liquidate_at": "15:45" # EDT Time
# }
# }
# , "MAN-TPOS-BY-REDIS": {
# "class": "cvttpy.trading.strategies.manual_strat.TgtPosByRedisStrategy"
# , "params": {
# "redis_subject": "MAN_TGT_POS"
# }
# }
}
-116
View File
@@ -1,116 +0,0 @@
@var COORDINATOR_PORT=23456
@var PASS_THROUGH_STRAT_PORT=12345
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos
, "strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/strategies
, "comm_settings": "comm/pubsub/redis/localhost"
, "coordinator": {
"api": {
"REST": {
"port": ${COORDINATOR_PORT},
"base_url": ["POST", "http://localhost:${COORDINATOR_PORT}"]
}
}
}
, "market_data_gateway": {
"exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
},
},
}
, "channel_prefix": "MD_GW"
, "app_status_channel": "MD_GW_APP_STATUS"
, "exchanges": [
"BNBFUT"
, "COINBASE_AT"
]
}
, "order_entry_gateway": {
"exchanges_settings": {
"ALPACA_SNDBX": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": false
, "streaming": false
}
, "credentials_key": {
"read_only": "ALPACA_SANDBOX"
, "trade": "ALPACA_SANDBOX"
}
}
}
, "channel_prefix": "OE_GW"
, "app_status_channel": "OE_GW_APP_STATUS"
, "exchanges": [
"ALPACA_SNDBX"
]
}
, "accounting_gateway": {
"exchanges_settings": {
"ALPACA_SNDBX": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": true
, "streaming": false
}
, "credentials_key": {
"read_only": "ALPACA_SANDBOX"
, "trade": "ALPACA_SANDBOX"
}
}
}
, "channel_prefix": "ACCT_GW"
, "app_status_channel": "ACCT_GW_APP_STATUS"
, "exchanges": [
"ALPACA_SNDBX"
]
}
, "quant": {
"channel_prefix": "QUANT"
, "app_status_channel": "QUANT_MS_STATUS"
, "passthrough_strategy": {
"REST": {
"port": ${PASS_THROUGH_STRAT_PORT}
"base_url": ["POST", "http://localhost:${PASS_THROUGH_STRAT_PORT}"]
}
, "WS": {
"url": "ws://localhost:12346/ws"
}
}
}
, "trader": {
"channel_prefix": "TRADER"
, "app_status_channel": "TRADER_MS_STATUS"
}
}
-191
View File
@@ -1,191 +0,0 @@
@var ResultPath=/tmp
{ "___dummy___": null
, "refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "active_instruments": {
"ALPACA_SNDBX": {
"dynamic_stock_list": {
"exchange_id": "ALPACA"
, "list_source": "redis"
, "comm_settings": "/comm/pubsub/redis/cvtt-prod-eqty-01"
, "redis_key": "DAY_STOCK_LIST"
}
}
}
, "comm_settings": "/comm/pubsub/redis/cvtt-prod-eqty-01"
, "session_type": "CALENDAR"
, "calendar_session": {
"trading_hours_url": [
"GET"
, "https://trading-calendar.cvtt.net/api/v1/markets/hours?mic=XNYS&start={start}&end={end}"
]
}
, "books": {
"ALPACA_BK02": {}
, "ALPACA_BK_ILYA_01": {}
}
# --------------------------------------------------------------------
, "md_portal": {
"app_channel": "MD_PORTAL"
, "exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
}
}
}
# --------------------------------------------------------------------
, "trader": {
"app_channel": "TRDR"
, "is_short_allowed": false
, "exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
}
}
, "algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos
, "trading_pos_diff_pct_trigger": 10.0
, "trading_depth": {
"USD": 1000.0,
}
}
# --------------------------------------------------------------------
, "executor": {
"app_channel": "EXEC"
, "exchanges_settings": {
"COINBASE_AT": {
"order_entry": {
"enabled": true
, "streaming": true
},
"mkt_data": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
}
, "credentials_key": {
"read_only": "COINBASE_ADV_RO"
, "trade": "COINBASE_ADV_TRD"
}
}
, "ALPACA_SNDBX": {
"order_entry": {
"enabled": true
, "streaming": true
},
"mkt_data": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
}
, "credentials_key": {
"read_only": "ALPACA_SANDBOX"
, "trade": "ALPACA_SANDBOX"
}
}
, "ALPACA_SNDBX-MDPORTAL": {
"order_entry": {
"enabled": true
, "streaming": true
},
"mkt_data": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
}
, "credentials_key": {
"read_only": "ALPACA_SANDBOX"
, "trade": "ALPACA_SANDBOX"
}
}
}
}
# --------------------------------------------------------------------
, "quant": {
"app_channel": "QUANT"
, "strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/strategies
, "exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
}
}
}
}
# --------------------------------------------------------------------
, "risk_manager": {
"app_channel": "RMGR"
# , "books": {
# "CVTT_BK01": {}
# }
, "db": {
"positions_table": "prod.cvtt_positions"
, "cred_key": {
"write": "TSDB_TRD_CVTTDATA"
, "read_only": "TSDB_TRD_CVTTDATA"
}
}
, "positions": {
"load_interval_sec": 10.0
, "to_store_zero_positions": false
, "to_save_unchanged_positions": false
}
, "publish_value_interval": 10.0
, "exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": true
, "streaming": false
}
, "credentials_key": {
"trade": "ALPACA_SANDBOX"
, "read_only": "ALPACA_SANDBOX"
}
}
}
}
, "trading_recorder": {
"app_channel": "TRDREC"
, "format": "SQLite" # formats: "CSV", "TSDB", "SQLite"
, "csv_settings": {
"order_events_file_path": "%T.order_events.csv"
"position_events_file_path": "%T.position_events.csv"
}
, "tsdb_settings": {
"db": {
"class": "cvttpy.tools.db.timescale.tsdb_client.TimescaleDbClient"
, "cred_key": "TSDB_TRD_CVTTDATA_DB_TEST"
}
, "order_events_table": "backtest.trading_orders"
, "trade_events_table": "backtest.trading_trades"
, "trading_md_summary_table": "backtest.trading_md"
}
, "sqlite_settings": {
# "file_name": "/tmp/%T.cvtt_backtest.db"
"file_name": "/logs/%T.cvtt_alpaca_sandbox.db"
}
}
}
+131 -59
View File
@@ -1,21 +1,31 @@
@var COORDINATOR_REST_PORT=23456
@var PRICER_REST_PORT=23457
@var PRICER_WS_PORT=12346
@var GLOBAL_CHANNEL_PREFIX=CVTT_MU @var GLOBAL_CHANNEL_PREFIX=CVTT_MU
{ {
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata "refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata # tetsetraefafd
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm , "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos , "algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos
, "strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/strategies
, "risk_strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/risk_strategies , "risk_strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/risk_strategies
, "comm_settings": @env{CONFIG_COMM_SETTINGS} , "pubsub_settings": "@env{PUBSUB_SETTINGS_CONFIG_KEY}"
, "cache_settings": "@env{CACHE_SETTINGS_CONFIG_KEY}"
, "md_cache_settings": "@env{MD_CACHE_SETTINGS_CONFIG_KEY}" # new
, "global_channel_prefix": ${GLOBAL_CHANNEL_PREFIX} , "global_channel_prefix": ${GLOBAL_CHANNEL_PREFIX}
, "alerts": {
"channel": "${GLOBAL_CHANNEL_PREFIX}.ALERT",
"ttl_days": 7
}
, "consolidated_log": {
"channel": "${GLOBAL_CHANNEL_PREFIX}.CLOG",
"ttl_minutes": 60,
"pruners": ["FRONT_GATEWAY"] # these MuSvcs prune log to TTL
}
, "accounting_gateway": { , "accounting_gateway": {
"exchanges_settings": { "name": "ACCT_GATEWAY",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW."
, "exchanges_settings": {
"ALPACA_SNDBX": { "ALPACA_SNDBX": {
"mkt_data": { "mkt_data": {
"enabled": false "enabled": false
@@ -52,31 +62,49 @@
} }
} }
} }
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW" , "exchanges": ["COINBASE_AT"] # DEPRECATED R E M O V E
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW_APP_STATUS" , "connectors": {
, "exchanges": [ "simulated": false,
"ALPACA_SNDBX", "COINBASE_AT" "exchanges": ["COINBASE_AT"]
] }
} }
, "bookkeeper": { , "bookkeeper": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.BKPR" "name": "BOOKKEEPER",
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.BKPR_MUSVC_STATUS" "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.BKPR.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.BKPR."
, "db": { , "db": {
"server_type": "timescale", "server_type": "timescale",
"cred_key": "TSDB_CVTT_TESTER_01_DIRECT" # "cred_key": "TSDB_CVTT_TESTER_01_DIRECT"
# "cred_key": "TSDB_CVTT_TRADINNG_PROD-01-RW" # "cred_key": "TSDB_CVTT_TRADINNG_PROD-01-RW"
"cred_key": "TSDB-CLD32-TESTER-DCKR-CMPS"
} }
, "use_cache": true
} }
, "coordinator": { , "front_gateway": {
"api": { "name": "FRONT_GATEWAY",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.FRONT_GW.APP_STATUS"
, "api": {
"REST": { "REST": {
"port": @env{COORDINATOR_REST_PORT}, "port": @env{FRONT_GATEWAY_REST_PORT},
"base_url": ["POST", "http://localhost:@env{COORDINATOR_REST_PORT}"] "base_url": ["POST", "http://localhost:@env{FRONT_GATEWAY_REST_PORT}"]
} }
} }
, "musvc_peers": {
# enable/disable peer proxy
"bookkeeper": true
, "pricer": true
, "trader": true
, "risk_manager": true
}
, "supported_apps": [
"STAT_PAIR_SELECTOR"
]
} }
, "market_data_gateway": { , "market_data_gateway": {
"exchanges_settings": { "name": "MD_GATEWAY",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.MD_GW.APP_STATUS"
, "exchanges_settings": {
"*": { "*": {
"mkt_data": { "mkt_data": {
"enabled": true "enabled": true
@@ -92,22 +120,60 @@
}, },
}, },
} }
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.MD_GW" , "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.MD_GW."
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.MD_GW_APP_STATUS" , "exchanges": ["COINBASE_AT"] # DEPRECATED R E M O V E
, "exchanges": [ , "connectors": {
"COINBASE_AT" "simulated": false,
, "COINBASE_FUT" "exchanges": ["COINBASE_AT"]
# , "BNBSPOT" }
# , "BNBFUT" , "reset_md_cache_on_start": true
# , "KRAKEN" }
# , "BITSTAMP" # -------- UNIMPLEMENTED yet
# , "OKX" , "musvc_monitor": {
# , "GEMINI" "name": "MUSV_MONITOR",
# , "ALPACA_SNDBX" "musvc_status": [
{
"config_section": "bookkeeper",
"group": "Trading Bot",
"name": "Bookkeeper"
},
{
"config_section": "pricer",
"group": "Trading Bot",
"name": "Pricer"
},
{
"config_section": "trader",
"group": "Trading Bot",
"name": "Trader"
},
{
"config_section": "risk_manager",
"group": "Trading Bot",
"name": "Risk Manager"
},
{
"config_section": "accounting_gateway",
"group": "Market Gateways",
"name": "Accounting GW"
},
{
"config_section": "market_data_gateway",
"group": "Market Gateways",
"name": "Market Data GW"
},
{
"config_section": "order_entry_gateway",
"group": "Market Gateways",
"name": "Order Entry GW"
},
] ]
} }
# -------- UNIMPLEMENTED yet
, "order_entry_gateway": { , "order_entry_gateway": {
"exchanges_settings": { "name": "OE_GATEWAY",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OE_GW.APP_STATUS"
, "exchanges_settings": {
"ALPACA_SNDBX": { "ALPACA_SNDBX": {
"mkt_data": { "mkt_data": {
"enabled": false "enabled": false
@@ -127,39 +193,45 @@
} }
} }
} }
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.OE_GW" , "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.OE_GW."
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OE_GW_APP_STATUS" , "exchanges": ["COINBASE_AT"] # DEPRECATED R E M O V E
, "exchanges": [ , "connectors": {
"ALPACA_SNDBX" "simulated": false,
] "exchanges": ["COINBASE_AT"]
} }
, "pricer": { "debug_mode": { # used when '--debug_mode'
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.PXER" "partial_fill_wait_sec": 3600.0,
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.PXER_MUSVC_STATUS" "full_fill_wait_sec": 3600.0
, "api": {
"REST": {
"port": @env{PRICER_REST_PORT},
"base_url": ["POST", "http://localhost:@env{PRICER_REST_PORT}"]
}
, "WS": {
"url": "ws://localhost:@env{PRICER_WS_PORT}/ws"
}
} }
} }
, "quant": { , "pricer": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.QUANT" "name": "PRICER",
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.QUANT_MUSVC_STATUS" "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.PXER.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.PXER."
, "historical_md": {
"db": {
# "cred_key": "TSDB-CLD32-PROD-OHLCV-DIRECT-RO"
"cred_key": "TSDB-CLD32-TESTER-DCKR-CMPS"
}
, "enable_mda_recording": false # RO account is used
}
, "use_md_aggregate_cache": true
} }
, "risk_manager": { , "risk_manager": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.RMGR" "name": "RISK_MGR",
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.RMGR_MUSVC_STATUS" "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.RMGR.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.RMGR."
, "revalue_interval_sec": 10.5 , "revalue_interval_sec": 10.5
} }
, "trader": { , "trader": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.TRADER" "name": "TRADER",
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.TRADER_MUSVC_STATUS" "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.TRADER.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.TRADER."
, "pos_diff_pct_trigger": 10.0 # -----------------------------------
# moved to the algos.cfg for TgtPos Algo
# -----------------------------------
# , "pos_diff_pct_trigger": 10.0
# ----------------------------------- # -----------------------------------
# moved to the book_config (db) # moved to the book_config (db)
-135
View File
@@ -1,135 +0,0 @@
@var COORDINATOR_REST_PORT=23456
# @var COORDINATOR_WS_PORT=12345
@var PRICER_REST_PORT=23457
@var PRICER_WS_PORT=12346
@var GLOBAL_CHANNEL_PREFIX=CVTT_MU
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos
, "strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/strategies
, "risk_strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/risk_strategies
, "comm_settings": @env{CONFIG_COMM_SETTINGS}
, "global_channel_prefix": ${GLOBAL_CHANNEL_PREFIX}
, "coordinator": {
"api": {
"REST": {
"port": ${COORDINATOR_REST_PORT},
"base_url": ["POST", "http://localhost:${COORDINATOR_REST_PORT}"]
}
# , "WS": {
# "url": "ws://localhost:${COORDINATOR_WS_PORT}/ws"
# }
}
}
, "market_data_gateway": {
"exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
},
},
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.MD_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.MD_GW_APP_STATUS"
, "exchanges": [
"COINBASE_AT"
, "BNBSPOT"
]
}
, "order_entry_gateway": {
"exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": false
, "streaming": false
}
}
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.OE_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OE_GW_APP_STATUS"
, "exchanges": [
"COINBASE_AT"
]
}
, "accounting_gateway": {
"exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": true
, "streaming": false
}
}
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW_APP_STATUS"
, "exchanges": [
"ALPACA_SNDBX", "COINBASE_AT"
]
}
, "quant": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.QUANT"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.QUANT_MUSVC_STATUS"
}
, "trader": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.TRADER"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.TRADER_MUSVC_STATUS"
}
, "bookkeeper": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.BKPR"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.BKPR_MUSVC_STATUS"
, "db": {
"server_type": "timescale",
# "cred_key": "TSDB_TRADING_CVTT_TESTDB"
"cred_key": "TSDB_CVTT_TRADINNG_PROD-01-RW"
}
}
, "risk_manager": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.RMGR"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.RMGR_MUSVC_STATUS"
, "revalue_interval_sec": 10.5
}
, "pricer": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.PXER"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.PXER_MUSVC_STATUS"
, "api": {
"REST": {
"port": ${PRICER_REST_PORT},
"base_url": ["POST", "http://localhost:${PRICER_REST_PORT}"]
}
, "WS": {
"url": "ws://localhost:${PRICER_WS_PORT}/ws"
}
}
}
}
+342
View File
@@ -0,0 +1,342 @@
@var GLOBAL_CHANNEL_PREFIX=CVTT_MU
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata # tetsetraefafd
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos
, "risk_strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/risk_strategies
, "pubsub_settings": "@env{PUBSUB_SETTINGS_CONFIG_KEY}"
, "cache_settings": "@env{CACHE_SETTINGS_CONFIG_KEY}"
, "md_cache_settings": "@env{MD_CACHE_SETTINGS_CONFIG_KEY}"
# , "db_cred_key": "@env{DB_CREDENTIALS_KEY}"
, "global_channel_prefix": ${GLOBAL_CHANNEL_PREFIX}
, "alerts": {
"channel": "${GLOBAL_CHANNEL_PREFIX}.ALERT",
"ttl_days": 7
}
, "consolidated_log": {
"channel": "${GLOBAL_CHANNEL_PREFIX}.CLOG",
"ttl_minutes": 60,
"pruners": ["FRONT_GATEWAY"] # these MuSvcs prune log to TTL
}
, "accounting_gateway": {
"name": "ACCT_GATEWAY",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW."
, "exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": true
, "streaming": false
}
, "credentials_key": {
"read_only": "COINBASE_ADV_RO"
}
}
}
# , "exchanges": ["COINBASE_AT"] # DEPRECATED R E M O V E
, "connectors": {
"simulated": true,
"exchanges": ["COINBASE_AT"]
}
}
, "bookkeeper": {
"name": "BOOKKEEPER",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.BKPR.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.BKPR."
, "db": {
"server_type": "timescale",
"cred_key": "TSDB-CLD32-TESTER-DIRECT"
}
, "use_cache": true
}
, "front_gateway": {
"name": "FRONT_GATEWAY",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.FRONT_GW.APP_STATUS"
, "api": {
"REST": {
"port": @env{FRONT_GATEWAY_REST_PORT},
"base_url": ["POST", "http://localhost:@env{FRONT_GATEWAY_REST_PORT}"]
}
}
, "musvc_peers": {
# enable/disable peer proxy
"bookkeeper": true
, "pricer": true
, "trader": true
, "risk_manager": true
, "market_data_gateway": true
}
, "supported_apps": [
"STAT_PAIRS_SELECTOR",
"STAT_PAIR_QUANT"
]
, "app_hb_interval_sec": 15
}
, "market_data_gateway": {
"name": "MD_GATEWAY",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.MD_GW.APP_STATUS"
, "exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
},
},
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.MD_GW."
# , "exchanges": ["COINBASE_AT"] # DEPRECATED R E M O V E
, "connectors": {
"simulated": false,
"exchanges": ["COINBASE_AT"]
}
, "reset_md_cache_on_start": true
}
, "ohlcv_recorder": {
"name": "OHLCV_RECORDER",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OHLCV_RECORDER_STATUS"
, "historical_md": {
"db": {
# "cred_key": "TSDB-CLD32-TESTER-DCKR-CMPS"
# "cred_key": "TSDB-CLD32-TESTER-DIRECT"
"cred_key": "@env{DB_CREDENTIALS_KEY}"
}
, "trades_recording": { # unconditional trades recording for 1min aggregates
"flush_interval_sec": 5.0
, "prune": {
"max_days": 7
}
, "threshold_recording_lag_sec": 15
, "instrument_timeout_sec": 119
, "instruments": [
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ADA-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-AVAX-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BCH-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BNB-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BTC-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOGE-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOT-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ETH-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-HBAR-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LINK-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LTC-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SHIB-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SOL-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SUI-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XLM-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XRP-USD"
}
]
}
}
}
, "order_entry_gateway": {
"name": "OE_GATEWAY",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OE_GW.APP_STATUS"
, "exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": true
, "streaming": false
}
"credentials_key": {
"read_only": "COINBASE_ADV_RO"
}
}
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.OE_GW."
# , "exchanges": ["COINBASE_AT"] # DEPRECATED R E M O V E
, "connectors": {
"simulated": true,
"exchanges": ["COINBASE_AT"]
}
# "debug_mode": { # used when '--debug_mode'
# "partial_fill_wait_sec": 3600.0,
# "full_fill_wait_sec": 3600.0
# }
}
, "pricer": {
"name": "PRICER",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.PXER.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.PXER."
, "historical_md": {
"db": {
# "cred_key": "TSDB-CLD32-PROD-OHLCV-DIRECT-RO"
# "cred_key": "TSDB-CLD32-TESTER-DCKR-CMPS"
# "cred_key": "TSDB-CLD32-TESTER-DIRECT-RO"
"cred_key": "@env{DB_CREDENTIALS_KEY}"
}
, "enable_mda_recording": false # RO account is used
}
, "pre-subscribe": {
"interval_sec": 60
, "history_depth_hours": 48
, "instruments": [
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ADA-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-AVAX-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BCH-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BNB-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BTC-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOGE-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOT-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ETH-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-HBAR-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LINK-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LTC-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SHIB-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SOL-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SUI-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XLM-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XRP-USD"
}
]
}
}
, "risk_manager": {
"name": "RISK_MGR",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.RMGR.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.RMGR."
, "revalue_interval_sec": 10.5
}
, "trader": {
"name": "TRADER",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.TRADER.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.TRADER."
# -----------------------------------
# moved to the algos.cfg for TgtPos Algo
# -----------------------------------
# , "pos_diff_pct_trigger": 10.0
# -----------------------------------
# moved to the book_config (db)
# -----------------------------------
# , "trading_depth": {
# "BTC": 0.001
# # "BTC": 0.1
# }
}
}
@@ -0,0 +1,87 @@
{
"cvtt_fgw": {
"REST": {
# "service": "cvtt-tester-01.cvtt.vpn:23456",
# "service": "dev-server-02.cvtt.vpn:23456",
"service": "cld32-tester.cvtt.vpn:23456",
},
"healthcheck": {
"endpoint": "/ping"
"interval_sec": 5,
},
"alerts": {
"endpoint": "/alerts",
"default_depth_hours": 48,
"interval_sec": 5
},
"consolidated_log": {
"endpoint": "/conslog",
},
"mktdata": {
"endpoints": {
"subscribe": "/mktdata/subscribe",
"last_trade": "/mktdata/last_trade",
"last_quote": "/mktdata/book_top",
"md_history": "/md_summary"
}
},
"books": {
"endpoints": {
"book_list": "/books",
"book_positions": "/book_positions",
"book_trades": "/book_trades",
"book_transactions": "/book_transactions",
"book_orders": "/book_orders",
"exchange_positions": "/exchange_positions",
"change_book_config": "/change_book_config",
"list_trading_algos": "/list_trading_algos",
"current_trading_algo": "/current_trading_algo",
"change_trading_algo": "/change_trading_algo",
"list_risk_strategies": "/list_risk_strategies",
"current_risk_strategy": "/current_risk_strategy",
"change_risk_strategy": "/change_risk_strategy",
"trading_instructions": "/trading_instructions",
"open_orders": "/open_orders"
}
},
"apps": {
"endpoints": {
"app_list": "/app_list",
"app_route": "/app_route"
}
},
"trading_instructions": {
"liquidate": {
"md_threshold_sec": 120 #
}
}
},
"exchange_ids": {
"COINBASE_AT": "COINBASE"
, "BNBSPOT": "BNBSPOT"
},
"instruments": {
"COINBASE_AT": [
"PAIR-ADA-USD",
"PAIR-AVAX-USD",
"PAIR-BCH-USD",
"PAIR-BNB-USD",
"PAIR-BTC-USD",
"PAIR-DOGE-USD",
"PAIR-DOT-USD",
"PAIR-ETH-USD",
"PAIR-HBAR-USD",
"PAIR-LINK-USD",
"PAIR-LTC-USD",
"PAIR-SHIB-USD",
"PAIR-SOL-USD",
"PAIR-SUI-USD",
"PAIR-XLM-USD",
"PAIR-XRP-USD"
],
# "BNBSPOT": [
# "PAIR-BTC-USDT",
# "PAIR-BTC-USDT"
# ]
}
}
@@ -0,0 +1,185 @@
{
"refdata": {
"assets": @inc=http://@env{CONFIG_SERVICE}/refdata/assets
, "instruments": @inc=http://@env{CONFIG_SERVICE}/refdata/instruments
, "exchange_instruments": @inc=http://@env{CONFIG_SERVICE}/refdata/exchange_instruments
, "dynamic_instrument_exchanges": ["ALPACA"]
, "exchanges": {
"COINBASE_AT": {
"exchange_id": "COINBASE"
, "name": "Coinbase Advanced Trade"
, "type": "SPOT"
, "mktdata" : {
"class": "cvttpy_trading.exchanges.coinbase.spot.mkt_data.CoinbaseSpotMdFeed"
, "reconnect_secs": 2
, "max_connections": 10
, "price_throttle": true
, "api": {
"web_socket": {
"url": "wss://ws-feed.exchange.coinbase.com"
}
}
}
}
, "BNBSPOT": {
"exchange_id": "BNBSPOT"
, "name": "Binance Spot"
, "type": "SPOT"
, "mktdata" : {
"class": "cvttpy_trading.exchanges.binance.spot.mkt_data.BnbSpotMktDataFeed"
, "max_connections": 10
, "reconnect_secs": 2.0
, "api": {
"web_socket": {
"url": "wss://stream.binance.com/ws"
},
"REST": {
"depth_snapshot_url": ["GET", "https://api.binance.com/api/v3/depth"],
}
}
}
}
, "BNBFUT": {
"exchange_id": "BNBFUT"
, "name": "Binance Futures USD-M"
, "type": "FUTURES"
, "mktdata" : {
"class": "cvttpy_trading.exchanges.binance.futures.mkt_data.BnbFutMktDataFeed"
, "max_connections": 10
, "reconnect_secs": 2.0
, "api": {
"web_socket": {
"url": "wss://fstream.binance.com/ws"
},
"REST": {
"depth_snapshot_url": ["GET", "https://fapi.binance.com/fapi/v1/depth"],
}
}
}
}
}
}
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "md_recorder": {
"instrument_groups": {
"BNBFUT_CLOUD28": [
"BNBFUT:PERP-BTC-USDT"
, "BNBFUT:PERP-ETH-USDT"
],
"BNBSPOT_CLOUD28": [
"BNBSPOT:PAIR-ADA-USDT"
, "BNBSPOT:PAIR-AVAX-USDT"
, "BNBSPOT:PAIR-BCH-USDT"
, "BNBSPOT:PAIR-BTC-USDT"
, "BNBSPOT:PAIR-DOT-USDT"
, "BNBSPOT:PAIR-ETH-USDT"
, "BNBSPOT:PAIR-LTC-USDT"
, "BNBSPOT:PAIR-SOL-USDT"
, "BNBSPOT:PAIR-USDC-USDT"
, "BNBSPOT:PAIR-XRP-USDT"
],
"COINBASE_CLOUD28": [
"COINBASE:PAIR-ADA-USD"
, "COINBASE:PAIR-AVAX-USD"
, "COINBASE:PAIR-BCH-USD"
, "COINBASE:PAIR-BTC-USD"
, "COINBASE:PAIR-DOT-USD"
, "COINBASE:PAIR-ETH-USD"
, "COINBASE:PAIR-LTC-USD"
, "COINBASE:PAIR-SOL-USD"
, "COINBASE:PAIR-XRP-USD"
]
}
, "db": {
"class": "cvttpy_tools.db.timescale.tsdb_client.TimescaleDbClient"
}
, "flush_interval_sec": 0.5
, "collections": {
"__dummy__": null
, "ALPACA": {
# dynamic instruments names
"tables": {
"trades": "alpaca_iex.md_trades"
, "booktops": "alpaca_iex.md_booktops"
, "booksnaps": "alpaca_iex.md_booksnaps"
}
}
, "BNBSPOT": {
"instruments": {
"PAIR-ADA-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-AVAX-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-BCH-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-BTC-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-DOT-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-ETH-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-LTC-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-SOL-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-USDC-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-XRP-USDT": ["TRADES", "BOOK_TOP"]
}
, "tables": {
"trades": "bnbspot.md_trades"
, "booktops": "bnbspot.md_booktops"
, "booksnaps": "bnbspot.md_booksnaps"
}
}
, "BNBFUT": {
"instruments": {
"PERP-BTC-USDT": ["TRADES", "BOOK_TOP"]
, "PERP-ETH-USDT": ["TRADES", "BOOK_TOP"]
}
, "tables": {
"trades": "bnbfut.md_trades"
, "booktops": "bnbfut.md_booktops"
, "booksnaps": "bnbfut.md_booksnaps"
}
}
, "COINBASE": {
"instruments": {
"PAIR-ADA-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-AVAX-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-BCH-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-BTC-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-DOT-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-ETH-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-LTC-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-SOL-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-XRP-USD": ["TRADES", "BOOK_TOP"]
}
, "tables": {
"trades": "coinbase.md_trades"
, "booktops": "coinbase.md_booktops"
, "booksnaps": "coinbase.md_booksnaps"
}
}
}
}
# ----------------------------------
, "exchanges_settings": {
"*": {
"order_entry": {
"enabled": false
, "streaming": false
},
"mkt_data": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": false
, "streaming": false
}
}
}
}
@@ -0,0 +1,179 @@
{
"refdata": {
"assets": @inc=http://@env{CONFIG_SERVICE}/refdata/assets
, "instruments": @inc=http://@env{CONFIG_SERVICE}/refdata/instruments
, "exchange_instruments": @inc=http://@env{CONFIG_SERVICE}/refdata/exchange_instruments
, "dynamic_instrument_exchanges": ["ALPACA"]
, "exchanges": {
"COINBASE_AT": {
"exchange_id": "COINBASE"
, "name": "Coinbase Advanced Trade"
, "type": "SPOT"
, "mktdata" : {
"class": "cvttpy_trading.exchanges.coinbase.spot.mkt_data.CoinbaseSpotMdFeed" # for 1.0.3
, "reconnect_secs": 2
, "max_connections": 10
, "price_throttle": true
, "api": {
"web_socket": {
"url": "wss://ws-feed.exchange.coinbase.com"
}
}
}
}
, "BNBSPOT": {
"exchange_id": "BNBSPOT"
, "name": "Binance Spot"
, "type": "SPOT"
, "mktdata" : {
"class": "cvttpy_trading.exchanges.binance.spot.mkt_data.BnbSpotMktDataFeed"
, "max_connections": 10
, "reconnect_secs": 2.0
, "api": {
"web_socket": {
"url": "wss://stream.binance.com/ws"
},
"REST": {
"depth_snapshot_url": ["GET", "https://api.binance.com/api/v3/depth"],
}
}
}
}
, "BNBFUT": {
"exchange_id": "BNBFUT"
, "name": "Binance Futures USD-M"
, "type": "FUTURES"
, "mktdata" : {
"class": "cvttpy_trading.exchanges.binance.futures.mkt_data.BnbFutMktDataFeed"
, "max_connections": 10
, "reconnect_secs": 2.0
, "api": {
"web_socket": {
"url": "wss://fstream.binance.com/ws"
},
"REST": {
"depth_snapshot_url": ["GET", "https://fapi.binance.com/fapi/v1/depth"],
}
}
}
}
}
}
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "md_recorder": {
"instrument_groups": {
"BNBFUT_CLOUD29": [
"BNBFUT:PERP-BTC-USDT"
, "BNBFUT:PERP-ETH-USDT"
],
"BNBSPOT_CLOUD29": [
"BNBSPOT:PAIR-ADA-USDT"
, "BNBSPOT:PAIR-AVAX-USDT"
, "BNBSPOT:PAIR-BCH-USDT"
, "BNBSPOT:PAIR-BTC-USDT"
, "BNBSPOT:PAIR-DOT-USDT"
, "BNBSPOT:PAIR-ETH-USDT"
, "BNBSPOT:PAIR-LINK-USDT"
, "BNBSPOT:PAIR-LTC-USDT"
, "BNBSPOT:PAIR-SOL-USDT"
#, "BNBSPOT:PAIR-USDC-USDT"
, "BNBSPOT:PAIR-XRP-USDT"
],
"COINBASE_CLOUD29": [
"COINBASE:PAIR-ADA-USD"
, "COINBASE:PAIR-AVAX-USD"
, "COINBASE:PAIR-BCH-USD"
, "COINBASE:PAIR-BTC-USD"
, "COINBASE:PAIR-DOT-USD"
, "COINBASE:PAIR-ETH-USD"
, "COINBASE:PAIR-LINK-USD"
, "COINBASE:PAIR-LTC-USD"
, "COINBASE:PAIR-SOL-USD"
, "COINBASE:PAIR-XRP-USD"
],
}
, "db": {
"class": "cvttpy_tools.db.timescale.tsdb_client.TimescaleDbClient"
}
, "collections": {
"__dummy__": null
, "BNBSPOT": {
"instruments": {
"PAIR-ADA-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-AVAX-USDT": ["TRADES"]
, "PAIR-BCH-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-BTC-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-DOT-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-ETH-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-LINK-USDT": ["TRADES"]
, "PAIR-LTC-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-SOL-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-USDC-USDT": ["TRADES", "BOOK_TOP"]
, "PAIR-XRP-USDT": ["TRADES", "BOOK_TOP"]
}
, "tables": {
"trades": "bnbspot.md_trades"
, "booktops": "bnbspot.md_booktops"
, "booksnaps": "bnbspot.md_booksnaps"
}
}
, "BNBFUT": {
"instruments": {
"PERP-BTC-USDT": ["TRADES", "BOOK_TOP"]
, "PERP-ETH-USDT": ["TRADES", "BOOK_TOP"]
}
, "tables": {
"trades": "bnbfut.md_trades"
, "booktops": "bnbfut.md_booktops"
, "booksnaps": "bnbfut.md_booksnaps"
}
}
, "COINBASE": {
"instruments": {
"PAIR-ADA-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-AVAX-USD": ["TRADES"]
, "PAIR-BCH-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-BTC-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-DOT-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-ETH-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-LINK-USD": ["TRADES"]
, "PAIR-LTC-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-SOL-USD": ["TRADES", "BOOK_TOP"]
, "PAIR-XRP-USD": ["TRADES", "BOOK_TOP"]
}
, "tables": {
"trades": "coinbase.md_trades"
, "booktops": "coinbase.md_booktops"
, "booksnaps": "coinbase.md_booksnaps"
}
}
}
}
# ----------------------------------
"exchanges_settings": {
"*": {
"order_entry": {
"enabled": false
, "streaming": false
},
"mkt_data": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": false
, "streaming": false
}
}
}
}
@@ -0,0 +1,9 @@
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "db": {
"class": "cvttpy_tools.db.timescale.tsdb_client.TimescaleDbClient",
"cred_key": "TSDB-CLD32-PROD-OHLCV-DIRECT-RO"
}
}
@@ -0,0 +1,26 @@
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
"md_history_depth_hrs": 36,
"to_fill_entire_depth": false, # consider a gap if entire depth is empty, if False - warn and ignore
"beacon_instruments": {
"COINBASE_AT": [
"PAIR-ADA-USD",
"PAIR-AVAX-USD",
"PAIR-BCH-USD",
"PAIR-BNB-USD",
"PAIR-BTC-USD",
"PAIR-DOGE-USD",
"PAIR-DOT-USD",
"PAIR-ETH-USD",
"PAIR-HBAR-USD",
"PAIR-LINK-USD",
"PAIR-LTC-USD",
"PAIR-SHIB-USD",
"PAIR-SOL-USD",
"PAIR-SUI-USD",
"PAIR-XLM-USD",
"PAIR-XRP-USD"
],
}
}
@@ -0,0 +1,144 @@
{
# "refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
"db": {
"cred_key": @env{DB_CREDENTIALS_KEY}
},
"instruments": [
# ------------- BINANCE
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-ADA-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-AVAX-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-BCH-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-BNB-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-BTC-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-DOGE-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-DOT-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-ETH-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-HBAR-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-LINK-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-LTC-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-SHIB-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-SOL-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-SUI-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-XLM-USDT"
# },
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-XRP-USDT"
# },
# ------------- COINBASE
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ADA-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-AVAX-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BCH-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BNB-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BTC-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOGE-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOT-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ETH-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-HBAR-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LINK-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LTC-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SHIB-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SOL-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SUI-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XLM-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XRP-USD"
}
],
"mmost": {
"cred_key": "MATTERMOST"
, "alert_channel": "Alerts-CVTT"
, "status_channel": "Status-CVTT"
}
}
@@ -0,0 +1,114 @@
@var GLOBAL_CHANNEL_PREFIX=BNBS_OHLCV_REC
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos
, "risk_strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/risk_strategies
, "pubsub_settings": "@env{PUBSUB_SETTINGS_CONFIG_KEY}"
, "cache_settings": "@env{CACHE_SETTINGS_CONFIG_KEY}"
, "global_channel_prefix": ${GLOBAL_CHANNEL_PREFIX}
, "market_data_gateway": {
"exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
},
},
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.MD_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.MD_GW_APP_STATUS"
, "exchanges": [
"BNBSPOT"
]
}
, "ohlcv_recorder": {
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OHLCV_RECORDER_STATUS"
, "historical_md": {
"db": {
"cred_key": "TSDB-CLD32-PROD-OHLCV-DCKR"
}
, "trades_recording": { # unconditional trades recording for 1min aggregates
"flush_interval_sec": 5.0
"instruments": [
{
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-ADA-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-AVAX-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-BCH-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-BNB-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-BTC-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-DOGE-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-DOT-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-ETH-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-HBAR-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-LINK-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-LTC-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-SHIB-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-SOL-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-SUI-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-XLM-USDT"
}
, {
"exch_acct": "BNBSPOT"
, "instrument_id": "PAIR-XRP-USDT"
}
]
}
}
}
}
@@ -0,0 +1,115 @@
@var GLOBAL_CHANNEL_PREFIX=CBASE_OHLCV_REC
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos
, "risk_strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/risk_strategies
# new communication settings
, "pubsub_settings": "@env{PUBSUB_SETTINGS_CONFIG_KEY}"
, "cache_settings": "@env{CACHE_SETTINGS_CONFIG_KEY}"
, "global_channel_prefix": ${GLOBAL_CHANNEL_PREFIX}
, "market_data_gateway": {
"exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
},
},
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.MD_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.MD_GW_APP_STATUS"
, "exchanges": [
"COINBASE_AT"
]
}
, "ohlcv_recorder": {
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OHLCV_RECORDER_STATUS"
, "historical_md": {
"db": {
"cred_key": "TSDB-CLD32-PROD-OHLCV-DCKR"
}
, "trades_recording": { # unconditional trades recording for 1min aggregates
"flush_interval_sec": 5.0
"instruments": [
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ADA-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-AVAX-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BCH-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BNB-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BTC-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOGE-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOT-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ETH-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-HBAR-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LINK-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LTC-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SHIB-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SOL-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SUI-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XLM-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XRP-USD"
}
]
}
}
}
}
+342
View File
@@ -0,0 +1,342 @@
@var GLOBAL_CHANNEL_PREFIX=CVTT_MU
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata # tetsetraefafd
, "comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm
, "algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos
, "risk_strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/risk_strategies
, "pubsub_settings": "@env{PUBSUB_SETTINGS_CONFIG_KEY}"
, "cache_settings": "@env{CACHE_SETTINGS_CONFIG_KEY}"
, "md_cache_settings": "@env{MD_CACHE_SETTINGS_CONFIG_KEY}"
# , "db_cred_key": "@env{DB_CREDENTIALS_KEY}"
, "global_channel_prefix": ${GLOBAL_CHANNEL_PREFIX}
, "alerts": {
"channel": "${GLOBAL_CHANNEL_PREFIX}.ALERT",
"ttl_days": 7
}
, "consolidated_log": {
"channel": "${GLOBAL_CHANNEL_PREFIX}.CLOG",
"ttl_minutes": 60,
"pruners": ["FRONT_GATEWAY"] # these MuSvcs prune log to TTL
}
, "accounting_gateway": {
"name": "ACCT_GATEWAY",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW."
, "exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": true
, "streaming": false
}
, "credentials_key": {
"read_only": "COINBASE_ADV_RO"
}
}
}
# , "exchanges": ["COINBASE_AT"] # DEPRECATED R E M O V E
, "connectors": {
"simulated": true,
"exchanges": ["COINBASE_AT"]
}
}
, "bookkeeper": {
"name": "BOOKKEEPER",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.BKPR.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.BKPR."
, "db": {
"server_type": "timescale",
"cred_key": "TSDB-CLD32-TESTER-DIRECT"
}
, "use_cache": true
}
, "front_gateway": {
"name": "FRONT_GATEWAY",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.FRONT_GW.APP_STATUS"
, "api": {
"REST": {
"port": @env{FRONT_GATEWAY_REST_PORT},
"base_url": ["POST", "http://localhost:@env{FRONT_GATEWAY_REST_PORT}"]
}
}
, "musvc_peers": {
# enable/disable peer proxy
"bookkeeper": true
, "pricer": true
, "trader": true
, "risk_manager": true
, "market_data_gateway": true
}
, "supported_apps": [
"STAT_PAIRS_SELECTOR",
"STAT_PAIR_QUANT"
]
, "app_hb_interval_sec": 15
}
, "market_data_gateway": {
"name": "MD_GATEWAY",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.MD_GW.APP_STATUS"
, "exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
},
},
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.MD_GW."
# , "exchanges": ["COINBASE_AT"] # DEPRECATED R E M O V E
, "connectors": {
"simulated": false,
"exchanges": ["COINBASE_AT"]
}
, "reset_md_cache_on_start": true
}
, "ohlcv_recorder": {
"name": "OHLCV_RECORDER",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OHLCV_RECORDER_STATUS"
, "historical_md": {
"db": {
# "cred_key": "TSDB-CLD32-TESTER-DCKR-CMPS"
# "cred_key": "TSDB-CLD32-TESTER-DIRECT"
"cred_key": "@env{DB_CREDENTIALS_KEY}"
}
, "trades_recording": { # unconditional trades recording for 1min aggregates
"flush_interval_sec": 5.0
, "prune": {
"max_days": 7
}
, "threshold_recording_lag_sec": 15
, "instrument_timeout_sec": 119
, "instruments": [
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ADA-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-AVAX-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BCH-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BNB-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BTC-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOGE-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOT-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ETH-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-HBAR-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LINK-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LTC-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SHIB-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SOL-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SUI-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XLM-USD"
}
, {
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XRP-USD"
}
]
}
}
}
, "order_entry_gateway": {
"name": "OE_GATEWAY",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OE_GW.APP_STATUS"
, "exchanges_settings": {
"COINBASE_AT": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": true
, "streaming": false
}
"credentials_key": {
"read_only": "COINBASE_ADV_RO"
}
}
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.OE_GW."
# , "exchanges": ["COINBASE_AT"] # DEPRECATED R E M O V E
, "connectors": {
"simulated": true,
"exchanges": ["COINBASE_AT"]
}
# "debug_mode": { # used when '--debug_mode'
# "partial_fill_wait_sec": 3600.0,
# "full_fill_wait_sec": 3600.0
# }
}
, "pricer": {
"name": "PRICER",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.PXER.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.PXER."
, "historical_md": {
"db": {
# "cred_key": "TSDB-CLD32-PROD-OHLCV-DIRECT-RO"
# "cred_key": "TSDB-CLD32-TESTER-DCKR-CMPS"
# "cred_key": "TSDB-CLD32-TESTER-DIRECT-RO"
"cred_key": "@env{DB_CREDENTIALS_KEY}"
}
, "enable_mda_recording": false # RO account is used
}
, "pre-subscribe": {
"interval_sec": 60
, "history_depth_hours": 48
, "instruments": [
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ADA-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-AVAX-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BCH-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BNB-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BTC-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOGE-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOT-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ETH-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-HBAR-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LINK-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LTC-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SHIB-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SOL-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SUI-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XLM-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XRP-USD"
}
]
}
}
, "risk_manager": {
"name": "RISK_MGR",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.RMGR.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.RMGR."
, "revalue_interval_sec": 10.5
}
, "trader": {
"name": "TRADER",
"app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.TRADER.APP_STATUS"
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.TRADER."
# -----------------------------------
# moved to the algos.cfg for TgtPos Algo
# -----------------------------------
# , "pos_diff_pct_trigger": 10.0
# -----------------------------------
# moved to the book_config (db)
# -----------------------------------
# , "trading_depth": {
# "BTC": 0.001
# # "BTC": 0.1
# }
}
}
-23
View File
@@ -1,23 +0,0 @@
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
, "calendar_session": {
"trading_hours_url": [
"GET"
, "https://trading-calendar.cvtt.net/api/v1/markets/hours?mic=XNYS&start={start}&end={end}"
]
}
, "exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
}
}
, "comm_settings": "/comm/pubsub/redis/localhost"
# , "cvttcomm": {
# "type": "redis"
# , "comm_settings": "/comm/pubsub/redis/localhost"
# }
}
-349
View File
@@ -1,349 +0,0 @@
@var COORDINATOR_HOST=localhost
@var COORDINATOR_REST_PORT=28001
@var COORDINATOR_WS_PORT=28002
@var GLOBAL_CHANNEL_PREFIX=CVTT_MU_SIM
@var SIM_HOST=localhost
@var SIM_DATA_DIR=/home/oleg/develop/simulation/data
@var SIM_MD_WS_PORT=28080
@var SIM_OE_WS_PORT=28081
@var SIM_OE_REST_PORT=28082
@var SIM_AC_REST_PORT=28083
{
# ---------------------------------------
"__dummy__": null
# ---------------------------------------
# Overwriting "exchanges" part in "refdata"
# "refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
"refdata": {
"assets": @inc=http://@env{CONFIG_SERVICE}/refdata/assets ,
"instruments": @inc=http://@env{CONFIG_SERVICE}/refdata/instruments ,
"exchange_instruments": @inc=http://@env{CONFIG_SERVICE}/refdata/exchange_instruments ,
"dynamic_instrument_exchanges": ["ALPACA"],
"exchanges": {
"SIM_COINBASE": {
"exchange_id": "COINBASE",
"name": "Coinbase Advanced Trade (Simulation)",
"type": "SPOT",
"mktdata" : {
"class": "cvttpy.exchanges.mkt_simulator.md_client.MktSimMdClientFeed"
"api": @pathptr=simulation/market_simulator/market_data/api
},
"order_entry": {
"class": "cvttpy.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient"
"api": @ptrpath=simulation/market_simulator/order_entry/api
},
"accounting": {
"class": "cvttpy.exchanges.mkt_simulator.acct_client.MktSimAccounting"
"api": @ptrpath=simulation/market_simulator/accounting/api
},
},
"SIM_ALPACA": {
"exchange_id": "ALPACA",
"name": "Alpaca Trading",
"type": "EQUITY",
"mktdata" : {
"class": "cvttpy.exchanges.mkt_simulator.md_client.MktSimMdClientFeed"
"config_key": "simulation/market_simulator/market_data/api"
},
"order_entry": {
"class": "cvttpy.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient"
"config_key": "simulation/market_simulator/order_entry/api"
},
"accounting": {
"class": "cvttpy.exchanges.mkt_simulator.acct_client.MktSimAccounting"
"config_key": "simulation/market_simulator/accounting/api"
}
},
}
},
"comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm ,
"algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos ,
"strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/strategies ,
"risk_strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/risk_strategies ,
"comm_settings": "@env{CONFIG_COMM_SETTINGS}",
"global_channel_prefix": "${GLOBAL_CHANNEL_PREFIX}",
"simulation": {
# "speed_factor": 1.0,
"speed_factor": 0.0
, "time_events_interval_ms": 0
, "simtime_file": "${SIM_DATA_DIR}/simtime.bin"
, "expected_consumers": [
"md_gateway",
"mkt_gateway_tester"
"coordinator",
# "oe_gateway",
# "acct_gateway",
# "quant",
# "trader",
# "bookkeeper",
# "risk_manager",
# "pricer"
]
, "consumer_timeout_sec": 30.0
, "market_simulator" : {
"initial_positions": {
"exchange": "COINBASE",
"assets": {
"BTC": 0.5
, "ETH": 0.0
, "USD": 10_000.0
}
}
, "market_data": {
"sources": [
{
"loader_class": "cvttpy.trading.mkt_data.time_series.loaders.sqlite_loader.SqliteMdLoader"
, "file_name": "${SIM_DATA_DIR}/20250422.CNBS.BTC_USD.db"
, "table_name": "md_trades"
, "columns": [
"tstamp"
, "tstamp_ns as tm" # must have tm for DataFrame
, "tstamp_ns as local_time_ns" # must have for simrunner
, "exchange_id"
, "instrument_id"
, "px as price"
, "qty as quantity"
, "trade_id"
, "condition as aggressor_side"
, "condition as taker_side"
]
, "time_column": "tstamp"
, "exchange_id": "COINBASE"
, "instruments": ["PAIR-BTC-USD"]
, "md_type": "TRADES"
}
# , {
# "loader_class": "cvttpy.trading.mkt_data.time_series.loaders.tsdb_loader.TimescaleTSLoader"
# , "credentials_key": "TSDB_MD_CVTTDATA_RO"
# , "interval": ${INTERVAL}
# , "from_time": ${FROM_TIME} #"2024-10-03 09:00:00"
# , "exchange_id": "COINBASE"
# , "instruments": ["PAIR-BTC-USD"]
# , "md_type": "BOOK_TOP"
# , "table_name": "coinbase.md_booktops"
# , "columns": [
# "time",
# "local_time_ns",
# "exchange_id",
# "instrument_id",
# "bid_price",
# "bid_quantity",
# "ask_price",
# "ask_quantity",
# "'BT' as type",
# ]
# , "time_column": "time"
# }
]
, "api": {
"web_socket": {
"url": "ws://${SIM_HOST}:${SIM_MD_WS_PORT}/ws"
}
}
}
, "order_entry": {
"execution": {
"execute_on": ["BOOK_TOP", "TRADES"]
"top_only": true
,"min_order_age_sec": 0.1
, "pricing_method": "BY_MKT_TRD_PRICE_BY_TRADE"
, "short_sale_allowed": false
, "fee_schedule": {
"taker_fee_rate": 0.006
"maker_fee_rate": 0.004
}
# , "presubscribe_md_types": ["BOOK_TOP", "TRADES"]
}
, "api": {
"web_socket": {
"url": "ws://${SIM_HOST}:${SIM_OE_WS_PORT}/ws"
}
, "REST": {
"port": ${SIM_OE_REST_PORT},
"base_url": "http://${SIM_HOST}:${SIM_OE_REST_PORT}",
"endpoints": {
"new_order": ["POST", "/order"],
"cancel_order": ["POST", "/cancel"],
"cancel_all": ["POST", "/cancel_all"],
"open_orders": ["GET", "/open_orders"],
"order_status": ["GET", "/order_status"]
}
}
}
}
, "accounting": {
"api": {
"REST": {
"port": ${SIM_AC_REST_PORT},
"base_url": "http://${SIM_HOST}:${SIM_AC_REST_PORT}",
"endpoints": {
"positions": ["GET", "/positions"]
"trades": ["GET", "/trades"]
}
}
}
}
}
, "external_participants": [
{
"class": "cvttpy.apps.trading_simulator.participants.external_strategy.ExternalStrategySim"
"params": {
"reader": {
"source": "file://${SIM_DATA_DIR}/trading_instructions.json"
}
"listener": {
"book_id": "TESTBK_COINBS_01",
"strategy_id": "DUMMY_STRATEGY"
}
}
}
]
}
, "coordinator": {
"api": {
"REST": {
"port": ${COORDINATOR_REST_PORT},
"base_url": ["POST", "http://${COORDINATOR_HOST}:${COORDINATOR_REST_PORT}"],
}
, "WS": {
"url": "ws://${COORDINATOR_HOST}:${COORDINATOR_WS_PORT}/ws"
}
}
}
, "market_data_gateway": {
"exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
},
},
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.MD_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.MD_GW_APP_STATUS"
, "exchanges": [
"SIM_COINBASE"
],
"presubscribe": [
"COINBASE:PAIR-BTC-USD"
]
}
, "order_entry_gateway": {
"exchanges_settings": {
"ALPACA_SNDBX": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": false
, "streaming": false
}
, "credentials_key": {
"read_only": "ALPACA_SANDBOX"
, "trade": "ALPACA_SANDBOX"
}
}
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.OE_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OE_GW_APP_STATUS"
, "exchanges": [
"SIM_COINBASE"
]
}
, "accounting_gateway": {
"exchanges_settings": {
"ALPACA_SNDBX": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": true
, "streaming": false
}
, "credentials_key": {
"read_only": "ALPACA_SANDBOX"
, "trade": "ALPACA_SANDBOX"
}
},
"COINBASE_AT": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": true
, "streaming": false
}
, "credentials_key": {
"read_only": "COINBASE_ADV_RO"
}
}
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW_APP_STATUS"
, "exchanges": [
"SIM_COINBASE"
]
}
, "quant": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.QUANT"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.QUANT_MUSVC_STATUS"
}
, "trader": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.TRADER"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.TRADER_MUSVC_STATUS"
}
, "bookkeeper": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.BKPR"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.BKPR_MUSVC_STATUS"
, "db": {
"server_type": "timescale",
"cred_key": "TSDB_TRADING_CVTT_TESTDB"
}
}
, "risk_manager": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.RMGR"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.RMGR_MUSVC_STATUS"
, "revalue_interval_sec": 10.5
}
, "pricer": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.PXER"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.PXER_MUSVC_STATUS"
}
}
@@ -1,349 +0,0 @@
@var COORDINATOR_HOST=localhost
@var COORDINATOR_REST_PORT=28001
@var COORDINATOR_WS_PORT=28002
@var GLOBAL_CHANNEL_PREFIX=CVTT_MU_SIM
@var SIM_HOST=localhost
@var SIM_DATA_DIR=/home/oleg/develop/simulation/data
@var SIM_MD_WS_PORT=28080
@var SIM_OE_WS_PORT=28081
@var SIM_OE_REST_PORT=28082
@var SIM_AC_REST_PORT=28083
{
# ---------------------------------------
"__dummy__": null
# ---------------------------------------
# Overwriting "exchanges" part in "refdata"
# "refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
"refdata": {
"assets": @inc=http://@env{CONFIG_SERVICE}/refdata/assets ,
"instruments": @inc=http://@env{CONFIG_SERVICE}/refdata/instruments ,
"exchange_instruments": @inc=http://@env{CONFIG_SERVICE}/refdata/exchange_instruments ,
"dynamic_instrument_exchanges": ["ALPACA"],
"exchanges": {
"SIM_COINBASE": {
"exchange_id": "COINBASE",
"name": "Coinbase Advanced Trade (Simulation)",
"type": "SPOT",
"mktdata" : {
"class": "cvttpy.exchanges.mkt_simulator.md_client.MktSimMdClientFeed"
"api": @pathptr=simulation/market_simulator/market_data/api
},
"order_entry": {
"class": "cvttpy.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient"
"api": @ptrpath=simulation/market_simulator/order_entry/api
},
"accounting": {
"class": "cvttpy.exchanges.mkt_simulator.acct_client.MktSimAccounting"
"api": @ptrpath=simulation/market_simulator/accounting/api
},
},
"SIM_ALPACA": {
"exchange_id": "ALPACA",
"name": "Alpaca Trading",
"type": "EQUITY",
"mktdata" : {
"class": "cvttpy.exchanges.mkt_simulator.md_client.MktSimMdClientFeed"
"config_key": "simulation/market_simulator/market_data/api"
},
"order_entry": {
"class": "cvttpy.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient"
"config_key": "simulation/market_simulator/order_entry/api"
},
"accounting": {
"class": "cvttpy.exchanges.mkt_simulator.acct_client.MktSimAccounting"
"config_key": "simulation/market_simulator/accounting/api"
}
},
}
},
"comm": @inc=http://@env{CONFIG_SERVICE}/apps/common/comm ,
"algos": @inc=http://@env{CONFIG_SERVICE}/apps/common/algos ,
"strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/strategies ,
"risk_strategies": @inc=http://@env{CONFIG_SERVICE}/apps/common/risk_strategies ,
"comm_settings": "@env{CONFIG_COMM_SETTINGS}",
"global_channel_prefix": "${GLOBAL_CHANNEL_PREFIX}",
"simulation": {
# "speed_factor": 1.0,
"speed_factor": 0.0
, "time_events_interval_ms": 0
, "simtime_file": "${SIM_DATA_DIR}/simtime.bin"
, "expected_consumers": [
"md_gateway",
"mkt_gateway_tester"
"coordinator",
# "oe_gateway",
# "acct_gateway",
# "quant",
# "trader",
# "bookkeeper",
# "risk_manager",
# "pricer"
]
, "consumer_timeout_sec": 30.0
, "market_simulator" : {
"initial_positions": {
"exchange": "COINBASE",
"assets": {
"BTC": 0.5
, "ETH": 0.0
, "USD": 10_000.0
}
}
, "market_data": {
"sources": [
{
"loader_class": "cvttpy.trading.mkt_data.time_series.loaders.sqlite_loader.SqliteMdLoader"
, "file_name": "${SIM_DATA_DIR}/20250422.CNBS.BTC_USD.db"
, "table_name": "md_trades"
, "columns": [
"tstamp"
, "tstamp_ns as tm" # must have tm for DataFrame
, "tstamp_ns as local_time_ns" # must have for simrunner
, "exchange_id"
, "instrument_id"
, "px as price"
, "qty as quantity"
, "trade_id"
, "condition as aggressor_side"
, "condition as taker_side"
]
, "time_column": "tstamp"
, "exchange_id": "COINBASE"
, "instruments": ["PAIR-BTC-USD"]
, "md_type": "TRADES"
}
# , {
# "loader_class": "cvttpy.trading.mkt_data.time_series.loaders.tsdb_loader.TimescaleTSLoader"
# , "credentials_key": "TSDB_MD_CVTTDATA_RO"
# , "interval": ${INTERVAL}
# , "from_time": ${FROM_TIME} #"2024-10-03 09:00:00"
# , "exchange_id": "COINBASE"
# , "instruments": ["PAIR-BTC-USD"]
# , "md_type": "BOOK_TOP"
# , "table_name": "coinbase.md_booktops"
# , "columns": [
# "time",
# "local_time_ns",
# "exchange_id",
# "instrument_id",
# "bid_price",
# "bid_quantity",
# "ask_price",
# "ask_quantity",
# "'BT' as type",
# ]
# , "time_column": "time"
# }
]
, "api": {
"web_socket": {
"url": "ws://${SIM_HOST}:${SIM_MD_WS_PORT}/ws"
}
}
}
, "order_entry": {
"execution": {
"execute_on": ["BOOK_TOP", "TRADES"]
"top_only": true
,"min_order_age_sec": 0.1
, "pricing_method": "BY_MKT_TRD_PRICE_BY_TRADE"
, "short_sale_allowed": false
, "fee_schedule": {
"taker_fee_rate": 0.006
"maker_fee_rate": 0.004
}
# , "presubscribe_md_types": ["BOOK_TOP", "TRADES"]
}
, "api": {
"web_socket": {
"url": "ws://${SIM_HOST}:${SIM_OE_WS_PORT}/ws"
}
, "REST": {
"port": ${SIM_OE_REST_PORT},
"base_url": "http://${SIM_HOST}:${SIM_OE_REST_PORT}",
"endpoints": {
"new_order": ["POST", "/order"],
"cancel_order": ["POST", "/cancel"],
"cancel_all": ["POST", "/cancel_all"],
"open_orders": ["GET", "/open_orders"],
"order_status": ["GET", "/order_status"]
}
}
}
}
, "accounting": {
"api": {
"REST": {
"port": ${SIM_AC_REST_PORT},
"base_url": "http://${SIM_HOST}:${SIM_AC_REST_PORT}",
"endpoints": {
"positions": ["GET", "/positions"]
"trades": ["GET", "/trades"]
}
}
}
}
}
, "external_participants": [
{
"class": "cvttpy.apps.trading_simulator.participants.external_strategy.ExternalStrategySim"
"params": {
"reader": {
"source": "file://${SIM_DATA_DIR}/trading_instructions.json"
}
"listener": {
"book_id": "TESTBK_COINBS_01",
"strategy_id": "DUMMY_STRATEGY"
}
}
}
]
}
, "coordinator": {
"api": {
"REST": {
"port": ${COORDINATOR_REST_PORT},
"base_url": ["POST", "http://${COORDINATOR_HOST}:${COORDINATOR_REST_PORT}"],
}
, "WS": {
"url": "ws://${COORDINATOR_HOST}:${COORDINATOR_WS_PORT}/ws"
}
}
}
, "market_data_gateway": {
"exchanges_settings": {
"*": {
"mkt_data": {
"enabled": true
, "streaming": true
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": false
, "streaming": false
},
},
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.MD_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.MD_GW_APP_STATUS"
, "exchanges": [
"SIM_COINBASE"
],
"presubscribe": [
"COINBASE:PAIR-BTC-USD"
]
}
, "order_entry_gateway": {
"exchanges_settings": {
"ALPACA_SNDBX": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": true
, "streaming": true
},
"accounting": {
"enabled": false
, "streaming": false
}
, "credentials_key": {
"read_only": "ALPACA_SANDBOX"
, "trade": "ALPACA_SANDBOX"
}
}
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.OE_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.OE_GW_APP_STATUS"
, "exchanges": [
"SIM_COINBASE"
]
}
, "accounting_gateway": {
"exchanges_settings": {
"ALPACA_SNDBX": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": true
, "streaming": false
}
, "credentials_key": {
"read_only": "ALPACA_SANDBOX"
, "trade": "ALPACA_SANDBOX"
}
},
"COINBASE_AT": {
"mkt_data": {
"enabled": false
, "streaming": false
},
"order_entry": {
"enabled": false
, "streaming": false
},
"accounting": {
"enabled": true
, "streaming": false
}
, "credentials_key": {
"read_only": "COINBASE_ADV_RO"
}
}
}
, "channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.ACCT_GW_APP_STATUS"
, "exchanges": [
"SIM_COINBASE"
]
}
, "quant": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.QUANT"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.QUANT_MUSVC_STATUS"
}
, "trader": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.TRADER"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.TRADER_MUSVC_STATUS"
}
, "bookkeeper": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.BKPR"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.BKPR_MUSVC_STATUS"
, "db": {
"server_type": "timescale",
"cred_key": "TSDB_TRADING_CVTT_TESTDB"
}
}
, "risk_manager": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.RMGR"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.RMGR_MUSVC_STATUS"
, "revalue_interval_sec": 10.5
}
, "pricer": {
"channel_prefix": "${GLOBAL_CHANNEL_PREFIX}.PXER"
, "app_status_channel": "${GLOBAL_CHANNEL_PREFIX}.PXER_MUSVC_STATUS"
}
}
+80
View File
@@ -0,0 +1,80 @@
# ===============================================================================
# REAL TIME SIMULATOR
# (no Market Data)
# ===============================================================================
# Environment setting example
# SIM_ORDER_ENTRY_WS_PORT=28081
# SIM_ORDER_ENTRY_REST_PORT=28082
# SIM_ACCOUNTING_REST_PORT=28083
# simulation/market_simulator -> "" (root)
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata ,# tetsetraefafd
"initial_positions": {
"exchange": "COINBASE",
"assets": {
"ADA": 40000.0,
"BTC": 0.1,
"ETH": 5.0,
"USD": 10000.0
}
},
"market_data": {
# NOT USED HERE. Use Direct Market data via MDGW
}
"order_entry": {
"api": {
"web_socket": {
"url": "ws://localhost:@env{SIM_ORDER_ENTRY_WS_PORT}/ws"
},
"REST": {
"port": @env{SIM_ORDER_ENTRY_REST_PORT},
"base_url": "http://localhost:@env{SIM_ORDER_ENTRY_REST_PORT}",
"endpoints": {
"new_order": ["POST", "/order"],
"cancel_order": ["POST", "/cancel"],
"cancel_all": ["GET", "/cancel_all"],
"open_orders": ["GET", "/open_orders"],
"order_status": ["GET", "/order_status"]
}
}
},
"execution": {
"fast": { # formerly known as --debug_mode in OEGW; use --fast_exec_mode in CL
"partial_fill_wait_sec": 5,
"full_fill_wait_sec": 5.0,
"fee_rate": 0.006
},
"on_market_data": { ## DEFAULT METHOD
"execute_on": [
"BOOK_TOP",
"TRADES"
],
"subscribe_instruments": [
{"exch_acct": "COINBASE_AT", "instrument_id": "PAIR-BTC-USD"},
{"exch_acct": "COINBASE_AT", "instrument_id": "PAIR-ETH-USD"}
]
"top_only": true,
"pricing_method": "BY_MKT_TRD_PRICE_BY_TRADE",
"min_order_age_sec": 0.1,
"fee_schedule": {
"taker_fee_rate": 0.006,
"maker_fee_rate": 0.004
}
}
},
},
"accounting": {
"exch_acct": "COINBASE_AT",
"api": {
"REST": {
"port": @env{SIM_ACCOUNTING_REST_PORT},
"base_url": "http://localhost:@env{SIM_ACCOUNTING_REST_PORT}",
"endpoints": {
"positions": ["GET", "/positions"],
"trades": ["GET", "/trades"]
}
}
}
}
}
+6
View File
@@ -0,0 +1,6 @@
{
"model_class": "cvttpy_apps.apps.stat_pairs.lib.models.VECMModel"
, "model_name": "VECM-2H"
, "stat_model_price": "close"
, "training_window_hours": 2
}
+52
View File
@@ -0,0 +1,52 @@
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
"app_name": "@env{APP_NAME}",
"app_type": "STAT_PAIR_QUANT",
# =========== API ============
"api": {
"REST": {
"host": @env{SP_QUANT_REST_HOST}
, "port": @env{SP_QUANT_REST_PORT}
, "proto": "http"
}
},
"interval_sec": 60,
"loop_interval_sec": 60.0,
# ====== Model =======
"model": @inc=http://@env{CONFIG_SERVICE}/apps/stat_pairs/models/vecm
# ====== Instrument Validation =======
, "instrument_validation": {
"market_data_sufficiency": {
"maximum_gap_size": "5.0%",
"maximum_data_missing": "20.0%",
"maximum_latency_sec": 30
}
},
# ====== Trading Analysis =======
"analysis": {
"entry_diseq": 2.0,
"exit_diseq": 0.5,
"full_entry_diseq": 3.0,
"min_target_strength": 0.4,
"mode": "beta-aware"
},
# ====== Front Gateway ==========
"cvtt_fgw": {
"REST": {
"base_url": "@env{FGW_BASE_URL}",
"endpoints": {
"register": ["POST", "/app_register"]
"app_list": ["GET", "/app_list"]
"heartbeat": ["GET", "/app_hb"],
"md_history": ["POST", "/md_summary"],
"trading_instructions": ["POST", "/trading_instructions"],
}
}
}
}
@@ -0,0 +1,191 @@
{
"refdata": @inc=http://@env{CONFIG_SERVICE}/refdata/refdata
# "app_name": "STAT_PAIR_SELECTOR-TST",
"app_name": "@env{APP_NAME}"
"app_type": "STAT_PAIRS_SELECTOR"
, "interval_sec": 60
, "history_depth_hours": 26
, "rerun_interval": 300
, "model": @inc=http://@env{CONFIG_SERVICE}/apps/stat_pairs/models/vecm
, "instrument_validation": {
"market_data_sufficiency": {
"maximum_gap_size": "2.0%",
"maximum_data_missing": "20.0%"
}
}
, "mr_evaluation": {
"mr_speed_tau": 60,
"stationarity_pvalue_max": 0.05,
"stability_window": 360,
"stability_step": 60,
"stability_sensitivity": 0.5,
"score_weights": {
"speed": 0.3
, "stationarity": 0.4
, "stability": 0.3
},
"warnings_marks": {
"stationarity": 0.3
"stability": 0.3
},
"total_score_weights": {
"liquidity": 0.5,
"mr_geometric": 0.5,
"mr_arithmetic": 0
}
}
, "cvtt_fgw": {
"REST": {
# "base_url": "http://cld32-tester.cvtt.vpn:23456",
"base_url": "@env{FGW_BASE_URL}",
"endpoints": {
"register": ["POST", "/app_register"]
"heartbeat": ["GET", "/app_hb"],
"md_history": ["POST", "/md_summary"]
},
},
}
, "api": {
"REST": {
"host": @env{PAIR_SELECTOR_REST_HOST}
, "port": @env{PAIR_SELECTOR_REST_PORT}
, "proto": "http"
}
}
# ====== Instruments =======
, "instruments": [
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ADA-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-AVAX-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BCH-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BNB-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-BTC-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOGE-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-DOT-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-ETH-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-HBAR-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LINK-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-LTC-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SHIB-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SOL-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-SUI-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XLM-USD"
},
{
"exch_acct": "COINBASE_AT"
, "instrument_id": "PAIR-XRP-USD"
}
# =====================================================================
# {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-ADA-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-AVAX-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-BCH-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-BNB-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-BTC-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-DOGE-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-DOT-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-ETH-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-HBAR-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-LINK-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-LTC-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-SHIB-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-SOL-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-SUI-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-XLM-USDT"
# }
# , {
# "exch_acct": "BNBSPOT"
# , "instrument_id": "PAIR-XRP-USDT"
# }
]
}
+167 -2
View File
@@ -1,17 +1,182 @@
{ {
"USD": { "USD": {
"name": "USA Dollar",
"pricing": { "pricing": {
"method": "fixed" "method": "fixed"
, "value": 1.0 , "value": 1.0
} }
, "qty_precision": "0.01" , "qty_precision": "0.01"
} }
"BTC": { , "ADA": {
"pricing": { "name": "Cardano"
, "image": {
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-ADA-USD"
}
, "qty_precision": "0.01"
}
, "AVAX": {
"name": "Avalanche"
, "image": {
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-AVAX-USD"
}
, "qty_precision": "0.00000001"
}
, "BCH": {
"name": "Bitcoin Cash"
, "image": {
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-BCH-USD"
}
, "qty_precision": "0.00000001"
}
, "BTC": {
"name": "Bitcoin"
, "image": {
}
, "pricing": {
"method": "exch_inst" "method": "exch_inst"
, "exchange_id": "COINBASE" , "exchange_id": "COINBASE"
, "instrument_id": "PAIR-BTC-USD" , "instrument_id": "PAIR-BTC-USD"
} }
, "qty_precision": "0.00000001" , "qty_precision": "0.00000001"
} }
, "DOGE": {
"name": "Dogecoin"
, "image": {
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-DOGE-USD"
}
, "qty_precision": "0.1"
}
, "DOT": {
"name": "Polkadot"
, "image": {
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-DOT-USD"
}
, "qty_precision": "0.00000001"
}
, "ETH": {
"name": "Ethereum"
, "image": {
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-ETH-USD"
}
, "qty_precision": "0.00000001"
}
, "HBAR": {
"name": "Hedera"
, "image": {
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-HBAR-USD"
}
, "qty_precision": "0.1"
}
, "LINK": {
"name": "Chainlink"
, "image": {
# TBD
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-LINK-USD"
}
, "qty_precision": "0.01"
}
, "LTC": {
"name": "Litecoin"
, "image": {
# TBD
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-LTC-USD"
}
, "qty_precision": "0.00000001"
}
, "SHIB": {
"name": "SHIBA INU"
, "image": {
# TBD
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-SHIB-USD"
}
, "qty_precision": "1"
}
, "SOL": {
"name": "Solana"
, "image": {
# TBD
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-SOL-USD"
}
, "qty_precision": "0.00000001"
}
, "SUI": {
"name": "SUI"
, "image": {
# TBD
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-SUI-USD"
}
, "qty_precision": "0.1"
}
, "XLM": {
"name": "Stellar Lumens"
, "image": {
# TBD
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-XLM-USD"
}
, "qty_precision": "0.00000001"
}
, "XRP": {
"name": "XRP"
, "image": {
# TBD
}
, "pricing": {
"method": "exch_inst"
, "exchange_id": "COINBASE"
, "instrument_id": "PAIR-XRP-USD"
}
, "qty_precision": "0.000001"
}
} }
+120 -189
View File
@@ -35,10 +35,6 @@
} }
, "BNBSPOT": { , "BNBSPOT": {
"instruments": { "instruments": {
"PAIR-AAVE-BUSD": {
"md_symbol": "AAVEBUSD",
"trade_symbol": "AAVEBUSD"
},
"PAIR-ADA-USDT": { "PAIR-ADA-USDT": {
"md_symbol": "ADAUSDT", "md_symbol": "ADAUSDT",
"trade_symbol": "ADAUSDT" "trade_symbol": "ADAUSDT"
@@ -47,30 +43,18 @@
"md_symbol": "AVAXUSDT", "md_symbol": "AVAXUSDT",
"trade_symbol": "AVAXUSDT" "trade_symbol": "AVAXUSDT"
}, },
"PAIR-BCH-BUSD": {
"md_symbol": "BCHBUSD",
"trade_symbol": "BCHBUSD"
},
"PAIR-BCH-USDT": { "PAIR-BCH-USDT": {
"md_symbol": "BCHUSDT", "md_symbol": "BCHUSDT",
"trade_symbol": "BCHUSDT" "trade_symbol": "BCHUSDT"
}, },
"PAIR-BTC-BUSD": { "PAIR-BNB-USDT": {
"md_symbol": "BTCBUSD", "md_symbol": "BNBUSDT",
"trade_symbol": "BTCBUSD" "trade_symbol": "BNBUSDT"
}, },
"PAIR-BTC-USDT": { "PAIR-BTC-USDT": {
"md_symbol": "BTCUSDT", "md_symbol": "BTCUSDT",
"trade_symbol": "BTCUSDT" "trade_symbol": "BTCUSDT"
}, },
"PAIR-BUSD-USDT": {
"md_symbol": "BUSDUSDT",
"trade_symbol": "BUSDUSDT"
},
"PAIR-DOGE-BUSD": {
"md_symbol": "DOGEBUSD",
"trade_symbol": "DOGEBUSD"
},
"PAIR-DOGE-USDT": { "PAIR-DOGE-USDT": {
"md_symbol": "DOGEUSDT", "md_symbol": "DOGEUSDT",
"trade_symbol": "DOGEUSDT" "trade_symbol": "DOGEUSDT"
@@ -79,10 +63,6 @@
"md_symbol": "DOTUSDT", "md_symbol": "DOTUSDT",
"trade_symbol": "DOTUSDT" "trade_symbol": "DOTUSDT"
}, },
"PAIR-ETH-BUSD": {
"md_symbol": "ETHBUSD",
"trade_symbol": "ETHBUSD"
},
"PAIR-ETH-USD": { "PAIR-ETH-USD": {
"md_symbol": "ETHUSD", "md_symbol": "ETHUSD",
"trade_symbol": "ETHUSD" "trade_symbol": "ETHUSD"
@@ -91,18 +71,14 @@
"md_symbol": "ETHUSDT", "md_symbol": "ETHUSDT",
"trade_symbol": "ETHUSDT" "trade_symbol": "ETHUSDT"
}, },
"PAIR-LINK-BUSD": { "PAIR-HBAR-USDT": {
"md_symbol": "LINKBUSD", "md_symbol": "HBARUSDT",
"trade_symbol": "LINKBUSD" "trade_symbol": "HBARUSDT"
}, },
"PAIR-LINK-USDT": { "PAIR-LINK-USDT": {
"md_symbol": "LINKUSDT", "md_symbol": "LINKUSDT",
"trade_symbol": "LINKUSDT" "trade_symbol": "LINKUSDT"
}, },
"PAIR-LTC-BUSD": {
"md_symbol": "LTCBUSD",
"trade_symbol": "LTCBUSD"
},
"PAIR-LTC-USDT": { "PAIR-LTC-USDT": {
"md_symbol": "LTCUSDT", "md_symbol": "LTCUSDT",
"trade_symbol": "LTCUSDT" "trade_symbol": "LTCUSDT"
@@ -111,34 +87,34 @@
"md_symbol": "LTCUSD", "md_symbol": "LTCUSD",
"trade_symbol": "LTCUSD" "trade_symbol": "LTCUSD"
}, },
"PAIR-MATIC-BUSD": {
"md_symbol": "MATICBUSD",
"trade_symbol": "MATICBUSD"
},
"PAIR-MATIC-USDT": { "PAIR-MATIC-USDT": {
"md_symbol": "MATICUSDT", "md_symbol": "MATICUSDT",
"trade_symbol": "MATICUSDT" "trade_symbol": "MATICUSDT"
}, },
"PAIR-SHIB-USDT": {
"md_symbol": "SHIBUSDT",
"trade_symbol": "SHIBUSDT"
},
"PAIR-SOL-USDT": { "PAIR-SOL-USDT": {
"md_symbol": "SOLUSDT", "md_symbol": "SOLUSDT",
"trade_symbol": "SOLUSDT" "trade_symbol": "SOLUSDT"
}, },
"PAIR-UNI-BUSD": { "PAIR-SUI-USDT": {
"md_symbol": "UNIBUSD", "md_symbol": "SUIUSDT",
"trade_symbol": "UNIBUSD" "trade_symbol": "SUIUSDT"
}, },
"PAIR-USDC-USDT": { "PAIR-USDC-USDT": {
"md_symbol": "USDCUSDT", "md_symbol": "USDCUSDT",
"trade_symbol": "USDCUSDT" "trade_symbol": "USDCUSDT"
}, },
"PAIR-XLM-USDT": {
"md_symbol": "XLMUSDT",
"trade_symbol": "XLMUSDT"
},
"PAIR-XRP-BTC": { "PAIR-XRP-BTC": {
"md_symbol": "XRPBTC", "md_symbol": "XRPBTC",
"trade_symbol": "XRPBTC" "trade_symbol": "XRPBTC"
}, },
"PAIR-XRP-BUSD": {
"md_symbol": "XRPBUSD",
"trade_symbol": "XRPBUSD"
},
"PAIR-XRP-USDT": { "PAIR-XRP-USDT": {
"md_symbol": "XRPUSDT", "md_symbol": "XRPUSDT",
"trade_symbol": "XRPUSDT" "trade_symbol": "XRPUSDT"
@@ -159,10 +135,6 @@
"md_symbol": "BCHUSDT" "md_symbol": "BCHUSDT"
, "trade_symbol": "BCHUSDT" , "trade_symbol": "BCHUSDT"
} }
, "PERP-BTC-BUSD": {
"md_symbol": "BTCBUSD"
, "trade_symbol": "BTCBUSD"
}
, "PERP-BTC-USDT": { , "PERP-BTC-USDT": {
"md_symbol": "BTCUSDT" "md_symbol": "BTCUSDT"
, "trade_symbol": "BTCUSDT" , "trade_symbol": "BTCUSDT"
@@ -171,26 +143,14 @@
"md_symbol": "DOGEUSDT" "md_symbol": "DOGEUSDT"
, "trade_symbol": "DOGEUSDT" , "trade_symbol": "DOGEUSDT"
} }
, "PERP-ETH-BUSD": {
"md_symbol": "ETHBUSD"
, "trade_symbol": "ETHBUSD"
},
"PERP-ETH-USDT": { "PERP-ETH-USDT": {
"md_symbol": "ETHUSDT" "md_symbol": "ETHUSDT"
, "trade_symbol": "ETHUSDT" , "trade_symbol": "ETHUSDT"
} }
, "PERP-LINK-BUSD": {
"md_symbol": "LINKBUSD"
, "trade_symbol": "LINKBUSD"
}
, "PERP-LINK-USDT": { , "PERP-LINK-USDT": {
"md_symbol": "LINKUSDT" "md_symbol": "LINKUSDT"
, "trade_symbol": "LINKUSDT" , "trade_symbol": "LINKUSDT"
} }
, "PERP-LTC-BUSD": {
"md_symbol": "LTCBUSD"
, "trade_symbol": "LTCBUSD"
}
, "PERP-LTC-USDT": { , "PERP-LTC-USDT": {
"md_symbol": "LTCUSDT" "md_symbol": "LTCUSDT"
, "trade_symbol": "LTCUSDT" , "trade_symbol": "LTCUSDT"
@@ -199,14 +159,6 @@
"md_symbol": "MATICUSDT" "md_symbol": "MATICUSDT"
, "trade_symbol": "MATICUSDT" , "trade_symbol": "MATICUSDT"
} }
, "PERP-SOL-BUSD": {
"md_symbol": "SOLBUSD"
, "trade_symbol": "SOLBUSD"
}
, "PERP-UNI-BUSD": {
"md_symbol": "UNIBUSD"
, "trade_symbol": "UNIBUSD"
}
} }
} }
, "BNBSPOT_US": { , "BNBSPOT_US": {
@@ -247,10 +199,18 @@
"md_symbol": "ADA-USD", "md_symbol": "ADA-USD",
"trade_symbol": "ADA-USD" "trade_symbol": "ADA-USD"
}, },
"PAIR-AVAX-USD": {
"md_symbol": "AVAX-USD",
"trade_symbol": "AVAX-USD"
},
"PAIR-BCH-USD": { "PAIR-BCH-USD": {
"md_symbol": "BCH-USD", "md_symbol": "BCH-USD",
"trade_symbol": "BCH-USD" "trade_symbol": "BCH-USD"
}, },
"PAIR-BNB-USD": {
"md_symbol": "BNB-USD",
"trade_symbol": "BNB-USD"
},
"PAIR-BTC-USD": { "PAIR-BTC-USD": {
"md_symbol": "BTC-USD", "md_symbol": "BTC-USD",
"trade_symbol": "BTC-USD" "trade_symbol": "BTC-USD"
@@ -267,6 +227,10 @@
"md_symbol": "ETH-USD", "md_symbol": "ETH-USD",
"trade_symbol": "ETH-USD" "trade_symbol": "ETH-USD"
}, },
"PAIR-HBAR-USD": {
"md_symbol": "HBAR-USD",
"trade_symbol": "HBAR-USD"
},
"PAIR-LINK-USD": { "PAIR-LINK-USD": {
"md_symbol": "LINK-USD", "md_symbol": "LINK-USD",
"trade_symbol": "LINK-USD" "trade_symbol": "LINK-USD"
@@ -275,18 +239,18 @@
"md_symbol": "LTC-USD", "md_symbol": "LTC-USD",
"trade_symbol": "LTC-USD" "trade_symbol": "LTC-USD"
}, },
"PAIR-MATIC-USD": { "PAIR-SHIB-USD": {
"md_symbol": "MATIC-USD", "md_symbol": "SHIB-USD",
"trade_symbol": "MATIC-USD" "trade_symbol": "SHIB-USD"
},
"PAIR-MPL-USD": {
"md_symbol": "MPL-USD",
"trade_symbol": "MPL-USD"
}, },
"PAIR-SOL-USD": { "PAIR-SOL-USD": {
"md_symbol": "SOL-USD", "md_symbol": "SOL-USD",
"trade_symbol": "SOL-USD" "trade_symbol": "SOL-USD"
}, },
"PAIR-SUI-USD": {
"md_symbol": "SUI-USD",
"trade_symbol": "SUI-USD"
},
"PAIR-UNI-USD": { "PAIR-UNI-USD": {
"md_symbol": "UNI-USD", "md_symbol": "UNI-USD",
"trade_symbol": "UNI-USD" "trade_symbol": "UNI-USD"
@@ -295,6 +259,10 @@
"md_symbol": "USDT-USD", "md_symbol": "USDT-USD",
"trade_symbol": "USDT-USD" "trade_symbol": "USDT-USD"
}, },
"PAIR-XLM-USD": {
"md_symbol": "XLM-USD",
"trade_symbol": "XLM-USD"
},
"PAIR-XRP-USD": { "PAIR-XRP-USD": {
"md_symbol": "XRP-USD", "md_symbol": "XRP-USD",
"trade_symbol": "XRP-USD" "trade_symbol": "XRP-USD"
@@ -302,19 +270,86 @@
} }
} }
, "COINBASE-FUT": { , "COINBASE-FUT": {
"instruments": {} "instruments": {
"PERP-ADA-USDC": {
"md_symbol": "ADA-PERP-INTX",
"trade_symbol": "ADA-PERP-INTX"
}
, "PERP-AVAX-USDC": {
"md_symbol": "AVAX-PERP-INTX",
"trade_symbol": "AVAX-PERP-INTX"
}
, "PERP-BCH-USDC": {
"md_symbol": "BCH-PERP-INTX",
"trade_symbol": "BCH-PERP-INTX"
}
, "PERP-BNB-USDC": {
"md_symbol": "BNB-PERP-INTX",
"trade_symbol": "BNB-PERP-INTX"
}
, "PERP-BTC-USDC": {
"md_symbol": "BTC-PERP-INTX",
"trade_symbol": "BTC-PERP-INTX"
}
, "PERP-DOGE-USDC": {
"md_symbol": "DOGE-PERP-INTX",
"trade_symbol": "DOGE-PERP-INTX"
}
, "PERP-DOT-USDC": {
"md_symbol": "DOT-PERP-INTX",
"trade_symbol": "DOT-PERP-INTX"
}
, "PERP-ETH-USDC": {
"md_symbol": "ETH-PERP-INTX",
"trade_symbol": "ETH-PERP-INTX"
}
, "PERP-HBAR-USDC": {
"md_symbol": "HBAR-PERP-INTX",
"trade_symbol": "HBAR-PERP-INTX"
}
, "PERP-LINK-USDC": {
"md_symbol": "ADA-PERP-INTX",
"trade_symbol": "ADA-PERP-INTX"
}
, "PERP-LTC-USDC": {
"md_symbol": "LTC-PERP-INTX",
"trade_symbol": "LTC-PERP-INTX"
}
, "PERP-SHIB-USDC": {
"md_symbol": "1000SHIB-PERP-INTX",
"trade_symbol": "1000SHIB-PERP-INTX"
}
, "PERP-SOL-USDC": {
"md_symbol": "SOL-PERP-INTX",
"trade_symbol": "SOL-PERP-INTX"
}
, "PERP-SUI-USDC": {
"md_symbol": "SUI-PERP-INTX",
"trade_symbol": "SUI-PERP-INTX"
}
, "PERP-XLM-USDC": {
"md_symbol": "XLM-PERP-INTX",
"trade_symbol": "XLM-PERP-INTX"
}
, "PERP-XRP-USDC": {
"md_symbol": "XRP-PERP-INTX",
"trade_symbol": "XRP-PERP-INTX"
}
}
, "dynamic_instruments": { , "dynamic_instruments": {
# dynamically created instruments (futures) # dynamically created instruments (expiring futures)
"credentials_key": "COINBASE_ADV_RO" "credentials_key": "COINBASE_ADV_RO"
"class": "cvttpy_trading.exchanges.coinbase.futures.market.InstrumentLoader" "class": "cvttpy_trading.exchanges.coinbase.futures.market.InstrumentLoader"
, "api": { , "api": {
"REST": { "REST": {
"products_method": "GET" "products": {
, "products_url": "https://api.coinbase.com/api/v3/brokerage/products" "method": "GET"
, "futures_params": { , "url": "https://api.coinbase.com/api/v3/brokerage/products"
"product_type": "FUTURE" , "params": {
, "contract_expiry_type": "EXPIRING" "product_type": "FUTURE"
, "expiring_contract_status": "STATUS_UNEXPIRED" , "contract_expiry_type": "EXPIRING" # "PERPETUAL" #
, "expiring_contract_status": "STATUS_UNEXPIRED"
}
} }
} }
} }
@@ -331,118 +366,14 @@
} }
} }
# --- PERPs # --- PERPs
, "PERP-BTC-GUSD": { # , "PERP-BTC-GUSD": {
"md_symbol": "BTCGUSDPERP", # "md_symbol": "BTCGUSDPERP",
"trade_symbol": "BTCGUSDPERP", # "trade_symbol": "BTCGUSDPERP",
"base_asset": "BTCGUSDPERP", # "base_asset": "BTCGUSDPERP",
"specifics": {
"quote_increment": 0.5,
}
}
# "PERP-BNB-GUSD": {
# "md_symbol": "BNBGUSDPERP",
# "trade_symbol": "BNBGUSDPERP",
# "base_asset": "BNBGUSDPERP",
# "specifics": { # "specifics": {
# "quote_increment": 0.5, # "quote_increment": 0.5,
# } # }
# }, # }
# "PERP-ETH-GUSD": {
# "md_symbol": "ETHGUSDPERP",
# "trade_symbol": "ETHGUSDPERP",
# "base_asset": "ETHGUSDPERP",
# "specifics": {
# "quote_increment": 0.5,
# }
# },
# "PERP-PEPE-GUSD": {
# "md_symbol": "PEPEGUSDPERP",
# "trade_symbol": "PEPEGUSDPERP",
# "base_asset": "PEPEGUSDPERP",
# "specifics": {
# "quote_increment": 0.5,
# }
# },
# "PERP-XRP-GUSD": {
# "md_symbol": "XRPGUSDPERP",
# "trade_symbol": "XRPGUSDPERP",
# "base_asset": "XRPGUSDPERP",
# "specifics": {
# "quote_increment": 0.5,
# }
# },
# "PERP-SOL-GUSD": {
# "md_symbol": "SOLGUSDPERP",
# "trade_symbol": "SOLGUSDPERP",
# "base_asset": "SOLGUSDPERP",
# "specifics": {
# "quote_increment": 0.5,
# }
# },
# "PERP-MATIC-GUSD": {
# "md_symbol": "MATICGUSDPERP",
# "trade_symbol": "MATICGUSDPERP",
# "base_asset": "MATICGUSDPERP",
# "specifics": {
# "quote_increment": 0.5,
# }
# },
# "PERP-DOGE-GUSD": {
# "md_symbol": "DOGEGUSDPERP",
# "trade_symbol": "DOGEGUSDPERP",
# "base_asset": "DOGEGUSDPERP",
# "specifics": {
# "quote_increment": 0.5,
# }
# },
# "PERP-DOT-GUSD": {
# "md_symbol": "DOTGUSDPERP",
# "trade_symbol": "DOTGUSDPERP",
# "base_asset": "DOTGUSDPERP",
# "specifics": {
# "quote_increment": 0.5,
# }
# },
# "PERP-AVAX-GUSD": {
# "md_symbol": "AVAXGUSDPERP",
# "trade_symbol": "AVAXGUSDPERP",
# "base_asset": "AVAXGUSDPERP",
# "specifics": {
# "quote_increment": 0.5,
# }
# },
# "PERP-LTC-GUSD": {
# "md_symbol": "LTCGUSDPERP",
# "trade_symbol": "LTCGUSDPERP",
# "base_asset": "LTCGUSDPERP",
# "specifics": {
# "quote_increment": 0.5,
# }
# },
# "PERP-INJ-GUSD": {
# "md_symbol": "INJGUSDPERP",
# "trade_symbol": "INJGUSDPERP",
# "base_asset": "INJGUSDPERP",
# "specifics": {
# "quote_increment": 0.5,
# }
# },
# "PERP-LINK-GUSD": {
# "md_symbol": "LINKGUSDPERP",
# "trade_symbol": "LINKGUSDPERP",
# "base_asset": "LINKGUSDPERP",
# "specifics": {
# "quote_increment": 0.5,
# }
# },
# "PERP-WIF-GUSD": {
# "md_symbol": "WIFGUSDPERP",
# "trade_symbol": "WIFGUSDPERP",
# "base_asset": "WIFGUSDPERP",
# "specifics": {
# "quote_increment": 0.5,
# }
# },
} }
} }
, "KRAKEN": { , "KRAKEN": {
+53 -78
View File
@@ -3,11 +3,58 @@
{ {
"__DUMMY__": {} "__DUMMY__": {}
# ----------------------------- A # ----------------------------- A
, "__TRADING_SIMULATOR__": {
# ------ VALUES TO BE REPLACED
# "exchange_id": "COINBASE"
# , "name": "Coinbase AT (Simulated)"
# , "type": "SPOT"
# , "quote_asset": "USD"
# Environment setting example
# ------------------------------------
# SIM_ORDER_ENTRY_WS_PORT=28081
# SIM_ORDER_ENTRY_REST_PORT=28082
# SIM_ACCOUNTING_REST_PORT=28083
# SIM_HOST=rt_simulator # for **docker compose** service rt_simulator
"exchange_id": "__SIM-EXCHANGE-ID-PLACEHOLDER__"
"mktdata" : {
#
"class": "cvttpy_trading.exchanges.mkt_simulator.md_client.DisabledRtSimulatorMdFeed"
},
"order_entry": {
"class": "cvttpy_trading.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient"
, "api": {
"web_socket": {
"url": "ws://@env{SIM_HOST}:@env{SIM_ORDER_ENTRY_WS_PORT}/ws"
}
, "REST": {
"open_orders_url": ["GET", "http://@env{SIM_HOST}:@env{SIM_ORDER_ENTRY_REST_PORT}/open_orders"]
, "order_status_url": ["GET", "http://@env{SIM_HOST}:@env{SIM_ORDER_ENTRY_REST_PORT}/order_status"]
, "new_order_url": ["POST", "http://@env{SIM_HOST}:@env{SIM_ORDER_ENTRY_REST_PORT}/order"]
, "cancel_order_url": ["POST", "http://@env{SIM_HOST}:@env{SIM_ORDER_ENTRY_REST_PORT}/cancel"]
, "cancel_all_url": ["POST", "http://@env{SIM_HOST}:@env{SIM_ORDER_ENTRY_REST_PORT}/cancel_all"]
}
}
},
"accounting": {
"class": "cvttpy_trading.exchanges.mkt_simulator.acct_client.MktSimAccounting"
, "api": {
"REST": {
"positions_url": ["GET", "http://@env{SIM_HOST}:@env{SIM_ACCOUNTING_REST_PORT}/positions"]
, "trades_url": ["GET", "http://@env{SIM_HOST}:@env{SIM_ACCOUNTING_REST_PORT}/trades"]
}
}
}
}
, "ALPACA_PROD": { , "ALPACA_PROD": {
# https://docs.alpaca.markets/reference/ # https://docs.alpaca.markets/reference/
"exchange_id": "ALPACA" "exchange_id": "ALPACA"
, "name": "Alpaca Trading" , "name": "Alpaca Trading"
, "type": "EQUITY" , "type": "EQUITY"
, "quote_asset": "USD"
, "order_entry": { , "order_entry": {
"credentials_key": "ALPACA_PROD" "credentials_key": "ALPACA_PROD"
@@ -200,6 +247,8 @@
"exchange_id": "BNBFUT" "exchange_id": "BNBFUT"
, "name": "Binance Futures USD-M" , "name": "Binance Futures USD-M"
, "type": "FUTURES" , "type": "FUTURES"
, "quote_asset": "USDT"
, "mktdata" : { , "mktdata" : {
"class": "cvttpy_trading.exchanges.binance.futures.mkt_data.BnbFutMktDataFeed" "class": "cvttpy_trading.exchanges.binance.futures.mkt_data.BnbFutMktDataFeed"
@@ -230,6 +279,7 @@
"exchange_id": "BNBSPOT" "exchange_id": "BNBSPOT"
, "name": "Binance Spot" , "name": "Binance Spot"
, "type": "SPOT" , "type": "SPOT"
, "quote_asset": "USDT"
, "mktdata" : { , "mktdata" : {
"class": "cvttpy_trading.exchanges.binance.spot.mkt_data.BnbSpotMktDataFeed" "class": "cvttpy_trading.exchanges.binance.spot.mkt_data.BnbSpotMktDataFeed"
@@ -289,10 +339,10 @@
"exchange_id": "COINBASE" "exchange_id": "COINBASE"
, "name": "Coinbase Advanced Trade" , "name": "Coinbase Advanced Trade"
, "type": "SPOT" , "type": "SPOT"
, "quote_asset": "USD"
, "mktdata" : { , "mktdata" : {
"class": "cvttpy_trading.exchanges.coinbase.spot.mkt_data.CoinbaseSpotMdFeed" "class": "cvttpy_trading.exchanges.coinbase.spot.mkt_data.CoinbaseSpotMdFeed"
# "class": "cvttpy_trading.exchanges.coinbase.spot.mkt_data.CoinbaseMdFeed"
, "reconnect_secs": 2 , "reconnect_secs": 2
, "max_connections": 10 , "max_connections": 10
@@ -335,12 +385,12 @@
} }
} }
} }
} }
, "COINBASE_FUT": { , "COINBASE_FUT": {
"exchange_id": "COINBASE-FUT" "exchange_id": "COINBASE-FUT"
, "name": "Coinbase Advanced Trade Futures" , "name": "Coinbase Advanced Trade Futures"
, "type": "FUTURES" , "type": "FUTURES"
, "quote_asset": "USDC"
, "mktdata" : { , "mktdata" : {
"credentials_key": "COINBASE_ADV_TRD" "credentials_key": "COINBASE_ADV_TRD"
@@ -351,17 +401,7 @@
, "price_throttle": true , "price_throttle": true
, "api": { , "api": {
"REST": { # for product/instrument REST settings see exchange_instruments.cfg (COINBASE-FUT)
"products": {
"method": "GET"
, "url": "https://api.coinbase.com/api/v3/brokerage/products"
, "params": {
"product_type": "FUTURE"
, "contract_expiry_type": "EXPIRING"
, "expiring_contract_status": "STATUS_UNEXPIRED"
}
}
},
"web_socket": { "web_socket": {
"url": "wss://advanced-trade-ws.coinbase.com" "url": "wss://advanced-trade-ws.coinbase.com"
} }
@@ -533,68 +573,3 @@
} }
} }
} }
# , "ALPACA_SIM": {
# # https://docs.alpaca.markets/reference/
# "exchange_id": "ALPACA"
# , "name": "Alpaca Trading"
# , "type": "EQUITY"
# , "mktdata" : {
# "class": "cvttpy_trading.exchanges.mkt_simulator.md_client.MktSimMdClientFeed"
# "ws_url": ["WS", "ws://localhost:10180/ws"]
# }
# , "order_entry": {
# "class": "cvttpy_trading.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient"
# , "REST": {
# "new_order_url": ["POST", "http://localhost:10182/order"]
# , "cancel_order_url": ["POST", "http://localhost:10182/cancel"]
# , "cancel_all_url": ["POST", "http://localhost:10182/cancel_all"]
# , "open_orders_url": ["GET", "http://localhost:10182/open_orders"]
# , "order_status_url": ["GET", "http://localhost:10182/order_status"]
# },
# "ws_url": ["WSS", "ws://localhost:10181/ws"]
# }
# , "accounting": {
# "class": "cvttpy_trading.exchanges.mkt_simulator.acct_client.MktSimAccounting"
# , "REST": {
# "positions_url": ["GET", "http://localhost:10083/positions"]
# , "trades_url": ["GET", "http://localhost:10083/trades"]
# }
# }
# }
# , "COINBASE_SIM": {
# "exchange_id": "COINBASE"
# , "name": "Coinbase Advanced Trade (Simulation)"
# , "type": "SPOT"
# , "mktdata" : {
# "class": "cvttpy_trading.exchanges.mkt_simulator.md_client.MktSimMdClientFeed"
# "ws_url": ["WS", "ws://localhost:8080/ws"]
# }
# , "order_entry": {
# "class": "cvttpy_trading.exchanges.mkt_simulator.oe_client.MarketSimulatorOEClient"
# , "REST": {
# "new_order_url": ["POST", "http://localhost:8181/order"]
# , "cancel_order_url": ["POST", "http://localhost:8181/cancel"]
# , "cancel_all_url": ["POST", "http://localhost:8181/cancel_all"]
# , "open_orders_url": ["GET", "http://localhost:8181/open_orders"]
# , "order_status_url": ["GET", "http://localhost:8181/order_status"]
# },
# "ws_url": ["WSS", "ws://localhost:8180/ws"]
# }
# , "accounting": {
# "class": "cvttpy_trading.exchanges.mkt_simulator.acct_client.MktSimAccounting"
# , "REST": {
# "positions_url": ["GET", "http://localhost:8182/positions"]
# , "trades_url": ["GET", "http://localhost:8182/trades"]
# }
# }
# }
+263 -288
View File
@@ -1,510 +1,485 @@
{ {
# -------------------------------------- PAIRs # -------------------------------------- PAIRs
# --- PAIR-A # --- PAIR-A
"PAIR-AAVE-BUSD": {
"base_asset": "AAVE",
"quote_asset": "BUSD",
"quantity_precision": "0.001",
"price_tick": 0.01
},
"PAIR-AAVE-USD": { "PAIR-AAVE-USD": {
"base_asset": "AAVE", "base_asset": "AAVE",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.001", "quantity_precision": "0.001",
"price_tick": 0.01 "price_tick": 0.01
}, }
"PAIR-ADA-USD": { , "PAIR-ADA-USD": {
"base_asset": "ADA", "base_asset": "ADA",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.1", "quantity_precision": "0.00000001",
"price_tick": 0.0001 "price_tick": 0.0001
}, }
"PAIR-ADA-USDT": { , "PAIR-ADA-USDT": {
"base_asset": "ADA", "base_asset": "ADA",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.1", "quantity_precision": "0.00000001",
"price_tick": 0.0001 "price_tick": 0.0001
}, }
"PAIR-ASD-USDT": { , "PAIR-ASD-USDT": {
"base_asset": "ASD", "base_asset": "ASD",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.0001", "quantity_precision": "0.0001",
"contract_size": 1.0, "contract_size": 1.0,
"price_tick": 0.01 "price_tick": 0.01
}, }
"PAIR-AVAX-BUSD": { , "PAIR-AVAX-USD": {
"base_asset": "AVAX",
"quote_asset": "BUSD",
"quantity_precision": "0.00001",
"price_tick": 0.00001
},
"PAIR-AVAX-USD": {
"base_asset": "AVAX", "base_asset": "AVAX",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.00001", "quantity_precision": "0.00000001",
"price_tick": 0.00001 "price_tick": 0.01
}, }
"PAIR-AVAX-USDT": { , "PAIR-AVAX-USDT": {
"base_asset": "AVAX", "base_asset": "AVAX",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.00001", "quantity_precision": "0.00000001",
"price_tick": 0.00001 "price_tick": 0.01
}, }
# --- PAIR-B # --- PAIR-B
"PAIR-BCH-BUSD": { , "PAIR-BCH-USD": {
"base_asset": "BCH",
"quote_asset": "BUSD",
"quantity_precision": "0.001",
"price_tick": 0.1
},
"PAIR-BCH-USD": {
"base_asset": "BCH", "base_asset": "BCH",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.001", "quantity_precision": "0.00000001",
"price_tick": 0.1 "price_tick": 0.01
}, }
"PAIR-BCH-USDT": { , "PAIR-BCH-USDT": {
"base_asset": "BCH", "base_asset": "BCH",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.001",
"price_tick": 0.1
},
"PAIR-BTC-BUSD": {
"base_asset": "BTC",
"quote_asset": "BUSD",
"quantity_precision": "0.00000001", "quantity_precision": "0.00000001",
"price_tick": 0.1 "price_tick": 0.01
}, }
"PAIR-BTC-MXN": { , "PAIR-BNB-USD": {
"base_asset": "BTC", "base_asset": "BNB",
"quote_asset": "MXN", "quote_asset": "USD",
"quantity_precision": "0.000001", "quantity_precision": "0.00001",
"price_tick": 1 "price_tick": 0.01
}, }
"PAIR-BTC-USD": { , "PAIR-BNB-USDT": {
"base_asset": "BNB",
"quote_asset": "USD",
"quantity_precision": "0.00001",
"price_tick": 0.01
}
, "PAIR-BTC-USD": {
"base_asset": "BTC", "base_asset": "BTC",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.00000001", "quantity_precision": "0.00000001",
"price_tick": 0.01 "price_tick": 0.01
}, }
"PAIR-BTC-USDT": { , "PAIR-BTC-USDT": {
"base_asset": "BTC", "base_asset": "BTC",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.00000001", "quantity_precision": "0.00000001",
"price_tick": 0.1 "price_tick": 0.1
}, }
"PAIR-BUSD-USDT": {
"base_asset": "BUSD",
"quote_asset": "USDT",
"quantity_precision": "0.0001",
"price_tick": 0.0001
},
# --- PAIR-D # --- PAIR-D
"PAIR-DOGE-BUSD": { , "PAIR-DOGE-USD": {
"base_asset": "DOGE",
"quote_asset": "BUSD",
"quantity_precision": "0.01",
"price_tick": 0.00001
},
"PAIR-DOGE-USD": {
"base_asset": "DOGE", "base_asset": "DOGE",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.01", "quantity_precision": "0.1",
"price_tick": 0.00001 "price_tick": 0.00001
}, }
"PAIR-DOGE-USDT": { , "PAIR-DOGE-USDT": {
"base_asset": "DOGE", "base_asset": "DOGE",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.01", "quantity_precision": "0.1",
"price_tick": 0.00001 "price_tick": 0.00001
}, }
"PAIR-DOT-USD": { , "PAIR-DOT-USD": {
"base_asset": "DOT", "base_asset": "DOT",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.01", "quantity_precision": "0.00000001",
"price_tick": 0.001 "price_tick": 0.001
}, }
"PAIR-DOT-USDT": { , "PAIR-DOT-USDT": {
"base_asset": "DOT", "base_asset": "DOT",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.01", "quantity_precision": "0.00000001",
"price_tick": 0.001 "price_tick": 0.001
}, }
# --- PAIR-E # --- PAIR-E
"PAIR-ETH-BUSD": { , "PAIR-ETH-USD": {
"base_asset": "ETH",
"quote_asset": "BUSD",
"quantity_precision": "0.0001",
"price_tick": 0.01
},
"PAIR-ETH-USD": {
"base_asset": "ETH", "base_asset": "ETH",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.0001", "quantity_precision": "0.00000001",
"price_tick": 0.01 "price_tick": 0.01
}, }
"PAIR-ETH-USDT": { , "PAIR-ETH-USDT": {
"base_asset": "ETH", "base_asset": "ETH",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.0001", "quantity_precision": "0.00000001",
"price_tick": 0.01 "price_tick": 0.01
}, }
"PAIR-EUR-GBP": { , "PAIR-EUR-GBP": {
"base_asset": "EUR", "base_asset": "EUR",
"quote_asset": "GBP", "quote_asset": "GBP",
"quantity_precision": "0.00001", "quantity_precision": "0.00001",
"price_tick": 0.00001 "price_tick": 0.00001
}, }
"PAIR-EUR-USD": { , "PAIR-EUR-USD": {
"base_asset": "EUR", "base_asset": "EUR",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.00001", "quantity_precision": "0.00001",
"price_tick": 0.00001 "price_tick": 0.00001
}, }
# --- PAIR-G # --- PAIR-G
"PAIR-GENE-USDT": { , "PAIR-GENE-USDT": {
"base_asset": "GENE", "base_asset": "GENE",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.01", "quantity_precision": "0.01",
"price_tick": 0.001 "price_tick": 0.001
}, }
"PAIR-GBP-USD": { , "PAIR-GBP-USD": {
"base_asset": "GBP", "base_asset": "GBP",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.00001", "quantity_precision": "0.00001",
"price_tick": 0.00001 "price_tick": 0.00001
}, }
# --- PAIR-H
, "PAIR-HBAR-USD": {
"base_asset": "HBAR",
"quote_asset": "USD",
"quantity_precision": "0.1",
"price_tick": 0.00001
}
, "PAIR-HBAR-USDT": {
"base_asset": "HBAR",
"quote_asset": "USDT",
"quantity_precision": "0.1",
"price_tick": 0.00001
}
# --- PAIR-L # --- PAIR-L
"PAIR-LINK-BUSD": { , "PAIR-LINK-USD": {
"base_asset": "LINK",
"quote_asset": "BUSD",
"quantity_precision": "0.01",
"price_tick": 0.001
},
"PAIR-LINK-USD": {
"base_asset": "LINK", "base_asset": "LINK",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.01", "quantity_precision": "0.01",
"price_tick": 0.001 "price_tick": 0.001
}, }
"PAIR-LINK-USDT": { , "PAIR-LINK-USDT": {
"base_asset": "LINK", "base_asset": "LINK",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.01", "quantity_precision": "0.01",
"price_tick": 0.001 "price_tick": 0.001
}, }
"PAIR-LTC-BUSD": { , "PAIR-LTC-USD": {
"base_asset": "LTC",
"quote_asset": "BUSD",
"quantity_precision": "0.001",
"price_tick": 0.01
},
"PAIR-LTC-USD": {
"base_asset": "LTC", "base_asset": "LTC",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.001", "quantity_precision": "0.00000001",
"price_tick": 0.01 "price_tick": 0.01
}, }
"PAIR-LTC-USDT": { , "PAIR-LTC-USDT": {
"base_asset": "LTC", "base_asset": "LTC",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.001", "quantity_precision": "0.00000001",
"price_tick": 0.01 "price_tick": 0.01
}, }
# --- PAIR-M # --- PAIR-M
"PAIR-MATIC-BUSD": { , "PAIR-MATIC-USD": {
"base_asset": "MATIC", "base_asset": "MATIC",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.01", "quantity_precision": "0.01",
"price_tick": 0.0001 "price_tick": 0.0001
}, }
"PAIR-MATIC-USD": { , "PAIR-MATIC-USDT": {
"base_asset": "MATIC",
"quote_asset": "USD",
"quantity_precision": "0.01",
"price_tick": 0.0001
},
"PAIR-MATIC-USDT": {
"base_asset": "MATIC", "base_asset": "MATIC",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.01", "quantity_precision": "0.01",
"price_tick": 0.0001 "price_tick": 0.0001
}, }
"PAIR-MPL-USD": { , "PAIR-MPL-USD": {
"base_asset": "MPL", "base_asset": "MPL",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.001", "quantity_precision": "0.001",
"price_tick": 0.01 "price_tick": 0.01
}, }
# --- PAIR-S # --- PAIR-S
"PAIR-SOL-BUSD": { , "PAIR-SHIB-USD": {
"base_asset": "SOL", "base_asset": "SHIB",
"quote_asset": "BUSD", "quote_asset": "USD",
"quantity_precision": "0.01", "quantity_precision": "1",
"price_tick": 0.01 "price_tick": 0.00000001
}, }
"PAIR-SOL-USD": { , "PAIR-SHIB-USDT": {
"base_asset": "SHIB",
"quote_asset": "USDT",
"quantity_precision": "1",
"price_tick": 0.00000001
}
, "PAIR-SOL-USD": {
"base_asset": "SOL", "base_asset": "SOL",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.001", "quantity_precision": "0.00000001",
"price_tick": 0.01 "price_tick": 0.01
}, }
"PAIR-SOL-USDT": { , "PAIR-SOL-USDT": {
"base_asset": "SOL", "base_asset": "SOL",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.001", "quantity_precision": "0.00000001",
"price_tick": 0.01 "price_tick": 0.01
}, }
, "PAIR-SUI-USD": {
"base_asset": "SUI",
"quote_asset": "USD",
"quantity_precision": "0.1",
"price_tick": 0.0001
}
, "PAIR-SUI-USDT": {
"base_asset": "SUI",
"quote_asset": "USDT",
"quantity_precision": "0.1",
"price_tick": 0.0001
}
# --- PAIR-U # --- PAIR-U
"PAIR-UNI-BUSD": { , "PAIR-UNI-USD": {
"base_asset": "UNI",
"quote_asset": "BUSD",
"quantity_precision": "0.01",
"price_tick": 0.01
},
"PAIR-UNI-USD": {
"base_asset": "UNI", "base_asset": "UNI",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.01", "quantity_precision": "0.01",
"price_tick": 0.01 "price_tick": 0.01
}, }
"PAIR-USD-JPY": { , "PAIR-USD-JPY": {
"base_asset": "USD", "base_asset": "USD",
"quote_asset": "JPY", "quote_asset": "JPY",
"quantity_precision": "0.001", "quantity_precision": "0.001",
"price_tick": 0.001 "price_tick": 0.001
}, }
"PAIR-USD-MXN": { , "PAIR-USD-MXN": {
"base_asset": "USD", "base_asset": "USD",
"quote_asset": "MXN", "quote_asset": "MXN",
"quantity_precision": "0.001", "quantity_precision": "0.001",
"price_tick": 0.001 "price_tick": 0.001
}, }
"PAIR-USDC-USDT": { , "PAIR-USDC-USDT": {
"base_asset": "USDC", "base_asset": "USDC",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.01", "quantity_precision": "0.01",
"price_tick": 0.0001 "price_tick": 0.0001
}, }
"PAIR-USDT-USD": { , "PAIR-USDT-USD": {
"base_asset": "USDT", "base_asset": "USDT",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.0001", "quantity_precision": "0.0001",
"price_tick": 0.0001 "price_tick": 0.0001
}, }
# --- PAIR-X # --- PAIR-X
"PAIR-XRP-BTC": { , "PAIR-XLM-USD": {
"base_asset": "XLM",
"quote_asset": "USD",
"quantity_precision": "0.00000001",
"price_tick": 0.000001
}
, "PAIR-XLM-USDT": {
"base_asset": "XLM",
"quote_asset": "USDT",
"quantity_precision": "0.00000001",
"price_tick": 0.000001
}
, "PAIR-XRP-BTC": {
"base_asset": "XRP", "base_asset": "XRP",
"quote_asset": "BTC", "quote_asset": "BTC",
"quantity_precision": "1.0", "quantity_precision": "0.000001",
"price_tick": 0.00000001 "price_tick": 0.00000001
}, }
"PAIR-XRP-BUSD": { , "PAIR-XRP-EUR": {
"base_asset": "XRP",
"quote_asset": "BUSD",
"quantity_precision": "0.01",
"price_tick": 0.0001
},
"PAIR-XRP-EUR": {
"base_asset": "XRP", "base_asset": "XRP",
"quote_asset": "EUR", "quote_asset": "EUR",
"quantity_precision": "0.01", "quantity_precision": "0.000001",
"price_tick": 0.0001 "price_tick": 0.0001
}, }
"PAIR-XRP-MXN": { , "PAIR-XRP-MXN": {
"base_asset": "XRP", "base_asset": "XRP",
"quote_asset": "MXN", "quote_asset": "MXN",
"quantity_precision": "0.01", "quantity_precision": "0.01",
"price_tick": 0.000001 "price_tick": 0.000001
}, }
"PAIR-XRP-USD": { , "PAIR-XRP-USD": {
"base_asset": "XRP", "base_asset": "XRP",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "0.01", "quantity_precision": "0.000001",
"price_tick": 0.0001 "price_tick": 0.0001
}, }
"PAIR-XRP-USDT": { , "PAIR-XRP-USDT": {
"base_asset": "XRP", "base_asset": "XRP",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.01", "quantity_precision": "0.000001",
"price_tick": 0.0001 "price_tick": 0.0001
}, }
# **************************************************** # ****************************************************
# PERPs # PERPs
# **************************************************** # ****************************************************
# --- PERP-A # --- PERP-A
"PERP-AAVE-USDT": { , "PERP-AAVE-USDT": {
"base_asset": "AAVE", "base_asset": "AAVE",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.001", "quantity_precision": "0.001",
"price_tick": 0.1 "price_tick": 0.1
}, }
"PERP-AVAX-USDT": { , "PERP-ADA-USDC": {
"base_asset": "ADA",
"quote_asset": "USDC",
"quantity_precision": "1",
"price_tick": 0.0001
}
, "PERP-AVAX-USDC": {
"base_asset": "AVAX",
"quote_asset": "USDC",
"quantity_precision": "0.001",
"price_tick": 0.001
}
, "PERP-AVAX-USDT": {
"base_asset": "AVAX", "base_asset": "AVAX",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.00001", "quantity_precision": "0.001",
"price_tick": 0.00001 "price_tick": 0.001
}, }
# --- PERP-B # --- PERP-B
"PERP-BCH-USDT": { , "PERP-BCH-USDC": {
"base_asset": "BCH",
"quote_asset": "USDC",
"quantity_precision": "0.001",
"price_tick": 0.01
}
, "PERP-BCH-USDT": {
"base_asset": "BCH", "base_asset": "BCH",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.001", "quantity_precision": "0.001",
"price_tick": 0.1 "price_tick": 0.01
}, }
"PERP-BTC-BUSD": { , "PERP-BNB-USDC": {
"base_asset": "BTC", "base_asset": "BNB",
"quote_asset": "BUSD", "quote_asset": "USDC",
"quantity_precision": "0.00000001",
"price_tick": 0.1
},
"PERP-BTC-GUSD": {
"base_asset": "BTC",
"quote_asset": "GUSD",
"quantity_precision": "0.001", "quantity_precision": "0.001",
"price_tick": 0.01 "price_tick": 0.01
}, }
"PERP-BTC-USD": { , "PERP-BTC-USD": {
"base_asset": "BTC", "base_asset": "BTC",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "1", "quantity_precision": "0.0001",
"price_tick": 0.1 "price_tick": 0.1
}, }
"PERP-BTC-USDC": { , "PERP-BTC-USDC": {
"base_asset": "BTC", "base_asset": "BTC",
"quote_asset": "USDC", "quote_asset": "USDC",
"quantity_precision": "0.001", "quantity_precision": "0.001",
"price_tick": 0.01 "price_tick": 0.01
}, }
"PERP-BTC-USDT": { , "PERP-BTC-USDT": {
"base_asset": "BTC", "base_asset": "BTC",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.001", "quantity_precision": "0.001",
"price_tick": 0.01 "price_tick": 0.01
}, }
# --- PERP-D # --- PERP-D
"PERP-DOGE-USDT": { , "PERP-DOGE-USDC": {
"base_asset": "DOGE",
"quote_asset": "USDC",
"quantity_precision": "1",
"price_tick": 0.00001
}
, "PERP-DOGE-USDT": {
"base_asset": "DOGE", "base_asset": "DOGE",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "1", "quantity_precision": "1",
"price_tick": 0.000001 "price_tick": 0.00001
}, }
, "PERP-DOT-USDC": {
"base_asset": "DOT",
"quote_asset": "USDC",
"quantity_precision": "0.1",
"price_tick": 0.001
}
# --- PERP-E # --- PERP-E
"PERP-ETH-BUSD": { , "PERP-ETH-USDC": {
"base_asset": "ETH",
"quote_asset": "BUSD",
"quantity_precision": "0.0001",
"price_tick": 0.01
},
"PERP-ETH-USDC": {
"base_asset": "ETH", "base_asset": "ETH",
"quote_asset": "USDC", "quote_asset": "USDC",
"quantity_precision": "0.001", "quantity_precision": "0.0001",
"price_tick": 0.01 "price_tick": 0.01
}, }
"PERP-ETH-USD": { , "PERP-ETH-USD": {
"base_asset": "ETH", "base_asset": "ETH",
"quote_asset": "USD", "quote_asset": "USD",
"quantity_precision": "1", "quantity_precision": "1",
"price_tick": 0.01 "price_tick": 0.01
}, }
"PERP-ETH-USDT": { , "PERP-ETH-USDT": {
"base_asset": "ETH", "base_asset": "ETH",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.001", "quantity_precision": "0.001",
"price_tick": 0.01 "price_tick": 0.01
}, }
# --- PERP-H
, "PERP-HBAR-USDC": {
"base_asset": "HBAR",
"quote_asset": "USDC",
"quantity_precision": "1",
"price_tick": 0.00001
}
# --- PERP-L # --- PERP-L
"PERP-LINK-BUSD": { , "PERP-LINK-USDC": {
"base_asset": "LINK", "base_asset": "LINK",
"quote_asset": "BUSD", "quote_asset": "USDC",
"quantity_precision": "0.01", "quantity_precision": "0.01",
"price_tick": 0.001 "price_tick": 0.001
}, }
"PERP-LINK-USDT": { , "PERP-LINK-USDT": {
"base_asset": "LINK", "base_asset": "LINK",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.01", "quantity_precision": "0.01",
"price_tick": 0.001 "price_tick": 0.001
}, }
"PERP-LTC-BUSD": { , "PERP-LTC-USDC": {
"base_asset": "LTC", "base_asset": "LTC",
"quote_asset": "BUSD", "quote_asset": "USDC",
"quantity_precision": "0.001", "quantity_precision": "0.01",
"price_tick": 0.01 "price_tick": 0.01
}, }
"PERP-LTC-USDT": { , "PERP-LTC-USDT": {
"base_asset": "LTC", "base_asset": "LTC",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "0.001", "quantity_precision": "0.01",
"price_tick": 0.01 "price_tick": 0.01
}, }
# --- PERP-M # --- PERP-M
"PERP-MATIC-USDT": { , "PERP-MATIC-USDT": {
"base_asset": "MATIC", "base_asset": "MATIC",
"quote_asset": "USDT", "quote_asset": "USDT",
"quantity_precision": "1", "quantity_precision": "1",
"price_tick": 0.00001 "price_tick": 0.00001
} }
# --- PERP-S # --- PERP-S
, "PERP-SOL-BUSD": { , "PERP-SHIB-USDC": {
"base_asset": "SOL", "base_asset": "SHIB",
"quote_asset": "BUSD", "quote_asset": "USDC",
"quantity_precision": "0.01",
"price_tick": 0.01
}
# --- PERP-U
, "PERP-UNI-BUSD": {
"base_asset": "UNI",
"quote_asset": "BUSD",
"quantity_precision": "0.01",
"price_tick": 0.01
}
# ****************************************************
# PERPCs (coin-margined)
# ****************************************************
# --- PERPC-B
, "PERPC-BTC-USD": {
"base_asset": "BTC",
"quote_asset": "USD",
"quantity_precision": "1",
"price_tick": 0.1
}
# --- PERPC-D
, "PERPC-DOGE-USD": {
"base_asset": "DOGE",
"quote_asset": "USDT",
"quantity_precision": "1", "quantity_precision": "1",
"price_tick": 0.000001 "price_tick": 0.000001
} }
# --- PERPC-E , "PERP-SOL-USDC": {
, "PERPC-ETH-USD": { "base_asset": "SOL",
"base_asset": "ETH", "quote_asset": "USDC",
"quote_asset": "USD", "quantity_precision": "0.001",
"quantity_precision": "1",
"price_tick": 0.01
}
# --- PERPC-L
, "PERPC-LINK-USD": {
"base_asset": "LINK",
"quote_asset": "USDT",
"quantity_precision": "1",
"price_tick": 0.001 "price_tick": 0.001
} }
, "PERPC-LTC-USD": { , "PERP-SUI-USDC": {
"base_asset": "LTC", "base_asset": "SUI",
"quote_asset": "USDT", "quote_asset": "USDC",
"quantity_precision": "1", "quantity_precision": "0.1",
"price_tick": 0.01 "price_tick": 0.0001
} }
# --- PERPC-M # --- PERP-X
, "PERPC-MATIC-USD": { , "PERP-XLM-USDC": {
"base_asset": "MATIC", "base_asset": "XLM",
"quote_asset": "USDT", "quote_asset": "USDC",
"quantity_precision": "1",
"price_tick": 0.00001
}
, "PERP-XRP-USDC": {
"base_asset": "XRP",
"quote_asset": "USDC",
"quantity_precision": "1", "quantity_precision": "1",
"price_tick": 0.0001 "price_tick": 0.0001
} }
# ------------------- STOCKS # ------------------- STOCKS
, "STOCK-AAPL": { , "STOCK-AAPL": {
"base_asset": "EQT.AAPL" "base_asset": "EQT.AAPL"