test2

//※ショウミーです。

//ぽぬさんブログを参考にしています。
//ショウミーで転換点を結んでいく。転換点が確定した足で線を引く為、実際の高値・安値からはズレます。

Inputs : Int Length ( 26 ) [DisplayName="最高値,最安値を判定する期間"];
Vars : Double ue1 ( 0 ), //直前の天の転換点の値
Double sita1 ( 0 ), //直前の底の転換点の値
Double Max_ue ( 0 ), //過去X日の最大値
Double Min_sita ( 0 ), //過去X日の最小値
Int tenkanten ( 0 ), //直前の転換点 1:天 0:底
Double tenkanten_atai( 0 ), //直前の転換点の値
Int bar_no_1 ( 0 ), //天の転換点のバーナンバー
Int bar_no_2 ( 0 ); //底の転換点のバーナンバー

//最初の足の設定
If CurrentBar = 1 then begin
ue1 = High;
sita1 = Low;
end;

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

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

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

//前日の転換点が天、今日の転換点が底の時、ラインを引く
If tenkanten[1] = 1 AND tenkanten = 0 Then
tenkanten_atai = ue1;

//前日の転換点が底、今日の転換点が天の時、ラインを引く
If tenkanten[1] = 0 AND tenkanten = 1 Then
tenkanten_atai = sita1;

//Plot文(転換点を結んでいく)
If tenkanten[1] <> tenkanten Then
Plot1(tenkanten_atai)
else
NoPlot(1);