커뮤니티

지표식을 검색식으로 변환 부탁 드립니다.ㅜㅡㅠ

프로필 이미지
쾌감
2024-03-14 05:11:29
960
글번호 177463
답변완료
안녕하세요. 아래와 같은 지표식을 작성 하였는데요. 이것을 "종목검색식"으로 바꾸는 것에 자꾸 오차가 생겨서 첨언을 받고자 질문을 드립니다! ㅜㅠ ※↓ 1분봉 지표 입니다! //--------↓지표식 내용 첨부↓--------// var : 카운트day(0); if Bdate != Bdate[1] Then { 카운트day = 1; } Else { 카운트day = 카운트day+1; } Var: 구간최고가(0),구간최저가(0); 구간최고가 = Highest(H,카운트day); 구간최저가 = Lowest(L,카운트day); var : 단일호가(0); 단일호가 = PriceScale * 1; var : HL사이호가갯수A(0); HL사이호가갯수A = (구간최고가 - 구간최저가)/ 단일호가; var : 묶음호가갯수(0); if HL사이호가갯수A <= 10 Then {묶음호가갯수 = 1;} if HL사이호가갯수A > 10 Then {묶음호가갯수 = 4;} if HL사이호가갯수A >= 20 Then {묶음호가갯수 = 6;} ## Array:매물대[30,4](0); Var : 총거래량(0); 총거래량 = AccumN(V,카운트day); Var : 가격단위(0); 가격단위 = Ceiling( HL사이호가갯수A / 묶음호가갯수 ) * PriceScale * 1; 매물대[1,1] = 구간최저가; 매물대[1,2] = 매물대[1,1] + 가격단위; 매물대[1,3] = 0; 매물대[1,4] = 0; Var : j(0); For j = 2 To 묶음호가갯수 { 매물대[j,1] = 매물대[j-1,1] + 가격단위; 매물대[j,2] = 매물대[j-1,2] + 가격단위; 매물대[j,3] = 0; } Var : k(0); For k = 0 To 카운트day -1 { For j = 1 To 묶음호가갯수 { If 매물대[j,1] <= C[k] and C[k] < 매물대[j,2] Then { 매물대[j,3] = 매물대[j,3] + V[k]; 매물대[j,4] = 매물대[j,3] / 총거래량 * 100; j = 묶음호가갯수; } } } Var : q(0); For j = 1 To 묶음호가갯수 - 1 { For k = j + 1 To 묶음호가갯수 { If 매물대[j,3] < 매물대[k,3] Then { For q = 1 To 4 // 열번호 1~4 { var18 = 매물대[j,q]; // 데이터를 맞바꾸기 매물대[j,q] = 매물대[k,q]; 매물대[k,q] = Var18; } } } } ## var : 매물유지기간(0); if (매물대[1,1][1] != 매물대[1,1][0]) or (카운트day < 15) Then { 매물유지기간 = 0; } if 매물대[1,1][1] == 매물대[1,1][0] Then { 매물유지기간 = 매물유지기간 + 1; } var : 분봉매물보정_상(0) , 분봉매물보정_하(0); if 15 < 카운트day and 3 <= 매물유지기간 Then { 분봉매물보정_상 = 매물대[1,2][0]; 분봉매물보정_하 = 매물대[1,1][0]; } if 3 > 매물유지기간 Then { 분봉매물보정_상 = 분봉매물보정_상[1]; 분봉매물보정_하 = 분봉매물보정_하[1]; } if Bdate != Bdate[1] Then { 분봉매물보정_상 = 0; 분봉매물보정_하 = 0; } ## var : 매물중심(0); 매물중심 = (분봉매물보정_상+분봉매물보정_하)/2 ; var : 일간매물중심(0); var : 일간매물_상(0) , 일간매물_하(0); if (분봉매물보정_상[1] < 매물중심[0] and 분봉매물보정_하[1] < 매물중심[0]) or (분봉매물보정_상[1] > 매물중심[0] and 분봉매물보정_하[1] > 매물중심[0]) then { 일간매물중심 = 매물중심[0]; 일간매물_상 = 분봉매물보정_상[0]; 일간매물_하 = 분봉매물보정_하[0]; } if (분봉매물보정_상[1] > 매물중심[0] and 분봉매물보정_하[1] < 매물중심[0]) then { 일간매물중심 = 일간매물중심[1]; 일간매물_상 = 일간매물_상[1]; 일간매물_하 = 일간매물_하[1]; } if 분봉매물보정_상 != 0 and 분봉매물보정_하 != 0 and 일간매물중심 != 0 Then { Plot1( 일간매물중심 , "일간매물중심" , Blue , Def , 1 ); Plot2( 일간매물_상 , "일간매물_상" , LightRed , Def , 0 ); Plot3( 일간매물_하 , "일간매물_하" , LightRed , Def , 0 ); } Else {NoPlot(1); NoPlot(2); NoPlot(3); } //--------↑지표식 내용 첨부↑--------// 위 내용을 바탕으로 1분봉 상에서 Plot1에 해당하는 [ "일간매물중심" 보다 "Ema(c,5)"가 크다/작다 ]로 종목검색식을 작성하고자 하는데요. 조회봉수 500으로 해서 find해 봤지만 검색 결과가 엉뚱하게 나와서요..ㅜ 위 지표식에서 어떤 부분들을 고처야 검색이 정확하게 되는지 모르겠어서....ㅠ 글을 남깁니다 ㅠㅠㅠㅠㅠㅠ
종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-03-14 11:06:11

안녕하세요 예스스탁입니다. var : Emav(0); Emav = Ema(C,5); if 분봉매물보정_상 != 0 and 분봉매물보정_하 != 0 and 일간매물중심 != 0 Then { if emav > 일간매물중심 Then Find(1); } 하단에 위와 같이 수정해서 검색해보니 모두 조건에 충족되는 종목만 검색이 됩니다. 아래 식으로 테스트 해보시기 바랍니다. 검색에 필요한 최소기간은 동일하게 500봉 지정하고 보시면 되고 차트도 500봉 조회해서 지표적용해 보시면 됩니다. var : 카운트day(0); if Bdate != Bdate[1] Then { 카운트day = 1; } Else { 카운트day = 카운트day+1; } Var: 구간최고가(0),구간최저가(0); 구간최고가 = Highest(H,카운트day); 구간최저가 = Lowest(L,카운트day); var : 단일호가(0); 단일호가 = PriceScale * 1; var : HL사이호가갯수A(0); HL사이호가갯수A = (구간최고가 - 구간최저가)/ 단일호가; var : 묶음호가갯수(0); if HL사이호가갯수A <= 10 Then {묶음호가갯수 = 1;} if HL사이호가갯수A > 10 Then {묶음호가갯수 = 4;} if HL사이호가갯수A >= 20 Then {묶음호가갯수 = 6;} ## Array:매물대[30,4](0); Var : 총거래량(0); 총거래량 = AccumN(V,카운트day); Var : 가격단위(0); 가격단위 = Ceiling( HL사이호가갯수A / 묶음호가갯수 ) * PriceScale * 1; 매물대[1,1] = 구간최저가; 매물대[1,2] = 매물대[1,1] + 가격단위; 매물대[1,3] = 0; 매물대[1,4] = 0; Var : j(0); For j = 2 To 묶음호가갯수 { 매물대[j,1] = 매물대[j-1,1] + 가격단위; 매물대[j,2] = 매물대[j-1,2] + 가격단위; 매물대[j,3] = 0; } Var : k(0); For k = 0 To 카운트day -1 { For j = 1 To 묶음호가갯수 { If 매물대[j,1] <= C[k] and C[k] < 매물대[j,2] Then { 매물대[j,3] = 매물대[j,3] + V[k]; 매물대[j,4] = 매물대[j,3] / 총거래량 * 100; j = 묶음호가갯수; } } } Var : q(0); For j = 1 To 묶음호가갯수 - 1 { For k = j + 1 To 묶음호가갯수 { If 매물대[j,3] < 매물대[k,3] Then { For q = 1 To 4 // 열번호 1~4 { var18 = 매물대[j,q]; // 데이터를 맞바꾸기 매물대[j,q] = 매물대[k,q]; 매물대[k,q] = Var18; } } } } ## var : 매물유지기간(0); if (매물대[1,1][1] != 매물대[1,1][0]) or (카운트day < 15) Then { 매물유지기간 = 0; } if 매물대[1,1][1] == 매물대[1,1][0] Then { 매물유지기간 = 매물유지기간 + 1; } var : 분봉매물보정_상(0) , 분봉매물보정_하(0); if 15 < 카운트day and 3 <= 매물유지기간 Then { 분봉매물보정_상 = 매물대[1,2][0]; 분봉매물보정_하 = 매물대[1,1][0]; } if 3 > 매물유지기간 Then { 분봉매물보정_상 = 분봉매물보정_상[1]; 분봉매물보정_하 = 분봉매물보정_하[1]; } if Bdate != Bdate[1] Then { 분봉매물보정_상 = 0; 분봉매물보정_하 = 0; } ## var : 매물중심(0); 매물중심 = (분봉매물보정_상+분봉매물보정_하)/2 ; var : 일간매물중심(0); var : 일간매물_상(0) , 일간매물_하(0); if (분봉매물보정_상[1] < 매물중심[0] and 분봉매물보정_하[1] < 매물중심[0]) or (분봉매물보정_상[1] > 매물중심[0] and 분봉매물보정_하[1] > 매물중심[0]) then { 일간매물중심 = 매물중심[0]; 일간매물_상 = 분봉매물보정_상[0]; 일간매물_하 = 분봉매물보정_하[0]; } if (분봉매물보정_상[1] > 매물중심[0] and 분봉매물보정_하[1] < 매물중심[0]) then { 일간매물중심 = 일간매물중심[1]; 일간매물_상 = 일간매물_상[1]; 일간매물_하 = 일간매물_하[1]; } var : Emav(0); Emav = Ema(C,5); if 분봉매물보정_상 != 0 and 분봉매물보정_하 != 0 and 일간매물중심 != 0 Then { if emav > 일간매물중심 Then Find(1); } 즐거운 하루되세요 > 쾌감 님이 쓴 글입니다. > 제목 : 지표식을 검색식으로 변환 부탁 드립니다.ㅜㅡㅠ > 안녕하세요. 아래와 같은 지표식을 작성 하였는데요. 이것을 "종목검색식"으로 바꾸는 것에 자꾸 오차가 생겨서 첨언을 받고자 질문을 드립니다! ㅜㅠ ※↓ 1분봉 지표 입니다! //--------↓지표식 내용 첨부↓--------// var : 카운트day(0); if Bdate != Bdate[1] Then { 카운트day = 1; } Else { 카운트day = 카운트day+1; } Var: 구간최고가(0),구간최저가(0); 구간최고가 = Highest(H,카운트day); 구간최저가 = Lowest(L,카운트day); var : 단일호가(0); 단일호가 = PriceScale * 1; var : HL사이호가갯수A(0); HL사이호가갯수A = (구간최고가 - 구간최저가)/ 단일호가; var : 묶음호가갯수(0); if HL사이호가갯수A <= 10 Then {묶음호가갯수 = 1;} if HL사이호가갯수A > 10 Then {묶음호가갯수 = 4;} if HL사이호가갯수A >= 20 Then {묶음호가갯수 = 6;} ## Array:매물대[30,4](0); Var : 총거래량(0); 총거래량 = AccumN(V,카운트day); Var : 가격단위(0); 가격단위 = Ceiling( HL사이호가갯수A / 묶음호가갯수 ) * PriceScale * 1; 매물대[1,1] = 구간최저가; 매물대[1,2] = 매물대[1,1] + 가격단위; 매물대[1,3] = 0; 매물대[1,4] = 0; Var : j(0); For j = 2 To 묶음호가갯수 { 매물대[j,1] = 매물대[j-1,1] + 가격단위; 매물대[j,2] = 매물대[j-1,2] + 가격단위; 매물대[j,3] = 0; } Var : k(0); For k = 0 To 카운트day -1 { For j = 1 To 묶음호가갯수 { If 매물대[j,1] <= C[k] and C[k] < 매물대[j,2] Then { 매물대[j,3] = 매물대[j,3] + V[k]; 매물대[j,4] = 매물대[j,3] / 총거래량 * 100; j = 묶음호가갯수; } } } Var : q(0); For j = 1 To 묶음호가갯수 - 1 { For k = j + 1 To 묶음호가갯수 { If 매물대[j,3] < 매물대[k,3] Then { For q = 1 To 4 // 열번호 1~4 { var18 = 매물대[j,q]; // 데이터를 맞바꾸기 매물대[j,q] = 매물대[k,q]; 매물대[k,q] = Var18; } } } } ## var : 매물유지기간(0); if (매물대[1,1][1] != 매물대[1,1][0]) or (카운트day < 15) Then { 매물유지기간 = 0; } if 매물대[1,1][1] == 매물대[1,1][0] Then { 매물유지기간 = 매물유지기간 + 1; } var : 분봉매물보정_상(0) , 분봉매물보정_하(0); if 15 < 카운트day and 3 <= 매물유지기간 Then { 분봉매물보정_상 = 매물대[1,2][0]; 분봉매물보정_하 = 매물대[1,1][0]; } if 3 > 매물유지기간 Then { 분봉매물보정_상 = 분봉매물보정_상[1]; 분봉매물보정_하 = 분봉매물보정_하[1]; } if Bdate != Bdate[1] Then { 분봉매물보정_상 = 0; 분봉매물보정_하 = 0; } ## var : 매물중심(0); 매물중심 = (분봉매물보정_상+분봉매물보정_하)/2 ; var : 일간매물중심(0); var : 일간매물_상(0) , 일간매물_하(0); if (분봉매물보정_상[1] < 매물중심[0] and 분봉매물보정_하[1] < 매물중심[0]) or (분봉매물보정_상[1] > 매물중심[0] and 분봉매물보정_하[1] > 매물중심[0]) then { 일간매물중심 = 매물중심[0]; 일간매물_상 = 분봉매물보정_상[0]; 일간매물_하 = 분봉매물보정_하[0]; } if (분봉매물보정_상[1] > 매물중심[0] and 분봉매물보정_하[1] < 매물중심[0]) then { 일간매물중심 = 일간매물중심[1]; 일간매물_상 = 일간매물_상[1]; 일간매물_하 = 일간매물_하[1]; } if 분봉매물보정_상 != 0 and 분봉매물보정_하 != 0 and 일간매물중심 != 0 Then { Plot1( 일간매물중심 , "일간매물중심" , Blue , Def , 1 ); Plot2( 일간매물_상 , "일간매물_상" , LightRed , Def , 0 ); Plot3( 일간매물_하 , "일간매물_하" , LightRed , Def , 0 ); } Else {NoPlot(1); NoPlot(2); NoPlot(3); } //--------↑지표식 내용 첨부↑--------// 위 내용을 바탕으로 1분봉 상에서 Plot1에 해당하는 [ "일간매물중심" 보다 "Ema(c,5)"가 크다/작다 ]로 종목검색식을 작성하고자 하는데요. 조회봉수 500으로 해서 find해 봤지만 검색 결과가 엉뚱하게 나와서요..ㅜ 위 지표식에서 어떤 부분들을 고처야 검색이 정확하게 되는지 모르겠어서....ㅠ 글을 남깁니다 ㅠㅠㅠㅠㅠㅠ