株式投資を裁量トレードで実践されている方は、
過去のチャートや自分の売買を振り返る機会も多いかと思います。
そんな中で、
過去のチャートを振り返っている時に以下のような経験はないでしょうか。
・この日は大きく値動きがあるけど何かあったかな?(確か大きなニュースがあった気がする)
・この日は取引した気がするんだけどどうだっけ?(口座にログインして確認するのが面倒くさい)
・この日エントリーしやすそうなのに何で行かなかったんや!(何だか思うところがあったような)
こうした過去の情報は何らかの形でメモしておくと、その後売買戦略を再検討する時に役立つんじゃないかと思います。(Excelなどで管理されている方もいると思いますが)
それで、なんですが・・もし、以下のようなことができたら、どうでしょう?
・何かあった時に日付と内容をメモしておけば
・チャートで見た時に、その日付に自動でメモ内容が表示される
こんな感じにチャート上で表示されます。
どうでしょうか?後から振り返りやすいし、色んな用途で使いやすいんじゃないかと思います。
・ニュースの内容や決算の結果をメモ
・自分が取引した内容をメモ
・その日の時点で自分が考えていた事をメモ
今回は、一番簡単にできるやり方として「EasyLanguageコードに直接メモを追記していく」方法をご紹介します。
目次
サンプルコード
「ショウミー」として作るのがオススメ。
Vars: strComment(""), intTextID(-1); strComment = ""; If SymbolRoot = "$MNK" then Begin If Date = 1170321 then Begin strComment = "↑ メモ1"; End Else If Date = 1170901 then Begin strComment = "↑ メモ2"; End Else If Date = 1171121 then Begin strComment = "↑ メモ3"; End Else If Date = 1171130 then Begin strComment = "↑ メモ4"; End Else If Date = 1171225 then Begin strComment = "↑ メモ5"; End; End; If strComment <> "" then Begin intTextID = Text_New(Date, Time, Low*0.98, strComment); End;
結果
上で紹介した画像のように、チャート上に文字を表示します。
今回は銘柄コードが「$MNK(日経平均)」の時のみ表示させています。
EasyLanguageにおける日付の扱いが特殊なのでちょっと見辛いですが、
1170321=2017年03月21日のことなので・・
2017年03月21日の足で「↑ メモ1」と表示
2017年09月01日の足で「↑ メモ2」と表示
・・という感じで5つのメモを表示させています。
解説
チャート上に文字を描画するText_New関数
Text_Newが、チャート上に文字を描画する関数です。
・[Date,Time]の足(=今EasyLanguageを実行している足)の、
・縦「Low*0.98」の高さを左上として
・文字strCommentを描画します。
” *0.98 “としているのは、
Lowだけだとローソク足と被ってちょっと見辛いかなと思いまして、微調整です。
(Low-100とかでも良いのですが)
strCommentの内容
6行目からのIf構文が、strCommentの内容を決定している部分です。
ここはどの足でも実行されるため、最初に””で初期化しています。
Ifは、「もしこの日付なら、このメモ」という組み合わせです。
日付7桁の部分(EL日付です。2017年12月25日なら1171225)と、最後のメモさえあれば良いので、
他に追加したければ「End Else If ~」の行をコピペして日付とメモを変えてみてください。
さらに改良するなら?
他の銘柄でも利用可能に
今回は$MNK専用ですが、
6行目の「SymbolRoot = “$MNK”」を変更すれば、他の銘柄でも動作します。
また、ここも銘柄ごとに分岐させると、
1つのショウミーで複数の銘柄に対応できるので、メモ管理が楽になりそうです。
描画テキストの色や表示位置を調整
Text_系関数は、他にも様々なものが用意されています。
文字の色、表示位置、文字の寄せ方などを設定できるものがありますので、お好みに応じて使ってみてください。
関数について詳しくは、逆引きEasyLanguage辞典の「チャート内テキストの描画」ページもご覧ください。
大量のメモを扱いたい場合は、Dictionaryや外部ファイルを利用
また、If構文は同一コード内で使える回数が決まっています。(何百回かまでは行けた気がしますが)
大量の情報を扱いたい場合は、
・オブジェクト指向型EasyLanguageのDictionaryクラスを使ってみる
・メモ情報をコードに直接ではなく外部テキストファイルに保存しStreamReaderクラスで呼び出し
なども使ってみると良いでしょう。
以上、アイデアとして参考になりましたら嬉しいです。
(追記 2018.04.25)
ブログ『イージーランゲージを勉強する/Study Easylanguage』のぽぬきち三割引さんが、
「メモをテキストファイルから読み込むバージョン」を作成してくださいました。
メモが縦書き表記にもなるので見やすいですね。
コードも公開されているので、ぜひチェックを!