|
|
var COL_D = "#0000ff"; //%Dの色
var COL_SLOWD = "#ff4040"; //スロー%Dの色
var DAYS_PK = 5; //%Kの日数
var DAYS_PD = 3; //%Dの日数
var DAYS_SLOWPD = 3; //SLOW%Dの日数
//ストキャスティックス表示
function dspStcastics(){
var i;
var j;
var minVal;
var maxVal;
var pk = new Array(gEd.length);
var pd = new Array(gEd.length);
var slowpd = new Array(gEd.length);
getCanvas("idstcas");
var stcasHeight = document.getElementById("idstcas").height;
var yRate = stcasHeight / 100;
//%Kの計算(5日間の変動幅)
w = 0;
for (i = DAYS_PK - 1; i <= gEndIdx; i++) {
//5日間の最安値と最高値を求める
minVal = gEd[i - 4];
maxVal = gEd[i - 4];
for (j = i - 4 + 1; j <= i; j++) {
if (gEd[j] < minVal) {
minVal = gEd[j];
} else if (maxVal < gEd[j]) {
maxVal = gEd[j];
}
}
pk[i] = (gEd[i] - minVal) / (maxVal - minVal) * 100;
}
//%Dの計算(%Kの3日間の平均)
for (i = 6; i <= gEndIdx; i++) {
pd[i] = (pk[i - 2] + pk[i - 1] + pk[i]) / DAYS_PD;
}
//SLOW%Dの計算(%Dの3日間の平均)
for (i = 8; i <= gEndIdx; i++) {
slowpd[i] = (pd[i - 2] + pd[i - 1] + pd[i]) / DAYS_SLOWPD;
}
//%D描画
gCtx.beginPath();
gCtx.strokeStyle = COL_D;
stIdx = getDrawIdx(gStartIdx, 9);
gCtx.moveTo(gX, stcasHeight - pd[stIdx] * yRate);
for (i = stIdx + 1; i <= gEndIdx; i++) {
gX += CNDL;
gCtx.lineTo(gX, stcasHeight - pd[i] * yRate);
}
gCtx.stroke();
gCtx.closePath();
//SLOW%D描画
gCtx.beginPath();
gCtx.strokeStyle = COL_SLOWD;
stIdx = getDrawIdx(gStartIdx, 9);
gCtx.moveTo(gX, stcasHeight - slowpd[stIdx] * yRate);
for (i = stIdx + 1; i <= gEndIdx; i++) {
gX += CNDL;
gCtx.lineTo(gX, stcasHeight - slowpd[i] * yRate);
}
gCtx.stroke();
gCtx.closePath();
document.getElementById("vstcas1").text = "80%";
document.getElementById("vstcas2").text = "50%";
document.getElementById("vstcas3").text = "20%";
}
|