def nonce
        high_bits = (Time.now.to_f * 10000).to_i << 16
        low_bits  = SecureRandom.random_number(2 ** 16) & 0xffff
        (high_bits | low_bits).to_s
      end
def nonce
        high_bits = (Time.now.to_f * 10000).to_i << 16
        low_bits  = SecureRandom.random_number(2 ** 16) & 0xffff
        (high_bits | low_bits).to_s
      end
Generate a 64-bit nonce where the 48 high bits come directly from the current
 timestamp and the low 16 bits are pseudorandom. We can't use a pure [P]RNG here
 because the Kraken API requires every request within a given session to use a
 monotonically increasing nonce value. This approach splits the difference.