Commit Graph

264 Commits

Author SHA1 Message Date
Mark Veidemanis 9835219e51
Implement closing trades on OANDA 2023-01-02 18:42:03 +00:00
Mark Veidemanis 2fa61fb195
Print the response if validation fails 2023-01-02 18:41:49 +00:00
Mark Veidemanis e0ea4c86fa
Implement check risk function 2023-01-01 21:52:51 +00:00
Mark Veidemanis 46aaff43c0
Begin writing live tests 2023-01-01 21:52:43 +00:00
Mark Veidemanis b2361bda77
Add enabled checkbox to account list 2023-01-01 15:52:04 +00:00
Mark Veidemanis b31a2d1464
Allow disabling accounts 2023-01-01 15:46:40 +00:00
Mark Veidemanis a18c150fe2
Begin implementing get all open trades 2022-12-22 07:20:49 +00:00
Mark Veidemanis b818e7e3f5
Write risk checking helpers and tests 2022-12-13 07:20:49 +00:00
Mark Veidemanis c81cb62aca
Finish implementing risk models 2022-12-13 07:20:49 +00:00
Mark Veidemanis 4e24ceac72
Add risk model and views 2022-12-21 21:35:59 +00:00
Mark Veidemanis 52ddef4c8f
Simplify protection options and allow none 2022-12-20 23:20:07 +00:00
Mark Veidemanis 29125d5087
Reshuffle the menu to minimise confusion 2022-12-13 07:20:49 +00:00
Mark Veidemanis 3a7b5c3ffd
Bring Alpaca and OANDA implementation functions into alignment 2022-12-13 07:20:49 +00:00
Mark Veidemanis a41a1e76a5
Refactor market into two files 2022-12-20 07:20:26 +00:00
Mark Veidemanis b7c46ba1d3
Add more user feedback on rejected and dropped trades 2022-12-20 07:20:26 +00:00
Mark Veidemanis a96c99b9e4
Remove dot in notifications title 2022-12-19 07:20:56 +00:00
Mark Veidemanis 8afe638f0d
Add Elasticsearch support 2022-12-13 07:20:49 +00:00
Mark Veidemanis 50820172b1
Send notification on new user creations 2022-12-18 17:49:42 +00:00
Mark Veidemanis 8de99c1bcd
Make variables passed to CRUD helpers consistent 2022-12-18 17:37:34 +00:00
Mark Veidemanis 246674b03e
Hide the cancel button and add title/subtitle to notification page 2022-12-18 17:27:40 +00:00
Mark Veidemanis 7ee698f457
Implement custom notification settings 2022-12-18 17:21:52 +00:00
Mark Veidemanis 4c463e88f2
Implement notifications 2022-12-18 16:55:09 +00:00
Mark Veidemanis f4772a3c7d
Remove some comments from limits views 2022-12-18 16:37:27 +00:00
Mark Veidemanis 3a39181261
Implement viewing and altering trends 2022-12-18 15:10:28 +00:00
Mark Veidemanis b882ba15d0
Write tests for crossfilter sub-functions 2022-12-12 19:53:32 +00:00
Mark Veidemanis 1793b5cc5d
Prevent betting against ourselves via inverted pairs 2022-12-12 19:53:20 +00:00
Mark Veidemanis d6ab0ffd0e
Add all models to admin site 2022-12-12 07:20:20 +00:00
Mark Veidemanis 06d8c9f4b2
Add tracker 2022-12-09 17:09:03 +00:00
Mark Veidemanis d1c44cee92
Improve professionalism by removing color 2022-12-08 07:20:46 +00:00
Mark Veidemanis cf4b8a0195
Lowercase trade in profit table 2022-12-08 07:20:46 +00:00
Mark Veidemanis 05f94e6e93
Rename trade action title 2022-12-08 07:20:46 +00:00
Mark Veidemanis a18572ebda
Add unrealized PL to profit screen 2022-12-08 07:20:46 +00:00
Mark Veidemanis 103a15f0e3
Add account ID to trade page buttons 2022-12-08 07:20:46 +00:00
Mark Veidemanis cd89b11611
Pass account ID to trade CRUD helper 2022-12-08 07:20:46 +00:00
Mark Veidemanis 633894ae75
Make account required for trade information 2022-12-08 07:20:46 +00:00
Mark Veidemanis 312ddb4dc1
Adjust titles for CRUD panels 2022-12-08 07:20:46 +00:00
Mark Veidemanis 0aef440229
Correctly check if no trend signals are defined 2022-12-08 07:20:46 +00:00
Mark Veidemanis 8840b04059
Use ObjectRead helper for all list and detail views 2022-12-08 07:20:46 +00:00
Mark Veidemanis 1e85e830b2
Fix positions CRUD 2022-12-08 07:20:07 +00:00
Mark Veidemanis d396abca84
Use CRUD helper for position list 2022-12-08 07:20:07 +00:00
Mark Veidemanis aa8ee887d3
Replace numbers with question marks in signal name 2022-12-07 07:20:05 +00:00
Mark Veidemanis 575b6a240f
Handle errors in checking for open positions 2022-12-07 07:20:47 +00:00
Mark Veidemanis af69b886ba
Add debug statement in crossfilter 2022-12-07 07:20:47 +00:00
Mark Veidemanis e388624f65
Move type field to signal 2022-12-07 07:20:11 +00:00
Mark Veidemanis 2ee5f7b937
Don't show all signals on strategy page 2022-12-01 07:20:35 +00:00
Mark Veidemanis baed991eca
Compact grid after closing widget 2022-12-07 07:20:32 +00:00
Mark Veidemanis d59d571679
Show hook name in signal string method 2022-12-06 22:43:43 +00:00
Mark Veidemanis 3b8e5dbdd1
Fix hook test method 2022-12-06 20:12:24 +00:00
Mark Veidemanis 15e00112af
Truncate strategy description 2022-12-06 20:06:35 +00:00
Mark Veidemanis 43caab5bf7
Make widgets appear lower to prevent pushdown 2022-12-06 20:04:22 +00:00
Mark Veidemanis 62c37a7a45
Color signals 2022-12-06 20:00:41 +00:00
Mark Veidemanis 6a549f3fd7
Allow spaces in signal name 2022-12-06 19:59:10 +00:00
Mark Veidemanis 3b3faecdf1
Implement trend signals 2022-12-06 19:46:06 +00:00
Mark Veidemanis 242c9fbaed
Make a proper front page 2022-11-29 07:20:39 +00:00
Mark Veidemanis a39a5c3857
Implement profit view and fix auto refresh 2022-11-29 07:20:39 +00:00
Mark Veidemanis 2b13802009
Make more fields optional and fix crash 2022-11-29 07:20:39 +00:00
Mark Veidemanis b3bacde8df
Remove unnecessary fields from trade response 2022-12-02 07:20:37 +00:00
Mark Veidemanis 62476e5da3
Remap trade details schema to expand trade variable 2022-12-02 07:20:37 +00:00
Mark Veidemanis c5d289ce85
Raise an error if a position has both short and long sides 2022-12-02 07:20:37 +00:00
Mark Veidemanis 1ce6c3fafa
Implement closing positions 2022-12-02 07:20:37 +00:00
Mark Veidemanis 5aac60a7ee
Remove some useless buttons 2022-12-02 07:20:37 +00:00
Mark Veidemanis 077768975d
Get the right signal name from the callback and fix position close schema 2022-12-02 07:20:37 +00:00
Mark Veidemanis 848f69da5e
Exits are exits, not entries 2022-12-01 21:13:21 +00:00
Mark Veidemanis 66a18a6406
Implement closing positions and refuse to post rejected trades 2022-12-01 20:36:58 +00:00
Mark Veidemanis 5c2eeae043
Implement crossfilter to protect against stupidity 2022-12-01 20:36:32 +00:00
Mark Veidemanis c0c1ccde8b
Add schemas for more commands 2022-12-01 20:36:09 +00:00
Mark Veidemanis 682d141b8a
Begin implementing exit executor for strategies 2022-12-01 19:33:06 +00:00
Mark Veidemanis bdae8ab093
Make callbacks handle signals 2022-12-01 19:32:50 +00:00
Mark Veidemanis 4527a9d04b
Reformat migrations 2022-12-01 19:32:29 +00:00
Mark Veidemanis 21b9585192
Validate strategy entries and exits 2022-12-01 19:32:08 +00:00
Mark Veidemanis 851d021af2
Make signals configurable 2022-11-29 07:20:21 +00:00
Mark Veidemanis f7242f4dd8
Fix off by one issue in OANDA 2022-11-29 07:20:39 +00:00
Mark Veidemanis f240c4b381
Improve navigating trades and positions by cross-linking 2022-11-29 07:20:39 +00:00
Mark Veidemanis 4e1b574921
Fix position list validation 2022-11-29 07:20:39 +00:00
Mark Veidemanis d3694d1821
Describe all model fields 2022-11-28 20:42:07 +00:00
Mark Veidemanis 3a6c3cee1f
Fix login redirect 2022-11-28 20:05:48 +00:00
Mark Veidemanis 0fc7c5c712
Implement more advanced 2FA library 2022-11-28 19:45:22 +00:00
Mark Veidemanis 7a64759ceb
Implement permission checking in views and forms 2022-11-28 18:09:41 +00:00
Mark Veidemanis bb7d6d1b41
Rename test 2022-11-28 17:09:53 +00:00
Mark Veidemanis 974deeafaa
Add missing space 2022-11-25 22:15:27 +00:00
Mark Veidemanis 4973582bdf
Implement trading time limits 2022-11-25 19:28:21 +00:00
Mark Veidemanis 69a2b269ad
Link trading times to strategies 2022-11-25 18:05:02 +00:00
Mark Veidemanis baa8e4fead
Implement configuration of trading times 2022-11-25 18:01:34 +00:00
Mark Veidemanis bcb3272064
Re-render invalid forms and fix space handling 2022-11-25 18:01:13 +00:00
Mark Veidemanis b525611aaa
Clarify value and quantity in position table headers 2022-11-22 07:20:37 +00:00
Mark Veidemanis cb88cf33c2
Prevent rounding errors in value calculation 2022-11-22 07:20:37 +00:00
Mark Veidemanis 3f8fb66656
Fix price bound logic 2022-11-22 08:10:38 +00:00
Mark Veidemanis 46bba54cb7
Allow absent price 2022-11-21 07:20:12 +00:00
Mark Veidemanis f6b5652268
Update Drakdoo API format 2022-11-21 07:20:12 +00:00
Mark Veidemanis ca434b8cf0
Remove offset panel 2022-11-15 07:20:17 +00:00
Mark Veidemanis d7e81dedb2
Implement trailing stop loss 2022-11-15 07:20:17 +00:00
Mark Veidemanis 5c68191e5b
Calculate price slippage more reliably and allow specifying order type and time in force 2022-11-15 07:20:17 +00:00
Mark Veidemanis c8f776e2a8
Set the type back to market 2022-11-15 07:20:17 +00:00
Mark Veidemanis 2aac7d1bb5
Add controls boilerplate to main page 2022-11-14 18:29:07 +00:00
Mark Veidemanis d2e0137c8d
Fix widgets in pages 2022-11-14 17:14:47 +00:00
Mark Veidemanis e3d57c9aa8
Fix HTMX widgets and tweak display of some titles 2022-11-13 13:22:31 +00:00
Mark Veidemanis 781de3c772
Convert everything to Decimal 2022-11-11 07:20:00 +00:00
Mark Veidemanis 9fc5d2f4d7
Initialise inverted variable in currency conversion 2022-11-11 07:20:00 +00:00
Mark Veidemanis 67404fc161
Don't convert between the same currency 2022-11-11 07:20:00 +00:00
Mark Veidemanis 3f855dfb59
Remove some debug statements 2022-11-11 07:20:00 +00:00
Mark Veidemanis afb0504dca
Documented the market system properly, squashed some bugs 2022-11-11 07:20:00 +00:00
Mark Veidemanis c3d908341a
Refactor and ignore n/a exchange callbacks 2022-11-10 07:20:20 +00:00
Mark Veidemanis 8b52063473
Refactor execute_strategy into functions and send a price bound 2022-11-10 19:52:52 +00:00
Mark Veidemanis af9f874209
Improve posting trades to OANDA and make everything more robust 2022-11-10 19:27:46 +00:00
Mark Veidemanis bf863f43b2
Check exchange name and remove redundant code, use IOC orders for OANDA 2022-11-10 07:20:28 +00:00
Mark Veidemanis 40f6330a13
Remove asset filter and begin implementing posting trades 2022-11-10 07:20:14 +00:00
Mark Veidemanis 47384aed5f
Update webmanifest 2022-11-10 09:52:30 +00:00
Mark Veidemanis e8a2f9b0fa
Update strategy defaults 2022-11-06 07:20:24 +00:00
Mark Veidemanis 6dd2997a74
Fix posting trades 2022-11-06 07:20:32 +00:00
Mark Veidemanis 60979652d9
Implement more validation and conversion 2022-11-04 07:20:14 +00:00
Mark Veidemanis d34ac39d68
Pull object names from model definitions in CRUD views 2022-11-04 07:20:42 +00:00
Mark Veidemanis 0c52cbd0f8
Use new call helper for all OANDA commands 2022-11-04 07:20:12 +00:00
Mark Veidemanis b36791d56b
Simplify schema and error handling 2022-11-04 07:20:55 +00:00
Mark Veidemanis 04a87c1da6
Add some comments about the exchange variables 2022-11-04 09:15:09 +00:00
Mark Veidemanis 7770a3844c
Make failing during validation or conversion configurable 2022-11-04 08:58:01 +00:00
Mark Veidemanis 65f650f1ac
Check if hook exists 2022-11-03 15:59:27 +00:00
Mark Veidemanis d319769fe0
Finish porting data structures for positions 2022-11-02 19:09:50 +00:00
Mark Veidemanis 48858bf20b
Fix price parsing 2022-11-02 19:04:05 +00:00
Mark Veidemanis 1f75da40af
Set account ID in exchange library instead of the view 2022-11-02 18:28:31 +00:00
Mark Veidemanis 5cb7d08614
Convert API responses with Glom 2022-11-02 18:25:34 +00:00
Mark Veidemanis 396d838416
Change positions fields 2022-11-02 18:24:56 +00:00
Mark Veidemanis 8ee56b0e37
Begin implementing pydantic validation for OANDA 2022-10-31 08:58:08 +00:00
Mark Veidemanis c15ae379f5
Wrap API calls in helper and validate response 2022-10-30 19:11:07 +00:00
Mark Veidemanis f22fcfdaaa
Implement stub functions for OANDA 2022-10-30 11:21:48 +00:00
Mark Veidemanis f6fa9bdbb6
Begin implementing OANDA 2022-10-30 10:57:53 +00:00
Mark Veidemanis 49a3737a72
Implement helper for deleting all database objects 2022-10-30 10:57:41 +00:00
Mark Veidemanis 2a876a20ba
Swap modals with innerHTML 2022-10-29 14:24:09 +01:00
Mark Veidemanis 31a77e88ad
Remove some print statements 2022-10-29 14:05:48 +01:00
Mark Veidemanis 6902665ffb
Update tables when objects are changed 2022-10-29 14:05:01 +01:00
Mark Veidemanis c685b6d25f
Simplify DB object management with Django CRUD helpers 2022-10-29 12:43:13 +01:00
Mark Veidemanis 8f705e2f25
Add more links to home page 2022-10-28 20:52:46 +01:00
Mark Veidemanis 061c6f6ca7
Implement strategies and posting trades 2022-10-27 18:08:40 +01:00
Mark Veidemanis 98a2300ae1
Begin implementing proper trade management 2022-10-24 09:07:22 +01:00
Mark Veidemanis 30d516ebf9
Implement viewing open positions 2022-10-22 00:15:27 +01:00
Mark Veidemanis 572b839c2c
Implement viewing live and DB information from account 2022-10-21 23:57:32 +01:00
Mark Veidemanis 1bdd49ee6a
Begin implementing positions 2022-10-17 07:20:30 +01:00
Mark Veidemanis 5279217324
Begin implementing trade management 2022-10-18 07:22:22 +01:00
Mark Veidemanis e2a697dcc1
Fix CRUD for accounts and trades 2022-10-17 19:06:09 +01:00
Mark Veidemanis 2bafdf0910
Implement CRUD for accounts and trades 2022-10-17 18:56:16 +01:00
Mark Veidemanis 7779cb8d0e
Fix callback windows 2022-10-17 07:20:30 +01:00
Mark Veidemanis cfeb570bf8
Add trailing slash to hook list 2022-10-17 07:20:30 +01:00
Mark Veidemanis 40ee4c03c4
Remove backslash in login screen 2022-10-14 07:20:30 +01:00
Mark Veidemanis 5a7332eb96
Add all model fields to callbacks 2022-10-16 14:37:49 +01:00
Mark Veidemanis 97d12b0fab
Make hooks/callbacks inherit type 2022-10-16 14:14:53 +01:00
Mark Veidemanis 3af63c5ef6
Add static token to settings 2022-10-16 13:36:17 +01:00
Mark Veidemanis 9139b4ffdd
Add callback migrations 2022-10-15 23:36:04 +01:00
Mark Veidemanis 6796421ba6
Fix logs in hooks 2022-10-15 23:34:55 +01:00
Mark Veidemanis a875ea0cbc
Fix import 2022-10-15 23:31:47 +01:00
Mark Veidemanis bc27748396
Parse Drakdoo response into model fields 2022-10-15 23:28:46 +01:00
Mark Veidemanis 20a4e21eaa
Validate hooks with serde 2022-10-15 23:24:03 +01:00