커뮤니티

질문 드립니다

프로필 이미지
유로파54
2018-11-12 12:44:07
154
글번호 123550
답변완료
안녕하세요 ^^* 매번 수고해주심에 진심으로 감사드립니다!!! 아래수식은 어느 회원님의 질문에 관리자님이 답변해주신 수식인데요 이수식을 아래내용만 조금 수정 보완해주시면 고맙겠습니다 1, 파동의 고점 혹은 저점이 발생시 "수평선"이 바로그 고점 저점자리에서 발생되었으면합니다 (* 기존의 수평선은 제거후) * 이후 이 수평선은 몇개의 봉이 완성되든 상관없이 다음 새로운 고점 저점이 발생시까지 계속 이어져야하며 * 동시에 이 새로운 고점 혹은 저점이 발생시 이전 수평선은 모두 사라졌으면합니다 <<* 파동선이 같은방향으로 연장이되든 아님 반대방향으로 전환이되든 어떤 경우든 새로운 고점 저점이 발생시는 항상 위조건이 모두 만족되었으면 합니다>> 2, 이 "수평선"의 "두께"와 "색상"은 수정가능하도록 부탁드립니다 저에겐 이 기능이 매우 중요할것같아서요 기본적으로는 제일 두꺼운 흰색으로 설정 부탁드립니다 항상 감사합니다 ^^ ==================================================================================== Input:전환비율(0.5),종가사용여부(0),파동선두께(2),수치표시(1); Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),TL11(0),TL12(0),TL13(0); Array:고[10,4](0),저[10,4](0); HH = IFF(종가사용여부 == 1,C,H); LL = IFF(종가사용여부 == 1,C,L); If Index == 0 Then { 고[1,1] = HH; 고[1,2] = 0; 고[1,3] = sDate; 고[1,4] = sTime; 저[1,1] = LL; 저[1,2] = 0; 저[1,3] = sDate; 저[1,4] = sTime; } If Index > 0 Then { hiBar = hiBar + 1; loBar = loBar + 1; } If HH[hiBar] < HH Then hiBar = 0; If LL[loBar] > LL Then loBar = 0; Condition1 = 저[1,1] * (1 + (전환비율/100)) < HH and hiBar == 0; Condition2 = 고[1,1] * (1 - (전환비율/100)) > LL and loBar == 0; 처리구분 = ""; 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 { If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_Delete(TL11); TL_Delete(TL12); TL_Delete(TL13); TL11 = TL_New(저[1,3],저[1,4],999999999,저[1,3],저[1,4],0); TL12 = TL_New(고[2,3],고[2,4],저[1,1],고[1,3],고[1,4],저[1,1]); TL13 = TL_New(고[2,3],고[2,4],저[1,1]* (1 + (전환비율/100)) ,고[1,3],고[1,4],저[1,1]* (1 + (전환비율/100)) ); TL_SetExtRight(TL12,true); TL_SetExtRight(TL13,true); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 1); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,red); } Else If 고[1,1] < HH[hiBar] Then { 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } If 처리구분 == "저점처리" Then { If 최종꼭지점 == "고점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_Delete(TL11); TL_Delete(TL12); TL_Delete(TL13); TL11 = TL_New(고[1,3],고[1,4],999999999,고[1,3],고[1,4],0); TL12 = TL_New(저[2,3],저[2,4],고[1,1],저[1,3],저[1,4],고[1,1]); TL13 = TL_New(저[2,3],저[2,4],고[1,1]* (1 - (전환비율/100)) ,저[1,3],저[1,4],고[1,1]* (1 - (전환비율/100)) ); TL_SetExtRight(TL12,true); TL_SetExtRight(TL13,true); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,blue); } Else If 저[1,1] > LL[loBar] Then { 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-11-12 16:26:27

안녕하세요 예스스탁입니다. 1번 내용은 기존식에 이미 처리되어 있는 부분입니다. 최근 확정된 고점이나 저점에 수직선을 그리고 고점/저점 수평과 다음 전환되는 가격에 추가로 수평선이 그려집니다. 어느 부분을 수정해 드려야할지 모르겠습니다. 색과 굵기만 조절할수 있게 수정해 드립니다. 굵기는 6이 가장 두껍고 0이 가장 가는선입니다. 색상은 수식내에서 예약어로 처리하셔야 합니다. Input:전환비율(0.5),종가사용여부(0),파동선두께(2),수치표시(1),굵기(6); Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),TL11(0),TL12(0),TL13(0); Array:고[10,4](0),저[10,4](0); HH = IFF(종가사용여부 == 1,C,H); LL = IFF(종가사용여부 == 1,C,L); If Index == 0 Then { 고[1,1] = HH; 고[1,2] = 0; 고[1,3] = sDate; 고[1,4] = sTime; 저[1,1] = LL; 저[1,2] = 0; 저[1,3] = sDate; 저[1,4] = sTime; } If Index > 0 Then { hiBar = hiBar + 1; loBar = loBar + 1; } If HH[hiBar] < HH Then hiBar = 0; If LL[loBar] > LL Then loBar = 0; Condition1 = 저[1,1] * (1 + (전환비율/100)) < HH and hiBar == 0; Condition2 = 고[1,1] * (1 - (전환비율/100)) > LL and loBar == 0; 처리구분 = ""; 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 { If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_Delete(TL11); TL_Delete(TL12); TL_Delete(TL13); TL11 = TL_New(저[1,3],저[1,4],999999999,저[1,3],저[1,4],0); TL12 = TL_New(고[2,3],고[2,4],저[1,1],고[1,3],고[1,4],저[1,1]); TL13 = TL_New(고[2,3],고[2,4],저[1,1]* (1 + (전환비율/100)) ,고[1,3],고[1,4],저[1,1]* (1 + (전환비율/100)) ); TL_SetExtRight(TL12,true); TL_SetExtRight(TL13,true); TL_SetSize(TL11,굵기); TL_SetSize(TL12,굵기); TL_SetSize(TL13,굵기); TL_SetColor(TL11,WHITE); TL_SetColor(TL12,WHITE); TL_SetColor(TL13,WHITE); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 1); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,red); } Else If 고[1,1] < HH[hiBar] Then { 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } If 처리구분 == "저점처리" Then { If 최종꼭지점 == "고점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_Delete(TL11); TL_Delete(TL12); TL_Delete(TL13); TL11 = TL_New(고[1,3],고[1,4],999999999,고[1,3],고[1,4],0); TL12 = TL_New(저[2,3],저[2,4],고[1,1],저[1,3],저[1,4],고[1,1]); TL13 = TL_New(저[2,3],저[2,4],고[1,1]* (1 - (전환비율/100)) ,저[1,3],저[1,4],고[1,1]* (1 - (전환비율/100)) ); TL_SetExtRight(TL12,true); TL_SetExtRight(TL13,true); TL_SetSize(TL11,굵기); TL_SetSize(TL12,굵기); TL_SetSize(TL13,굵기); TL_SetColor(TL11,WHITE); TL_SetColor(TL12,WHITE); TL_SetColor(TL13,WHITE); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,blue); } Else If 저[1,1] > LL[loBar] Then { 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; } 즐거운 하루되세요 > 유로파54 님이 쓴 글입니다. > 제목 : 질문 드립니다 > 안녕하세요 ^^* 매번 수고해주심에 진심으로 감사드립니다!!! 아래수식은 어느 회원님의 질문에 관리자님이 답변해주신 수식인데요 이수식을 아래내용만 조금 수정 보완해주시면 고맙겠습니다 1, 파동의 고점 혹은 저점이 발생시 "수평선"이 바로그 고점 저점자리에서 발생되었으면합니다 (* 기존의 수평선은 제거후) * 이후 이 수평선은 몇개의 봉이 완성되든 상관없이 다음 새로운 고점 저점이 발생시까지 계속 이어져야하며 * 동시에 이 새로운 고점 혹은 저점이 발생시 이전 수평선은 모두 사라졌으면합니다 <<* 파동선이 같은방향으로 연장이되든 아님 반대방향으로 전환이되든 어떤 경우든 새로운 고점 저점이 발생시는 항상 위조건이 모두 만족되었으면 합니다>> 2, 이 "수평선"의 "두께"와 "색상"은 수정가능하도록 부탁드립니다 저에겐 이 기능이 매우 중요할것같아서요 기본적으로는 제일 두꺼운 흰색으로 설정 부탁드립니다 항상 감사합니다 ^^ ==================================================================================== Input:전환비율(0.5),종가사용여부(0),파동선두께(2),수치표시(1); Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),TL11(0),TL12(0),TL13(0); Array:고[10,4](0),저[10,4](0); HH = IFF(종가사용여부 == 1,C,H); LL = IFF(종가사용여부 == 1,C,L); If Index == 0 Then { 고[1,1] = HH; 고[1,2] = 0; 고[1,3] = sDate; 고[1,4] = sTime; 저[1,1] = LL; 저[1,2] = 0; 저[1,3] = sDate; 저[1,4] = sTime; } If Index > 0 Then { hiBar = hiBar + 1; loBar = loBar + 1; } If HH[hiBar] < HH Then hiBar = 0; If LL[loBar] > LL Then loBar = 0; Condition1 = 저[1,1] * (1 + (전환비율/100)) < HH and hiBar == 0; Condition2 = 고[1,1] * (1 - (전환비율/100)) > LL and loBar == 0; 처리구분 = ""; 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 { If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_Delete(TL11); TL_Delete(TL12); TL_Delete(TL13); TL11 = TL_New(저[1,3],저[1,4],999999999,저[1,3],저[1,4],0); TL12 = TL_New(고[2,3],고[2,4],저[1,1],고[1,3],고[1,4],저[1,1]); TL13 = TL_New(고[2,3],고[2,4],저[1,1]* (1 + (전환비율/100)) ,고[1,3],고[1,4],저[1,1]* (1 + (전환비율/100)) ); TL_SetExtRight(TL12,true); TL_SetExtRight(TL13,true); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 1); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,red); } Else If 고[1,1] < HH[hiBar] Then { 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } If 처리구분 == "저점처리" Then { If 최종꼭지점 == "고점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_Delete(TL11); TL_Delete(TL12); TL_Delete(TL13); TL11 = TL_New(고[1,3],고[1,4],999999999,고[1,3],고[1,4],0); TL12 = TL_New(저[2,3],저[2,4],고[1,1],저[1,3],저[1,4],고[1,1]); TL13 = TL_New(저[2,3],저[2,4],고[1,1]* (1 - (전환비율/100)) ,저[1,3],저[1,4],고[1,1]* (1 - (전환비율/100)) ); TL_SetExtRight(TL12,true); TL_SetExtRight(TL13,true); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,blue); } Else If 저[1,1] > LL[loBar] Then { 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }