2

ユーザーが複数の変数を持つ関数のグラフを表示できるようにするJavaScriptアプリを作成しようとしています。私のプログラムでは、変数Sをグラフの従属変数として使用し、他のすべての変数を定数パラメーターとして使用します。ただし、ユーザーがパラメーターの値を変更できるようにし、それらの変更に応じてグラフを更新する必要があります。私は自分のプログラムでそれをやろうとしましたが、グラフが表示されないようです。この問題にどのように対処しますか?また、別のプロットスクリプトを使用する必要がありますか?以下は私のコードです。金融に関心のあるすべての人にとって、私がブラックショールズ方程式を使用してコールオプションの値をプロットしようとしていることに気付くかもしれません。

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>


<script language="javascript" type="text/javascript" src="http://www.jqplot.com/tests/../src/jquery.min.js"></script>

<script language="javascript" type="text/javascript" src="http://www.jqplot.com/tests/../src/jquery.jqplot.min.js"></script>
<script type="text/javascript" src="http://distributome.googlecode.com/svn-history/r375/trunk/js/calc/distributions.js"></script>





<link rel="stylesheet" type="text/css" href="http://www.jqplot.com/tests/../src/jquery.jqplot.min.css">

<script type="text/javascript" src="http://www.jqplot.com/tests/../src/plugins/jqplot.canvasTextRenderer.min.js"></script>
<script type="text/javascript" src="http://www.jqplot.com/tests/../src/plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>












<script class="code" type="text/javascript">

function invoke () {
Sigma = quad.variance.value; 
K = quad.strike_price.value;
r = quad.r_val.value;
div = quad.div_val.value;
graph ();
}





function answer(S) {
    d1 = (Math.log( S / K )+(r - div + .5*Math.pow(Sigma, 2))*T)/(Sigma*Math.sqrt(T));
    d2 = d1 - Sigma*Math.sqrt(T); 
    return S*Math.exp(-div*T)*stdNormalCDF(d1) - K*Math.exp(-r*T)*stdNormalCDF(d2);
};






function graph() {

  var CallPoints = []; 
  for (var i=0; i<90; i+=0.1){ 
     CallPoints.push([i, answer(i)]); 
  } 
  var plot1 = $.jqplot('chart1', [CallPoints], {  
      series:[{showMarker:false}],
      axes:{
        xaxis:{
          label:'Stock Price'
        },
        yaxis:{
          label:'Premium'
        }
      }
  });
};

</script>



</head>
    <body onload="invoke()">


<form name="quad" onchange="invoke()">

<input type="text" value=".30" name="variance" size="5" onchange="invoke()"> = Volatility
<br>
<input type="text" value="30" name="strike_price" size="5" onchange="invoke()"> = K
<br>
<input type="text" value=".05" name="r_val" size="5" onchange="invoke()" > = r
<br>
<input type="text" value=".05" name="div_val" size="5" onchange="invoke()"> = div
<br>
<input type="text" value="1" name="T_val" size="5" onchange="invoke()"> = T

</form>
    <div id="chart1" style="height: 300px; width: 500px; position: relative;" class="jqplot-target">
    </div>

        </body>
</html>
4

1 に答える 1

0

T は、invoke() 関数の追加行で定義されていません:

T = quad.T_val.value;

于 2013-03-13T00:34:36.813 に答える