I’ve made a very basic system that trades cryptocurrencies on Binance. It fetches data every hour to find the top (momentum) performer. If already allocated to top performer then do nothing. Else, sell current holding (if any & except USDT) then buy top performer. Only holding one symbol. Might implement further diversification (top 5?). But fees 0.1% per side might not make it interesting (short term). I allocate a percentage of total portfolio value based on the health of the overall market. A simple ON/OFF filter based on BTC can do the trick. It’s beer money ~100$ It’s still a work in progress. Went from daily to hourly granularity. I am still backtesting metrics, lookbacks. Backtests have shown a solid x30 on dailies over the last 7 years but it’s not enough Switched to hourlies. Let’s see. Current system isn’t the best risk wise but it’s the best in absolute terms. I’ve read some take multiple years and thousands of lines of code to build their algorithms. Mine is a few days old and 500 lines of code. Have seen crazy results in backtests but it was thanks to a few outliers. Better check step by step what’s really going on and don’t trust the results blindly. 2021 is kind of an outlier also. Some logs … 2024-12-14 13:00:30,581 - INFO - Top Holding: [{'asset': 'USDT', 'balance': 49.31666631, 'price': 1, 'total_value': 49.31666631}, {'asset': 'MASK', 'balance': 13.3, 'price': 4.511, 'total_value': 59.996300000000005}] 2024-12-14 13:00:31,612 - INFO - Placing SELL order for 13.2 MASKUSDT at price 4.511 2024-12-14 13:00:31,922 - INFO - Order 1513288781 filled. Status: FILLED 2024-12-14 13:00:33,502 - INFO - Placing BUY order for 151.0 KMDUSDT at price 0.3747 2024-12-14 13:00:33,811 - INFO - Order 368163504 filled. Status: FILLED
Can also test the rules on non-crypto , to make sure it's not just making money due to the big outlier bull runs crypto had. Doesn't have to make as much, just has to prove it doesn't send your money down the drain eg stocks with industry class as biotech could be a similar out of sample to test against. That's not too good for short term algos, because short term usually need to be changed or swapped out every few years when they stop working. The platform might take years, but the trading rules shouldn't take so long. Also have you seen Robuxio? He has alot of API crypto strategies, you could try similar ideas in your platform.
That's right, would be interesting to test on Stocks as well, Already thought about it. Just need to gather the data. Either here or via my IBKR account's api. + Trading stocks (If I test I'll trade), Might provide opportunities since crypto assets are more correlated. That's the period, end of 2017 to present, I use for backtesting. 3 bulls versus 2 bears. BTC has done x30 ... However I am looking for consistent growth in the equity curve, I don't want to have to rely on outliers or abnormal conditions. Even if that's what crypto is made of ... Tough bears and crazy bulls. That's exactly what I thought ... I don't want to spend 10yrs on an algorithm to throw it a few cycles later ... I'll check out Robuxio. Thanks for sharing !
That's the result of the backtest over 10k hours (416 days) and 100k starting capital. #55,385,240 - (maxRunUp: 558.46 maxDD: -0.56 score: 243.19) A 56% Drawdown and ... 500x max run up. Let's see xD Here is a snapshot of today's value.
System is in cash because of (very) poor overall market health. I did check for errors but looks like crypto is being "nuked".
Great start in cryptocurrency trading! Keep refining step by step—your method shows promise, and the journey is just as exciting as the results!
I switched to this strategy for the last 24hrs. Just a mean reversion, buy the worst 24hrs performers. Went into CTXC and it just kept sliding down xD Lost a good 20%. Ok. One problem I see with buying the top performer is buying the top. I'll check if I can make a ranking and compare today's vs yesterday's ranking. The idea is to catch the top mover within the ranking. Not necessarily the one at the top. A lot of mean reversion is going on. The momentum strategy usually don't take into account the last period into account. For example ... Momentum over the last 12 months is actually n-2/n-12 Because mean reversion is happening over the short term. I've made a little change to the percent exposure parameter. The parameter goes from 0 to 1. It was linear but I've made it convex by squaring it.