커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식 문의 드립니다.

(1) S=sum(1); R=RSI(기간); U7=Valuewhen(1, CrossUp(R, 기준), S); D5=Valuewhen(1, CrossDown(R, 기준1), S); 순번조건=U7 < D5; 조건= CountSince(순번조건 && !순번조건(1), CrossUp(R, 기준))==1; 조건 && !조건(1) (2) S=sum(1); R=RSI(기간); U7=Valuewhen(1, CrossUp(R, 기준), S); D5=Valuewhen(1, CrossDown(R,기준1), S); 순번조건=U7 < D5; 조건= CountSince(순번조건 && !순번조건(1), CrossUp(R, 기준))==1; A=Valuewhen(1,조건 && !조건(1), O); CrossUp(C, A) 기간9 기준 30 기준1 50 종목 검색식으로 부탁드립니다. 늘 고맙습니다.
프로필 이미지
redcon
2023-07-23
1079
글번호 170853
종목검색
답변완료

지표 질문입니다

이번주 주봉 월요일 시가를 표시한다 이번주 주봉 화요일 시가를 표시한다 지난주 주봉 월요일 시가를 표시한다 지난주 주봉 화요일 시가를 표시한다 감사합니다
프로필 이미지
para
2023-07-22
1056
글번호 170852
지표
답변완료

수식 부탁드립니다

안녕하세요 항상감사합니다 키움 수식을 예트 지표수식으로 변환부탁드립니다 m1=if(C>=C(1),V,0);//상승 m2=if(C>=C(1),0,V);//하락 m3=sum(m1,10)/sum(m2,10)*100; m3
프로필 이미지
seayun1
2023-07-21
1328
글번호 170851
지표
답변완료

차트에 신호 화살표 표시

차트에 화살표 신호를 하려고 하는데 어떻게 해야 하나요? 아직 미숙해서 뭐가 뭔지 모르겠네요 요일(D) 함수 : 함수명을반드시 요일(D) 로 하셔야 합니다. M = floor(D/100)%100; YY = if((M+1-1) == 1 or (M+1-1) == 2, floor(D/10000)-1,floor(D/10000)); YA= floor(YY/100); YB=YY%100; MM = if((M+1-1) == 1, 13, if((M+1-1) == 2, 14, M)); DD=D%100; A=(DD + floor(13*(MM+1)/5)+YB+ floor(YB/4)+floor(YA/4)+YA*5)%7; if(A==0, 6, A-1) 화살표 수식 wvf = ((highest(C, 22) - low) / highest(C, 22)) * 100; sDev = 2.0 * stdev(wvf, 20); midLine = avg(wvf, 20); upperBand = midLine + sDev; rangeHigh = (highest(wvf, 50)) * ph; os = (wvf >= upperBand) or (wvf >= rangeHigh); ap = (HIGH+LOW+CLOSE)/3; esa = eavg(ap, 기간1); d = eavg(abs(ap - esa), 기간1); ci = (ap - esa) / (0.015 * d); wt1 = eavg(ci,기간2); wt2 = avg(wt1,4); A=Lowest(L, 260, 1); A1=Lowest(L, 260, 1)*1.25; A2=요일(DATE); A3=Valuewhen(1,A2(1)>A2,O); MO=floor(date/100); MO1=MO%100; A4=VALUEWHEN(1, MO1!=MO1(1),O); wt1(1)<=-53 && (os(1) or os) && wvf(1)>wvf && (Crossup(wt1,wt2) or Crossup(wt1,-60) or Crossup(wt1,-53)) && C>O && A1>=C && A<=C && (A3<=C OR A4<=C) -지표조건설정 기간1 : 10 기간2 : 21 PH : 0.85 이걸 차트에 화살표를 표시하려고 합니다 도와주세요 ㅠㅠ
프로필 이미지
주식호랑이
2023-07-21
1453
글번호 170848
시스템
답변완료

함수요청

안녕하세요? 국내선물 1분봉으로 A전략, 5분봉으로 B전략, 10분봉으로 C전략을 하고 있는데 3개의 신호가 동일할 때 진입을 하는 전략을 구상중입니다. 가령 국내선물 1분봉으로 100ma 돌파 완성시 매수, 5분봉으로 60ma 돌파 완성시 매수, 10분봉으로 20m 돌파 완성시 매수하는데 3개 모두 매수신호 생성중이면 1분봉으로 매수를 진입하고 싶습니다. 스크립트를 수정해야 할까요? 참조함수를 쓰지 않고도 가능할까요? 샘플 부탁드립니다.
프로필 이미지
흰둥이아빠
2023-07-21
1322
글번호 170843
시스템
답변완료

82983 추가 문의합니다.

82938 답변 감사합니다! 몇 가지 확인하려고 추가 문의드립니다. 원글에도 답글을 적었는데 혹시 못보실까봐 똑같이 적습니다 ㅠ 1. 첫번째 if문의 "if SwingHigh(1,h,left,right,left+right+1) != -1 and c[right] > mav[right] Then"은 스윙하이 시작점이 20이평 보다 높은 경우를 상정한 것이 같은데, 만약 스윙하이 최고값이 20이평 보다 높은 경우로 변경하려면, "if SwingHigh(1,h,left,right,left+right+1)!= -1 and SwingHigh(1,h,left,right,left+right+1) > mav[right] Then"으로 변경하면 될까요? 2. sh[0] = h[right]; 부분은 스윙하이 완성시점에서 포착되기 때문에 5봉전 값 = 스윙하이 최고점으로 계산되는 것이죠? 3. 마지막 Else는 스윙하이 완성되지 않고 20이평보다 높을 때 실행 되는 의미인가요? 4. 만약 파워종목검색에서 검색하면 검색주기를 "주"로 두고 "left(5),right(5);"와 "mav = ma(c,20);"의 변수를 각각 "left(3),right(3);"와 "mav = ma(c,10);"으로 변경해서 수식을 적용하면, 주봉에서 주봉 10이평 보다 높고 좌우 3개 봉을 비교한 스윙하이 값으로 변경되는 것이 맞나요? 5. 만약 "SwingHigh(1,h,left,right,left+right+1)"에서 스윙하이 값을 h가 아닌 종가 C나 제가 임의로 지정한 변수로 넣어도 스윙하이 값이 정상 작동하는거죠? 예를 들어, A = LRL(C, 20); A1 = LRL(A,20); eq= A-A1; ZZ =A+eq; if SwingHigh(1,zz,left,right,left+right+1) != -1 and c[right] > mav[right] Then 으로 수정하면 고가 스윙하이가 아니라 제가 정한 zl 값으로 스윙하이 값을 구하는건가요? 6. 마지막에 일봉에서 "if Value2 > 0 and Index <= Value2+100 and C >= Value2*1.03 and C <= Value2*0.97 Then" 의 조건검색식을 아래와 같이 수정하면, 일봉 5봉 이내 조건 만족한 경우를 결과로 받는거죠? con1 = Value2 > 0 and Index <= Value2+100 and C >= Value2*1.03 and C <= Value2*0.97 if countif(con1, 5) > 0 then Find(1); 질문이 많아서 정말 죄송합니다. 답변 부탁드립니다! ===================================== > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 다시한번 수식 문의드립니다! > 안녕하세요 예스스탁입니다. 아래 내용 참고하시기 바랍니다. input : left(5),right(5); var : mav(0),cnt(0),count(0); var : sumv(0),sumi(0),avgv(0),sumsqrt(0),stdv(0),ii(0),upv(0),dnv(0); var : h1(0),h2(0),i1(0),i2(0); Array : sh[100](0),shi[100](0),hh[100](0),hi[100](0); mav = ma(c,20); if SwingHigh(1,h,left,right,left+right+1) != -1 and c[right] > mav[right] Then { //전체 발생 횟수 count = count+1; //스윙하이값과 인덱스 배열에 저장 (최근이 0으로 시작) For cnt = 99 downto 1 { sh[cnt] = sh[cnt-1]; shi[cnt] = shi[cnt-1]; } sh[0] = h[right]; shi[0] = Index[right]; #최소 저장된 값이 2개 이상 if count >= 2 Then { #평균 sumv = 0; sumi = 0; For cnt = 0 to min(count,100)-1 { if sh[cnt] > 0 then { sumv = sumv + sh[cnt]; sumi = sumi + 1; } } avgv = sumv/sumi; #표준편차 SumSqrt = 0; For cnt = 0 To sumi - 1 { SumSqrt = SumSqrt + (SH[cnt] - Avgv)^2; } Stdv = SquareRoot(SumSqrt/sumi); #표준편차 2배 상하단 upv = avgv+stdv*2; dnv = avgv-stdv*2; #기존 저장값 0으로 초기화 For cnt = 0 to 99 { hh[cnt] = 0; hi[cnt] = 0; } #상하단내 스윙하이만 다른배열에 저장 ii = 0; For cnt = 0 to count-1 { //상하단내 스윙하이값만 hh,hi배열에 순서대로 저장 if upv >= sh[cnt] and sh[cnt] >= dnv Then { hh[ii] = sh[cnt]; hi[ii] = shi[cnt]; ii = ii +1; } } if ii >= 2 Then { nthHighestArray(hh,ii,1,h1,var1); nthHighestArray(hh,ii,2,h2,Var2); i1 = hi[var1]; i2 = hi[var2]; value1 = h1 - ((h1 - h2)/(i1 - i2)); } } } Else { if value1 > 0 and CrossUp(C,value1) Then { Value2 = c; Value3 = Index; } if Value2 > 0 and Index <= Value2+100 and C >= Value2*1.03 and C <= Value2*0.97 Then Find(1); } 즐거운 하루되세요 > 민서홧팅 님이 쓴 글입니다. > 제목 : 다시한번 수식 문의드립니다! > 늘 친절하신 설명 감사합니다. 수식은 가능하지만, 조건검색 봉수 제한 때문에 어렵다고 말씀하셔서 스윙하이 값을 조정하여 다시 여쭤봅니다. 예스수식 초보자이다 보니,, 스윙하이 값을 배열로 넣는 부분을 어떻게 구성할지 감이 잡히지 않아 여쭤봅니다. 대략 스윙하이 결과를 for문이나 while로 반복해서 array로 넣고, if 조건을 걸면 될 것 같은데, 배열로 넣는 부분에 대한 설명이 어디에서도 찾지 못해서 여쭤봅니다... 조건수식 정의를 순서대로 말씀드리면, 1. 일봉 20일 이동평균보다 종가가 높은 경우의 스윙하이 값들을 배열로 변수에 넣은 다음, (이 때 스윙하이는 왼쪽 5봉, 오른쪽 5봉을 기준으로 합니다.) 2. 스윙하이 값들 중 표준편차 95% 범위 내의 값으로만 배열을 재정의한 후, 3. 재정의된 스윙하이 값의 최고가와 봉번호, 2번째 고가와 봉번호를 구하고, 4. 최고가 - ((최고가 - 2번째 고가)/(최고가 봉번호 - 2번째 고가 봉번호))와 같이 선형방정식을 변수로 할당하고, 5. 최근 100봉 이내 일일 종가가 선형방정식의 값을 1회 이상 상향돌파한 경우, 6. 금일 종가가 해당 종가의 시가에 3% 범위 내에 수렴하는 종목을 검색하는 검색식이 구현 가능한가요? 스윙하이 값을 배열 형태로 변수에 넣는 것에서 계속 에러가 나서 문의드립니다....
프로필 이미지
민서홧팅
2023-07-21
1423
글번호 170837
종목검색
답변완료

수식 문의드립니다.

LRL로 종목검색식을 만들었는데, 제대로 만든게 맞는지 확인 부탁드립니다. LRL을 2번하고 변동폭을 추가해서 조정LRL을 만든 다음, 조정 LRL의 스윙하이, 스윙로우를 구한 후 최고, 최저점의 수렴 구간을 검색하는 것입니다. input : 기간1(50),left(3),right(3); var : a(0),a1(0),eq(0),ZL(0), swhzl(0), swlzl(0), level(0); A = LRL(C,기간1); A1 = LRL(A,기간1); eq= A-A1; ZL =A+eq; if SwingHigh(1,zl,left,right,left+right+1)!= -1 Then swhzl = SwingHigh(1,zl,left,right,left+right+1); if SwingLow(1,zl,left,right,left+right+1)!= -1 Then swlzl = SwingLow(1,zl,left,right,left+right+1); level = (swhzl-swlzl)/c;&#8203; if level < 0.25 and (zl-c)/c < 0.03 Then Find(1); ====== 아참, 그리고 혹시 위 수식에서 swlzl[1]은 스윙로우 값의 직전 값으로 결과값이 반환되는 것이 맞나요?
프로필 이미지
민서홧팅
2023-07-21
1287
글번호 170836
종목검색
답변완료

특정 시간대의 시고저종

안녕하세요 날이 많이 더운데 항상 기운 넘치시길 바라겠습니다 특정 시간대의 시고저종 값을 어레이에 넣어서 사용하고 싶습니다. ex) OOO[1] 일 경우에는, 어제의 특정 시간대의 오픈 프라이스 값. [2]의 경우 그저께 ex) 장 시작후 30분 봉의 시고저종 등등 시작 및 종료시간은 제가 설정 할수 있도록 부탁드립니다! 항상 감사합니다
프로필 이미지
이만스닥
2023-07-21
1078
글번호 170835
지표
답변완료

문의드립니다

당일 이동평균 구하는 식 부탁드립니다 갭상승/갭하락시 이동평균이 실시간 반영을 못해서요 장시작후 당일용으로 부탁드립니다 감사합니다
프로필 이미지
러블리
2023-07-21
1093
글번호 170826
지표
답변완료

트레이딩 뷰 수식을 예스 수식으로 바꿔주세요.

//@version=5 indicator(title="Donchian Channels", shorttitle="DC", overlay=true, timeframe="", timeframe_gaps=true) length = input.int(20, minval=1) lower = ta.lowest(length) upper = ta.highest(length) basis = math.avg(upper, lower) plot(basis, "Basis", color=#FF6D00) u = plot(upper, "Upper", color=#2962FF) l = plot(lower, "Lower", color=#2962FF) fill(u, l, color=color.rgb(33, 150, 243, 95), title="Background") 돈치안 채널인데 예스에는 없네요. 예스로 좀 바꿔주세요.
프로필 이미지
신대륙발견
2023-07-21
1225
글번호 170824
지표