Windows11 WSL2 Ubuntu Python Ⅱ

相関係数予測ファイルまとめ

ここまでで、mplf-t.py と dsc-4.py を合体する時のポイントを説明しました。
以下に合体ファイルを表示します。
mplf-t.py 由来部分は赤色
dsc-4.py  由来部分は黒色
で記載しています。

# coding: utf-8
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import preprocessing
import datetime
from datetime import datetime as dt
from mplfinance.original_flavor import candlestick_ohlc

def addBusinessDays(from_date, add_days):
  cur_date8 = [] # 21/03/30
  cur_date4 = [] # 3/30
  business_days_to_add = add_days
  current_date = from_date
  while business_days_to_add > 0:
    current_date += datetime.timedelta(days=1)
    weekday = current_date.weekday()
    if weekday >= 5: # sunday = 6
      continue
    #土日は以下はスキップ
    # 年/月/日として文字列にする
    #例 21/03/30      
    e11 = current_date.strftime("%y/%m/%d")
    e22 = e11.replace("/0", "/")
    e33 = e22[3:] # 21/ 削除
    cur_date8.append(e22)
    cur_date4.append(e33)
    business_days_to_add -= 1
  return cur_date8, cur_date4

xl_df = pd.read_csv("public_html/manep-w/mane_chart_go.csv", encoding="cp932")

Open = xl_df["始値(売り)"].values
High = xl_df["高値(売り)"].values
Low = xl_df["安値(売り)"].values
Close = xl_df["終値(売り)"].values
Date = xl_df["日付"].values

tstr = Date[-1]
print(tstr)
tdatetime = dt.strptime(tstr, '%Y/%m/%d %H:%M:%S')
# tdatetime = dt.strptime(tstr, '%Y/%m/%d %H:%M')
# 文字列をdatetimeに変換するのがstrptime()関数
# datetime.datetime.strptime(文字列, 書式指定文字列)
lastday = addBusinessDays(tdatetime, 5)
print(lastday)

Idx = xl_df.index
print(Idx)
print(Close)

print("Idx[-1]=", Idx[-1])
print("Idx[-24]=", Idx[-24])

Idx_25 = Idx[-25:] + 5
print("Idx_25=")
print(Idx_25)

n_25 = 25
sl_cl_t = []
# n=0 Start 76End 75まで
# 最後 n=75 の時 n + n_25 = 100
# Close[n:n+n_25] = Close[75:100] 75~99 の25個
for n in range(Idx[-24]):
  sl_cl_t = np.append(sl_cl_t, Close[n:n+n_25]).reshape(n+1,n_25)

print("sl_cl_t")
print(sl_cl_t)
print(sl_cl_t.shape)

sl_cl_20 = sl_cl_t[:,:20]

print("sl_cl_20")
print(sl_cl_20)

# kijyu = sl_cl_t[-1][5:]
kijyu = sl_cl_t[-1, 5:]
print("基準値")
print(kijyu)
cor = np.corrcoef(kijyu, sl_cl_20)
print("cor")
print(cor)

cor1 = cor[1:, 0]
cor_max = np.amax(cor1)
print('相関max=', cor_max)
c_max_id = np.argmax(cor1)
print('相関max_ID=', c_max_id)

print("相関する25個のデータ")
print(sl_cl_t[c_max_id])

# インスタンスの作成
sscaler = preprocessing.StandardScaler()
x = sl_cl_t[c_max_id].reshape(-1,1)
print("元データsl_cl_t[c_max_id]を1×25 次元に変換")
print(x)
y = sscaler.fit_transform(x)
print("sl_cl_t[c_max_id]標準偏差値") 
print(y)

# 基準 kijyu の標準偏差 s と平均値 m
s = np.std(kijyu)
print("標準偏差 s = ", s)

m = np.mean(kijyu)
print("平均値 m = ", m)

w = y * s + m
print("予測値 w")
print(w)
plt.plot(w) # 相関する25個
plt.plot(kijyu) # ラスト20個
plt.show()

xDate = []
xD = []
for i, key in enumerate(Date):
  if(i % 10 == 0):
    e4 = str(key)[4:10]
    e6 = e4.replace("/0", "/")
    e8 = e6.lstrip("/")   
    xDate.append(e8)
    xD.append(i)

xDate.append(lastday[1][4])
xD.append(i + 5)
#5日間の予測日の追加

ohlc = zip(
Idx, Open, High, Low, Close)
fig = plt.figure(
  figsize=(8.34, 5.56))
ax = fig.add_subplot(1,1,1)
ax.grid()
candlestick_ohlc(
  ax, ohlc, width=0.5, alpha = 1,   
  colorup='r', colordown='g')
plt.xticks(xD, xDate)
plt.title('AUS$ / JPY chart')
plt.xlabel('Date')
plt.ylabel('Yen')
plt.plot(Idx_25, w)
plt.show()
# yamada@yama:~$ conda activate
# (base) yamada@yama:~$ python3 public_html/dsc-5.py

上記ファイルを windows 側で作成します。
上記内容をすべてをコピ-し、Python ファイルを作成します。
自分の PC Windows で TeraPad 等を使用して作成できたらファイル名を dsc-5.py として保存します。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
保存先はホスト Wimdows OS の
Linux \Ubuntu-22.04 \\wsl.localhost フォルダ
Linux/Ubuntu-22.04/home/yamada/public_html/dsc-5.py
とします。

ここまででデータ結合ファイルを作成できました。
引き続き、このファイルの動作確認をしていきます。


  • 相関係数予測ファイル動作確認 に進む
  • 相関係数予測 に戻る
  • 相関係数応用ファイルまとめ に戻る
  • 相関係数の応用 に戻る
  • すべての CSV データをスライシング に戻る
  • データのスライシング に戻る
  • データのスライシング(1次元) に戻る
  • データ結合ファイル動作確認 に戻る
  • pandas を使う に戻る
  • scikit-learn 動作ファイル確認 に戻る
  • scikit-learn インストール に戻る
  • 相関係数まとめ に戻る
  • NumPy を使う に戻る
  • ロ-ソク足表示ファイル作成 に戻る
  • pandas インスト-ル に戻る
  • Windows11 WSL2 Ubuntu Python パッケージ に戻る
  • 70VPS に戻る