test4.1

//作成にあたってぽぬさんブログを参考にしています。
使う場合は、コード内最初の注意事項をよく読んでご使用ください。
//test5で追加したオブジェクト指向ではうまく実現できず、
test4ベースに戻ってしまったのでtest4.1です。
そのうえ、プログラムも2つに分かれてしまいました。

1つ目[チャート上に線を表示するプログラム]

//※ショウミーです。(ショウミーでしか検証してないけどショウミーでなくても動くと思う)
//ぽぬきちさんブログを参考にしています。
//15分足に使うことを想定しています。
//15分足の転換点、1時間足の転換点、日足の転換点を表示してくれます。
//1時間足は15分足4本で判定、日足は15分足20本で判定しているなんちゃって日足なので、先物とか為替はInputで調整ください。
//コメントはプログラムが古い時のまま直していないので多いので、古いnoteのコメントを参照ください。
//開発中のゴミあり。

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

Inputs:
Int		Length1( 10 )	[DisplayName="短期線の最高値,最安値を判定する期間"],
Int		Length2( 40 )	[DisplayName="中期線の最高値,最安値を判定する期間"],
Int		Length3( 200 )	[DisplayName="長期線の最高値,最安値を判定する期間"];

Variables:
TextLabel TXL(null),						//テキスト作成用関数
BNPoint	PoBN(null),							//テキストの位置指定関数
TrendLine myTrendLine1(null),				//線描画用関数
BNPoint myBNPoint1(null),					//線描画用関数
BNPoint myBNPoint2(null),					//線描画用関数
PriceSeriesProvider PSP(null),				//線描画用関数
intrabarpersist string tenkan_text(""),		//テキスト内容
//1用
Double	ue1					( 0 ),			//直前の天の転換点の値
Double	sita1				( 0 ),			//直前の底の転換点の値
Double	Max_ue				( 0 ),			//過去X日の最大値
Double	Min_sita			( 0 ),			//過去X日の最小値
Int 	tenkanten			( 0 ),			//直前の転換点 1:天 0:底
Double	tenkanten_atai_1	( 0 ),			//直前の転換点の値
Double	tenkanten_atai_2	( 0 ),			//2つ前の転換点の値
Int 	bar_no_pre1			( 0 ),			//直前の転換点のバーナンバー
Int 	bar_no_pre2			( 0 ),			//2つ前の転換点のバーナンバー			
Int 	bar_no_1			( 0 ),			//天の転換点のバーナンバー
Int 	bar_no_2			( 0 ),			//底の転換点のバーナンバー
Int 	barSuu				( 0 ),			//バーナンバー
Int 	TakaCount			( 0 ),			//高値カウンター
Int 	YasuCount			( 0 ),			//安値カウンター
//1用
Double	ue11				( 0 ),			//直前の天の転換点の値
Double	sita11				( 0 ),			//直前の底の転換点の値
Double	Max_ue1				( 0 ),			//過去X日の最大値
Double	Min_sita1			( 0 ),			//過去X日の最小値
Int 	tenkanten1			( 0 ),			//直前の転換点 1:天 0:底
Double	tenkanten_atai_11	( 0 ),			//直前の転換点の値
Double	tenkanten_atai_12	( 0 ),			//2つ前の転換点の値
Int 	bar_no_pre11		( 0 ),			//直前の転換点のバーナンバー
Int 	bar_no_pre12		( 0 ),			//2つ前の転換点のバーナンバー			
Int 	bar_no_11			( 0 ),			//天の転換点のバーナンバー
Int 	bar_no_12			( 0 ),			//底の転換点のバーナンバー
Int 	barSuu1				( 0 ),			//バーナンバー
Int 	TakaCount1			( 0 ),			//高値カウンター
Int 	YasuCount1			( 0 ),			//安値カウンター
//2用
Double	ue21				( 0 ),			//直前の天の転換点の値
Double	sita21				( 0 ),			//直前の底の転換点の値
Double	Max_ue2				( 0 ),			//過去X日の最大値
Double	Min_sita2			( 0 ),			//過去X日の最小値
Int 	tenkanten2			( 0 ),			//直前の転換点 1:天 0:底
Double	tenkanten_atai_21	( 0 ),			//直前の転換点の値
Double	tenkanten_atai_22	( 0 ),			//2つ前の転換点の値
Int 	bar_no_pre21		( 0 ),			//直前の転換点のバーナンバー
Int 	bar_no_pre22		( 0 ),			//2つ前の転換点のバーナンバー			
Int 	bar_no_21			( 0 ),			//天の転換点のバーナンバー
Int 	bar_no_22			( 0 ),			//底の転換点のバーナンバー
Int 	barSuu2				( 0 ),			//バーナンバー
Int 	TakaCount2			( 0 ),			//高値カウンター
Int 	YasuCount2			( 0 ),			//安値カウンター
//3用
Double	ue31				( 0 ),			//直前の天の転換点の値
Double	sita31				( 0 ),			//直前の底の転換点の値
Double	Max_ue3				( 0 ),			//過去X日の最大値
Double	Min_sita3			( 0 ),			//過去X日の最小値
Int 	tenkanten3			( 0 ),			//直前の転換点 1:天 0:底
Double	tenkanten_atai_31	( 0 ),			//直前の転換点の値
Double	tenkanten_atai_32	( 0 ),			//2つ前の転換点の値
Int 	bar_no_pre31		( 0 ),			//直前の転換点のバーナンバー
Int 	bar_no_pre32		( 0 ),			//2つ前の転換点のバーナンバー			
Int 	bar_no_31			( 0 ),			//天の転換点のバーナンバー
Int 	bar_no_32			( 0 ),			//底の転換点のバーナンバー
Int 	barSuu3				( 0 ),			//バーナンバー
Int 	TakaCount3			( 0 ),			//高値カウンター
Int 	YasuCount3			( 0 ),			//安値カウンター
DateTime DT1(null),
DateTime DT2(null),
TrendLine TL(null);

Once ClearPrintLog;//デバッグ用(ログを削除)

// --------------------------------------------------
//	15分足
// --------------------------------------------------

//過去X日の最大値、最小値を算出
Max_ue1 = Highest(High[1],Length1);
Min_sita1 = Lowest(Low[1],Length1);

//過去X日の最大値より今日の高値が大きい時、ue1に高値をセット、bar_no_1に足数をセット、転換点を天にセット
If Max_ue1 < High Then Begin
ue11 = High;
bar_no_11 = CurrentBar;
tenkanten1 = 1;

//過去X日の最小値より今日の安値が小さい時、sita1に安値をセット、bar_no_2に足数をセット、転換点を底にセット
end Else
If Min_sita1 > Low Then begin
sita11 = Low;
bar_no_12 = CurrentBar;
tenkanten1 = 0;
End;

//前日の転換点が天、今日の転換点が底の時、天の転換点が確定したとして、転換点の値をue1とする。ue1を天の転換点の足にテキスト表示する。転換点を結ぶ。
If tenkanten1[1] = 1 AND tenkanten1 = 0 Then begin

//転換点の値をue1とする。
tenkanten_atai_12 = tenkanten_atai_11 ;
tenkanten_atai_11 = ue11;
bar_no_pre12 = bar_no_pre11;
bar_no_pre11 = bar_no_11;

//転換点を結ぶ。
myBNPoint1 = BNPoint.Create(MaxBarsBack + bar_no_pre11-1,tenkanten_atai_11);	//線の開始点
myBNPoint2 = BNPoint.Create(MaxBarsBack + bar_no_pre12-1,tenkanten_atai_12);	//線の終了点
myTrendLine1 = TrendLine.create(myBNPoint1,myBNPoint2);							//線の作成コマンド
myTrendLine1.Persist = True;													//ティックの更新後、線が画面に残る
myTrendLine1.Style = 0;															//線の種類
myTrendLine1.Weight = 1;														//線の太さ
myTrendLine1.Color =  Color.FromName("Green");									//線の色
myTrendLine1.ExtRight = False;													//右に延長しません
DrawingObjects.Add(myTrendLine1);												//線をチャートにプロット
end;

//前日の転換点が底、今日の転換点が天の時、底の転換点が確定したとして、転換点の値をsita1とする。sita1を底の転換点の足にテキスト表示する。転換点を結ぶ。
If tenkanten1[1] = 0 AND tenkanten1 = 1 Then begin

//転換点の値をsita1とする。
tenkanten_atai_12 = tenkanten_atai_11 ;
tenkanten_atai_11 = sita11;
bar_no_pre12 = bar_no_pre11;
bar_no_pre11 = bar_no_12;

//転換点を結ぶ。
myBNPoint1 = BNPoint.Create(MaxBarsBack + bar_no_pre11-1,tenkanten_atai_11);	//線の開始点
myBNPoint2 = BNPoint.Create(MaxBarsBack + bar_no_pre12-1,tenkanten_atai_12);	//線の終了点
myTrendLine1 = TrendLine.create(myBNPoint1,myBNPoint2);							//線の作成コマンド
myTrendLine1.Persist = True;													//ティックの更新後、線が画面に残る
myTrendLine1.Style = 0;															//線の種類
myTrendLine1.Weight = 1;														//線の太さ
myTrendLine1.Color =  Color.FromName("Green");									//線の色
myTrendLine1.ExtRight = False;													//右に延長しません
DrawingObjects.Add(myTrendLine1);												//線をチャートにプロット
end;

// --------------------------------------------------
//	60分足
// --------------------------------------------------

//過去X日の最大値、最小値を算出
Max_ue2 = Highest(High[1],Length2);
Min_sita2 = Lowest(Low[1],Length2);

//過去X日の最大値より今日の高値が大きい時、ue1に高値をセット、bar_no_1に足数をセット、転換点を天にセット
If Max_ue2 < High Then Begin
ue21 = High;
bar_no_21 = CurrentBar;
tenkanten2 = 1;

//過去X日の最小値より今日の安値が小さい時、sita1に安値をセット、bar_no_2に足数をセット、転換点を底にセット
end Else
If Min_sita2 > Low Then begin
sita21 = Low;
bar_no_22 = CurrentBar;
tenkanten2 = 0;
End;

//前日の転換点が天、今日の転換点が底の時、天の転換点が確定したとして、転換点の値をue1とする。ue1を天の転換点の足にテキスト表示する。転換点を結ぶ。
If tenkanten2[1] = 1 AND tenkanten2 = 0 Then begin

//転換点の値をue1とする。
tenkanten_atai_22 = tenkanten_atai_21 ;
tenkanten_atai_21 = ue21;
bar_no_pre22 = bar_no_pre21;
bar_no_pre21 = bar_no_21;

//転換点を結ぶ。
myBNPoint1 = BNPoint.Create(MaxBarsBack + bar_no_pre21-1,tenkanten_atai_21);	//線の開始点
myBNPoint2 = BNPoint.Create(MaxBarsBack + bar_no_pre22-1,tenkanten_atai_22);	//線の終了点
myTrendLine1 = TrendLine.create(myBNPoint1,myBNPoint2);							//線の作成コマンド
myTrendLine1.Persist = True;													//ティックの更新後、線が画面に残る
myTrendLine1.Style = 0;															//線の種類
myTrendLine1.Weight = 2;														//線の太さ
myTrendLine1.Color =  Color.FromName("Orange");									//線の色
myTrendLine1.ExtRight = False;													//右に延長しません
DrawingObjects.Add(myTrendLine1);												//線をチャートにプロット
end;

//前日の転換点が底、今日の転換点が天の時、底の転換点が確定したとして、転換点の値をsita1とする。sita1を底の転換点の足にテキスト表示する。転換点を結ぶ。
If tenkanten2[1] = 0 AND tenkanten2 = 1 Then begin

//転換点の値をsita1とする。
tenkanten_atai_22 = tenkanten_atai_21 ;
tenkanten_atai_21 = sita21;
bar_no_pre22 = bar_no_pre21;
bar_no_pre21 = bar_no_22;

//転換点を結ぶ。
myBNPoint1 = BNPoint.Create(MaxBarsBack + bar_no_pre21-1,tenkanten_atai_21);	//線の開始点
myBNPoint2 = BNPoint.Create(MaxBarsBack + bar_no_pre22-1,tenkanten_atai_22);	//線の終了点
myTrendLine1 = TrendLine.create(myBNPoint1,myBNPoint2);							//線の作成コマンド
myTrendLine1.Persist = True;													//ティックの更新後、線が画面に残る
myTrendLine1.Style = 0;															//線の種類
myTrendLine1.Weight = 2;														//線の太さ
myTrendLine1.Color =  Color.FromName("Orange");									//線の色
myTrendLine1.ExtRight = False;													//右に延長しません
DrawingObjects.Add(myTrendLine1);												//線をチャートにプロット
end;

// --------------------------------------------------
//	日足
// --------------------------------------------------

//過去X日の最大値、最小値を算出
Max_ue3 = Highest(High[1],Length3);
Min_sita3 = Lowest(Low[1],Length3);

//過去X日の最大値より今日の高値が大きい時、ue1に高値をセット、bar_no_1に足数をセット、転換点を天にセット
If Max_ue3 < High Then Begin
ue31 = High;
bar_no_31 = CurrentBar;
tenkanten3 = 1;

//過去X日の最小値より今日の安値が小さい時、sita1に安値をセット、bar_no_2に足数をセット、転換点を底にセット
end Else
If Min_sita3 > Low Then begin
sita31 = Low;
bar_no_32 = CurrentBar;
tenkanten3 = 0;
End;

//前日の転換点が天、今日の転換点が底の時、天の転換点が確定したとして、転換点の値をue1とする。ue1を天の転換点の足にテキスト表示する。転換点を結ぶ。
If tenkanten3[1] = 1 AND tenkanten3 = 0 Then begin

//転換点の値をue1とする。
tenkanten_atai_32 = tenkanten_atai_31 ;
tenkanten_atai_31 = ue31;
bar_no_pre32 = bar_no_pre31;
bar_no_pre31 = bar_no_31;

//転換点を結ぶ。
myBNPoint1 = BNPoint.Create(MaxBarsBack + bar_no_pre31-1,tenkanten_atai_31);	//線の開始点
myBNPoint2 = BNPoint.Create(MaxBarsBack + bar_no_pre32-1,tenkanten_atai_32);	//線の終了点
myTrendLine1 = TrendLine.create(myBNPoint1,myBNPoint2);							//線の作成コマンド
myTrendLine1.Persist = True;													//ティックの更新後、線が画面に残る
myTrendLine1.Style = 0;															//線の種類
myTrendLine1.Weight = 3;														//線の太さ
myTrendLine1.Color =  Color.FromName("red");									//線の色
myTrendLine1.ExtRight = False;													//右に延長しません
DrawingObjects.Add(myTrendLine1);												//線をチャートにプロット
end;

//前日の転換点が底、今日の転換点が天の時、底の転換点が確定したとして、転換点の値をsita1とする。sita1を底の転換点の足にテキスト表示する。転換点を結ぶ。
If tenkanten3[1] = 0 AND tenkanten3 = 1 Then begin

//転換点の値をsita1とする。
tenkanten_atai_32 = tenkanten_atai_31 ;
tenkanten_atai_31 = sita31;
bar_no_pre32 = bar_no_pre31;
bar_no_pre31 = bar_no_32;

//転換点を結ぶ。
myBNPoint1 = BNPoint.Create(MaxBarsBack + bar_no_pre31-1,tenkanten_atai_31);	//線の開始点
myBNPoint2 = BNPoint.Create(MaxBarsBack + bar_no_pre32-1,tenkanten_atai_32);	//線の終了点
myTrendLine1 = TrendLine.create(myBNPoint1,myBNPoint2);							//線の作成コマンド
myTrendLine1.Persist = True;													//ティックの更新後、線が画面に残る
myTrendLine1.Style = 0;															//線の種類
myTrendLine1.Weight = 3;														//線の太さ
myTrendLine1.Color =  Color.FromName("red");									//線の色
myTrendLine1.ExtRight = False;													//右に延長しません
DrawingObjects.Add(myTrendLine1);												//線をチャートにプロット
end;

// --------------------------------------------------
//	最後のバーにて、最後の転換点から最新の終値に向けて破線を引く
// --------------------------------------------------

if LastBarOnChart Then begin

//最新の終値に向かって引く
myBNPoint1 = BNPoint.Create(MaxBarsBack + bar_no_pre11-1 ,tenkanten_atai_11);//線の開始点
myBNPoint2 = BNPoint.Create(MaxBarsBack + CurrentBar ,Close[0]);							//線の終了点
myTrendLine1 = TrendLine.create(myBNPoint1,myBNPoint2);						//線の作成コマンド
myTrendLine1.Persist = True;												//ティックの更新後、線が画面に残る
myTrendLine1.Style = 2;														//線の種類
myTrendLine1.Weight = 1;													//線の太さ
myTrendLine1.Color =  Color.FromName("Green");								//線の色
myTrendLine1.ExtRight = False;												//右に延長しません
DrawingObjects.Add(myTrendLine1);											//線をチャートにプロット

//最新の終値に向かって引く
myBNPoint1 = BNPoint.Create(MaxBarsBack + bar_no_pre21-1 ,tenkanten_atai_21);//線の開始点
myBNPoint2 = BNPoint.Create(MaxBarsBack + CurrentBar ,Close[0]);							//線の終了点
myTrendLine1 = TrendLine.create(myBNPoint1,myBNPoint2);						//線の作成コマンド
myTrendLine1.Persist = True;												//ティックの更新後、線が画面に残る
myTrendLine1.Style = 2;														//線の種類
myTrendLine1.Weight = 2;													//線の太さ
myTrendLine1.Color =  Color.FromName("Orange");								//線の色
myTrendLine1.ExtRight = False;												//右に延長しません
DrawingObjects.Add(myTrendLine1);											//線をチャートにプロット

//最新の終値に向かって引く
myBNPoint1 = BNPoint.Create(MaxBarsBack + bar_no_pre31-1 ,tenkanten_atai_31);//線の開始点
myBNPoint2 = BNPoint.Create(MaxBarsBack + CurrentBar ,Close[0]);							//線の終了点
myTrendLine1 = TrendLine.create(myBNPoint1,myBNPoint2);						//線の作成コマンド
myTrendLine1.Persist = True;												//ティックの更新後、線が画面に残る
myTrendLine1.Style = 2;														//線の種類
myTrendLine1.Weight = 3;													//線の太さ
myTrendLine1.Color =  Color.FromName("Red");								//線の色
myTrendLine1.ExtRight = False;												//右に延長しません
DrawingObjects.Add(myTrendLine1);
end;

//Print (CurrentBar,",",Value1,",",Value2,",",Value3,",",Value4,",",Value5,",",Value6,",",Value7,",",Value8,",",Value9,",",Value10,",",Value11,",",Value12,",",Value13,",",Value14);//デバッグ用(ログを表示)

// --------------------------------------------------
//	おしまい
// --------------------------------------------------

2つ目[チャート上に価格を表示するプログラム]

//※ショウミーです。(ショウミーでしか検証してないけどショウミーでなくても動くと思う)
//ぽぬきちさんブログを参考にしています。
//15分足に使うことを想定しています。
//もう1個のプログラムの補完として、転換点の価格を表示します。
//コメントはプログラムが古い時のまま直していないので多いので、古いnoteのコメントを参照ください。
//開発中のゴミあり。

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

Inputs:
Int		Length1( 10 )	[DisplayName="最高値,最安値を判定する期間"];

Variables:
TextLabel TXL(null),						//テキスト作成用関数
BNPoint	PoBN(null),							//テキストの位置指定関数
TrendLine myTrendLine1(null),				//線描画用関数
BNPoint myBNPoint1(null),					//線描画用関数
BNPoint myBNPoint2(null),					//線描画用関数
PriceSeriesProvider PSP(null),				//線描画用関数
intrabarpersist string tenkan_text(""),		//テキスト内容
//1用
Double	ue1					( 0 ),			//直前の天の転換点の値
Double	sita1				( 0 ),			//直前の底の転換点の値
Double	Max_ue				( 0 ),			//過去X日の最大値
Double	Min_sita			( 0 ),			//過去X日の最小値
Int 	tenkanten			( 0 ),			//直前の転換点 1:天 0:底
Double	tenkanten_atai_1	( 0 ),			//直前の転換点の値
Double	tenkanten_atai_2	( 0 ),			//2つ前の転換点の値
Int 	bar_no_pre1			( 0 ),			//直前の転換点のバーナンバー
Int 	bar_no_pre2			( 0 ),			//2つ前の転換点のバーナンバー			
Int 	bar_no_1			( 0 ),			//天の転換点のバーナンバー
Int 	bar_no_2			( 0 ),			//底の転換点のバーナンバー
Int 	barSuu				( 0 ),			//バーナンバー
Int 	TakaCount			( 0 ),			//高値カウンター
Int 	YasuCount			( 0 ),			//安値カウンター
//1用
Double	ue11				( 0 ),			//直前の天の転換点の値
Double	sita11				( 0 ),			//直前の底の転換点の値
Double	Max_ue1				( 0 ),			//過去X日の最大値
Double	Min_sita1			( 0 ),			//過去X日の最小値
Int 	tenkanten1			( 0 ),			//直前の転換点 1:天 0:底
Double	tenkanten_atai_11	( 0 ),			//直前の転換点の値
Double	tenkanten_atai_12	( 0 ),			//2つ前の転換点の値
Int 	bar_no_pre11		( 0 ),			//直前の転換点のバーナンバー
Int 	bar_no_pre12		( 0 ),			//2つ前の転換点のバーナンバー			
Int 	bar_no_11			( 0 ),			//天の転換点のバーナンバー
Int 	bar_no_12			( 0 ),			//底の転換点のバーナンバー
Int 	barSuu1				( 0 ),			//バーナンバー
Int 	TakaCount1			( 0 ),			//高値カウンター
Int 	YasuCount1			( 0 ),			//安値カウンター
//2用
Double	ue21				( 0 ),			//直前の天の転換点の値
Double	sita21				( 0 ),			//直前の底の転換点の値
Double	Max_ue2				( 0 ),			//過去X日の最大値
Double	Min_sita2			( 0 ),			//過去X日の最小値
Int 	tenkanten2			( 0 ),			//直前の転換点 1:天 0:底
Double	tenkanten_atai_21	( 0 ),			//直前の転換点の値
Double	tenkanten_atai_22	( 0 ),			//2つ前の転換点の値
Int 	bar_no_pre21		( 0 ),			//直前の転換点のバーナンバー
Int 	bar_no_pre22		( 0 ),			//2つ前の転換点のバーナンバー			
Int 	bar_no_21			( 0 ),			//天の転換点のバーナンバー
Int 	bar_no_22			( 0 ),			//底の転換点のバーナンバー
Int 	barSuu2				( 0 ),			//バーナンバー
Int 	TakaCount2			( 0 ),			//高値カウンター
Int 	YasuCount2			( 0 ),			//安値カウンター
//3用
Double	ue31				( 0 ),			//直前の天の転換点の値
Double	sita31				( 0 ),			//直前の底の転換点の値
Double	Max_ue3				( 0 ),			//過去X日の最大値
Double	Min_sita3			( 0 ),			//過去X日の最小値
Int 	tenkanten3			( 0 ),			//直前の転換点 1:天 0:底
Double	tenkanten_atai_31	( 0 ),			//直前の転換点の値
Double	tenkanten_atai_32	( 0 ),			//2つ前の転換点の値
Int 	bar_no_pre31		( 0 ),			//直前の転換点のバーナンバー
Int 	bar_no_pre32		( 0 ),			//2つ前の転換点のバーナンバー			
Int 	bar_no_31			( 0 ),			//天の転換点のバーナンバー
Int 	bar_no_32			( 0 ),			//底の転換点のバーナンバー
Int 	barSuu3				( 0 ),			//バーナンバー
Int 	TakaCount3			( 0 ),			//高値カウンター
Int 	YasuCount3			( 0 ),			//安値カウンター
DateTime DT1(null),
DateTime DT2(null),
TrendLine TL(null);

Once ClearPrintLog;//デバッグ用(ログを削除)

// --------------------------------------------------
//	15分足
// --------------------------------------------------

//過去X日の最大値、最小値を算出
Max_ue1 = Highest(High[1],Length1);
Min_sita1 = Lowest(Low[1],Length1);

//過去X日の最大値より今日の高値が大きい時、ue1に高値をセット、bar_no_1に足数をセット、転換点を天にセット
If Max_ue1 < High Then Begin
ue11 = High;
bar_no_11 = CurrentBar;
tenkanten1 = 1;

//過去X日の最小値より今日の安値が小さい時、sita1に安値をセット、bar_no_2に足数をセット、転換点を底にセット
end Else
If Min_sita1 > Low Then begin
sita11 = Low;
bar_no_12 = CurrentBar;
tenkanten1 = 0;
End;

//前日の転換点が天、今日の転換点が底の時、天の転換点が確定したとして、転換点の値をue1とする。ue1を天の転換点の足にテキスト表示する。転換点を結ぶ。
If tenkanten1[1] = 1 AND tenkanten1 = 0 Then begin

//転換点の値をue1とする。
tenkanten_atai_12 = tenkanten_atai_11 ;
tenkanten_atai_11 = ue11;
bar_no_pre12 = bar_no_pre11;
bar_no_pre11 = bar_no_11;

//ue1を天の転換点の足にテキスト表示する。
tenkan_text = NumToStr ( tenkanten_atai_11, 2 );						//転換点の価格を数値形式からテキスト形式にフォーマット変換する				
PoBN = BNPoint.Create(bar_no_11,tenkanten_atai_11*1.001); 				//テキストを挿入する位置を指定
TXL = TextLabel.Create(PoBN,tenkan_text);								//テキストの印字内容を指定(テキスト作成指示も含む)
TXL.Color = Color.FromName ("yellow");									//テキストの色を指定
TXL.Font = new Font("Microsoft Sans Sefif", 7.5, FontStyle.Regular);	//テキストのフォントサイズ等を指定
DrawingObjects.Add(TXL);												//テキスト描画実行

end;

//前日の転換点が底、今日の転換点が天の時、底の転換点が確定したとして、転換点の値をsita1とする。sita1を底の転換点の足にテキスト表示する。転換点を結ぶ。
If tenkanten1[1] = 0 AND tenkanten1 = 1 Then begin

//転換点の値をsita1とする。
tenkanten_atai_12 = tenkanten_atai_11 ;
tenkanten_atai_11 = sita11;
bar_no_pre12 = bar_no_pre11;
bar_no_pre11 = bar_no_12;

//sita1を底の転換点の足にテキスト表示する。
tenkan_text = NumToStr ( tenkanten_atai_11, 2 );						//転換点の価格を数値形式からテキスト形式にフォーマット変換する
PoBN = BNPoint.Create(bar_no_11,tenkanten_atai_11*0.9998);				//テキストを挿入する位置を指定
TXL = TextLabel.Create(PoBN,tenkan_text);								//テキスト作成コマンド
TXL.Color = Color.FromName ("yellow");									//テキストの色を指定
TXL.Font = new Font("Microsoft Sans Sefif", 7.5, FontStyle.Regular);	//テキストのフォントサイズ等を指定
DrawingObjects.Add(TXL);												//テキスト描画実行
end;

//Print (CurrentBar,",",Value1,",",Value2,",",Value3,",",Value4,",",Value5,",",Value6,",",Value7,",",Value8,",",Value9,",",Value10,",",Value11,",",Value12,",",Value13,",",Value14);//デバッグ用(ログを表示)

// --------------------------------------------------
//	おしまい
// --------------------------------------------------