私はしばらくの間、これに悩まされてきました:
解決する前に 5 つの変数に依存する関数があります (Black-Scholes)。BS のこの 1 つのインスタンスの価格を解決した後、さまざまな入力 (時間など) の範囲を作成し、それらを対応する出力 (他のすべての変数が一定に保たれた解) に対してプロットしたいと思います。
うまくいけば、私は次のようなものをプロットするでしょう
class BS
def __init__(self, args)
self.a = float(args[0])
self.b = float(args[1])
self.c = float(args[2])
self.d = float(args[3])
self.e = float(args[4])
...
...
the math
...
...
これで、T または時間から価格を計算するメソッドを保持するクラスのインスタンスを作成できます。
def price(self)
'math that only requires T'
return price
したがって、BS.price() を実行するだけで、次のような出力が可能です。
t = range(T-200, T+200, 1)
prices = [BS.price() for x in t]
rhos = [BS.rho() for x in t]
vegas = [BS.vega() for x in t]
parities = [BS.parity() for x in t]
pylab.plot(prices,t)
pylab.plot(rhos,t)
pylab.plot(vegas,t)
pylab.plot(parities,t)
価格の唯一の変数が時間である場合。Pythonで単一変数の依存関係を観察するより良い方法はありますか? 私はRの方が好きですが、それは私次第ではありません。
ご協力いただきありがとうございます!
編集:時間変数が math.sqrt() や scipy.cdf() のような数学演算を受けているときにリスト内包表記を使用する方法がわかりません。これを行う方法はありますか?float である変数 t に依存する関数を作成する方法を知っています。値のリストを math.sqrt() または scipy.cdf() に入力するにはどうすればよいですか? 助けてくれてありがとう!