過去の結果を見直す時に便利!チャートの好きな日付にメモを残せるEasyLanguageを活用したアイデア

株式投資を裁量トレードで実践されている方は、
過去のチャートや自分の売買を振り返る機会も多いかと思います。

そんな中で、
過去のチャートを振り返っている時に以下のような経験はないでしょうか。

・この日は大きく値動きがあるけど何かあったかな?(確か大きなニュースがあった気がする)
・この日は取引した気がするんだけどどうだっけ?(口座にログインして確認するのが面倒くさい)
・この日エントリーしやすそうなのに何で行かなかったんや!(何だか思うところがあったような)

こうした過去の情報は何らかの形でメモしておくと、その後売買戦略を再検討する時に役立つんじゃないかと思います。(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』のぽぬきち三割引さんが、
「メモをテキストファイルから読み込むバージョン」を作成してくださいました。

#160 メモをチャートに表示

メモが縦書き表記にもなるので見やすいですね。
コードも公開されているので、ぜひチェックを!

「株式投資 x IT」の
オンラインコミュニティに参加しませんか?

2019年5月頃から、トレステやEasyLanguageを中心とした株式投資に役立つ最新ツールやITスキルに関する情報が手に入るオンラインコミュニティを運営しています。

トレステやEasyLanguageの豊富な小ネタやサンプルコードが手に入り
チャットツール(Slack)でいつでもトレステやEasyLanguageの質問ができ
毎月開催している勉強会の収録動画がすべて視聴できて
トレステ以外にも株式投資に役立つ最新のツールやITスキルを学べる

オンライン動画講座
時系列分析用サンプルプログラム
OOELサンプルプログラム
Slackでいつでも質問可能

このように、「コンテンツ見放題」「チャット交流」という構成で、僕がが運営しているコミュニティになります。

最近トレステやEasyLanguageを始めたという方から、経験豊富な投資家・プログラマーの方まで、様々な人が集う場となっております。興味のある方はぜひ、ご参加ください。

トレードテック・オンラインの詳細を見る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です