커뮤니티

연장선좀 부탁 드림니다.

프로필 이미지
요타
2025-12-19 01:31:46
81
글번호 229166
답변완료

ㅇ 아래 수식  적용 하면  중심선이  굵게  나타 남니다.

ㅇ 중심선을  다음 칸 까지  출력 되도록  수정 부탁 좀  드림니다.



#==========================================#

#==========================================#

## 박스색상

Input : length(20),종가사용여부(0),굵기(1),텍스트크기(12);

Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),

TL(0),Text1(0),TL1(0),TL2(0),TL11(0),TL21(0);

Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime

var : TL3(0),TL4(0),TX3(0),TX4(0),box(0);

#==========================================#

HH = IFF(종가사용여부==1,C,H);

LL = IFF(종가사용여부==1,C,L);

If Index == 0 Then

{

고[1,1] = HH;

저[1,1] = LL;

}

Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;

Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;

처리구분 = "";

If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생

{

If 최종꼭지점 == "저점" Then

{

If 저[1,1] > LL Then 처리구분 = "저점처리";

Else 처리구분 = "고점처리";

}

Else If 최종꼭지점 == "고점" Then

{

If 고[1,1] < HH Then 처리구분 = "고점처리";

Else 처리구분 = "저점처리";

}

}

Else If Condition1 Then 처리구분 = "고점처리";

Else If Condition2 Then 처리구분 = "저점처리";

#==========================================#

If 처리구분 == "고점처리" Then

{

최종고가 = HH; // 신규고점을 체크하기 위해 저장

If 최종꼭지점 == "저점" Then

{

For j = 10 DownTo 2

{

For jj = 1 To 4

{

고[j,jj] = 고[j-1,jj];

}

}

고[1,1] = HH;

고[1,2] = Index;

고[1,3] = sDate;

고[1,4] = sTime;

// TL = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);

// TL1 = TL_New(고[1,3],고[1,4],고[1,1],NextBarSdate,NextBarStime,고[1,1]);

TL11 = TL1[1];

TL_SetSize(TL,굵기);

TL_SetColor(TL,Red); ## 상승 대각선

TL_SetSize(TL1,굵기);

TL_SetColor(TL1,Red);

TL_SetSize(TL11,굵기);

TL_SetColor(TL11,Red); ## 고가선

// Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2));

Text_SetStyle(Text1, 2, 1);

Text_SetSize(text1,텍스트크기);

Text_SetColor(text1,rgb(0,0,0)); ## 수치

TL_SetEnd(TL3,저[1,3],저[1,4],Value99);

TL3 = TL_New(저[1,3],저[1,4],(고[1,1]+저[1,1])/2,고[1,3],고[1,4],(고[1,1]+저[1,1])/2);

TL_SetSize(TL3,굵기);

TL_SetColor(TL3,rgb(0,0,255));

TL_SetSize(TL3,5); ## 상승 중간선

//PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");

/// PlaySound("C:\KiwoomGlobal\sound\매수주문체결2.wav");

box = box_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);

Box_SetColor(box,Rgb(255,255,0));

Box_SetFill(box,true); ## 상승 박스 색상

Condition3 = False;

if 고[1,1] > 고[2,1] Then

{

// TX3 = Text_New(고[1,3],고[1,4],고[1,1],"상돌파"+NewLine);

Text_SetStyle(TX3,2,1);

Condition3 = true;

}

}

Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현

{

고[1,1] = HH;

고[1,2] = Index;

고[1,3] = sDate;

고[1,4] = sTime;

TL_SetEnd(TL,고[1,3],고[1,4],고[1,1]);

TL_SetEnd(TL11,고[1,3],고[1,4],고[2,1]);

TL_SetBegin(TL1,고[1,3],고[1,4],고[1,1]);

// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임

// Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);

// Text_SetString(Text1,"★");

// Text_SetColor(Text1,Rgb(255,0,255));

// Text_SetSize(Text1,35);

TL_SetBegin(TL3,저[1,3],저[1,4],(고[1,1]+저[1,1])/2);

TL_SetEnd(TL3,고[1,3],고[1,4],(고[1,1]+저[1,1])/2);

box_SetEnd(box,고[1,3],고[1,4],고[1,1]);

if Condition3 == False Then

{

if 고[1,1] > 고[2,1] Then

{

// TX3 = Text_New(고[1,3],고[1,4],고[1,1],"상돌파"+NewLine);

Text_SetStyle(TX3,2,1);

Condition3 = true;

}

}

Else

{

Text_SetLocation(TX3,고[1,3],고[1,4],고[1,1]);

}

}

최종꼭지점 = "고점";

Value99 = (고[1,1]+저[1,1])/2;

}

#==========================================#

If 처리구분 == "저점처리" Then

{

최종저가 = LL;

If 최종꼭지점 == "고점" then

{

For j = 10 DownTo 2

{

For jj = 1 To 4

{

저[j,jj] = 저[j-1,jj];

}

}

저[1,1] = LL;

저[1,2] = Index;

저[1,3] = sDate;

저[1,4] = sTime;

// TL = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);

// TL2 = TL_New(저[1,3],저[1,4],저[1,1],NextBarSdate,NextBarStime,저[1,1]);

TL21 = TL2[1];

TL_SetEnd(TL21,저[2,3],저[2,4],저[2,1]);

TL_SetSize(TL,굵기);

TL_SetColor(TL,Blue);

TL_SetSize(TL2,굵기);

TL_SetColor(TL2,Blue);

TL_SetSize(TL21,굵기);

TL_SetColor(TL21,Blue);

// Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2));

Text_SetStyle(Text1, 2, 0);

Text_SetSize(text1,텍스트크기);

TL_SetEnd(TL3,고[1,3],고[1,4],Value99);

TL3 = TL_New(고[1,3],고[1,4],(고[1,1]+저[1,1])/2,저[1,3],저[1,4],(고[1,1]+저[1,1])/2);

TL_SetSize(TL3,5);

TL_SetColor(TL3,Rgb(255,0,0));

//PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");

// PlaySound("C:\KiwoomGlobal\sound\매도주문체결2.wav");

box = box_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);

Box_SetColor(box,Rgb(0,255,255));

Box_SetFill(box,true);

Condition4 = False;

if 저[1,1] < 저[2,1] Then

{

// TX4 = Text_New(저[1,3],저[1,4],저[1,1],NewLine+"하돌파");

Text_SetStyle(TX4,2,0);

Condition4 = true;

}

}

Else If 저[1,1] > LL then

{

저[1,1] = LL;

저[1,2] = Index;

저[1,3] = sDate;

저[1,4] = sTime;

TL_SetEnd(TL,저[1,3],저[1,4],저[1,1]);

TL_SetEnd(TL21,저[1,3],저[1,4],저[2,1]);

TL_SetBegin(TL2,저[1,3],저[1,4],저[1,1]);

Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);

// Text_SetString(Text1,NumToStr(저[1,1],2));

TL_SetBegin(TL3,고[1,3],고[1,4],(고[1,1]+저[1,1])/2);

TL_SetEnd(TL3,저[1,3],저[1,4],(고[1,1]+저[1,1])/2);

box_SetEnd(box,저[1,3],저[1,4],저[1,1]);

if Condition4 == False Then

{

if 저[1,1] < 저[2,1] Then

{

// TX4 = Text_New(저[1,3],저[1,4],저[1,1],NewLine+"하돌파");

Text_SetStyle(TX4,2,0);

Condition4 = true;

}

}

Else

{

Text_SetLocation(TX4,저[1,3],저[1,4],저[1,1]);

}

}

최종꼭지점 = "저점";

Value99 = (고[1,1]+저[1,1])/2;

}

TL_SetEnd(TL1,NextBarSdate,NextBarStime,고[1,1]);

TL_SetEnd(TL2,NextBarSdate,NextBarStime,저[1,1]);

TL_SetEnd(TL3,NextBarSdate,NextBarStime,Value99);

// if CrossUp(c,Value99) or CrossDown(C,Value99) Then

//PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");

// PlaySound("C:\KiwoomGlobal\sound\스탑로스포착2.wav");



지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-12-19 10:50:42

안녕하세요
예스스탁입니다.

#==========================================# #==========================================# ## 박스색상 Input : length(20),종가사용여부(0),굵기(1),텍스트크기(12); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL(0),Text1(0),TL1(0),TL2(0),TL11(0),TL21(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime var : TL3(0),TL4(0),TX3(0),TX4(0),box(0),TL31(0); #==========================================# HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then { // 기간고점과 기간저점 동시 발생 If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# #============== 고점 처리 ===============# #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; // TL = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); // TL1 = TL_New(고[1,3],고[1,4],고[1,1],NextBarSdate,NextBarStime,고[1,1]); TL11 = TL1[1]; TL_SetSize(TL,굵기); TL_SetColor(TL,Red); ## 상승 대각선 TL_SetSize(TL1,굵기); TL_SetColor(TL1,Red); TL_SetSize(TL11,굵기); TL_SetColor(TL11,Red); ## 고가선 // Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 1); Text_SetSize(text1,텍스트크기); Text_SetColor(text1,rgb(0,0,0)); ## 수치 TL_SetEnd(TL31,저[1,3],저[1,4],Value98); TL3 = TL_New( 저[1,3],저[1,4],(고[1,1]+저[1,1])/2, 고[1,3],고[1,4],(고[1,1]+저[1,1])/2 ); TL_SetSize(TL3,굵기); TL_SetColor(TL3,rgb(0,0,255)); TL_SetSize(TL3,5); ## 상승 중간선 TL31 = TL3[1]; Value98 = Value99[1]; box = box_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); Box_SetColor(box,Rgb(255,255,0)); Box_SetFill(box,true); ## 상승 박스 색상 Condition3 = False; if 고[1,1] > 고[2,1] Then { // TX3 = Text_New(고[1,3],고[1,4],고[1,1],"상돌파"+NewLine); Text_SetStyle(TX3,2,1); Condition3 = true; } } Else If 고[1,1] < HH Then { // 1번 고점보다 높은 고가 출현 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL,고[1,3],고[1,4],고[1,1]); TL_SetEnd(TL11,고[1,3],고[1,4],고[2,1]); TL_SetBegin(TL1,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점만 현재 봉으로 연장됨 TL_SetBegin(TL3,저[1,3],저[1,4],(고[1,1]+저[1,1])/2); TL_SetEnd(TL3,고[1,3],고[1,4],(고[1,1]+저[1,1])/2); box_SetEnd(box,고[1,3],고[1,4],고[1,1]); if Condition3 == False Then { if 고[1,1] > 고[2,1] Then { // TX3 = Text_New(고[1,3],고[1,4],고[1,1],"상돌파"+NewLine); Text_SetStyle(TX3,2,1); Condition3 = true; } } Else { Text_SetLocation(TX3,고[1,3],고[1,4],고[1,1]); } } 최종꼭지점 = "고점"; Value99 = (고[1,1]+저[1,1])/2; TL_SetEnd(TL31,sDate,sTime,Value98); } #==========================================# #============== 저점 처리 ===============# #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; // TL = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); // TL2 = TL_New(저[1,3],저[1,4],저[1,1],NextBarSdate,NextBarStime,저[1,1]); TL21 = TL2[1]; TL_SetEnd(TL21,저[2,3],저[2,4],저[2,1]); TL_SetSize(TL,굵기); TL_SetColor(TL,Blue); TL_SetSize(TL2,굵기); TL_SetColor(TL2,Blue); TL_SetSize(TL21,굵기); TL_SetColor(TL21,Blue); // Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); Text_SetSize(text1,텍스트크기); TL_SetEnd(TL31,고[1,3],고[1,4],Value98); TL3 = TL_New( 고[1,3],고[1,4],(고[1,1]+저[1,1])/2, 저[1,3],저[1,4],(고[1,1]+저[1,1])/2 ); TL_SetSize(TL3,5); TL_SetColor(TL3,Rgb(255,0,0)); TL31 = TL3[1]; Value98 = Value99[1]; box = box_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); Box_SetColor(box,Rgb(0,255,255)); Box_SetFill(box,true); Condition4 = False; if 저[1,1] < 저[2,1] Then { // TX4 = Text_New(저[1,3],저[1,4],저[1,1],NewLine+"하돌파"); Text_SetStyle(TX4,2,0); Condition4 = true; } } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL,저[1,3],저[1,4],저[1,1]); TL_SetEnd(TL21,저[1,3],저[1,4],저[2,1]); TL_SetBegin(TL2,저[1,3],저[1,4],저[1,1]); Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); TL_SetBegin(TL3,고[1,3],고[1,4],(고[1,1]+저[1,1])/2); TL_SetEnd(TL3,저[1,3],저[1,4],(고[1,1]+저[1,1])/2); box_SetEnd(box,저[1,3],저[1,4],저[1,1]); if Condition4 == False Then { if 저[1,1] < 저[2,1] Then { // TX4 = Text_New(저[1,3],저[1,4],저[1,1],NewLine+"하돌파"); Text_SetStyle(TX4,2,0); Condition4 = true; } } Else { Text_SetLocation(TX4,저[1,3],저[1,4],저[1,1]); } } 최종꼭지점 = "저점"; Value99 = (고[1,1]+저[1,1])/2; TL_SetEnd(TL31,sDate,sTime,Value98); } TL_SetEnd(TL1,NextBarSdate,NextBarStime,고[1,1]); TL_SetEnd(TL2,NextBarSdate,NextBarStime,저[1,1]); TL_SetEnd(TL3,NextBarSdate,NextBarStime,Value99); TL_SetEnd(TL31,NextBarSdate,NextBarStime,Value98); // if CrossUp(c,Value99) or CrossDown(C,Value99) Then // PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); // PlaySound("C:\KiwoomGlobal\sound\스탑로스포착2.wav");


즐거운 하루되세요