커뮤니티

문의드립니다.

프로필 이미지
구호리
2023-02-07 14:09:13
1357
글번호 166053
답변완료

첨부 이미지

차트내 분홍색 사각형 발생시 사각형고점을 돌파하는 수식 요청합니다. input:length(12); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),Text1(0),process(0),T(0); Array:HH[10,2](0),LL[10,2](0); process=0; If Highest(H,length)==H and lastHiVal <> H and Lowest(L,length)==L and lastLoVal<>L Then { If LL[1,1]>L Then process=-1; If HH[1,1]<H Then process=1; } Else If Highest(H,length)==H and lastHiVal <> H Then process=1; Else If Lowest(L,length)==L and lastLoVal <> L Then process=-1; If process==1 Then { T=1; lastHiVal=H; If HH[1,2]<LL[1,2] Then { For j=10 DownTo 2 { HH[j,1]=HH[j-1,1]; HH[j,2]=HH[j-1,2]; } } If HH[1,2]<LL[1,2] or HH[1,1]<H Then { HH[1,1]=H; HH[1,2]=Index; sBar=Index-LL[1,2]; eBar=0; If TL_GetBeginDate(TL1)==sDate[sBar]and TL_GetBeginTime(TL1)==sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } if LL[1,1]>0 Then { TL1=TL_New(sDate[sBar],sTime[sBar],LL[1,1],sDate[eBar],sTime[eBar],HH[1,1]); Text1=Text_New(sDate[eBar],sTime[eBar],HH[1,1],NewLine+NumToStr(HH[1,1],2)); Text_SetStyle(Text1,2,1); } Else { Text_Delete(text1); Text1=Text_New(sDate[eBar],sTime[eBar],HH[1,1],NewLine+NumToStr(HH[1,1],2)); Text_SetStyle(Text1,2,1); } Text_SetStyle(Text1,2,1); } } If process==-1 Then { T=-1; lastLoVal=L; If LL[1,2]<HH[1,2] Then { For j=10 DownTo 2 { LL[j,1]=LL[j-1,1]; LL[j,2]=LL[j-1,2]; } } If LL[1,2]<HH[1,2] or LL[1,1]> L Then { LL[1,1]=L; LL[1,2]=Index; sBar=Index-HH[1,2]; eBar=0; If TL_GetBeginDate(TL1)==sDate[sBar] and TL_GetBeginTime(TL1)==sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } if HH[1,1]> 0 Then { TL1=TL_New(sDate[sBar],sTime[sBar],HH[1,1],sDate[eBar],sTime[eBar],LL[1,1]); Text1=Text_New(sDate[eBar],sTime[eBar],LL[1,1],NumToStr(LL[1,1],2)); Text_SetStyle(Text1,2,0); } Else { Text_Delete(text1); Text1=Text_New(sDate[eBar],sTime[eBar],LL[1,1],NumToStr(LL[1,1],2)); Text_SetStyle(Text1,2,0); } } }
종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-02-07 16:16:55

안녕하세요 예스스탁입니다. input:length(12); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),Text1(0),process(0),T(0); Array:HH[10,2](0),LL[10,2](0); process=0; If Highest(H,length)==H and lastHiVal <> H and Lowest(L,length)==L and lastLoVal<>L Then { If LL[1,1]>L Then process=-1; If HH[1,1]<H Then process=1; } Else If Highest(H,length)==H and lastHiVal <> H Then process=1; Else If Lowest(L,length)==L and lastLoVal <> L Then process=-1; If process==1 Then { T=1; lastHiVal=H; If HH[1,2] < LL[1,2] Then { For j=10 DownTo 2 { HH[j,1]=HH[j-1,1]; HH[j,2]=HH[j-1,2]; } } If HH[1,2]<LL[1,2] or HH[1,1]<H Then { HH[1,1]=H; HH[1,2]=Index; sBar=Index-LL[1,2]; eBar=0; } } If process==-1 Then { T=-1; lastLoVal=L; If LL[1,2]<HH[1,2] Then { For j=10 DownTo 2 { LL[j,1]=LL[j-1,1]; LL[j,2]=LL[j-1,2]; } } If LL[1,2]<HH[1,2] or LL[1,1]> L Then { LL[1,1]=L; LL[1,2]=Index; sBar=Index-HH[1,2]; eBar=0; } } if (T == -1 and CrossUp(C,HH[1,1])) or (T == 1 and CrossUp(C,HH[2,1])) Then Find(1); 즐거운 하루되세요 > 구호리 님이 쓴 글입니다. > 제목 : 문의드립니다. > 차트내 분홍색 사각형 발생시 사각형고점을 돌파하는 수식 요청합니다. input:length(12); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),Text1(0),process(0),T(0); Array:HH[10,2](0),LL[10,2](0); process=0; If Highest(H,length)==H and lastHiVal <> H and Lowest(L,length)==L and lastLoVal<>L Then { If LL[1,1]>L Then process=-1; If HH[1,1]<H Then process=1; } Else If Highest(H,length)==H and lastHiVal <> H Then process=1; Else If Lowest(L,length)==L and lastLoVal <> L Then process=-1; If process==1 Then { T=1; lastHiVal=H; If HH[1,2]<LL[1,2] Then { For j=10 DownTo 2 { HH[j,1]=HH[j-1,1]; HH[j,2]=HH[j-1,2]; } } If HH[1,2]<LL[1,2] or HH[1,1]<H Then { HH[1,1]=H; HH[1,2]=Index; sBar=Index-LL[1,2]; eBar=0; If TL_GetBeginDate(TL1)==sDate[sBar]and TL_GetBeginTime(TL1)==sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } if LL[1,1]>0 Then { TL1=TL_New(sDate[sBar],sTime[sBar],LL[1,1],sDate[eBar],sTime[eBar],HH[1,1]); Text1=Text_New(sDate[eBar],sTime[eBar],HH[1,1],NewLine+NumToStr(HH[1,1],2)); Text_SetStyle(Text1,2,1); } Else { Text_Delete(text1); Text1=Text_New(sDate[eBar],sTime[eBar],HH[1,1],NewLine+NumToStr(HH[1,1],2)); Text_SetStyle(Text1,2,1); } Text_SetStyle(Text1,2,1); } } If process==-1 Then { T=-1; lastLoVal=L; If LL[1,2]<HH[1,2] Then { For j=10 DownTo 2 { LL[j,1]=LL[j-1,1]; LL[j,2]=LL[j-1,2]; } } If LL[1,2]<HH[1,2] or LL[1,1]> L Then { LL[1,1]=L; LL[1,2]=Index; sBar=Index-HH[1,2]; eBar=0; If TL_GetBeginDate(TL1)==sDate[sBar] and TL_GetBeginTime(TL1)==sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } if HH[1,1]> 0 Then { TL1=TL_New(sDate[sBar],sTime[sBar],HH[1,1],sDate[eBar],sTime[eBar],LL[1,1]); Text1=Text_New(sDate[eBar],sTime[eBar],LL[1,1],NumToStr(LL[1,1],2)); Text_SetStyle(Text1,2,0); } Else { Text_Delete(text1); Text1=Text_New(sDate[eBar],sTime[eBar],LL[1,1],NumToStr(LL[1,1],2)); Text_SetStyle(Text1,2,0); } } }