커뮤니티
고/저점
2026-07-20 14:16:31
64
글번호 232891
input : L1(120),K(0);
var1 = LRL(C , L1);
var1 선의 고점과 저점의 차이가 k p 이상인경우,
var1 선의 고점에서는 매도, 저점에서는 매수 를 합니다.
청산과 진입은 동일 봉에서 동시에 실행 됩니다.
여기서 고점 이라면
var1 선 상의 최초 고점 후 다음에 나오는 저점을 말합니다.
그리고 저점 이 후 다음에 나오는 고점 을 말합니다.
말하자면 Var1 선의 포물선이 고점과 저점을 연속적으로 이어 지는 형태를 말합니다.
var1 = LRL(C,104);
plot1(var1); 차트선(포물선)의 연속 된 고점 과 저점을 말합니다.
답변 1
예스스탁 예스스탁 답변
2026-07-21 15:10:07
안녕하세요
예스스탁입니다.
var1값 기준 지그재그 고저점을 판단하게 작성해 드립니다.
저점에서 k값 이상 상승하면 매수,
저점에서 k값 이상 하락하면 매도입니다.
input : L1(120),K(5);
input : Percent(3);
var : cnt(0);
var : UpTrend(false),DownTrend(False),Trend(0);
var : ZigZagTL(0),HTL(0),LTL(0);
var : Text(0),Box(0),Grid(0);
Array : HD[10](0),HT[10](0),HV[10](0); //고점 날짜, 시간, 가격 저장할 배열
Array : LD[10](0),LT[10](0),LV[10](0); //저점 날짜, 시간, 가격 저장할 배열
var1 = LRL(C , L1);
if CurrentBar == 1 Then
{
//초기 최고값
HD[0] = sDate;
HT[0] = sTime;
HV[0] = var1;
//초기 최저값
LD[0] = sDate;
LT[0] = sTime;
LV[0] = var1;
}
Else if CurrentBar > 1 Then
{
//var1가 최근 저점대비 일정%이상 상승
UpTrend = var1 >= LV[0]*(1+Percent/100);
//var1가 최근 고점대비 일정%이상 하락
DownTrend = var1 <= HV[0]*(1-Percent/100);
//상승추세 전환
if trend <= 0 and UpTrend == true Then
{
//추세구분 1
trend = 1;
//과거 고점의 날짜, 시간, 값을 다음 배열방으로 이동
For cnt = 9 DownTo 1
{
HD[cnt] = HD[cnt-1];
HT[cnt] = HT[cnt-1];
HV[cnt] = HV[cnt-1];
}
//0번방에 날짜, 시간, 가격 저장
HD[0] = sDate;
HT[0] = sTime;
HV[0] = var1;
//직전 저점에서 현재 고점까지 연결선 출력
ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]);
//색상은 Red
TL_SetColor(ZigZagTL,Red);
//추세선 굵기는 1
TL_SetSize(ZigZagTL,1);
}
Else if trend >= 0 and DownTrend Then//하락추세 전환
{
//추세구분은 -1
trend = -1;
//과거 저점의 날짜, 시간, 값을 다음 배열방으로 이동
For cnt = 9 DownTo 1
{
LD[cnt] = LD[cnt-1];
LT[cnt] = LT[cnt-1];
LV[cnt] = LV[cnt-1];
}
//0번방에 날짜, 시간, 가격 저장
LD[0] = sDate;
LT[0] = sTime;
LV[0] = var1;
//직전 고점에서 현재 저점까지 연결선 출력
ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]);
//색상은 Blue
TL_SetColor(ZigZagTL,Blue);
//굴긱는 1
TL_SetSize(ZigZagTL,1);
}
Else
{
//상승구간
if trend == 1 Then
{
//고점이 갱신되면
if var1 > HV[0] Then
{
//갱신된 봉의 날짜/시간/가격으로 변경
HD[0] = sDate;
HT[0] = sTime;
HV[0] = var1;
//지그재그 추세선의 끝점을 현재봉으로 이동
TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]);
}
if HV[0] >= LV[0]+k Then
Sell();
}
//하락구간
if trend == -1 Then
{
//저점이 갱신되면
if var1 < LV[0] Then
{
//갱신된 봉의 날짜/시간/가격으로 변경
LD[0] = sDate;
LT[0] = sTime;
LV[0] = var1;
//지그재그 추세선의 끝점을 현재봉으로 이동
TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]);
}
if LV[0] <= HV[0]-k Then
Buy();
}
}
}
즐거운 하루되세요
다음글
이전글