遅行スパンクラス

遅行スパンクラスファイル作成 その6

遅行スパンクラスファイル delay_dif-cla-gra.php の各メソッドを作り込んでいきます。
作成ファイル内容は、
63Pear Village に戻り
左サイドナビ「遅行スパンクラス」の中の
遅行スパンクラス PHP ファイル
から見てください。
遅行スパンクラスファイル各メソッドの作成の流れについてはフロ-チャ-トを 遅行スパンクラスファイル作成 から見てください。
ここまで、遅行スパンクラス 結果表示メソッド function res_dis を作成してきました。
遅行スパンクラスファイル作成 その5を見てください。
引き続き、遅行スパンクラス チャ-ト表示メソッド function graph を作成します。

チャ-ト表示メソッド function graph 作成

このメソッドは4つの部分から構成されています。
1. 現在まての終値を遅行値だけ後にずらして表示。
2. 現在より先5日分の予測値を表示。
3. 現在まてのロ-ソク足を表示。
4. 重要事項コメントを記入。

function graph 変数定義

チャ-トを表示するために必要な変数を定義します。
これらの変数は メソッド function dif_arry ですでに結果が格納されています。
global $owa100;
 → 最新値:$owa100[1]
global $newday;
 → 最新日付
global $owa_cen;
 → 最小となる遅行数点における終値から最小となるΔAvgを補正した値
global $dsdn;
 → $owa_cen を最小となるσ値だけ下側に補正した値
global $dsup;
 → $owa_cen を最小となるσ値だけ上側に補正した値
global $mi;
 → 最小σ
global $mi_j;
 → 最小となる遅行数
global $mi_n;
 → 最小となる比較期間
global $mi_DA;
 → 最小となるΔAvg
global $mi_Avg;
 → 最小となる基本Avg
global $mi_Avg_m;
 → 最小となるh期間の比較平均値

チャ-ト用日付の準備

チャ-ト表示用デ-タ $data_g[$i3] を作成します。 まずは、チャ-ト X軸の日付を準備します。
表示する X軸総数 $maxN は
$this -> limit;
によってインスタンスから設定されています。
チャ-トでは、10本おきに日付を入れます。
X軸の向かって左端の日付を $hid[0] とし、日足10本ごとに日付を入れていくとすると、以下のようになります。


  
 $maxN = $this -> limit;
 //デ-タ数まで
 $maxN5 = $maxN + 5;
 /*
  予測値を表示するため +5 の
  表示用 X軸を準備
 */
 for($i3=0;$i3<$maxN5; $i3++){
  if($i3%10==0 and $i3<$maxN){
 //日付デ-タは $maxN までしかない
   $hid[$i3] =
    mb_substr(
     $owa100[$maxN-$i3][1],5
     );
  }else{
    $hid[$i3]="";
  }
  $data_g[$i3] =
   array($hid[$i3],"","","");
 }	

ここで、
mb_substr($owa100[$maxN - $i3][1],5);
は、日付の入った文字列 $owa100[$maxN - $i3][1] の(5+1)文字目以降を抜き出しています。
ちなみに、先頭文字は 0 で指定します。
例えば
$owa100[$maxN - $i3][1] = "2018/10/22";
とすると
mb_substr($owa100[$maxN - $i3][1],5);
は"10/22"となります。
なお、折線表示用デ-タ配列 $data_g[$i3]の構造は、
$data_g[$i3] = array($hid[$i3]日付,"予測値中値","予測値下値","予測値上値");
$i3 = 0 がグラフ向かって一番左側のデ-タ値
になります。

折線遅行値のデ-タ作成

$maxN1
 = デ-タ数 + 1
 = $this -> limit + 1
 = $maxN + 1
とすると
$mi_j はσが最小となる遅行数で、また $mi_DA はその時のΔAvgですから
例えば、グラフ一番左に表示すべきデ-タ値(終値) $tikou は、
$tikou =
$owa100[$maxN1 - $i3 - $mi_j][5] + $mi_DA;
$i3 = 0 として
$tikou =
$owa100[$maxN1 - $mi_j][5] + $mi_DA;
となります。
要するに、遅行数だけ表示デ-タを左にシフトします。
これをまとめて、折線表示用デ-タ配列 $data_g[$i3] に組込むと 以下のようになります。

    
 for($i3 = 0;
  $i3 < ($maxN1 - $mi_j);
  $i3++){
  $tikou =
   $owa100[$maxN1-$i3-$mi_j][5]
   + $mi_DA;
  $data_g[$i3] =
   array(
    $hid[$i3],"","","",$tikou
   );
 }

予測値の表示デ-タ作成

5日分の予測値デ-タは
中値:$owa_cen[4] ~ $owa_cen[0]
下値:$dsdn[4] ~ $dsdn[0]
上値:$dsup[4] ~ $dsup[0]
にあります。
これをチャ-ト表示デ-タ
$data_g[$i3]に代入します。
例えば、予測値デ-タ $owa_cen[0]、$dsdn[0]、$dsup[0] は、 $maxN の位置に表示すればよいですから
$i3 = $maxN とすると
$data_g[$i3] =
array(
$hid[$i3],
$owa_cen[$i3 - $maxN],
$dsdn[$i3 - $maxN],
$dsup[$i3 - $maxN],
"");
となります。 これを整理すると以下のようになります。

   
 for($i3=$maxN;$i3<$maxN5;$i3++){
  $data_g[$i3] =
   array($hid[$i3],
   $owa_cen[$i3 - $maxN],
   $dsdn[$i3 - $maxN],
   $dsup[$i3 - $maxN],
   "");
  }

ロ-ソク足表示デ-タ作成

ロ-ソク足表示デ-タ $data_l を準備します。
例えば、チャ-ト向かって左端の始値のデ-タ $data_l[0] は、表示ロ-ソク足デ-タ数は $maxN ですから
始値:$owa100[$maxN][2]
高値:$owa100[$maxN][3]
安値:$owa100[$maxN][4]
終値:$owa100[$maxN][5]
となります。
これを整理すると

 
 for($i4 = 0;$i4 < $maxN; $i4++){
  $data_l[$i4] = array($hid[$i4],
   doubleval($owa100[$maxN-$i4][2]),
   doubleval($owa100[$maxN-$i4][3]),
   doubleval($owa100[$maxN-$i4][4]),
   doubleval($owa100[$maxN-$i4][5]));
 }

となります。
ここで、doubleval( ) は PHP 関数で、( )内の変数を浮動小数点数値に変換してくれます。
ロ-ソク足表示デ-タは浮動小数点数値である必要があります。

これで、チャ-ト表示用デ-タ作成が完了しました。
引き続き、チャ-ト表示ファイルの作成を続けます。


遅行スパンクラスファイル作成 その7 に進む
遅行スパンクラスファイル作成 その5 に戻る
遅行スパンクラスファイル作成 その4 に戻る
遅行スパンクラスファイル作成 その3 に戻る
遅行スパンクラスファイル作成 その2 に戻る
遅行スパンクラスファイル作成 に戻る
遅行スパンクラス概要 に戻る

63PearVillage に戻る