この記事について
Scikit-learnのSimpleImputerクラスを使用すると、データセットの欠損値を簡単に補完することができます。Kaggleの練習用Competitionでも使われているタイタニックのデータセットを例に、SimpleImputerをどのように使うか見ていきたいと思います。
続きを読むScikit-learnのSimpleImputerクラスを使用すると、データセットの欠損値を簡単に補完することができます。Kaggleの練習用Competitionでも使われているタイタニックのデータセットを例に、SimpleImputerをどのように使うか見ていきたいと思います。
続きを読む前回はMT4でスクリプトを実行してみました。今回はチャートに自分で定義した指標を描画するカスタム指標を定義してみようと思います。
前回も紹介した通り、カスタム指標 (Custom Indicator) とは独自に作成したテクニカル指標をチャートに描画するためのプログラムです。
カスタム指標には初期化のためのOnInit()関数と実際に指標を計算するOnCalculate()関数を定義しますが、カギとなるのは OnCalculate() 関数で、次のような場合にカスタム指標を計算するために呼ばれます。 1. カスタム指標がチャートに読み込まれ、初期化処理 (OnInit()) が終了した直後 1. 新しいティックを受信したとき
続きを読むFXなどの自動売買で使用されるMT4でスクリプトを実行してみます。
FXの取引に使われるソフトウェアです。色々な通貨ペアのチャートを表示することに加え、そのチャートに対してプログラムを走らせることができます。
プログラムは次の3種類に分けられるようです。
今回はまず一番簡単そうな、一度だけコードを走らせるスクリプトを実行してみようと思います。
MT4がWindowsにしかインストールできないのでWindows環境で動作確認しています。また、MT4は楽天証券のサイトからインストールした下記のバージョンのものを使用しています。 * Rakuten MetaTrader 4, Version 4.00, Build 1170
まずは何はともあれHello Worldです。MT4ではMQL4というC言語ライクな文法をしており、下記のコードを実装したスクリプトをコンパイルしチャートにドラッグすると、ターミナルのエキスパートタブに "Hello, world!" が表示されます。
#property copyright "Copyright 2019, madopro" #property link "https://www.madopro.net" #property version "1.00" #property strict void OnStart() { Print("Hello, world!"); }
MQL4には取引に役立つ様々な変数が事前に定義されています。変数一覧はPredefined Variables - MQL4 Referenceから参照できます。 現在の売値や買値に加え、チャートを過去にさかのぼった始値終値なども取得することができます。
#property copyright "Copyright 2019, madopro" #property link "https://www.madopro.net" #property version "1.00" #property strict void OnStart() { // Pre-defined variables. Print("通貨ペア=", _Symbol); Print("小数桁数=", _Digits); Print("最小値幅=", _Point); Print("タイムフレーム=", _Period); Print("Bid=", Bid, ", Ask=", Ask); for(int i = 0; i < 10; i++) { Print("[", i, "] Open=", Open[i], ", High=", High[i], ", Low=", Low[i], ", Close=", Close[i]); } }
スクリプトはコードが実行されるのが1回きりですが、カスタムインディケーターやEAなどだと、 Open
などの変数が以下に便利そうか想像がつきますね。
今までVisual Studio Codeに表示しているテキストをページスクロールする時にはscrollPageDown, scrollPageUpにショートカットを割り当てて使っていました。
手元の環境だと、scrollPageDownなどでテキストをスクロールした際に、文字入力のカーソルが元の場所に置き去りにされてしまうような挙動となっており、これが結構ストレスでした。
やはり同じ悩みを抱えている方はいるようで、VS CodeのIssueに解決策が載っていました。
scrollPageDownの代わりに、editorScrollというコマンドを割り当て、引数にrevealCursor=trueを渡すと良いようです。私の場合、ctrl+vにscrollPageDownを割り当てていたので、代わりに次のような項目をkeybindings.jsonに追加しました。
{ "key": "ctrl+v", "command": "editorScroll", "args": { "to": "down", "by": "page", "revealCursor": true }, "when": "editorTextFocus" }
この設定ではまだ少ししか作業してませんが、今のところ快適です。