커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

83343 에러 문의

제가 머를 잘못핸걸까요?
프로필 이미지
하루삼프로
2023-08-17
822
글번호 171566
종목검색
답변완료

고가 투자심리도 공식을 별도로 구현하고 싶습니다.

Input : Period(10); var : Simri(0); Simri = Sum(if(h>h[1],10,0),Period); plot1(simri,"종가 투자심리도"); Simri = Sum(if(h>h[1],10,0),Period); 이 부분에서 오류가 있다고 합니다.
프로필 이미지
이웃집고양이
2023-08-17
773
글번호 171564
지표
답변완료

종목검색식 재문의

안녕하세요. 많은 개발요구에 친절히 응대해주셔서 감사합니다 ㅠㅠ 다름아니라 제가 이전글에서 요청글을 잘못써서인지, 제가 원하는 종목검색식이 나오지 않았더라구요. dayvolume이 검색시점의 volume이 아니라 그냥 분별 누적볼륨으로 나와서 문제인것 같습니다. 다시한번 제가 원하는 로직을 말씀드리면 아래와 같습니다. 로직 : 1. 15시에 해당종목의 누적볼륨이 10000으로 가정한다면 2. 9시1분, 9시2분, 9시3분 등 1분봉 각각의 볼륨을 10000(검색시점의 누적볼륨)으로 나눔 ex) 901이 100이라면 0.01 902이 200이라면 0.02 ... 1428이 150이라면 0.015 3. 각 분봉의 값중 max 추출 (위 예시에서는 0.02가 가장 큰값이 되겠죠?) 4. 위 로직을 통해, max값이 0.015 이하인 종목들 검색 입니다. 너무 감사드립니다!! ========================================================================== 안녕하세요 예스스탁입니다. var : ii(0),r(0),hr(0),cnt(0); if sDate != sDate[1] Then ii = 0; Else ii = ii+1; var1 = DayVolume; hr = 0; For cnt = 0 to ii { r = (v[cnt]-Var1)/Var1*100; if hr == 0 or (hr > 0 and r < hr) Then hr = r; } if hr < 0.01 Then Find(1); 즐거운 하루되세요 > 깅창 님이 쓴 글입니다. > 제목 : 1분봉 검색식 > 안녕하세요 1분봉 차트가 띄워져 있을때 현재 시점의 누적 거래량을 분모로 하고 1분봉 거래량을 분자로해서 비율을 중 가장 큰 값을 구하고 싶습니다. 예를들어 검색시점의 당일 누적 거래량이 10000이라고 할때, 901 거래량이 100이면 0.01 901 거래량이 200이면 0.02 ... 검색시점 거래량이 100이면 0.01 이런식으로 구한 값중 가장 큰 값을 구하는 겁니다. 이 가장 큰 값이 0.01 이하인 종목을 찾고싶어요. 수식부탁드립니다. 미리감사드립니다.
프로필 이미지
깅창
2023-08-17
1007
글번호 171563
종목검색
답변완료

부탁드립니다.

1. 당일 콜의 현재가가 풋 보조1, 2, 3, 4, 5중에 보조 3의 가격보다 위에서 장이 시작하여 1개라도 보조 풋의 최고가 이하로 하락하면 파란색으로, 그 다음 풋의 최고가 이상으로 상승하면 빨강색으로 기본차트에 구현해 주세요 2. 당일 콜의 현재가가 풋 보조1, 2, 3, 4, 5,중에 보조 3의 가격보다 아래에서 장이 시작하여 1개라도 보조 풋의 최고가 이상으로 상승하면 빨강색으로, 그 다음 풋의 최저가 이하로 하락하면 파란색으로 기본차트에 구현해 주세요 3. 당일 보조 풋의 최고가가 기본 콜의 최저가와 20틱 이내이면 그때부터 빨강색으로 기본차트에 구현해 주세요 항상 고맙습니다.
프로필 이미지
서태공
2023-08-17
954
글번호 171562
강조
답변완료

문의 드립니다!

무더위에 연일 수고가 많습니다! 1, 아래 수식1에서 세로선 발생조건을 (1)N틱전 발생으로 해주시고 (2)세로선 발생시는 동시에 알람신호도 울리도록 수정 부탁드립니다 2, 아래 수식2는 한개의 챠트에 여러개 수식을 각각 다르게 설정해서 사용하고있는데요 이 수식에서 세로선 발생과 동시에 발생된 세로선의 우측 적당한 공간에(가능한 우측 최상단이나 최하단) data번호를 나타내 보이도록 할수있을까요? 즉 아래 수식의 경우는 data11과 data18을 적용한것인데요 이 수식에서 세로선이 발생시 "data11, data18" 이렇게 표시가 되거나 혹은 단순히 "11, 18" 이렇게만 표시가 되어도 상관없습니다 한번 표시된 data번호는 이후에 다른세로선의 data번호가 발생되더라도 계속 존속되었으면합니다 감사합니다!!! -------------------------------------------------- (수식 1) var : tl1(0,data1),tl2(0,data1); var : V1(Data1(C),data1); if CrossDown(data1(L),data2(H)) or Crossup(data1(h),data2(L)) Then { v1 = data1(C); } plot1(v1); plot2(v1); if CrossDown(data1(L),data2(H)) or Crossup(data1(h),data2(L)) Then { tl1 = TL_New(sdate,stime,9999999,sdate,stime,0); TL_SetColor(tl1,magenta); TL_SetSize(tl1,4); } (수식 2) input : 굵기1(5),굵기2(5),굵기3(5),굵기4(5); var : cond11(false,data1),cond21(false,data1); var : cond12(false,data1),cond22(false,data1); var : TL1(0,Data1),TL2(0,Data1),TL3(0,Data1),TL4(0,Data1); plot1(data11(highD(0)),"data11고가"); plot2(data11(LowD(0)),"data11저가"); plot3(data18(highD(0)),"data18고가"); plot4(data18(LowD(0)),"data18저가"); cond11 = data18(highD(0)) >= data11(highD(0)-PriceScale*0); cond21 = data11(lowD(0)) <= data18(lowD(0)+PriceScale*0); if sTime >= 90300 and Cond11 == true and cond11[1] == false Then { PlaySound("C:예스트레이더(x64)dataSound작은교대선.wav"); TL1 = TL_New(sDate,stime,0,sDate,sTime,99999999); TL_SetColor(TL1,yellow); TL_SetSize(TL1,굵기1); } if sTime >= 90300 and Cond21 == true and cond21[1] == false then { PlaySound("C:예스트레이더(x64)dataSound작은교대선.wav"); TL2 = TL_New(sDate,stime,0,sDate,sTime,99999999); TL_SetColor(TL2,yellow); TL_SetSize(TL2,굵기2); } cond12 = data18(LowD(0)) <= data11(lowD(0)+PriceScale*0); cond22 = data11(highD(0)) >= data18(highD(0)-PriceScale*0); if sTime >= 90300 and Cond12 == true and cond12[1] == false Then { PlaySound("C:예스트레이더(x64)dataSound작은교대선.wav"); TL3 = TL_New(sDate,stime,0,sDate,sTime,99999999); TL_SetColor(TL3,yellow); TL_SetSize(TL3,굵기3); } if sTime >= 90300 and Cond22 == true and cond22[1] == false then { PlaySound("C:예스트레이더(x64)dataSound작은교대선.wav"); TL4 = TL_New(sDate,stime,0,sDate,sTime,99999999); TL_SetColor(TL4,yellow); TL_SetSize(TL4,굵기4); }
프로필 이미지
유로파54
2023-08-17
1112
글번호 171561
지표
답변완료

부탁드립니다

안녕하세요 무더운 날씨에 수고가 많으십니다. 예스랭귀지 수식으로 부탁드립니다. ///////////////////////////////////////////////////////////// 1. // Inputs sum_length = input(500, title='EVWMA Length') vwap_smoothing = input(400, title='VWAP Smoothing') // Calculate EVWMA vol_period = math.sum(volume, sum_length) evwma = 100.100 evwma := ((vol_period - volume) * nz(evwma[1], close) + volume * close) / vol_period vwap_smooth = ta.ema(ta.vwap, vwap_smoothing) long = ta.crossover(vwap_smooth, evwma) short = ta.crossunder(vwap_smooth, evwma) plot(evwma, color=color.new(color.blue, 100)) plot(vwap_smooth, color=color.new(color.red, 100)) strategy.entry('Long', strategy.long, when=long) strategy.entry('Short', strategy.short, when=short) *문의사항 1. blue가 red를 crossUp 할때 buy (색상: 빨간색) 2. red가 blue를 crossUp 할때도 buy (색상: 파란색) 1번 2번 을 or로 묶으주시면 고맙겠습니다. (* crossdown의 화살표 삭제부탁드립니다.) 3. sell (crossdown) 은 밑에 수식으로 부탁드리겠습니다. crossdown 외에 나머지도 삭제 부탁드립니다. // Inputs length = input(60) price = input(close) // RSI ma = ta.sma(price, length) plot(ma) if ta.crossover(close, ma) strategy.entry('MaLong', strategy.long, comment='MaLong') if ta.crossunder(close, ma) strategy.entry('MaShort', strategy.short, comment='MaLong') 1+2+3 합쳐서 가능 하시면 검색식, 시스템식, 지표식 3가지 모두 부탁 드리겠습니다. 꾸벅^^ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2. 지표식으로 변환부탁드립니다. // Momentum len = input.int(500, "Momentum Length", 500, group = "Dynamic RSI Momentum") src = input.source(close, "Source", group = "Dynamic RSI Momentum") min_rsi = input.int(500, "Min RSI", group = "Dynamic RSI Momentum") max_rsi = input.int(500, "Max RSI", group = "Dynamic RSI Momentum") upLvl = input.float(500, "OverBought", 0, 500, group = "Dynamic RSI Momentum") dnLvl = input.float(500, "OverSold", 0, 500, group = "Dynamic RSI Momentum") // +++++++++++++++++++++ // ++ CALCULATION ++ // +++++++++++++++++++++ // RMA Function rmaFun(src, len) => sma = ta.sma(src, len) alpha = 1/len sum = 0.0 sum := na(sum[1]) ? sma : alpha * src + (1 - alpha) * nz(sum[1]) // RSI Function rsiFun(src, len) => 100 - 100 / (1 + rmaFun(src - src[1] > 0 ? src - src[1] : 0, len) / rmaFun(src[1] - src > 0 ? src[1] - src : 0, len)) // Momentum momVal = src - src[len] // Calculation Price vs Momentum corr = ta.correlation(src, momVal, len) corr := corr > 1 or corr < -1 ? float(na) : corr rsiLen = 0 rsiLen := int(min_rsi + nz(math.round((1 - corr) * (max_rsi-min_rsi) / 2, 0), 0)) rsiMom = rsiFun(src, rsiLen) // +++++++++++++++++++++ // ++ STRATEGY ++ // +++++++++++++++++++++ long = ta.crossover(rsiMom, dnLvl) short = ta.crossunder(rsiMom, upLvl) // +++> Long <+++++ if long and not na(rsiMom) strategy.entry("Long", strategy.long) // +++> Short <+++++ if short and not na(rsiMom) strategy.entry("Short", strategy.short) // +++++++++++++++++++++ // ++ PLOT ++ // +++++++++++++++++++++ plot(rsiMom, "Dynamic RSI Momentum", rsiMom < dnLvl ? color.green : rsiMom > upLvl ? color.red : color.yellow) hline(50, "Mid Line", color.gray) upperLine = hline(upLvl, "Upper Line", color.gray) lowerLine = hline(dnLvl, "Lower Line", color.gray) fill(upperLine, lowerLine, color.new(color.purple, 90), "Background Fill") /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 수고하세요, 감사합니다.
프로필 이미지
양념통닭
2023-08-16
988
글번호 171560
시스템
답변완료

이동평균선 변형식에 대해 문의 드립니다.

Input : ma1(5), ma2(20),ma3(60),ma4(120),ma5(240); Plot1(ma(C,ma1), "ma1"); 이 존재할 때 Plot2((ma(C,ma1)*ma1-c[4]+c)/ma1, "ma1"); 의 수식을 구현하고 싶습니다. 여기서 c[4]는 ma1에서 가장 좌측에 있는 봉을 의미합니다. 이때 c[4]를 어떻게 표현해야 하는지를 알고 싶고요. plot1은 현재까지만 보여주면 되고, plot2는 현재가 아닌 추가적으로 우측에 보조지표를 그려넣어야 하는데 이때 어떻게 식을 짜야하는지요? plot1이 1번에 해당하는 수식이고요. plot2가 2번에 해당합니다. 트레이딩뷰에서는 OFFSET 함수를 썼는데 예스랭귀지에서는 어떤 수식으로 구현을 하는지요?
프로필 이미지
이웃집고양이
2023-08-16
1277
글번호 171559
지표
답변완료

타주기 지표식

아래 수식을 타주기챠트에 사용할수 있도록 변환 부탁드립니다 그리고 수식해설 부탁합니다 input : 기간(20),pt(1); var : A(0),t(0); A = WMA(C,기간); if A > A[1]*(1+pt/1000) Then t = 1; if A < A[1]*(1-pt/1000) Then t = -1; if A <= A[1]*(1+pt/1000) and A >= A[1]*(1-pt/1000) Then t = 0; Plot1(t,"지표",iff(T==1,red,blue)); plot2(0,"기준선"); ******************************************************** << 지표 해설 >> input : 기간(20),pt(5); var : A(0); A = WMA(C,기간); if A > A[1]*(1+pt/1000) Then value1 = A; if A < A[1]*(1-pt/1000) Then value2 = A; if A <= A[1]*(1+pt/1000) and A >= A[1]*(1-pt/1000) Then value3 = A; Plot1(A); Plot2(value1); Plot3(Value2); Plot4(Value3);
프로필 이미지
조민철
2023-08-16
1236
글번호 171558
지표
답변완료

이동평균선 변형식에 대해 추가로 문의드립니다.

말씀해주신대로 작업해서 1차적으로 과거 버전은 해결이 되었습니다. 이젠 현재버전과 과거 버전을 탭으로 구분하려고 합니다. Input : ma1(5), ma2(20),ma3(60),ma4(120),ma5(240); -> 이 부분은 과거 버전이고 if LastBarOnChart == 1 Then Plot1((ma(C,ma1)*ma1-C+O)/ma1, "ma1"); Else Plot1(ma(C,ma1), "ma1"); -> 이 부분이 현재 버전일 때 Plot1(ma(C,ma1), "ma1"); 이것을 탭으로 활용해서 사용자가 선택해서 뜨게 할 수 있는 수식은 어떻게 되는지요? 첨부파일 1 처럼 탭으로 처리하고 싶습니다.
프로필 이미지
이웃집고양이
2023-08-16
961
글번호 171557
지표

hakona 님에 의해서 삭제되었습니다.

프로필 이미지
hakona
2023-08-17
10
글번호 171556
지표