2021年7月1日木曜日

FX自動トレード_2021年6月実績

    

 概要

2021年6月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。


2021年6月結果

2021年6月の実績は、実利利益額:\66,761、実績利益率は1.42%でした。

今月もボラが全く出ず。利益率の連続過去最低記録更新は免れましたが相変わらず低空飛行です。。


進捗

続いて予実比較です。当初計画と比較すると、想定利益率は3.16%でしたので1.74%ショートという結果になりました。本日までの実績平均利益率/月は2.54%になりました。



続いて、「10年1億円プロジェクト」の当初計画との予実比較は以下になります。6月終了時点で2024年9月時点の預託証拠金にまで到達する事が出来ました・・・三ヶ月連続で進んでません(´・ω・`)


また、入金額と利益率/月を調整した予定と、実績を比較した進捗は以下になります。
対計画でショートの状況継続中です。

今月もボロ負けでした。来月こそ!ボラが拡大してくれると嬉しいです。

FX自動トレード_2021年5月実績

    

 概要

2021年5月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。


2021年5月結果

2021年4月の実績は、実利利益額:\59,939、実績利益率は1.30%でした。

過去最低記録を更新した先月の利益率を更に下回り、二期連続過去最低記録を更新してしまいました。株式市場の高値警戒感に伴いボラが全然出ませんね。


進捗

続いて予実比較です。当初計画と比較すると、想定利益率は3.16%でしたので1.86%ショートという結果になりました。半分以下です。本日までの実績平均利益率/月は2.54%になりました。


続いて、「10年1億円プロジェクト」の当初計画との予実比較は以下になります。4月終了時点で2024年9月時点の預託証拠金にまで到達する事が出来ました・・・先月から進んで無い(´・ω・`)


また、入金額と利益率/月を調整した予定と、実績を比較した進捗は以下になります。
ショートの状態継続中です。

今月もボロ負けでした。少しずつ、相場が動くことを期待です。

2021年5月20日木曜日

Rでの「構文解析中に不正なマルチバイト文字列がありました」への対応方法

概要

Rプログラムを実行した際に「構文解析中に不正なマルチバイト文字列がありました」とのエラーが発生して困ったので、その対応方法をメモします。


環境

R:4.0.3


事象

事象はタイトルのとおり、以下のようなエラーが発生してRファイルが実行出来なくなってしまいました。
 > source("C:\\hoge.r")
 source("C:\\hoge.r") でエラー: 
   構文解析中に不正なマルチバイト文字列がありました (10 行) 
>

原因と対策

原因は、調査したところsource()関数がオープンしようとしているエンコードとRファイルのエンコードが異なってしまっている事のようでした。

なので、オープン時にエンコードを指定してあげればOKです。
> # 例えば、UTF-8のRファイルであればその旨を指定する。
> source("C:\\hoge.r",encoding="utf-8")
>

原因がわかれば対策は簡単でした。


本日はここまでで。

Rでの日付操作方法_lubridateの使い方

概要

Rで日付データを編集するにあたり便利なライブラリ「lubridate」を利用する事にしたので、その使い方をメモします。


環境

R:4.0.3


インストール

まずはインストールから。
インストールはRでおなじみのインストールコマンドで可能です。
> install.packages("lubridate")
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:
https://cran.rstudio.com/bin/windows/Rtools/
Installing package into ‘C:/Users/kk/Documents/R/win-library/4.0’
(as ‘lib’ is unspecified)
also installing the dependency ‘generics’
 URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/generics_0.1.0.zip' を試しています 
Content type 'application/zip' length 70676 bytes (69 KB)
downloaded 69 KB
 URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/lubridate_1.7.10.zip' を試しています 
Content type 'application/zip' length 1754612 bytes (1.7 MB)
downloaded 1.7 MB
package ‘generics’ successfully unpacked and MD5 sums checked
package ‘lubridate’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
	C:\Users\kk\AppData\Local\Temp\RtmpO0mSLb\downloaded_packages
>

使い方
使い方は以下のとおりになります。年月日時分秒のうち表示したいものをymdhmsを用いて関数で表現してあげればOKです。
y : year (年)
m : month (月)
d : day(日)
h : hour(時)
m : minutes(分)
s : seconds(秒)

> # ライブラリの読み込み
> library(lubridate)

 次のパッケージを付け加えます: ‘lubridate’ 

 以下のオブジェクトは ‘package:base’ からマスクされています: 

     date, intersect, setdiff, union 

 警告メッセージ: 
 パッケージ ‘lubridate’ はバージョン 4.0.5 の R の下で造られました  
> # 実行方法
> ymd("2021-5-1")
[1] "2021-05-01"

> mdy("1-5-2021")
[1] "2021-05-01"

> hms("11:30:42")
[1] "11H 30M 42S"

> ymd_hms("2021-05-01 11:30:42")
[1] "2021-05-01 11:30:42 UTC"

> ymd_hm("2021-05-01 11:30",tz="Japan")
[1] "2021-05-01 11:30:00 JST"

本日はここまでで。

2021年5月18日火曜日

FX自動トレード_2021年4月実績

   

 概要

2021年4月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。


2021年4月結果

2021年4月の実績は、実利利益額:\64,506、実績利益率は1.44%でした。

今月はボラが全く出ず。そのため、利益率としては過去最低記録を更新してしまいました。


進捗

続いて予実比較です。当初計画と比較すると、想定利益率は3.16%でしたので1.72%ショートという結果になりました。本日までの実績平均利益率/月は2.63%になりました。

続いて、「10年1億円プロジェクト」の当初計画との予実比較は以下になります。4月終了時点で2024年9月時点の預託証拠金にまで到達する事が出来ました・・・先月から進んで無い(´・ω・`)


また、入金額と利益率/月を調整した予定と、実績を比較した進捗は以下になります。
先月までは計画を超えていたのですが今月で一気にマイナスに転落です。


今月はボロ負けでした。来月はボラが拡大してくれると嬉しいです。

FX自動トレード_2021年3月実績

  

 概要

2021年3月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。


2021年3月結果

2021年3月の実績は、実利利益額:\109,554、実績利益率は2.49%でした。

今月は株式投資から引き揚げたお金\1,130,000を入金しました。そのため、利益率はこれまでと大きくは変わりませんが利益額がかなり大きくする事が出来ました。


進捗

続いて予実比較です。当初計画と比較すると、想定利益率は3.16%でしたので0.67%ショートという結果になりました。本日までの実績平均利益率/月は2.73%になりました。

続いて、「10年1億円プロジェクト」の当初計画との予実比較は以下になります。3月終了時点で2024年9月時点の預託証拠金にまで到達する事が出来ました。 


また、入金額と利益率/月を調整した予定と、実績を比較した進捗は以下になります。
少しずつ入金額と預託証拠金が開いて来ました(利益が溜まり始めてきました)。


今月は予実比較で微勝でした。来月以降もこの調子で利益を積み重ねられればとうれしいです。

2021年3月16日火曜日

MQL4のスケルトンコード読み方基本まとめ

概要

MQL4をプログラミングするためには、MQL4プログラム新規作成時に自動生成されるスケルトンコードを理解しておく必要がある為、読み方をメモしておきます。


MQL4プログラム新規作成方法

スケルトンコード云々の前に、そもそもMQL4プログラムを新規作成する必要があります。こちらについてはこちらに纏めましたので御覧ください。


MQL4のスケルトンコード

上記にてMQL4ファイルを新規作成すると以下のようなスケルトンコードが生成されます。
//+------------------------------------------------------------------+
//|                                                         hoge.mq4 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+

が、これが何を意味しているかを理解しなければこの後実装を進める事が出来ないです。。。そこで、プログラムを眺めてみると以下3つの関数が記載されており、これらの中身を実装すればOKになっている事が分かるかと思います。
①int OnInit()
②void OnDeinit(const int reason)
③void OnTick()

各関数の位置付け

①int OnInit()

これは、プログラムを起動した直後に1回だけ実行される関数です。
JavaやC#等のコンストラクタに近いものになります。

②void OnDeinit(const int reason)

これは、①とは逆にプログラムを終了する直前に1回だけ実行される関数です。
個人的にはまだあまり必要性はピンと来ていませんが、おそらくJavaやC#で言うところのfinally句に記載するような事を書くのかなと思います。

③void OnTick()

これは、イベントが発生(画面上で何かしら操作が成された時)した際に呼び出される関数です。
なので、本関数に、ボタンを押される等のイベントを検知したらどんな動作をさせたい・・・といった事を記述する領域になります。


ロジックの具体的な記述方法は後程という事にさせて頂きつつ、MQL4全体の構成としては上記のとおりになります。


本日はここまでで。

FX自動トレード_2021年2月実績

 

 概要

2021年2月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。


2021年2月結果

2021年2月の実績は、実利利益額:\89,449、実績利益率は2.83%でした。

今月は比較的ボラもあり、ある程度の結果を得ることが出来ました。久しぶりに過去の平均利益率を上回っております。


進捗

続いて予実比較です。当初計画と比較すると、想定利益率は3.16%でしたので0.33%ショートという結果になりました。本日までの実績平均利益率/月は2.75%になりました。


続いて、「10年1億円プロジェクト」の当初計画との予実比較は以下になります。2月終了時点で2023年8月時点の預託証拠金にまで到達する事が出来ました。 


また、入金額と利益率/月を調整した予定と、実績を比較した進捗は以下になります。

今月は予実比較で微勝でした。来月以降もこの調子で利益を積み重ねられればとうれしいです。

2021年2月6日土曜日

FX自動トレード_2021年1月実績

 概要

2021年1月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。


2021年1月結果

2021年1月の実績は、実利利益額:\68,893、実績利益率は2.24%でした。

上旬はボラが無く寂しい結果を覚悟しましたが下旬にある程度ボラが出たので、良い結果ではありませんがある程度の結果を得ることが出来ました。

また昨年、一昨年とは異なり年末年始にフラッシュクラッシュも起きず安定した相場でした。


今月も\450,000調達の目処が立ちましたので、入金額は\2,250,000→\2,700,000に増額しています。更に昨年の収益ぶん税金が発生する為、出金を予定しておりましたが、住宅ローン控除で相殺出来た(?)ので出金もせずに済んでおり、証拠金がどんどん増えております。


進捗

続いて予実比較です。当初計画と比較すると、想定利益率は3.16%でしたので0.92%ショートという結果になりました。当初計画の3.16%というのはかなりハードルとしては高かったようです。本日までの実績平均利益率/月は2.74%になりました。


続いて、「10年1億円プロジェクト」の当初計画との予実比較は以下になります。\800,000入金しましたので2023年4月時点の預託証拠金にまで到達する事が出来ました。 


また、入金額と利益率/月を調整した予定と、実績を比較した進捗は以下になります。

今月も予実比較だと負けですが、上記記載のとおり出金を免れたのでギリギリトントンという結果になりました。証拠金がある程度溜まってきた事で月次の収益もある程度順調に増えてきています。

過去FX相場のヒストリカルデータをcsvで無料取得する方法

概要

FX相場のヒストリカルデータを無料で取得する方法を調べたのでその方法をメモします。


エクスポート方法

「ツール」->「ヒストリーセンター」を選択
↓の画面が開くので、好きな通貨ペアの好きな足を選択して「エクスポート」をクリックする。
↓の例では、ポンドオージーの5分足を選択。



これでデータのエクスポートは完了。

今回はここまでで。







MT4でプログラミングする方法(MQL4言語でHello World)

概要

FXのトレーディングツールとしてメジャーなMT4(日本ではあまり使われない)では、MQL4という言語でプログラミングする事で自動的な演算やトレードを行う事が出来ます。

それを自分でも作りたく、その方法を調べたのでメモります。


MQL4エディタの起動方法

まずMT4のツールバーの黄色い付箋?のようなところクリックします。

すると↓のような画面が開くので「新規作成」をクリックします。

「エキスパートアドバイザ(テンプレート)」を選択して「次へ」をクリック。

おそらく「エキスパートアドバイザ(テンプレート)」はデフォルトで選択されています。

「名前」の欄に「Experts\sample」と入力します。「sample」はファイル名です。

入力したら「次へ」がアクティブ化するのでこれをクリックします。

すると↓のようなスケルトンコードが自動生成されます。

OnInit()メソッドに↓のように記載します。

これがMQL4におけるHello Worldのコードです。

記載が出来たらツールバーの「コンパイル」をクリックします。

これで実行ファイルが完成します。


MQLプログラムの実行

するとMT4の画面の「ナビゲーター」->「エキスパートアドバイザ」に「sample」が追加されています。

これをクリックします。

すると↓のようにチャート上に無事「Hello World」が表示されました。


本日はここまでで。

2021年1月25日月曜日

RStudioで形態素解析MeCabを使う

 概要

Rを用いたデータ分析で形態素解析をする必要があったのでその導入方法と使い方をメモしておきます。


前提とする環境

OS:Windows10 Pro

R実行環境:RStudio


インストール

インストールは以下のコマンドで行います。

> install.packages("RMeCab")
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/
Installing package into ‘C:/Users/ken/Documents/R/win-library/4.0’
(as ‘lib’ is unspecified)
Warning in install.packages :
  package ‘RMeCab’ is not available for this version of R

A version of this package for your version of R might be available elsewhere,
see the ideas at
https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages

・・・あれ。インストール出来ない。
理由不明ですが古いバージョンはこれで出来たようなのですが最新バージョンはこれだけではダメです。

インストール(再度)

①MeCabインストール

まずMecabをインストールします。以下サイトから「mecab-0.996.exe」を取得してインストールしてください(インストーラーの案内に従ってやればOK)。

http://taku910.github.io/mecab/#download

②RへMeCabインストール

①が終わったらRStudioを起動してRへMeCabパッケージをインストールします。

<- as="" by="" from="" group="" select="" span="" sqldf="" sum="" tljk="">> install.packages("RMeCab", repos = "https://rmecab.jp/R")
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/
Installing package into ‘C:/Users/ken/Documents/R/win-library/4.0’
(as ‘lib’ is unspecified)
 URL 'https://rmecab.jp/R/bin/windows/contrib/4.0/RMeCab_1.06.zip' を試しています 
Content type 'application/zip' length 3173864 bytes (3.0 MB)
downloaded 3.0 MB

package ‘RMeCab’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
	C:\Users\ken\AppData\Local\Temp\RtmpCk1cKN\downloaded_packages
デキター。

使い方

使い方は以下のとおりになります(定番)。

<- as="" by="" from="" group="" select="" span="" sqldf="" sum="" tljk="">> library(RMeCab)
> RMeCabC("すもももももももものうち")
[[1]]
    名詞 
"すもも" 

[[2]]
助詞 
"も" 

[[3]]
  名詞 
"もも" 

[[4]]
助詞 
"も" 

[[5]]
  名詞 
"もも" 

[[6]]
助詞 
"の" 

[[7]]
  名詞 
"うち"
> # 「unlisst」を使うと↓のようにすっきりと出力出来ます。
> RMeCabC("すもももももももものうち") %>% unlist
    名詞     助詞     名詞     助詞     名詞     助詞     名詞
"すもも"     "も"   "もも"     "も"   "もも"     "の"   "うち" 
> # データフレームの場合は「RMeCabDF」関数を使います。
> # ↓の例はデータフレームhogeの2番目の列の項目を形態素解析しています。
> hg <- RMeCabDF(hoge[, 2])
ということで、無事に動かす事が出来ました!


本日はここまでで。




R言語でデータフレームをSQLで操作する

概要

Rのデータフレームを操作する方法として、SQLを用いたものがあります。そのやり方をメモしておこうと思います。


インストール

インストールは以下のコマンドで行います。

> install.packages("sqldf")
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/
Installing package into ‘C:/Users/kk/Documents/R/win-library/4.0’
(as ‘lib’ is unspecified)
also installing the dependencies ‘bit’, ‘bit64’, ‘memoise’, ‘plogr’, ‘gsubfn’, ‘proto’, ‘RSQLite’, ‘chron’

 URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/bit_4.0.4.zip' を試しています 
Content type 'application/zip' length 628912 bytes (614 KB)
downloaded 614 KB

 URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/bit64_4.0.5.zip' を試しています 
Content type 'application/zip' length 562722 bytes (549 KB)
downloaded 549 KB

 URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/memoise_1.1.0.zip' を試しています 
Content type 'application/zip' length 36847 bytes (35 KB)
downloaded 35 KB

 URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/plogr_0.2.0.zip' を試しています 
Content type 'application/zip' length 18855 bytes (18 KB)
downloaded 18 KB

 URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/gsubfn_0.7.zip' を試しています 
Content type 'application/zip' length 358111 bytes (349 KB)
downloaded 349 KB

 URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/proto_1.0.0.zip' を試しています 
Content type 'application/zip' length 472164 bytes (461 KB)
downloaded 461 KB

 URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/RSQLite_2.2.1.zip' を試しています 
Content type 'application/zip' length 2389208 bytes (2.3 MB)
downloaded 2.3 MB

 URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/chron_2.3-56.zip' を試しています 
Content type 'application/zip' length 202074 bytes (197 KB)
downloaded 197 KB

 URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/sqldf_0.4-11.zip' を試しています 
Content type 'application/zip' length 78316 bytes (76 KB)
downloaded 76 KB

package ‘bit’ successfully unpacked and MD5 sums checked
package ‘bit64’ successfully unpacked and MD5 sums checked
package ‘memoise’ successfully unpacked and MD5 sums checked
package ‘plogr’ successfully unpacked and MD5 sums checked
package ‘gsubfn’ successfully unpacked and MD5 sums checked
package ‘proto’ successfully unpacked and MD5 sums checked
package ‘RSQLite’ successfully unpacked and MD5 sums checked
package ‘chron’ successfully unpacked and MD5 sums checked
package ‘sqldf’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
	C:\Users\kk\AppData\Local\Temp\RtmpMPzONL\downloaded_packages


使い方

使い方は以下のとおりになります。SQLの文法に従って操作可能ですが、SQLの文法はここでは省略します。

> library(sqldf)
 要求されたパッケージ gsubfn をロード中です 
 要求されたパッケージ proto をロード中です 
 要求されたパッケージ RSQLite をロード中です 
> # 使い方
> # sqldf("SELECT 列名 FROM データフレーム名 WHERE 列名 ==\'検索文字列\'")
> # 具体例(小売店舗の販売実績集計している風)
<- as="" by="" from="" group="" select="" span="" sqldf="" sum="" tljk="">> hoge <- sqldf("
+ SELECT
+ 	販売年月
+ 	, 店舗コード
+ 	, SUM(販売数) AS 販売数合計
+ 	, SUM(販売高) AS 販売高合計
+ FROM TLJK
+ GROUP BY
+ 	販売年月
+ 	, 店舗コード
+ ")


ということで、本日はここまでで。




2021年1月20日水曜日

FX自動トレード_2020年12月実績

 概要

2020年12月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。


2020年12月結果

2020年12月の実績は、実利利益額:\41,352、実績利益率は1.62%でした。

ボラが殆ど無く、史上最低利益率となってしまいました。


なお今月頭に\800,000調達の目処が立ちましたので、入金額は\1,450,000→\2,250,000に増額しています。


進捗

続いて予実比較です。当初計画と比較すると、想定利益率は3.16%でしたので1.44%ショート、利益額は\29,138ショートという散々な結果になりました。また、本日までの実績平均利益率/月は2.80%になりました。


続いて、「10年1億円プロジェクト」の当初計画との予実比較は以下になります。\800,000入金しましたので2022年10月時点の預託証拠金にまで到達する事が出来ました。


また、入金額と利益率/月を調整した予定と、実績を比較した進捗は以下になります。

今月は大幅負けです。今月で2020年終わった為一度振り返ってみると、当初掲げた想定利益率3.16%というのがかなり難しい目標だったのかなというのが正直な感想です。高すぎる目標を達成するためにリスクをアップさせるのも嫌なので、もう少し様子を見てみて場合によっては想定利益率見直しも検討しようかと思います。


2021年1月14日木曜日

Rにおける文字列の取り扱い

概要

Rのデータ分析でよく使う文字列の操作コマンドをメモしようと思います。
必要に応じて調べてメモを追加していく予定です。


コマンド

①文字列の確認(NULL、NA、NaN、Inf)

> is.null(hoge) # NULLか否か
[1] true
> is.na(hoge) # NAか否か
[1] true
> is.nan(hoge) # NaNか否か
[1] true
> is.finite(hoge) # 有限か否か
[1] true
> is.infinite(hoge) # 無限か否か
[1] true
> complete.cases(hoge) # 欠損か否か
[1] true


②特定の文字列でのパディング

> # str_pad(param1, param2, pad=xxx)
> # param1:対象文字列 > # param2:パディング後の桁数 > # pad:パディングする文字 > str_pad("hoge", 6L, pad=0)

[1] 00hoge


③文字列の結合
> paste('a', 'b', 'c')
[1] "a b c" > # pasteをすると文字列の間に半角スペースが入ってしまう。 > # これが嫌な場合は「paste0」を用いる
> paste0('a', 'b', 'c')
[1]
"abc"



ということで、本日はここまでで。




2021年1月12日火曜日

Rのデータフレームの操作方法(基本)

概要

Rのデータ分析でよく使うデータフレームの操作コマンドをメモしようと思います。


コマンド

①データフレームの中身を参照

以下コマンドでコンソール上で確認する事が出来ます。
> head(X)
   No Date       ID  Num
1  1 2020/12/01 i01  20
2  2 2020/12/02 i02  21
3  3 2020/12/03 i03  22
4  4 2020/12/04 i04  23
5  5 2020/12/05 i05  24

RStudioでしたら、以下コマンドでビューア上で確認出来ます。

> View(X)

②データフレームの中身を参照(行列指定)

> # 行Noを指定
> X[1, ]
1  1 2020/12/01 i01  20
> # 列名を指定(列の番号でもOK)
> X[, "ID"]
[1] 20 21 22 23 24


③件数確認

> # 行数を確認
> nrow(X)
[1] 5
> # 列数を確認
> col(X)
[1] 4

④データフレームへ代入

> X[, "Num"] <- X[, "Num"] + 1
> X[, "ID"] [1] 21 22 23 24 25

⑤データフレーム削除

> remove(X)
>

⑥データフレームの列削除

> # 指定した項目名の列を削除
> test <- X[, colnames(X) != "Num"]
> head(test)
   No Date       ID
1  1 2020/12/01 i01
2  2 2020/12/02 i02
3  3 2020/12/03 i03
4  4 2020/12/04 i04
5  5 2020/12/05 i05

RStudioでしたら、以下コマンドでビューア上で確認出来ます。


本日はここまでで。

2021年1月8日金曜日

Rの基本操作コマンド

概要

Rで基本的なコマンドをメモしようと思います。

コマンド

①コンソール出力
> print("hoge")
hoge

②コメントアウト
> # 頭に「#」をつける

③コマンドのヘルプの確認方法

> # ヘルプを表示したいコマンドの頭に「?」を付ける
> ?read.xlsx
read.xlsx {openxlsx}	R Documentation
Read from an Excel file or Workbook object
Description
Read data from an Excel file or Workbook object into a data.frame
Usage
read.xlsx(
  xlsxFile,
  sheet = 1,
  startRow = 1,
  colNames = TRUE,
  rowNames = FALSE,
  detectDates = FALSE,
  skipEmptyRows = TRUE,
  skipEmptyCols = TRUE,
  rows = NULL,
  cols = NULL,
  check.names = FALSE,
  sep.names = ".",
  namedRegion = NULL,
  na.strings = "NA",
  fillMergedCells = FALSE
)
Arguments
xlsxFile	An xlsx file, Workbook object or URL to xlsx file.
sheet	The name or index of the sheet to read data from.
startRow	first row to begin looking for data. Empty rows at the top of a file are always skipped, regardless of the value of startRow.
colNames	If TRUE, the first row of data will be used as column names.
rowNames	If TRUE, first column of data will be used as row names.
detectDates	If TRUE, attempt to recognise dates and perform conversion.
skipEmptyRows	If TRUE, empty rows are skipped else empty rows after the first row containing data will return a row of NAs.
skipEmptyCols	If TRUE, empty columns are skipped.
rows	A numeric vector specifying which rows in the Excel file to read. If NULL, all rows are read.
cols	A numeric vector specifying which columns in the Excel file to read. If NULL, all columns are read.
check.names	logical. If TRUE then the names of the variables in the data frame are checked to ensure that they are syntactically valid variable names
sep.names	One character which substitutes blanks in column names. By default, "."
namedRegion	A named region in the Workbook. If not NULL startRow, rows and cols parameters are ignored.
na.strings	A character vector of strings which are to be interpreted as NA. Blank cells will be returned as NA.
fillMergedCells	If TRUE, the value in a merged cell is given to all cells within the merge.
Details
Formulae written using writeFormula to a Workbook object will not get picked up by read.xlsx(). This is because only the formula is written and left to be evaluated when the file is opened in Excel. Opening, saving and closing the file with Excel will resolve this.
Value
data.frame
Author(s)
Alexander Walker
See Also
getNamedRegions
Examples
xlsxFile <- system.file("extdata", "readTest.xlsx", package = "openxlsx")
df1 <- read.xlsx(xlsxFile = xlsxFile, sheet = 1, skipEmptyRows = FALSE)
sapply(df1, class)
df2 <- read.xlsx(xlsxFile = xlsxFile, sheet = 3, skipEmptyRows = TRUE)
df2$Date <- convertToDate(df2$Date)
sapply(df2, class)
head(df2)
df2 <- read.xlsx(
  xlsxFile = xlsxFile, sheet = 3, skipEmptyRows = TRUE,
  detectDates = TRUE
)
sapply(df2, class)
head(df2)
wb <- loadWorkbook(system.file("extdata", "readTest.xlsx", package = "openxlsx"))
df3 <- read.xlsx(wb, sheet = 2, skipEmptyRows = FALSE, colNames = TRUE)
df4 <- read.xlsx(xlsxFile, sheet = 2, skipEmptyRows = FALSE, colNames = TRUE)
all.equal(df3, df4)
wb <- loadWorkbook(system.file("extdata", "readTest.xlsx", package = "openxlsx"))
df3 <- read.xlsx(wb,
  sheet = 2, skipEmptyRows = FALSE,
  cols = c(1, 4), rows = c(1, 3, 4)
)
## URL
##
## Not run: 
xlsxFile <- "https://github.com/awalker89/openxlsx/raw/master/inst/readTest.xlsx"
head(read.xlsx(xlsxFile))
## End(Not run)
[Package openxlsx version 4.2.3 Index]

本日はここまでで。

Rの日付操作方法

 概要

Rのデータ分析でよく使う日付の操作コマンドをメモしようと思います。


コマンド

①文字列から日付型(yyyy-mm-dd)への変換

> # xlsxやcsvファイルを読み込むと数値表示になってしまう事がある
> X[, Date]
[1] 44003
> # この場合、as.Date関数を用いる事で修正が可能。
> # 「origin="1899-12-30"」は、xlsxやcsvの仕様に基づくおまじない
> # 「tz="Asia/Tokyo"」は、タイムゾーン。下記等を指定可能。
> # 日本:"Asia/Tokyo"、世界標準時:"GMT"
> X[, Date] <- as.date="" date="" origin="1899-12-30" span="" tz="Asia/Tokyo")
> X[, Date]
[1] 2020-06-21


②文字列から日時(yyyy-mm-dd hh:mm:ss)への変換

> # xlsxやcsvファイルを読み込むと数値表示になってしまう事がある
> X[, datetime]
[1] 43815.55
> # この場合、as.POSIXct関数を用いる事で修正が可能。
> # 「origin="1970-01-01"」は、日時操作時のおまじない > # 「tz="Asia/Tokyo"」は、タイムゾーン。①と同。 > X[, datetime] <- as.POSIXct((X[, datetime]-25569)*86400, tz="Asia/Tokyo", origin="1970-01-01")
> X[, datetime]
[1] 2020-05-14 07:05:00


③文字列から時間(hh:mm:ss)への変換

> # ②から「hh:mm:ss」になる部分だけを取り出せば良い
> X[, time]
[1] 43815.55
> # ②からformat関数で「hh:mm:ss」だけを取り出す
> X[, time] <- format(as.POSIXct((X[, time]-25569)*86400, tz="Asia/Tokyo", origin="1970-01-01"), "%H:%M:%S")
> X[, time]
[1] 07:05:00

①と②は紹介している書籍やブログが結構あるのですが③は意外と調べるのに苦労しました。
ということで、本日はここまでで。

2020年12月18日金曜日

FX自動トレード_2020年11月実績

 概要

2020年11月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。


2020年11月結果

2020年11月の実績は、実利利益額:\54,278、実績利益率は3.06%でした。


なお今月頭に\100,000調達の目処が立ちましたので、入金額は\1,350,000→\1,450,000に増額しています。


進捗

続いて予実比較です。当初計画と比較すると、想定利益率は3.16%でしたので0.10%ショート、入金額の増額があった為利益額は\3,119ロングという結果になりました。また、本日までの実績平均利益率/月は2.95%になりました。


続いて、「10年1億円プロジェクト」の当初計画との予実比較は以下になります。\100,000入金しましたので2021年9月時点の預託証拠金にまで到達する事が出来ました。



また、入金額と利益率/月を調整した予定と、実績を比較した進捗は以下になります(12月分は執筆時点での途中経過が入っています)。

先月に引き続き対予定で負けている状況ですので、予断は許さない状況です。


RStudioをインストールする方法

 概要

仕事でデータ分析をする事があり、Rを利用する必要があったので、RStudioのインストール手順メモです。


事前準備

RStudioはその名のとおりRを動かすプラットフォームなのですが、Rが別途インストールされていないと動作しません。そのため、事前にRをインストールしてください。

Rのインストール手順はこちらに記載しています。


インストーラーの入手

RStudioはこちらから入手してください。専門的な事をするのでなければフリーの「RStudio Desktop」で十分だと思います。


インストール実施

インストーラーが入手出来たら、インストールは画面に沿ってすすめるだけで出来ます。

1. インストーラーを起動すると↓が表示されるので「次へ」を押下。

2. 「次へ」を押下。

3. 「インストール」を押下。

4. インストールが終わるのを見守る。

5. 「完了」を押下。

以上になります。

動作確認

RStudioを起動すると↓のような画面が表示されると思います。
画面が表示されたら「plot cars」と入力してみてください。Rと共に正しくインストールされていれば右下のウィンドウに散布図が表示されるはずです。


本日はここまでで。

FX自動トレード_2021年6月実績

      概要 2021年6月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。 2021年6月結果 2021年6月の実績は、実利利益額:\66,761、実績利益率は1.42%でした。 今月もボラが全く出ず。利益率の連続過去最低記録更新は免...