예스스탁
예스스탁 답변
2023-03-27 13:33:41
안녕하세요
예스스탁입니다.
1
Input:변동률(2),레벨0(1),레벨1(1),레벨2(1),레벨3(1),레벨4(1);
Var:고점(1),저점(-1),신규(1),연장(2),연속(3),삼선(4);
Array:고[10,44](0),저[10,44](0), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime
최종상태[5](0),처리구분[5](0),TL[15](0);
var : tx(0),box(0),vtl(0);
//=========================================================//
Value1 = ChgRateZigZag301(H,L,변동률,고,저,최종상태,처리구분);
If 레벨0 == 1 Then {
If 최종상태[0] == 고점 Then {
If 처리구분[0] == 신규 Then
{
TL[0] = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
tx = text_new(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2));
Text_SetStyle(tx,2,1);
box = box_new(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
Box_SetColor(box,Red);
Box_SetFill(box,true);
vtl = TL_New(저[1,3],저[1,4],0,저[1,3],저[1,4],9999999999);
}
If 처리구분[0] == 연장 Then
{
TL_SetEnd(TL[0],고[1,3],고[1,4],고[1,1]);
Text_SetLocation(tx,고[1,3],고[1,4],고[1,1]);
Text_SetString(tx,NumToStr(고[1,1],2));
Box_SetEnd(box,고[1,3],고[1,4],고[1,1]);
}
}
If 최종상태[0] == 저점 Then {
If 처리구분[0] == 신규 Then
{
TL[0] = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
tx = text_new(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2));
Text_SetStyle(tx,2,0);
box = box_new(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
Box_SetColor(box,Blue);
Box_SetFill(box,true);
TL_New(고[1,3],고[1,4],0,고[1,3],고[1,4],9999999999);
}
If 처리구분[0] == 연장 Then
{
TL_SetEnd(TL[0],저[1,3],저[1,4],저[1,1]);
Text_SetLocation(tx,저[1,3],저[1,4],저[1,1]);
Text_SetString(tx,NumToStr(저[1,1],2));
Box_SetEnd(box,저[1,3],저[1,4],저[1,1]);
}
}
TL_SetColor(TL[0],BLACK); TL_SetSize(TL[0],1);
}
If 레벨1 == 1 Then {
If 최종상태[1] == 고점 Then {
If 처리구분[1] == 신규 Then TL[3] = TL_New(저[1,13],저[1,14],저[1,11],고[1,13],고[1,14],고[1,11]);
If 처리구분[1] == 연장 Then TL_SetEnd(TL[3],고[1,13],고[1,14],고[1,11]);
If 처리구분[1] == 연속 Then { TL[2] = TL_New(고[2,13],고[2,14],고[2,11],저[1,13],저[1,14],저[1,11]);
TL[3] = TL_New(저[1,13],저[1,14],저[1,11],고[1,13],고[1,14],고[1,11]); }
If 처리구분[1] == 삼선 Then { TL[1] = TL_New(저[2,13],저[2,14],저[2,11],고[2,13],고[2,14],고[2,11]);
TL[2] = TL_New(고[2,13],고[2,14],고[2,11],저[1,13],저[1,14],저[1,11]);
TL[3] = TL_New(저[1,13],저[1,14],저[1,11],고[1,13],고[1,14],고[1,11]); }
}
If 최종상태[1] == 저점 Then {
If 처리구분[1] == 신규 Then TL[3] = TL_New(고[1,13],고[1,14],고[1,11],저[1,13],저[1,14],저[1,11]);
If 처리구분[1] == 연장 Then TL_SetEnd(TL[3],저[1,13],저[1,14],저[1,11]);
If 처리구분[1] == 연속 Then { TL[2] = TL_New(저[2,13],저[2,14],저[2,11],고[1,13],고[1,14],고[1,11]);
TL[3] = TL_New(고[1,13],고[1,14],고[1,11],저[1,13],저[1,14],저[1,11]); }
If 처리구분[1] == 삼선 Then { TL[1] = TL_New(고[2,13],고[2,14],고[2,11],저[2,13],저[2,14],저[2,11]);
TL[2] = TL_New(저[2,13],저[2,14],저[2,11],고[1,13],고[1,14],고[1,11]);
TL[3] = TL_New(고[1,13],고[1,14],고[1,11],저[1,13],저[1,14],저[1,11]); }
}
TL_SetColor(TL[1],BLUE); TL_SetSize(TL[1],2);
TL_SetColor(TL[2],BLUE); TL_SetSize(TL[2],2);
TL_SetColor(TL[3],BLUE); TL_SetSize(TL[3],2);
}
If 레벨2 == 1 Then {
If 최종상태[2] == 고점 Then {
If 처리구분[2] == 신규 Then TL[6] = TL_New(저[1,23],저[1,24],저[1,21],고[1,23],고[1,24],고[1,21]);
If 처리구분[2] == 연장 Then TL_SetEnd(TL[6],고[1,23],고[1,24],고[1,21]);
If 처리구분[2] == 연속 Then { TL[5] = TL_New(고[2,23],고[2,24],고[2,21],저[1,23],저[1,24],저[1,21]);
TL[6] = TL_New(저[1,23],저[1,24],저[1,21],고[1,23],고[1,24],고[1,21]); }
If 처리구분[2] == 삼선 Then { TL[4] = TL_New(저[2,23],저[2,24],저[2,21],고[2,23],고[2,24],고[2,21]);
TL[5] = TL_New(고[2,23],고[2,24],고[2,21],저[1,23],저[1,24],저[1,21]);
TL[6] = TL_New(저[1,23],저[1,24],저[1,21],고[1,23],고[1,24],고[1,21]); }
}
If 최종상태[2] == 저점 Then {
If 처리구분[2] == 신규 Then TL[6] = TL_New(고[1,23],고[1,24],고[1,21],저[1,23],저[1,24],저[1,21]);
If 처리구분[2] == 연장 Then TL_SetEnd(TL[6],저[1,23],저[1,24],저[1,21]);
If 처리구분[2] == 연속 Then { TL[5] = TL_New(저[2,23],저[2,24],저[2,21],고[1,23],고[1,24],고[1,21]);
TL[6] = TL_New(고[1,23],고[1,24],고[1,21],저[1,23],저[1,24],저[1,21]); }
If 처리구분[2] == 삼선 Then { TL[4] = TL_New(고[2,23],고[2,24],고[2,21],저[2,23],저[2,24],저[2,21]);
TL[5] = TL_New(저[2,23],저[2,24],저[2,21],고[1,23],고[1,24],고[1,21]);
TL[6] = TL_New(고[1,23],고[1,24],고[1,21],저[1,23],저[1,24],저[1,21]); }
}
TL_SetColor(TL[4],MAGENTA); TL_SetSize(TL[4],3);
TL_SetColor(TL[5],MAGENTA); TL_SetSize(TL[5],3);
TL_SetColor(TL[6],MAGENTA); TL_SetSize(TL[6],3);
}
If 레벨3 == 1 Then {
If 최종상태[3] == 고점 Then {
If 처리구분[3] == 신규 Then TL[9] = TL_New(저[1,33],저[1,34],저[1,31],고[1,33],고[1,34],고[1,31]);
If 처리구분[3] == 연장 Then TL_SetEnd(TL[9],고[1,33],고[1,34],고[1,31]);
If 처리구분[3] == 연속 Then { TL[8] = TL_New(고[2,33],고[2,34],고[2,31],저[1,33],저[1,34],저[1,31]);
TL[9] = TL_New(저[1,33],저[1,34],저[1,31],고[1,33],고[1,34],고[1,31]); }
If 처리구분[3] == 삼선 Then { TL[7] = TL_New(저[2,33],저[2,34],저[2,31],고[2,33],고[2,34],고[2,31]);
TL[8] = TL_New(고[2,33],고[2,34],고[2,31],저[1,33],저[1,34],저[1,31]);
TL[9] = TL_New(저[1,33],저[1,34],저[1,31],고[1,33],고[1,34],고[1,31]); }
}
If 최종상태[3] == 저점 Then {
If 처리구분[3] == 신규 Then TL[9] = TL_New(고[1,33],고[1,34],고[1,31],저[1,33],저[1,34],저[1,31]);
If 처리구분[3] == 연장 Then TL_SetEnd(TL[9],저[1,33],저[1,34],저[1,31]);
If 처리구분[3] == 연속 Then { TL[8] = TL_New(저[2,33],저[2,34],저[2,31],고[1,33],고[1,34],고[1,31]);
TL[9] = TL_New(고[1,33],고[1,34],고[1,31],저[1,33],저[1,34],저[1,31]); }
If 처리구분[3] == 삼선 Then { TL[7] = TL_New(고[2,33],고[2,34],고[2,31],저[2,33],저[2,34],저[2,31]);
TL[8] = TL_New(저[2,33],저[2,34],저[2,31],고[1,33],고[1,34],고[1,31]);
TL[9] = TL_New(고[1,33],고[1,34],고[1,31],저[1,33],저[1,34],저[1,31]); }
}
TL_SetColor(TL[7],RED); TL_SetSize(TL[7],4);
TL_SetColor(TL[8],RED); TL_SetSize(TL[8],4);
TL_SetColor(TL[9],RED); TL_SetSize(TL[9],4);
}
If 레벨4 == 1 Then {
If 최종상태[4] == 고점 Then {
If 처리구분[4] == 신규 Then TL[12] = TL_New(저[1,43],저[1,44],저[1,41],고[1,43],고[1,44],고[1,41]);
If 처리구분[4] == 연장 Then TL_SetEnd(TL[12],고[1,43],고[1,44],고[1,41]);
If 처리구분[4] == 연속 Then { TL[11] = TL_New(고[2,43],고[2,44],고[2,41],저[1,43],저[1,44],저[1,41]);
TL[12] = TL_New(저[1,43],저[1,44],저[1,41],고[1,43],고[1,44],고[1,41]); }
If 처리구분[4] == 삼선 Then { TL[10] = TL_New(저[2,43],저[2,44],저[2,41],고[2,43],고[2,44],고[2,41]);
TL[11] = TL_New(고[2,43],고[2,44],고[2,41],저[1,43],저[1,44],저[1,41]);
TL[12] = TL_New(저[1,43],저[1,44],저[1,41],고[1,43],고[1,44],고[1,41]); }
}
If 최종상태[4] == 저점 Then {
If 처리구분[4] == 신규 Then TL[12] = TL_New(고[1,43],고[1,44],고[1,41],저[1,43],저[1,44],저[1,41]);
If 처리구분[4] == 연장 Then TL_SetEnd(TL[12],저[1,43],저[1,44],저[1,41]);
If 처리구분[4] == 연속 Then { TL[11] = TL_New(저[2,43],저[2,44],저[2,41],고[1,43],고[1,44],고[1,41]);
TL[12] = TL_New(고[1,43],고[1,44],고[1,41],저[1,43],저[1,44],저[1,41]); }
If 처리구분[4] == 삼선 Then { TL[10] = TL_New(고[2,43],고[2,44],고[2,41],저[2,43],저[2,44],저[2,41]);
TL[11] = TL_New(저[2,43],저[2,44],저[2,41],고[1,43],고[1,44],고[1,41]);
TL[12] = TL_New(고[1,43],고[1,44],고[1,41],저[1,43],저[1,44],저[1,41]); }
}
TL_SetColor(TL[10],BWHITE); TL_SetSize(TL[10],5);
TL_SetColor(TL[11],BWHITE); TL_SetSize(TL[11],5);
TL_SetColor(TL[12],BWHITE); TL_SetSize(TL[12],5);
}
2
input : hRate(1);
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);
var : ZigZagTL(0),tx(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;
}
Else
{
if trend == 0 Then
{
if HPrice > HV[0] Then
{
HV[0] = HPrice;
HD[0] = sDate;
HT[0] = sTime;
}
if LPrice < LV[0] Then
{
LV[0] = LPrice;
LD[0] = sDate;
LT[0] = sTime;
}
}
UpTrend = HPrice >= LV[0]*(1+hRate/100);
DownTrend = LPrice <= HV[0]*(1-hRate/100);
//상승추세 전환
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(sdate,stime,HV[0],NumToStr(HV[0],2));
Text_SetStyle(tx,2,1);
}
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(sdate,stime,LV[0],NumToStr(LV[0],2));
Text_SetStyle(tx,2,0);
}
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));
}
}
//하락구간
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));
}
}
}
}
즐거운 하루되세요
> 외국인 님이 쓴 글입니다.
> 제목 : 수정부탁드립니다
> 변곡점마다 수치,수직선표시 및 변곡점변경시 사각box색상 부탁드립니다
1)
Input:변동률(2),레벨0(1),레벨1(1),레벨2(1),레벨3(1),레벨4(1);
Var:고점(1),저점(-1),신규(1),연장(2),연속(3),삼선(4);
Array:고[10,44](0),저[10,44](0), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime
최종상태[5](0),처리구분[5](0),TL[15](0);
//=========================================================//
Value1 = ChgRateZigZag301(H,L,변동률,고,저,최종상태,처리구분);
If 레벨0 == 1 Then {
If 최종상태[0] == 고점 Then {
If 처리구분[0] == 신규 Then TL[0] = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 처리구분[0] == 연장 Then TL_SetEnd(TL[0],고[1,3],고[1,4],고[1,1]);
}
If 최종상태[0] == 저점 Then {
If 처리구분[0] == 신규 Then TL[0] = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 처리구분[0] == 연장 Then TL_SetEnd(TL[0],저[1,3],저[1,4],저[1,1]);
}
TL_SetColor(TL[0],BLACK); TL_SetSize(TL[0],1);
}
If 레벨1 == 1 Then {
If 최종상태[1] == 고점 Then {
If 처리구분[1] == 신규 Then TL[3] = TL_New(저[1,13],저[1,14],저[1,11],고[1,13],고[1,14],고[1,11]);
If 처리구분[1] == 연장 Then TL_SetEnd(TL[3],고[1,13],고[1,14],고[1,11]);
If 처리구분[1] == 연속 Then { TL[2] = TL_New(고[2,13],고[2,14],고[2,11],저[1,13],저[1,14],저[1,11]);
TL[3] = TL_New(저[1,13],저[1,14],저[1,11],고[1,13],고[1,14],고[1,11]); }
If 처리구분[1] == 삼선 Then { TL[1] = TL_New(저[2,13],저[2,14],저[2,11],고[2,13],고[2,14],고[2,11]);
TL[2] = TL_New(고[2,13],고[2,14],고[2,11],저[1,13],저[1,14],저[1,11]);
TL[3] = TL_New(저[1,13],저[1,14],저[1,11],고[1,13],고[1,14],고[1,11]); }
}
If 최종상태[1] == 저점 Then {
If 처리구분[1] == 신규 Then TL[3] = TL_New(고[1,13],고[1,14],고[1,11],저[1,13],저[1,14],저[1,11]);
If 처리구분[1] == 연장 Then TL_SetEnd(TL[3],저[1,13],저[1,14],저[1,11]);
If 처리구분[1] == 연속 Then { TL[2] = TL_New(저[2,13],저[2,14],저[2,11],고[1,13],고[1,14],고[1,11]);
TL[3] = TL_New(고[1,13],고[1,14],고[1,11],저[1,13],저[1,14],저[1,11]); }
If 처리구분[1] == 삼선 Then { TL[1] = TL_New(고[2,13],고[2,14],고[2,11],저[2,13],저[2,14],저[2,11]);
TL[2] = TL_New(저[2,13],저[2,14],저[2,11],고[1,13],고[1,14],고[1,11]);
TL[3] = TL_New(고[1,13],고[1,14],고[1,11],저[1,13],저[1,14],저[1,11]); }
}
TL_SetColor(TL[1],BLUE); TL_SetSize(TL[1],2);
TL_SetColor(TL[2],BLUE); TL_SetSize(TL[2],2);
TL_SetColor(TL[3],BLUE); TL_SetSize(TL[3],2);
}
If 레벨2 == 1 Then {
If 최종상태[2] == 고점 Then {
If 처리구분[2] == 신규 Then TL[6] = TL_New(저[1,23],저[1,24],저[1,21],고[1,23],고[1,24],고[1,21]);
If 처리구분[2] == 연장 Then TL_SetEnd(TL[6],고[1,23],고[1,24],고[1,21]);
If 처리구분[2] == 연속 Then { TL[5] = TL_New(고[2,23],고[2,24],고[2,21],저[1,23],저[1,24],저[1,21]);
TL[6] = TL_New(저[1,23],저[1,24],저[1,21],고[1,23],고[1,24],고[1,21]); }
If 처리구분[2] == 삼선 Then { TL[4] = TL_New(저[2,23],저[2,24],저[2,21],고[2,23],고[2,24],고[2,21]);
TL[5] = TL_New(고[2,23],고[2,24],고[2,21],저[1,23],저[1,24],저[1,21]);
TL[6] = TL_New(저[1,23],저[1,24],저[1,21],고[1,23],고[1,24],고[1,21]); }
}
If 최종상태[2] == 저점 Then {
If 처리구분[2] == 신규 Then TL[6] = TL_New(고[1,23],고[1,24],고[1,21],저[1,23],저[1,24],저[1,21]);
If 처리구분[2] == 연장 Then TL_SetEnd(TL[6],저[1,23],저[1,24],저[1,21]);
If 처리구분[2] == 연속 Then { TL[5] = TL_New(저[2,23],저[2,24],저[2,21],고[1,23],고[1,24],고[1,21]);
TL[6] = TL_New(고[1,23],고[1,24],고[1,21],저[1,23],저[1,24],저[1,21]); }
If 처리구분[2] == 삼선 Then { TL[4] = TL_New(고[2,23],고[2,24],고[2,21],저[2,23],저[2,24],저[2,21]);
TL[5] = TL_New(저[2,23],저[2,24],저[2,21],고[1,23],고[1,24],고[1,21]);
TL[6] = TL_New(고[1,23],고[1,24],고[1,21],저[1,23],저[1,24],저[1,21]); }
}
TL_SetColor(TL[4],MAGENTA); TL_SetSize(TL[4],3);
TL_SetColor(TL[5],MAGENTA); TL_SetSize(TL[5],3);
TL_SetColor(TL[6],MAGENTA); TL_SetSize(TL[6],3);
}
If 레벨3 == 1 Then {
If 최종상태[3] == 고점 Then {
If 처리구분[3] == 신규 Then TL[9] = TL_New(저[1,33],저[1,34],저[1,31],고[1,33],고[1,34],고[1,31]);
If 처리구분[3] == 연장 Then TL_SetEnd(TL[9],고[1,33],고[1,34],고[1,31]);
If 처리구분[3] == 연속 Then { TL[8] = TL_New(고[2,33],고[2,34],고[2,31],저[1,33],저[1,34],저[1,31]);
TL[9] = TL_New(저[1,33],저[1,34],저[1,31],고[1,33],고[1,34],고[1,31]); }
If 처리구분[3] == 삼선 Then { TL[7] = TL_New(저[2,33],저[2,34],저[2,31],고[2,33],고[2,34],고[2,31]);
TL[8] = TL_New(고[2,33],고[2,34],고[2,31],저[1,33],저[1,34],저[1,31]);
TL[9] = TL_New(저[1,33],저[1,34],저[1,31],고[1,33],고[1,34],고[1,31]); }
}
If 최종상태[3] == 저점 Then {
If 처리구분[3] == 신규 Then TL[9] = TL_New(고[1,33],고[1,34],고[1,31],저[1,33],저[1,34],저[1,31]);
If 처리구분[3] == 연장 Then TL_SetEnd(TL[9],저[1,33],저[1,34],저[1,31]);
If 처리구분[3] == 연속 Then { TL[8] = TL_New(저[2,33],저[2,34],저[2,31],고[1,33],고[1,34],고[1,31]);
TL[9] = TL_New(고[1,33],고[1,34],고[1,31],저[1,33],저[1,34],저[1,31]); }
If 처리구분[3] == 삼선 Then { TL[7] = TL_New(고[2,33],고[2,34],고[2,31],저[2,33],저[2,34],저[2,31]);
TL[8] = TL_New(저[2,33],저[2,34],저[2,31],고[1,33],고[1,34],고[1,31]);
TL[9] = TL_New(고[1,33],고[1,34],고[1,31],저[1,33],저[1,34],저[1,31]); }
}
TL_SetColor(TL[7],RED); TL_SetSize(TL[7],4);
TL_SetColor(TL[8],RED); TL_SetSize(TL[8],4);
TL_SetColor(TL[9],RED); TL_SetSize(TL[9],4);
}
If 레벨4 == 1 Then {
If 최종상태[4] == 고점 Then {
If 처리구분[4] == 신규 Then TL[12] = TL_New(저[1,43],저[1,44],저[1,41],고[1,43],고[1,44],고[1,41]);
If 처리구분[4] == 연장 Then TL_SetEnd(TL[12],고[1,43],고[1,44],고[1,41]);
If 처리구분[4] == 연속 Then { TL[11] = TL_New(고[2,43],고[2,44],고[2,41],저[1,43],저[1,44],저[1,41]);
TL[12] = TL_New(저[1,43],저[1,44],저[1,41],고[1,43],고[1,44],고[1,41]); }
If 처리구분[4] == 삼선 Then { TL[10] = TL_New(저[2,43],저[2,44],저[2,41],고[2,43],고[2,44],고[2,41]);
TL[11] = TL_New(고[2,43],고[2,44],고[2,41],저[1,43],저[1,44],저[1,41]);
TL[12] = TL_New(저[1,43],저[1,44],저[1,41],고[1,43],고[1,44],고[1,41]); }
}
If 최종상태[4] == 저점 Then {
If 처리구분[4] == 신규 Then TL[12] = TL_New(고[1,43],고[1,44],고[1,41],저[1,43],저[1,44],저[1,41]);
If 처리구분[4] == 연장 Then TL_SetEnd(TL[12],저[1,43],저[1,44],저[1,41]);
If 처리구분[4] == 연속 Then { TL[11] = TL_New(저[2,43],저[2,44],저[2,41],고[1,43],고[1,44],고[1,41]);
TL[12] = TL_New(고[1,43],고[1,44],고[1,41],저[1,43],저[1,44],저[1,41]); }
If 처리구분[4] == 삼선 Then { TL[10] = TL_New(고[2,43],고[2,44],고[2,41],저[2,43],저[2,44],저[2,41]);
TL[11] = TL_New(저[2,43],저[2,44],저[2,41],고[1,43],고[1,44],고[1,41]);
TL[12] = TL_New(고[1,43],고[1,44],고[1,41],저[1,43],저[1,44],저[1,41]); }
}
TL_SetColor(TL[10],BWHITE); TL_SetSize(TL[10],5);
TL_SetColor(TL[11],BWHITE); TL_SetSize(TL[11],5);
TL_SetColor(TL[12],BWHITE); TL_SetSize(TL[12],5);
}
2)지그재그표시가 불안정합니다.
수정부탁드립니다.
Input:hRate(1),하락색(LimE),상승색(Red),색상뚜게(40),선굵기(1);
Var:J(0),upTr(100),dnTr(-100),upRate(0),dnRate(0),Trnd(0),Trnd1(0),
dateF11(0),dateF12(0),timeF11(0),timeF12(0),TL1(0),수정TL(0),box(0),
dateF21(0),dateF22(0),timeF21(0),timeF22(0);
Array:hiVal[10](0),loVal[10](0),hiBar[10](0),loBar[10](0);
upRate = 1 + (hRate/100);
dnRate = 1 - (hRate/100);
for J = 1 to 9 {
loBar[J] = loBar[J] + 1;
hiBar[J] = hiBar[J] + 1;
}
if hiVal[0] <= H or hiVal[0] == 0 then {
hiVal[0] = H;
hiBar[0] = 0;
}
else {
hiBar[0] = hiBar[0] + 1;
}
if loVal[0] >= L or loVal[0] == 0 then {
loVal[0] = L;
loBar[0] = 0;
}
else {
loBar[0] = loBar[0] + 1;
}
if Trnd != dnTr && hiVal[0] > H && hiVal[0] * dnRate > L then Trnd = dnTr;
else if Trnd != upTr && loVal[0] < L && loVal[0] * upRate < H then Trnd = upTr;
if Trnd[1] == upTr and Trnd == dnTr then {
for J = 8 downto 1 {
hiVal[J+1] = hiVal[J];
hiBar[J+1] = hiBar[J];
}
hiVal[1] = hiVal[0];
hiBar[1] = hiBar[0];
hiVal[0] = H;
hiBar[0] = 0;
loVal[0] = L;
loBar[0] = 0;
dateF11 = date[loBar[1]];
timeF11 = stime[loBar[1]];
Value81 = loVal[1];
dateF12 = date[hiBar[1]];
timeF12 = stime[hiBar[1]];
Value92 = hiVal[1];
Text_New(sdate,stime,Value92,"하락"+NumToStr(Value92,2));
TL1 = TL_New(dateF11,timeF11,Value81,dateF12,timeF12,Value92);
}
if Trnd[1] == dnTr and Trnd == dnTr and
hiVal[1] < hiVal[0] and
hiVal[0] * dnRate > L then {
hiVal[1] = hiVal[0];
hiBar[1] = hiBar[0];
hiVal[0] = H;
hiBar[0] = 0;
loVal[0] = L;
loBar[0] = 0;
dateF12 = date[hiBar[1]];
timeF12 = stime[hiBar[1]];
Value92 = hiVal[1];
TL_SetEnd(TL1, dateF12,timeF12,Value92);
}
if Trnd[1] == dnTr and Trnd == upTr then {
for J = 8 downto 1 {
loVal[J+1] = loVal[J];
loBar[J+1] = loBar[J];
}
loVal[1] = loVal[0];
loBar[1] = loBar[0];
loVal[0] = L;
loBar[0] = 0;
hiVal[0] = H;
hiBar[0] = 0;
dateF11 = date[hiBar[1]];
timeF11 = stime[hiBar[1]];
Value91 = hiVal[1];
dateF12 = date[loBar[1]];
timeF12 = stime[loBar[1]];
Value82 = loVal[1];
Text_New(sdate,stime,Value82,"상승"+NumToStr(Value82,2));
TL1 = TL_New(dateF11,timeF11,Value91,dateF12,timeF12,Value82);
}
if Trnd[1] == upTr and Trnd == upTr and
loVal[1] > loVal[0] and
loVal[0] * upRate < H then {
loVal[1] = loVal[0];
loBar[1] = loBar[0];
loVal[0] = L;
loBar[0] = 0;
hiVal[0] = H;
hiBar[0] = 0;
dateF12 = date[loBar[1]];
timeF12 = stime[loBar[1]];
Value82 = loVal[1];
TL_SetEnd(TL1, dateF12,timeF12,Value82);
}
TL_SetSize(TL1,2);