テクニカル分析-1

>macd

MACD - FXブロードネット

 

MACDとは「Moving Average Convergence/Divergence Trading Method」の略で、直訳すると「移動平均・収束拡散トレード法」となります。

 

MACDは以下の計算式で算出されます。

MACD=短期EMA-長期EMA

シグナル=MACD単純移動平均(SMA)

 

通常の日足分析においては、短期EMA期間は9、長期EMA期間は26とするのが一般的です

また、MACD移動平均であるシグナルとともに2本の線で分析することが多く、シグナルの平均期間は9が一般的です。

 

続きを読む

分析手法とデータの対

>決定木分析

決定木 - Wikipedia

 

分類木を自動生成するアルゴリズム(詳細は述べない)があり、それを上の表に示すデータに適用すると、従属変数である「ゴルフをするか」を説明する最も良い方法は、変数「天気」を用いることだという結果が得られる。

続きを読む

WebクライアントがSSLとTLSに対応しているかどうか

>エラー

WebAPIの呼び出しがうまくいかず「ハマった」話 - 星と月と太陽と

 

ここで言われている、

 

リモート パーティがトランスポート ストリームを終了したため、認証に失敗しました。

これが出ました。解消するには、

 

VB.NETでTLS1.2対応 - Qiita

 

ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol Or SecurityProtocolType.Tls12

最初のブログで言われているのを参照して、わたしのプロジェクトではSystem.Net.WebClient()をインスタンシングして使うので、そのWebClientインスタンスについて、プロパティを

 

System.Net.ServicePointManager.SecurityProtocol = System.Net.ServicePointManager.SecurityProtocol Or System.Net.SecurityProtocolType.Tls12

として直りました。インスタンスがデフォルトの設定ではTLS1.2に対応していない(TLS1.2での通信をすることを想定せず、当該企画によって暗号化されたデータを読めない)ということでしょうか。

 

>SSLTLSとは

SSLとTLSとは?意外に知らないSSLとTLSの違い(簡単編) - 常時SSl Lab

 

SSL(Secure Socket Layer)は、インターネット上でやりとりされるデータの「盗聴」「改ざん」「なりすまし」を防止するための暗号化プロトコル(通信方法)です。

現在、通称としてSSLと呼ばれているものは、SSLに変わる新しい仕組みの『TLS(Transport Layer Security)』というものになっています。

SSLとかTLSとかというのは暗号通信の規格のようです。

 

httpとhttpsの違いとは?知らないと恥ずかしいWEBセキュリティの基本 - CyberSecurity.com

 

httpはTLSなし、httpsTLSありの、サーバ側の運用ということのようです。ちなみに上記修正前のWebClientで、アクセスできたサイトをみると、httpでした。Httpsのサイトへのアクセスの際にはクライアント側もtls1.2が必要ということのようです。普段われわれがWebブラウジングに使っているブラウザもTLS1.2に対応しているのでしょうか。私が普段使っているFireFoxだと、

 

参考

 

検索窓にabout:config

 

f:id:zizamo2193:20210424142429p:plain

 

security.tls.version.max、minのところを確認、で分かるみたいです。

 

f:id:zizamo2193:20210424142445p:plain

 

線形回帰によるワインの分析

>出典

scikit-learn で線形回帰 (単回帰分析・重回帰分析) - Python でデータサイエンス

 

>データについて

今回は、UC バークレー大学の UCI Machine Leaning Repository にて公開されている、「Wine Quality Data Set (ワインの品質)」の赤ワインのデータセットを利用します。

記事にあるデータをあけてみると、

f:id:zizamo2193:20210422213033p:plain



f:id:zizamo2193:20210422213054p:plain

 

ここが共通のようです。我々がデータのヘッダと呼んでいる部分は英語ではAttributeというみたいです。

 

>データの読み込み方

読み込みたいcsvの場所を変えずにプログラムの方にデータを見に行かせるには、

 

【Python】pandasで指定したフォルダのcsvファイルを開く - Qiita

 

これを組み合わせると、

f:id:zizamo2193:20210422213141p:plain



 

>単回帰分析

f:id:zizamo2193:20210422213303p:plain

 

図が描けないのは、それ用のパッケージのインストールをしていないからのようです。

 

Mac上のmatplotlibでグラフ描画できないときの対処法 - Qiita

 

リンク元の画像を見るに、目的変数「アルコール」(y)と説明変数「濃度」(x)の関係性をy = ax + bという学生の頃よく見た直線の式で表しているようです。散布図の上にその直線が引かれていて、プロットされたそれぞれの点がワインの各個体を表していて、それらの点の最大公約数的なところを通る直線のようです。だから単回帰分析というのはそのように、二次元の散布図にばらまかれた各個体のデータの、最大公約数的なところを通る直線を引いてその直線の延長線上の値を予測する、という方法論のようです。重回帰分析というのはそれの発展形で、説明変数が100個あれば101次元の散布図にばらまかれたデータの最大公約数を通る、100次元の何かを算出する方法論だということでしょう。しかしそういうことになると、直線は負の傾きを持っているから、濃度が上がればアルコールがさがる?あまりぴんと来ない結果です。普通ワインの濃度といえばアルコールの濃度だと思うからでしょう。然るにここで言う濃度は何か別のものの濃度なのでしょう。ワインのデータを使うとなんかカッコイイのですが、実行結果が直感的にならないというのは難点だとおもいます。

 

ちなみにaが回帰係数、bが切片、決定係数というのはこの式が予想する値がどのくらい信頼できるかの値で、0(→信頼できない)~1(→信頼できる)の値となるそうです。

 

>重回帰分析

 

f:id:zizamo2193:20210422213407p:plain

全部の要素で品質を説明するわけですから単回帰分析より精度が高い予想ができそうです。

 

>正規化+重回帰分析

 

f:id:zizamo2193:20210422213429p:plain

 

正規化する前と正規化した後で説明変数の順番が入れ替わるのはなぜでしょう。正規化とは何か。各説明変数がどの程度目的変数に影響しているかを確認するためにそうするという記述があります。目的変数が品質スコアというよくわからない変数なので、この変数と高いシンクロ率で推移している値が、たとえ振れ幅は小さくても高い影響力を持っているということは言えます。そういうことを明確にする手法なのだと推測できます。

f:id:zizamo2193:20210422213543p:plain



【パイソン機械学習】決定木のコード解析

>出典

scikit-learn で決定木分析 (CART 法) - Python でデータサイエンス

 

>コード解析

>>①データの読み込み

f:id:zizamo2193:20210410204234p:plain

前回同様Load_xxでデータを読み込んでいます。読み込んだデータをiris.data、iris.targetで出力することもできるみたいです。実際手元の開発環境でやってみると、こういうことになりました。

f:id:zizamo2193:20210410204310p:plain

f:id:zizamo2193:20210410204324p:plain

 

データの内容はこういう構造になっていると推測できます。

f:id:zizamo2193:20210410204347p:plain

 

>>②分類器にデータ(説明変数と目的変数)を渡す

f:id:zizamo2193:20210410204421p:plain

これで先述のデータを学習したことになったのでしょうか。

 

>>③学習済みの分類器に説明変数のみを渡して分類してもらう

f:id:zizamo2193:20210410204439p:plain

学習に使った説明変数をそのまま使っています。もしこれが新しい151番目の個体が入ってきたとしたら、という想定で手元の環境でやってみます。学習に使った説明変数の1番目のデータと同じパラメータのデータだとしたら、0に分類されるはずです。その要領で0に分類されるべき個体、1に分類されるべき個体、2に分類されるべき個体の3個体を含んだ配列を作って、それをこの分類器に渡してみましょう。二次元配列の作り方は出典下記です。

 

【Python】二次元配列を自在に操れ。【初期化・参照・抽出・計算・転置】 - Qiita

 

こう作りました。

f:id:zizamo2193:20210410204452p:plain



分類器に入れてみると、

f:id:zizamo2193:20210410204503p:plain



分類できていることがわかります。

 

>>④決定木を可視化

やろうとしましたが、pydotplusがないからムリという趣旨と思われるエラーメッセージが出ました。

エクセルの時刻の考え方

>考え方

エクセルで「1:00」と入力して、関数「VALUE」で中身を確認すると、「0.041667」となっています。

 

f:id:zizamo2193:20200119202831p:plain

この値は、1日(24:00)を1としたときの1:00の割合です。その証拠に、1÷24をしても同じ値が出ますし、24:00のVALUEを確かめると1が出ます。

続きを読む