2021年2月6日土曜日
過去FX相場のヒストリカルデータをcsvで無料取得する方法
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を使う
概要
前提とする環境
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インストール
②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で操作する
概要
インストール
インストールは以下のコマンドで行います。
> 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に増額しています。
進捗
続いて、「10年1億円プロジェクト」の当初計画との予実比較は以下になります。\800,000入金しましたので2022年10月時点の預託証拠金にまで到達する事が出来ました。
今月は大幅負けです。今月で2020年終わった為一度振り返ってみると、当初掲げた想定利益率3.16%というのがかなり難しい目標だったのかなというのが正直な感想です。高すぎる目標を達成するためにリスクをアップさせるのも嫌なので、もう少し様子を見てみて場合によっては想定利益率見直しも検討しようかと思います。
2021年1月14日木曜日
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のデータフレームの操作方法(基本)
概要
コマンド
①データフレームの中身を参照
> 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 i05RStudioでしたら、以下コマンドでビューア上で確認出来ます。本日はここまでで。
FX自動トレード_2021年6月実績
概要 2021年6月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。 2021年6月結果 2021年6月の実績は、実利利益額:\66,761、実績利益率は1.42%でした。 今月もボラが全く出ず。利益率の連続過去最低記録更新は免...
-
概要 PostgreSQLでto_dateを用いていてERROR: function to_date(timestamp without time zone, unknown) does not existが発生したのでその解決方法をメモします。 用語 ・Po...
-
概要 Python+OpenCVで顔認識をする際に「SystemError: returned a result with an error set」というエラーが出る場合があるので、その解決方法をメモします。 用語 ・Windows10:言わずと知れたMicro...
-
目次 概要 用語 事前準備(前提とする環境) 手順 概要 Nuxt.js 2.0.0がリリースされたので、スターターテンプレートを動作させてみたメモです。 その中で、「TypeError: Cannot read property 'eslint'...












