If the loss amount is adjusted to 33%, then on average over time individuals will make a net profit. A 50% win will more than compensate for a 33% loss (0.67 * 1.5 = 1.005).
import random
l = 0.33
w = 0.5
c = 100
m = 1000
p = {k: c for k in range(m)}
n = 1000
for k in range(n):
for j in range(m):
if random.choice([0,1]):
p[j] += (w * p[j])
else:
p[j] -= (l * p[j])
print(sum([p[k] for k in p]) / len(p))
print(sum(1 for k in p if p[k] > c) / len(p))
I wrote this up quickly so there might be an error, but under your stated parameters the average wealth increases over time and most people end up wealthier than they started. Specifically, the number of people who will be wealthier at the end seems to converge to somewhere between 57-60%.NB: This assumes you bet your entire capital each round instead of a constant bet size. In the presence of non-ergodicity you wouldn't want to do this, but that just means it's an even stronger result that most people come out ahead.
In fact 33% happens to be the maximum loss percentage this system (win rate, win percentage, bet = total capital) can tolerate while still exhibiting higher wealth for most players over time :)