見出し画像

ADカウント

アキュムレーション・ディストリビューション
ラリー・ウィリアムズが考案した出来高を利用したトレード手法
買い方のエネルギーによる価格の上昇はアキュムレーション(蓄積)
売り方のエネルギーによる価格の下落はディストリビューション(発散)

ADは、アキュムレーションとディストリビューションの累積値をグラフ化することにより相場の転換時期を表しているもの

アキュムレーション:大抵の場合、下降トレンドの後に行われる。
大口が株価をなるべく上げることなく、できるだけたくさんの株を買い集めている状況のこと。

ディストリビューション:大抵の場合、上昇トレンドの後に行われる。
大口はありとあらゆる手段を使って、自分が利食いを終了するまでは価格が下がらないようにする。大口が売り抜けをやっている状態のこと。

公式:(終値-始値)/(高値-安値)×出来高

トレステの既存のインジケータは2つ
・アキュムレーション・ディストリビューション①
・アキュムレーション・ディストリビューション出来高指標②

画像1

プログラムを見てみると公式の計算と同じことをしているのは、
②のアキュムレーション・ディストリビューション出来高指標の方
①のアキュムレーション・ディストリビューションの方は出来高を使わず、
終値と1つ前の終値を比較して、1つ前の終値か高値か安値を累積している
違いはあるけど、単独で見ても、見比べて見ても、重ねて見ても、
正直よくわかんねっす(°_°)
なので、前日より出来高が多い日で、
前日の終値より安かったらディストリビューションをカウント
前日の終値より高かったらアキュムレーションをカウント
してみることにしました!前日より出来高が少ない日はむっしむっし(°_°)

プログラム

using elsystem;
using tsdata.marketdata;
using elsystem.drawing; 
using elsystem.drawingobjects;

inputs:
	Length( 30 ) [DisplayName = "期間", ToolTip = "期間(日足ベース土日祝日含む)"],
	TL_Height( 150 ) [DisplayName= "文字位置", ToolTip = "高さ"],
	TL_Size( 8 ) [DisplayName= "文字サイズ", ToolTip = "サイズ"];

variables:
	AnyVol( 0 ),
	CntA( 0 ),
	CntD( 0 ),
	TextLabel TL( null );

Method void CreateTL ( DateTime DT, Double Price, String TS ) begin
	TL = new TextLabel();
	TL.Font = new Font( "MS UI Gothic", TL_Size, FontStyle.Regular );
	TL.HStyle = HorizontalStyle.Center;
	TL.SetPointValue( DTPoint.Create( DT, Price ) );
	TL.TextString = TS;
	TL.VStyle = VerticalStyle.Top;
	TL.Color = Color.Red;
end;

once Value1 = ( DateToJulian( CurrentDate ) - Length );

if DateToJulian( Date ) >= Value1 then begin { 入力期間のみカウント) }
	if BarType >= 2 and BarType < 5 then AnyVol = Volume else AnyVol = Ticks; { 2:Daily, 3:Weekly, 4:Monthly bars }
	
	if AnyVol[0] > AnyVol[1] then begin { 出来高増のみカウント }
		if Close[1] < Close then begin { アキュムレーションカウント }
			CntA = CntA[1] + 1;
			CreateTL( BarDateTime[0], High[0] + TL_Height, NumtoStr( CntA, 0 ) );
			DrawingObjects.Add( TL );
		end else if Close[1] > Close then begin { ディストリビューションカウント }
			CntD = CntD[1] + 1;
			CreateTL( BarDateTime[0], Low[0] - TL_Height, NumtoStr( CntD, 0 ) );
			TL.VStyle = VerticalStyle.Bottom;
			TL.Color = Color.Cyan;
			DrawingObjects.Add( TL );
		end;{ Close[1] }

		if Close = Open then begin { 寄り付き同時:星 }
			if Close[1] < Close then begin { アキュムレーションの時は星を下 }
				CreateTL( BarDateTime[0], Low[0] - TL_Height, "☆" );
				TL.VStyle = VerticalStyle.Bottom;
			end else if Close[1] >= Close then begin { ディストリビューションの時は星を上 }
				CreateTL( BarDateTime[0], High[0] + TL_Height, "☆" );
			end;{ Close[1] }
			TL.Color = Color.Yellow;
			DrawingObjects.Add( TL );
		end;{ Close }

	end;{ AnyVol[0] }

end;{ DateToJulian }

※ 1/24 星の出し方をアキュミュレーション、ディストリビューション   じゃない時しか出ていなかったので修正

画像3

※ 出来高が減った時や同じ時も、関係なく星を出したい場合は、
  星を描画してる所のif文を、出来高増のカウントのif分の外側、
  AnyVol[0] のendの下にすればOKです

画像2

リーマンショックの年も1か月に5回ディストリビューションあったらしいですわよ((((;゚Д゚))))コワイワネー

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