Credit Spreads with the Kelly Criterion

Discussion in 'Risk Management' started by dcwriter2, Sep 16, 2019.

  1. Alexpung

    Alexpung

    You can do some programming and Monte Carlo it. Don't even need the equation.
     
    #11     Sep 17, 2019
  2. MKTrader

    MKTrader

    I'm not sure if anyone has really let this sink in...I hope at least the TS has. He's trying to make $20/trade (which could easily be less with unfavorable bid/ask in options) and will lose $4,650 on every 20 trades on average. Money management (Kelly or otherwise) is a moot point.
     
    #12     Sep 17, 2019
  3. Ok, maybe I am plugging the data in wrong, but with the call half of an iron condor way out of the money, say, with a delta on the short of about -97 (and the long wing a little further out), and a 97% win rate, risking say 5,000K to make $20, how would I do the Kelly? I can't believe there is no edge with a delta like that.
     
    #13     Sep 17, 2019
  4. taowave

    taowave

    How wide is your spread,i.e percent of spot??

    Your protective wing is "a little further out",but you still have a max loss of 5,000 while taking in 20 bucks??

    makes no sense
     
    #14     Sep 17, 2019
    MKTrader likes this.
  5. gaussian

    gaussian

    Kelly doesnt tell you the edge it tells you the bankroll percentage you should bet for mathematically optimizing your expected return.

    You have no edge in this trade.

    Code:
    import random
    from statistics import mean
    
    random.seed()
    
    
    def trade(p):
        """
        Flips a biased coin with probability of success p. With p in (0, 1]
        """
        if random.random() <= p:
            return True
    
        return False
    
    def simulate():
        """
        Simulates 100 trades of the worst system ever.
        """
        bankroll = 10000
    
        for x in range(0, 100):
            if trade(0.95):
                bankroll += 20
            else:
                bankroll -= 5000
    
        return bankroll
           
    
    def main():
        # 10000 Monte Carlo simulations of the worst system ever
        # excluding any actual costs.
    
        bankrolls = []
        for x in range(0, 10000):
          bankrolls.append(simulate())
    
        print(f"Average Bankroll: {mean(bankrolls)}")
    
    if "__name__" == "__main__":
        main()
    
    Here is a dumb python script that I took 5 seconds to write to monte carlo simulate your strategy using 10000 repeated runs of 100 trades. It never turns a profit because your expected loss greatly exceeds your possible gains.


    This makes sense mathematically too:

    E[Trade] = P(gain) * gain_dollars + P(loss) * loss_dollars
    E[Trade] = 0.95 * 20 + 0.05 * (-5000)
    E[Trade] = -231

    So you are expected to lose 231 dollars per trade assuming you had a large enough bank roll to run these trades as expected.
     
    Last edited: Sep 17, 2019
    #15     Sep 17, 2019
  6. Tks. Makes sense.
     
    #16     Sep 18, 2019