見出し画像

コンセンサス

銘柄スカウターを見ていて、コンセンサスのレーティングと目標株価、
乖離率等、トレステにも確かあったなぁと思い、コンセンサスとかけ離れた銘柄を抽出出来るかなとインジケータ探してみたらコンセンサスレーティングとコンセンサス株価しかなかったので作りました(・∀・)

普段コンセンサスなんて気にした事ないので毎週更新されてるみたいですが、いつ更新されてるのかは知りませんw


他にコンセンサス系の項目は、
CD_CONS_EPS cons_一株当たり利益結果 - 予想
CD_CONS_NP cons_純利益
CD_CONS_NP_1WCHANGE cons_純利益_前週比
CD_CONS_OP cons_営業利益
CD_CONS_OP_1WCHANGE cons_営業利益_前週比
CD_CONS_PER cons_PER 現在の終値/一株当たり利益予想
CD_CONS_RP cons_経常利益
CD_CONS_RP_1WCHANGE cons_経常利益_前週比
CD_CONS_RP_ESTDIV cons_経常利益_会社予想とコンセンサスの乖離率
CD_CONS_SALES cons_売上高
CD_CONS_SALES_1WCHANGE cons_売上高_前週比
などがあるみたいです
※ OkayToPlotの真偽と日時の比較は本当はプロット毎やらなければいけま  せんが手抜きで省略しています
※ レーティング、株価、前週比、乖離率のスタイルプロパティは数字です
※ レーティング数値が何故か-3されてるのでコンセンサス株価が0ではな  い時+3して補正しています
※ スケーリング、元データに軸を合わせる、サブグラフ1です
※ 過去のコンセンサスをチャートに表示させたかったのですが、
  履歴[0]の最新のデータしかなかったので無理でした

プログラム

using tsdata.marketdata;
using elsystem;

variables:
	FundamentalQuotesProvider FQP( null ),
	DateTime OldestRatingDataDateTime( null ),
	intrabarpersist bool OkayToPlot( false ),
	double CDRConsRating( 0 ),
	double CDRConsPrice( 0 ),
	double CDRConsPrice1WChange( 0 ),
	double CDRConsPriceDev( 0 );

constants:
	string ConsensusRatingFieldName( "CDR_Cons_Rating" ),
	string ConsensusPriceFieldName( "CDR_Cons_TargetPrice" ),
	string ConsensusPrice1WChangeFieldName( "CDR_Cons_TargetPrice_1WChange" ),
	string ConsensusPriceDevFieldName( "CDR_Cons_TargetPrice_Dev" );
	
method void CreateFundamentalQuotesProvider()
begin
	FQP = new FundamentalQuotesProvider();
	FQP.Symbol = Symbol;
	FQP.Fields += ConsensusRatingFieldName;					//コンセンサスレーティング
	FQP.Fields += ConsensusPriceFieldName;					//コンセンサス目標株価
	FQP.Fields += ConsensusPrice1WChangeFieldName;			//コンセンサス変動
	FQP.Fields += ConsensusPriceDevFieldName;				//コンセンサス乖離率
	FQP.Realtime = false;
	FQP.TimeZone = tsdata.common.TimeZone.local;
	FQP.LoadProvider();
	Value99 = FQP.Count; { force provider to load }
end;
	
once begin
	CreateFundamentalQuotesProvider();
	if FQP.HasQuoteData( ConsensusRatingFieldName ) then begin 
		OkayToPlot = true;
		CDRConsRating = FQP[ConsensusRatingFieldName].DoubleValue[0];
		CDRConsPrice = FQP[ConsensusPriceFieldName].DoubleValue[0];
		CDRConsPrice1WChange = FQP[ConsensusPrice1WChangeFieldName].DoubleValue[0];
		CDRConsPriceDev = FQP[ConsensusPriceDevFieldName].DoubleValue[0];
		if CDRConsPrice <> 0 then CDRConsRating += 3;
	end;
end; { once }

if OkayToPlot then begin 
	Plot1( CDRConsRating, !( "レーティング" ) );
	Plot2( CDRConsPrice, !( "目標株価" ) );
	Plot3( CDRConsPrice1WChange, !( "前週比" ) );
	Plot4( CDRConsPriceDev, !( "乖離率" ) );	
end;

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