예스스탁
예스스탁 답변
2025-10-29 09:49:30
안녕하세요
예스스탁입니다.
고점저점이 어떤값인지 모호합니다.
지그재그라인기준으로 작성해 드립니다.
input : 전환포인트(1);
input : Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8);
Array : HD[10](0),HT[10](0),HV[10](0);
Array : LD[10](0),LT[10](0),LV[10](0);
var : cnt(0),Hprice(0),Lprice(0);
var : UpTrend(false),DownTrend(False),Trend(0),ZigZagTL(0),TX(0);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0);
HPrice = H;
LPrice = L;
if Index == 0 Then
{
//초기 최고값
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
//초기 최저값
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
trend = 0;
}
Else
{
UpTrend = HPrice >= LV[0]+전환포인트;
DownTrend = LPrice <= HV[0]-전환포인트;
if trend <= 0 and UpTrend == true Then
{
trend = 1;
For cnt = 9 DownTo 1
{
HD[cnt] = HD[cnt-1];
HT[cnt] = HT[cnt-1];
HV[cnt] = HV[cnt-1];
}
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]);
TL_SetColor(ZigZagTL,Red);
TL_SetSize(ZigZagTL,1);
TX = text_new(HD[0],HT[0],HV[0],NumToStr(HV[0],2));
Text_SetStyle(TX,2,1);
Text_SetColor(TX,Red);
var1 = LV[0]+(HV[0]-LV[0])*(Per1/100);
var2 = LV[0]+(HV[0]-LV[0])*(Per2/100);
var3 = LV[0]+(HV[0]-LV[0])*(Per3/100);
var4 = LV[0]+(HV[0]-LV[0])*(Per4/100);
TL1 = TL_New(LD[0],LT[0],var1,NextBarSdate,NextBarStime,var1);
TL2 = TL_New(LD[0],LT[0],var2,NextBarSdate,NextBarStime,var2);
TL3 = TL_New(LD[0],LT[0],var3,NextBarSdate,NextBarStime,var3);
TL4 = TL_New(LD[0],LT[0],var4,NextBarSdate,NextBarStime,var4);
TL_SetColor(TL1,Red);
TL_SetColor(TL2,Red);
TL_SetColor(TL3,Red);
TL_SetColor(TL4,Red);
}
Else if trend >= 0 and DownTrend Then//하락추세 전환
{
trend = -1;
For cnt = 9 DownTo 1
{
LD[cnt] = LD[cnt-1];
LT[cnt] = LT[cnt-1];
LV[cnt] = LV[cnt-1];
}
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]);
TL_SetColor(ZigZagTL,Blue);
TL_SetSize(ZigZagTL,1);
TX = text_new(LD[0],LT[0],LV[0],NumToStr(LV[0],2));
Text_SetStyle(TX,2,0);
Text_SetColor(TX,Blue);
var1 = HV[0]-(HV[0]-LV[0])*(Per1/100);
var2 = HV[0]-(HV[0]-LV[0])*(Per2/100);
var3 = HV[0]-(HV[0]-LV[0])*(Per3/100);
var4 = HV[0]-(HV[0]-LV[0])*(Per4/100);
TL1 = TL_New(HD[0],HT[0],var1,NextBarSdate,NextBarStime,var1);
TL2 = TL_New(HD[0],HT[0],var2,NextBarSdate,NextBarStime,var2);
TL3 = TL_New(HD[0],HT[0],var3,NextBarSdate,NextBarStime,var3);
TL4 = TL_New(HD[0],HT[0],var4,NextBarSdate,NextBarStime,var4);
TL_SetColor(TL1,Blue);
TL_SetColor(TL2,Blue);
TL_SetColor(TL3,Blue);
TL_SetColor(TL4,Blue);
}
Else
{
if trend == 1 Then
{
if HPrice > HV[0] Then
{
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]);
Text_SetLocation(TX,HD[0],HT[0],HV[0]);
Text_SetString(TX,NumToStr(HV[0],2));
var1 = LV[0]+(HV[0]-LV[0])*(Per1/100);
var2 = LV[0]+(HV[0]-LV[0])*(Per2/100);
var3 = LV[0]+(HV[0]-LV[0])*(Per3/100);
var4 = LV[0]+(HV[0]-LV[0])*(Per4/100);
TL_SetBegin(TL1,LD[0],LT[0],var1);
TL_SetBegin(TL2,LD[0],LT[0],Var2);
TL_SetBegin(TL3,LD[0],LT[0],Var3);
TL_SetBegin(TL4,LD[0],LT[0],Var4);
TL_SetEnd(TL1,Sdate,Stime,var1);
TL_SetEnd(TL2,Sdate,Stime,Var2);
TL_SetEnd(TL3,Sdate,Stime,Var3);
TL_SetEnd(TL4,Sdate,Stime,Var4);
}
}
if trend == -1 Then
{
if LPrice < LV[0] Then
{
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]);
Text_SetLocation(TX,LD[0],LT[0],LV[0]);
Text_SetString(TX,NumToStr(LV[0],2));
var1 = HV[0]-(HV[0]-LV[0])*(Per1/100);
var2 = HV[0]-(HV[0]-LV[0])*(Per2/100);
var3 = HV[0]-(HV[0]-LV[0])*(Per3/100);
var4 = HV[0]-(HV[0]-LV[0])*(Per4/100);
TL_SetBegin(TL1,HD[0],HT[0],var1);
TL_SetBegin(TL2,HD[0],HT[0],Var2);
TL_SetBegin(TL3,HD[0],HT[0],Var3);
TL_SetBegin(TL4,HD[0],HT[0],Var4);
TL_SetEnd(TL1,Sdate,Stime,var1);
TL_SetEnd(TL2,Sdate,Stime,Var2);
TL_SetEnd(TL3,Sdate,Stime,Var3);
TL_SetEnd(TL4,Sdate,Stime,Var4);
}
}
}
}
즐거운 하루되세요
예스스탁
예스스탁 답변
2025-10-31 13:46:29
안녕하세요
예스스탁입니다.
추세선을 이용해
당일 수평으로 그려지게 작성해 드립니다.
input : 방향(1);#1이면 당일저가에서 당일고가로, -1이면 당일고가에서 당일저가
input : Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8);
var : dd(0),tt(0),clr(0),tl1(0),tl2(0),tl3(0),tl4(0);
if 방향 == 1 Then
{
value1 = DayLow+(DayHigh-DayLow)*(Per1/100);
value2 = DayLow+(DayHigh-DayLow)*(Per2/100);
value3 = DayLow+(DayHigh-DayLow)*(Per3/100);
value4 = DayLow+(DayHigh-DayLow)*(Per4/100);
clr = Red;
}
Else
{
value1 = DayHigh-(DayHigh-DayLow)*(Per1/100);
value2 = DayHigh-(DayHigh-DayLow)*(Per2/100);
value3 = DayHigh-(DayHigh-DayLow)*(Per3/100);
value4 = DayHigh-(DayHigh-DayLow)*(Per4/100);
clr = Blue;
}
if Bdate != Bdate[1] Then
{
TL_New(sDate,sTime,0,sDate,sTime,99999999);
dd = sdate;
tt = sTime;
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
TL1 = TL_New(dd,tt,value1,NextBarSdate,NextBarStime,value1);
TL2 = TL_New(dd,tt,value2,NextBarSdate,NextBarStime,Value2);
TL3 = TL_New(dd,tt,value3,NextBarSdate,NextBarStime,Value3);
TL4 = TL_New(dd,tt,value4,NextBarSdate,NextBarStime,Value4);
TL_SetColor(TL1,clr);
TL_SetColor(TL2,clr);
TL_SetColor(TL3,clr);
TL_SetColor(TL4,clr);
}
Else
{
TL_SetBegin(TL1,dd,tt,value1);
TL_SetBegin(TL2,dd,tt,value2);
TL_SetBegin(TL3,dd,tt,value3);
TL_SetBegin(TL4,dd,tt,value4);
TL_SetEnd(TL1,NextBarSdate,NextBarStime,value1);
TL_SetEnd(TL2,NextBarSdate,NextBarStime,value2);
TL_SetEnd(TL3,NextBarSdate,NextBarStime,value3);
TL_SetEnd(TL4,NextBarSdate,NextBarStime,value4);
}
즐거운 하루되세요