日経平均が過去に1,000円超下落した日を探せるトレステ用自作ショウミー【サンプルコード付き】

もう昨日の事になりましたが、日経平均は1,000円超の大幅下落となりましたね。

さて、1日でこれだけの大暴落となったのは過去にどのくらいあったのでしょうか?その前後の様子を見ると、何か今後の展望に関するヒントが得られるかもしれません。

既に歴代の下落幅をまとめてくれているWebサイトなどもありますが、せっかくトレステ&EasyLanguageを利用しているので、大暴落した日付や下落幅をさがせるショウミーをEasyLanguageで自作してみました。

入力パラメータもいくつか用意したので、「1,000円超の下落」に限らず色んなパターンで使えるかと思います。

<日経平均($MNK)の日足に適用した様子>

ショウミーの機能

(1) チャートに表示されている期間の中で、指定した値幅以上、前日より上昇/下落した足にショウミーのサインを表示します。
(2) さらに該当足について、印刷ログに「日付、前日終値、当日終値、上昇/下落幅」を行出力します。

パラメータについて

値幅 対象の値幅
判定方向 1:上昇幅が【値幅】円以上を探す
-1:下落幅が【値幅】円以上を探す
ログを追記するか? 0:パラメータ変更するたび印刷ログをクリアして書き込み
1:前の出力を残して追記

サンプルコード

using elsystem;

Inputs:
    inDiff(1000) [DisplayName="値幅"],
    inUpDn(-1) [DisplayName="判定方向(1:上昇幅/-1:下落幅)"],
    inAppendLog(0) [DisplayName="ログを追記するか?(1:追記する/0:クリア)"];

//--------------------
// 最初の足のみ実行
//--------------------

Once Begin
    If inAppendLog = 0 then Begin
        ClearPrintLog;
    End;
    print("---[Start]---");
End;

//--------------------
// どの足でも実行
//--------------------

If ( Close - Close[1] ) * inUpDn >= inDiff then Begin
    Plot1( High, "Sign" );
    Print(
        ELString.Join(
            ",",
            FormatDate( "yyyy/MM/dd", ELDateToDatetime( Date ) ),
            NumToStr( Close[1], 2 ),
            NumToStr( Close, 2 ),
            NumToStr( Close - Close[1], 2 )
        )
    );
End;

//--------------------
// 最後の足のみ実行
//--------------------

Once ( LastBarOnChartEx ) Begin
    print("---[End]---");
End;

解説

( Close - Close[1] ) * inUpDn >= inDiff

についてですが、

・前日から値上がりした時:( Close – Close[1] ) が正
・前日から値下がりした時:( Close – Close[1] ) が負

となるので、値下がりの時だけ -1 を掛けて同じ式で判定できるようにしてあります。

<例:前日20,500円から本日19,000円の1,500円値下がり>
( 19000 – 20500 ) * -1 >= 1000
-1500 * -1 >= 1000
1500 >= 1000 →条件OK!

カスタマイズについて

今回は前日からの値上がり/値下がり幅でしたが、
「値上がり率/値下がり率」に変えてみても面白いと思います。

また、今回はカンマ区切りにしましたが
タブ区切りにすればExcelにすぐ貼り付けられる形になります。

ぜひ、EasyLanguageコードを色々いじってお試しください。

ではでは。

コメントを残す

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