見出し画像

ニュース

決算発表予定日の応用で気になるワードでニュースをピックアップしてレーダースクリーンに表示します
分割、配当、優待、修正の4つで検索しています
ニュースの書式がバラバラなのでニュースに引っかかったよー!のお知らせ程度のインジケータです
※フィルタをキーワードにすると全銘柄同じニュース件数になります(お好みで!)

プログラム

using elsystem;																					//tsdataクラスによって使用される基本クラスと、その他一般的なelsystemクラス
using tsdata.marketdata;																		//価格クオート、市場レベル、ファンダメンタル値などの市場データへのアクセスに使用されるクラス
vars:		{ 変数宣言 }
	string bunkatu( "" ),																		//分割
	string haitou( "" ),																		//配当
	string yuutai( "" ),																		//優待
	string syuusei( "" ),																		//修正
	NewsProvider NP( null );																	//NewsProviderクラス 各プロバイダーから提供されているカテゴリーやソースを使用して、ニュース記事を取得するために使用
{ -------------------------------------------------- }	//タイトルに"分割"or"配当"or"優待"or"修正"があり記事内容に銘柄コードがあったら印を表示
method void NP_Updated( elsystem.Object sender, NewsUpdatedEventArgs args )
begin
	bunkatu = ( "" ); haitou = ( "" ); yuutai = ( "" ); syuusei = ( "" );
	if args.Data <> null then begin
		if args.Data.Title.Contains( "分割" ) or args.Data.Title.Contains( "配当" ) 
		or args.Data.Title.Contains( "優待" ) or args.Data.Title.Contains( "修正" ) then begin
			args.Data.Content.Load();															//記事の内容を読み込み
			args.Data.PublishDate.AddHours( 9 );												//日本時間に変更
			if args.Data.Content.Text.Contains( symbol.Substring( 0, 4 ) ) then	begin			//ニューステキスト内に銘柄コードが存在するか判断、記事内容により印判断
				if args.Data.Content.Text.Contains( "分割" ) then bunkatu = "分";
				if args.Data.Content.Text.Contains( "配当" ) then haitou = "配";
				if args.Data.Content.Text.Contains( "優待" ) then yuutai = "優";
				if args.Data.Content.Text.Contains( "修正" ) then syuusei = "修";
			end;
		end;
	end;
	if bunkatu <> "" then Plot1( bunkatu, "分割" );
	if haitou <> "" then Plot2( haitou, "配当" );
	if yuutai <> "" then Plot3( yuutai, "優待" );
	if syuusei <> "" then Plot4( syuusei, "修正" );
	Plot5( NP.News.Count, "件数" );																//読み込んだニュースの数を確認したい時
end;{ method NP_Updated }
{ -------------------------------------------------- }	//メイン処理
once begin
	NP = NewsProvider.Create();
	NP.Symbol = Symbol;
	NP.Realtime = true;
	NP.Updated += NP_Updated;
	NP.FilterType = NewsFilterType.Symbols;
	NP.HistoryType = NewsHistoryType.DaysBack;													//DaysBack時の過去ニュース期間
	NP.DaysBack = 2;																			//長くすると表字が遅くなりますがその分過去のニュースまで検索します(5以下推奨)
//	NP.Keywords = "分割 OR 配当 OR 優待 OR 修正";												//ヘッドライン絞り込み
	NP.Load = true;
end;{once}

サポートされると喜んでアイスを買っちゃいます!٩(๑❛ᴗ❛๑)۶