First of all, very cool project. When i launched on my paper trading account, i noticed few things that i would like to improve:
- Position perc. cap and cash balance is hardcoded in few places as is 10%, no easy way to change it as parameter
- Position is always selected as max, no position handling logic, maybe some proportional parameter based on VIX, buy - sell distance (Kelly Criterion) and etc would be better? I understand this (position sizing) could be separate topic by itself, so at least global parametrization (as described in 1. ) to change it during run-time could be helpful functionality IMO
- In
trading_client.py there is a loop for ticker in ndaq_tickers: now i have noticed it has bias in cases where are many buy options: few first stocks fill up whole portfolio budget (due to 10%) and it becomes biased as looping over same sorted ndaq_tickers means first stocks will always eat up all budget and last ones in the list will rarely be bought, i would suggest: 1) either do buy/sell selection after looping through all tickers and sorting by buy-sell (for buy) or sell-buy (for sell) gap, that way guaranteeing best selections to be prioritized first; 2) or more simpler but maybe less optimal - just shuffle ndaq_tickers list before looping, this will bring diversity in stock selection every time. I believe 1) option would be more efficient if we trust that larger buy-sell gap means better probability of success.
First of all, very cool project. When i launched on my paper trading account, i noticed few things that i would like to improve:
trading_client.pythere is a loopfor ticker in ndaq_tickers:now i have noticed it has bias in cases where are many buy options: few first stocks fill up whole portfolio budget (due to 10%) and it becomes biased as looping over same sortedndaq_tickersmeans first stocks will always eat up all budget and last ones in the list will rarely be bought, i would suggest: 1) either do buy/sell selection after looping through all tickers and sorting by buy-sell (for buy) or sell-buy (for sell) gap, that way guaranteeing best selections to be prioritized first; 2) or more simpler but maybe less optimal - just shufflendaq_tickerslist before looping, this will bring diversity in stock selection every time. I believe 1) option would be more efficient if we trust that larger buy-sell gap means better probability of success.