2025年一月投資學期末考
劉子鳴蒙地卡羅模擬資產價格
切割期數
以上程式碼
.<STYLE>H1{BACKGROUND-COLOR:GREEN;COLOR:WHITE;TEXT-ALIGN:CENTER;PADDING:1PX;BORDER:SOLID BLUE 10PX;}SELECT{FONT-SIZE: 1.5EM; BACKGROUND-COLOR: LIGHTGREEN;LINE-HEIGHT:1;}
BUTTON{FONT-SIZE: 1.5EM; BACKGROUND-COLOR: YELLOW; WIDTH: 100PX;}
P{FONT-SIZE: 1.5EM; BACKGROUND-COLOR: LIGHTGREEN;}
</STYLE>
<SCRIPT>
function MY(n){
const step = 600.0 / n;
const stdev = 100.0 / Math.sqrt(n);
let x = 0;
let y = 200;
const canvas = document.getElementById("Canvas");
const Brownian = canvas.getContext("2d");
Brownian.beginPath();
Brownian.moveTo(x, y);
for (let i=0; i<n ; i++){
x += step;
y += stdev * Gaussian();
Brownian.lineTo(x, y);}
Brownian.strokeStyle = "blue";
Brownian.lineWidth = 3;
Brownian.stroke();
}
function Gaussian() {// Box-Muller 法
const a = 1 - Math.random(); //區間[0,1)改成(0,1]
const b = Math.random();
const z = Math.sqrt(-2.0*Math.log(a))*Math.cos( 2.0*Math.PI*b);
return z;
}
</SCRIPT>
<H1>劉任昌蒙地卡羅模擬資產價格</H1>
<P>切割期數<SELECT ONCHANGE='MY(this.value)'>
<OPTION>0</OPTION>
<OPTION>1</OPTION>
<OPTION>2</OPTION>
<OPTION>3</OPTION>
<OPTION>4</OPTION>
<OPTION>5</OPTION>
<OPTION>6</OPTION>
<OPTION>7</OPTION>
<OPTION>8</OPTION>
<OPTION>9</OPTION>
<OPTION>10</OPTION>
<OPTION>20</OPTION>
<OPTION>30</OPTION>
<OPTION>40</OPTION>
<OPTION>50</OPTION>
<OPTION>100</OPTION></SELECT>
<P>
<canvas id="Canvas" width="600" height="400"></canvas>
</P>
留言
張貼留言