커뮤니티

전환비율 data2

프로필 이미지
고성
2023-12-17 18:15:25
1692
글번호 174917
답변완료
Input:전환비율(0.1); Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),TL1(0); Array:고[10,4](0),저[10,4](0); HH=H; LL=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_Self(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL1,1); TL_SetColor(TL1,RED); } Else If 고[1,1]<HH[hiBar] Then//1번고점보다높은고가출현 { 고[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]); } 최종꼭지점="고점"; Plot1(고[1,1]); NoPlot(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_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL1,1); 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]); } 최종꼭지점="저점"; Plot2(저[1,1]); NoPlot(1); } data2 지표로 쓸수있게 수정. data2가 상승전환하면 상승 box, 하락전환하면 상승 box 삭제하고 하락 box. 감사합니다.
지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2023-12-18 13:11:17

안녕하세요 예스스탁입니다. Input:전환비율(0.1); Var : j(0,Data2),jj(0,Data2),HH(0,Data2),LL(0,Data2),hiBar(0,Data2),loBar(0,Data2),최종꼭지점("",Data2),처리구분("",Data2); var : TL1(0,Data2),Box(0,Data2); var : cond1(False,Data2),cond2(False,Data2); Array:고[10,4](0,Data2),저[10,4](0,Data2); HH=data2(H); LL=data2(L); If data2(Index==0) Then { 고[1,1]=HH; 고[1,2]=0; 고[1,3]=data2(sDate); 고[1,4]=data2(sTime); 저[1,1]=LL; 저[1,2]=0; 저[1,3]=data2(sDate); 저[1,4]=data2(sTime); } If data2(Index>0) Then { hiBar=hiBar+1; loBar=loBar+1; } If HH[hiBar]<HH Then hiBar=0; If LL[loBar]>LL Then loBar=0; cond1=저[1,1]*(1+(전환비율/100))<HH and hiBar==0; cond2=고[1,1]*(1-(전환비율/100))>LL and loBar==0; 처리구분=""; If cond1 and cond2 Then//고점과저점조건동시만족 { If 최종꼭지점=="저점" Then { If 저[1,1]>LL Then 처리구분="저점처리"; Else 처리구분="고점처리"; } Else If 최종꼭지점=="고점" Then { If 고[1,1]<HH Then 처리구분="고점처리"; Else 처리구분="저점처리"; } } Else If cond1 Then 처리구분="고점처리"; Else If cond2 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]=data2(Index)-hiBar; 고[1,3]=data2(sDate[hiBar]); 고[1,4]=data2(sTime[hiBar]); hiBar=-1; loBar=-1; TL1=TL_New_Self(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL1,1); TL_SetColor(TL1,RED); Box_Delete(Box); box=box_New_self(저[1,3],저[1,4],저[1,1],Data2(NextBarSdate),Data2(NextBarStime),고[1,1]); box_SetColor(Box,RED); Box_SetFill(Box,true); } Else If 고[1,1]<HH[hiBar] Then//1번고점보다높은고가출현 { 고[1,1]=HH[hiBar]; 고[1,2]=data2(Index)-hiBar; 고[1,3]=data2(sDate[hiBar]); 고[1,4]=data2(sTime[hiBar]); hiBar=-1; loBar=-1; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); Box_SetEnd(Box,고[1,3],고[1,4],고[1,1]); } 최종꼭지점="고점"; Plot1(고[1,1]); NoPlot(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]=data2(Index)-loBar; 저[1,3]=data2(sDate[loBar]); 저[1,4]=data2(sTime[loBar]); hiBar=-1; loBar=-1; TL1=TL_New_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL1,1); TL_SetColor(TL1,BLUE); Box_Delete(Box); box=box_New_self(저[1,3],저[1,4],저[1,1],Data2(NextBarSdate),Data2(NextBarStime),고[1,1]); box_SetColor(Box,Blue); Box_SetFill(Box,true); } Else If 저[1,1]>LL[loBar] Then { 저[1,1]=LL[loBar]; 저[1,2]=data2(Index)-loBar; 저[1,3]=data2(sDate[loBar]); 저[1,4]=data2(sTime[loBar]); hiBar=-1; loBar=-1; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); Box_SetEnd(Box,저[1,3],저[1,4],저[1,1]); } 최종꼭지점="저점"; Plot2(저[1,1]); NoPlot(1); } 즐거운 하루되세요 > 고성 님이 쓴 글입니다. > 제목 : 전환비율 data2 > Input:전환비율(0.1); Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),TL1(0); Array:고[10,4](0),저[10,4](0); HH=H; LL=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_Self(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL1,1); TL_SetColor(TL1,RED); } Else If 고[1,1]<HH[hiBar] Then//1번고점보다높은고가출현 { 고[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]); } 최종꼭지점="고점"; Plot1(고[1,1]); NoPlot(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_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL1,1); 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]); } 최종꼭지점="저점"; Plot2(저[1,1]); NoPlot(1); } data2 지표로 쓸수있게 수정. data2가 상승전환하면 상승 box, 하락전환하면 상승 box 삭제하고 하락 box. 감사합니다.
프로필 이미지

고성

2023-12-18 14:29:00

고성 님에 의해 삭제된 답변입니다.
프로필 이미지

고성

2023-12-18 14:43:37

> 예스스탁 님이 쓴 글입니다. > 제목 : Re : 전환비율 data2 > 안녕하세요 예스스탁입니다. Input:전환비율(0.1); Var : j(0,Data2),jj(0,Data2),HH(0,Data2),LL(0,Data2),hiBar(0,Data2),loBar(0,Data2),최종꼭지점("",Data2),처리구분("",Data2); var : TL1(0,Data2),Box(0,Data2); var : cond1(False,Data2),cond2(False,Data2); Array:고[10,4](0,Data2),저[10,4](0,Data2); HH=data2(H); LL=data2(L); If data2(Index==0) Then { 고[1,1]=HH; 고[1,2]=0; 고[1,3]=data2(sDate); 고[1,4]=data2(sTime); 저[1,1]=LL; 저[1,2]=0; 저[1,3]=data2(sDate); 저[1,4]=data2(sTime); } If data2(Index>0) Then { hiBar=hiBar+1; loBar=loBar+1; } If HH[hiBar]<HH Then hiBar=0; If LL[loBar]>LL Then loBar=0; cond1=저[1,1]*(1+(전환비율/100))<HH and hiBar==0; cond2=고[1,1]*(1-(전환비율/100))>LL and loBar==0; 처리구분=""; If cond1 and cond2 Then//고점과저점조건동시만족 { If 최종꼭지점=="저점" Then { If 저[1,1]>LL Then 처리구분="저점처리"; Else 처리구분="고점처리"; } Else If 최종꼭지점=="고점" Then { If 고[1,1]<HH Then 처리구분="고점처리"; Else 처리구분="저점처리"; } } Else If cond1 Then 처리구분="고점처리"; Else If cond2 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]=data2(Index)-hiBar; 고[1,3]=data2(sDate[hiBar]); 고[1,4]=data2(sTime[hiBar]); hiBar=-1; loBar=-1; TL1=TL_New_Self(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL1,1); TL_SetColor(TL1,RED); Box_Delete(Box); box=box_New_self(저[1,3],저[1,4],저[1,1],Data2(NextBarSdate),Data2(NextBarStime),고[1,1]); box_SetColor(Box,RED); Box_SetFill(Box,true); } Else If 고[1,1]<HH[hiBar] Then//1번고점보다높은고가출현 { 고[1,1]=HH[hiBar]; 고[1,2]=data2(Index)-hiBar; 고[1,3]=data2(sDate[hiBar]); 고[1,4]=data2(sTime[hiBar]); hiBar=-1; loBar=-1; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); Box_SetEnd(Box,고[1,3],고[1,4],고[1,1]); } 최종꼭지점="고점"; Plot1(고[1,1]); NoPlot(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]=data2(Index)-loBar; 저[1,3]=data2(sDate[loBar]); 저[1,4]=data2(sTime[loBar]); hiBar=-1; loBar=-1; TL1=TL_New_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL1,1); TL_SetColor(TL1,BLUE); Box_Delete(Box); box=box_New_self(저[1,3],저[1,4],저[1,1],Data2(NextBarSdate),Data2(NextBarStime),고[1,1]); box_SetColor(Box,Blue); Box_SetFill(Box,true); } Else If 저[1,1]>LL[loBar] Then { 저[1,1]=LL[loBar]; 저[1,2]=data2(Index)-loBar; 저[1,3]=data2(sDate[loBar]); 저[1,4]=data2(sTime[loBar]); hiBar=-1; loBar=-1; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); Box_SetEnd(Box,저[1,3],저[1,4],저[1,1]); } 최종꼭지점="저점"; Plot2(저[1,1]); NoPlot(1); } 즐거운 하루되세요 > 고성 님이 쓴 글입니다. > 제목 : 전환비율 data2 > Input:전환비율(0.1); Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),TL1(0); Array:고[10,4](0),저[10,4](0); HH=H; LL=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_Self(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL1,1); TL_SetColor(TL1,RED); } Else If 고[1,1]<HH[hiBar] Then//1번고점보다높은고가출현 { 고[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]); } 최종꼭지점="고점"; Plot1(고[1,1]); NoPlot(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_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL1,1); 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]); } 최종꼭지점="저점"; Plot2(저[1,1]); NoPlot(1); } data2 지표로 쓸수있게 수정. data2가 상승전환하면 상승 box, 하락전환하면 상승 box 삭제하고 하락 box. 감사합니다. 재문의 박스가 작고 위치에 오류도 납니다. 고 저를 바꿔보니 약간은 수정이 되나 불완전합니다. 추세선이 한군데에 여러개가 생성되는데 이때 박스가 안보이기도 합니다.