過去の結果を見直す時に便利!チャートの好きな日付にメモを残せる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 メモをチャートに表示

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

コメントを残す

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