커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
3454
글번호 230811
지표
답변완료

수식문의 드립니다.

1. 매수 조건 - 120이평선 아래서 5일 이평선이 20일 이평선을 상향 돌파시 매수 매도 조건 - 120이평선 위에서 5일 이평선이 20일 이평선을 하향 돌파시 매도 2. 매수 조건 - 5일 이평선이 60일 이평선을 상향 돌파시 매수 (단 1번 매도조건 다음에만 발동) 매도 조건 - 5일 이평선이 60일 이평선을 하향 돌파시 매도 (단 1번 매수조건 다음에만 발동) 3. 매수 조건 - 20일 이평선이 120일 이평선을 상향 돌파시 매수 (단 2번 매도조건 다음에만 발동) 매도 조건 - 20일 이평선이 120이 이평선을 하향 돌파시 매도 (단 2번 매수조건 다음에만 발동) 1번 조건 매수 후 다음 1번 매도 조건 전에 2번 조건 만족시 발동, 3번조건 만족시 발동 이런식으로 프로그램을 만들고 싶은데.. 도와주세요..
프로필 이미지
우니야
2020-03-09
242
글번호 136692
시스템
답변완료

수식문의

키움수식을 예스수식으로 변경 부탁드립니다. MACD 0선 상향돌파 CrossUp(MACD(shortPeriod,longPeriod),0) CrossDown(MACD(shortPeriod,longPeriod),0) MACD-sig와 골든크로스 CrossUp(MACD(shortPeriod,longPeriod),eavg(MACD(shortPeriod,longPeriod),sigPeriod)) CrossDown(MACD(shortPeriod,longPeriod),eavg(MACD(shortPeriod,longPeriod),sigPeriod))
프로필 이미지
히라얀
2020-03-09
305
글번호 136691
시스템
답변완료

문의드립니다.

// Inputs mac = ma(close,2) mal = ma(low,4) mah = ma(high,5) // Calculations short = (mac - mah)>= (mal-mac) long = (mac - mah) neut = (mal- mac) > ( mac - mah) // plot indicator plot(mac-mah, color = red,linewidth = 2) plot(mal-mac, color = red, linewidth = 2) barcolor(long ? red :red) barcolor(neut ? yellow :na) 수식 변환과 이 수식에 기준선 1.5 추가 부탁드릴 수 있을까요 감사합니다.
프로필 이미지
물고기
2020-03-09
316
글번호 136690
지표
답변완료

66312 문의드립니다

안녕하세요? 만들어주신수식 2가지중 1번수식은 소리출력이 잘되는데 2번수식이 소리출력이되지않는데 검토한번만 부탁드립니다 감사합니다
프로필 이미지
새벽에
2020-03-09
336
글번호 136689
지표
답변완료

수식변형 부탁드립니다

예스트레어더에서 사용할수 있게 수식 변형좀 해주시면 감사하겠습니다. // // @author LonesomeTheBlue // //@version=3 study("Higher High Lower Low Strategy", overlay =true) lb = input(2, title="Left Bars", minval = 1) rb = input(2, title="Right Bars", minval = 1) showsupres = input(true, title="Show Support/Resistance") changebarcol = input(true, title="Change Bar Color") mb = lb + rb + 1 ph = iff(not na(high[mb]), iff(highestbars(high, mb) == -lb, high[lb], na), na) // Pivot High pl = iff(not na(low[mb]), iff(lowestbars(low, mb) == -lb, low[lb], na), na) // Pivot Low hl = na hl := iff(ph, 1, iff(pl, -1, na)) // Trend direction zz = na zz := iff(ph, ph, iff(pl, pl, na)) // similar to zigzag but may have multiple highs/lows zz :=iff(pl and hl == -1 and valuewhen(hl, hl, 1) == -1 and pl > valuewhen(zz, zz, 1), na, zz) zz :=iff(ph and hl == 1 and valuewhen(hl, hl, 1) == 1 and ph < valuewhen(zz, zz, 1), na, zz) hl := iff(hl==-1 and valuewhen(hl, hl, 1)==1 and zz > valuewhen(zz, zz, 1), na, hl) hl := iff(hl==1 and valuewhen(hl, hl, 1)==-1 and zz < valuewhen(zz, zz, 1), na, hl) zz := iff(na(hl), na, zz) findprevious()=> // finds previous three points (b, c, d, e) ehl = iff(hl==1, -1, 1) loc1 = 0.0, loc2 = 0.0, loc3 = 0.0, loc4 = 0.0 xx = 0 for x=1 to 1000 if hl[x]==ehl and not na(zz[x]) loc1 := zz[x] xx := x + 1 break ehl := hl for x=xx to 1000 if hl[x]==ehl and not na(zz[x]) loc2 := zz[x] xx := x + 1 break ehl := iff(hl==1, -1, 1) for x=xx to 1000 if hl[x]==ehl and not na(zz[x]) loc3 := zz[x] xx := x + 1 break ehl := hl for x=xx to 1000 if hl[x]==ehl and not na(zz[x]) loc4 := zz[x] break [loc1, loc2, loc3, loc4] a = na, b = na, c = na, d = na, e = na if not na(hl) [loc1, loc2, loc3, loc4] = findprevious() a := zz b := loc1 c := loc2 d := loc3 e := loc4 _hh = zz and (a > b and a > c and c > b and c > d) _ll = zz and (a < b and a < c and c < b and c < d) _hl = zz and ((a >= c and (b > c and b > d and d > c and d > e)) or (a < b and a > c and b < d)) _lh = zz and ((a <= c and (b < c and b < d and d < c and d < e)) or (a > b and a < c and b > d)) plotshape(_hl, text="HL", title="Higher Low", style=shape.labelup, color=lime, textcolor=black, location=location.belowbar, transp=0, offset = -lb) plotshape(_hh, text="HH", title="Higher High", style=shape.labeldown, color=lime, textcolor=black, location=location.abovebar, transp=0, offset = -lb) plotshape(_ll, text="LL", title="Lower Low", style=shape.labelup, color=red, textcolor=white, location=location.belowbar, transp=0, offset = -lb) plotshape(_lh, text="LH", title="Lower High", style=shape.labeldown, color=red, textcolor=white, location=location.abovebar, transp=0, offset = -lb) res = na, sup = na res := iff(_lh, zz, res[1]) sup := iff(_hl, zz, sup[1]) trend = na trend := iff(close > res, 1, iff(close < sup, -1, nz(trend[1]))) res := iff((trend == 1 and _hh) or (trend == -1 and _lh), zz, res) sup := iff((trend == 1 and _hl) or (trend == -1 and _ll), zz, sup) plot(showsupres ? res : na, title="Resistance", color= na(res) ? na : red, linewidth=2, style=circles, offset = -lb) plot(showsupres ? sup : na, title="Support", color= na(sup) ? na : blue, linewidth=2, style=circles, offset = -lb) barcolor(color = iff(changebarcol, iff(trend == 1, blue, black), na))
프로필 이미지
무한대7
2020-03-09
470
글번호 136688
지표
답변완료

부탁좀 드리겠습니다.

1. 아래수식 변환 부탁드립니다. 강세 PVI(c) >= eavg(PVI(c),period) 약세 PVI(c) < eavg(PVI(c),period) period : 10 2. 아래수식 변환부탁드립니다 2-1 지표식 2-2 시스템 수식1 HighestSince(1, CrossUp(Trix(period),0),HIGH) 수식2 LowestSince(1, CrossDown(Trix(period),0),LOW) period : 10 3. 아래수식 변환부탁드립니다 3-1 지표식 3-2 시스템 수식1 a=avg(c,20); valuewhen(1,a>=a(1),a) 수식2 valuewhen(1,a<a(1),a)
프로필 이미지
회원
2020-03-09
411
글번호 136687
지표
답변완료

부탁드립니다.

-분봉차트에서 특정시간(예: @17:00:00)을 기준하여 이틀전 특정시간(예: d-2 @16:59:00)까지 즉 48시간내의 최고가와 최저가를 구하는 지표를 부탁드립니다.
프로필 이미지
예시
2020-03-08
391
글번호 136686
지표
답변완료

확인 부탁드리겠습니다.

아래 내용은 제가 답변을 받은 내용입니다. Data1 / Data2 / Data3 를 사용하는데 Data1과 Data2에 같은 지표(?)를 사용하지만 Data1과 Data2에 적용을 시키면 지표가 다르게 나옵니다. Data2에 적용되는 지표도 Data1의 지표를 기준으로 적용되어 진입이 되는거 같습니다만, 이 부분을 수정해 주실 수 있을까요? 부탁드리겠습니다. 감사합니다. Input:변동률(0.2),레벨(4),선두께(3),P(20),익절틱수(20),손절틱수(20); Var:행(0,data1),열(0,data1),고점(1,data1),저점(-1,data1),신규(1,data1),연장(2,data1),연속(3,data1),삼선(4,data1),cnt(0,data1), 고라인기울기(0,data1),고라인시작(0,data1),고라인끝(0,data1), 저라인기울기(0,data1),저라인시작(0,data1),저라인끝(0,data1), 시작일(0,data1),시작시각(0,data1),V1(0,data1),val1(0,data1),val2(0,data1); Array:고[10,44](0,data1),저[10,44](0,data1), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime 최종상태[5](0,data1),처리구분[5](0,data1),TL[3](0,data1),TL1[2](0,data1),고0[10,4](0,data1),저0[10,4](0,data1),결과리턴[8](0,data1); //=========================================================// If 레벨 <= 4 Then { v1 = 레벨 * 10; val1 = data1(ChgRateZigZag301(H,L,변동률,고,저,최종상태,처리구분)); If 최종상태[레벨] == 고점 Then { If 처리구분[레벨] == 신규 Then TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1], 고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]); If 처리구분[레벨] == 연장 Then TL_SetEnd(TL[2],고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]); If 처리구분[레벨] == 연속 Then { TL[1] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1], 저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]); TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1], 고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]); } If 처리구분[레벨] == 삼선 Then { TL[0] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1], 고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1]); TL[1] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1], 저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]); TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1], 고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]); } } If 최종상태[레벨] == 저점 Then { If 처리구분[레벨] == 신규 Then TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1], 저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]); If 처리구분[레벨] == 연장 Then TL_SetEnd(TL[2],저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]); If 처리구분[레벨] == 연속 Then { TL[1] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1], 고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]); TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1], 저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]); } If 처리구분[레벨] == 삼선 Then { TL[0] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1], 저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1]); TL[1] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1], 고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]); TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1], 저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]); } } } Else { Alert("4레벨까지만 가능합니다!!"); } //=========================================================// cnt = cnt + 1; If (처리구분[레벨] == 신규 or 처리구분[레벨] == 연속) Then { For 행 = 1 To 10 { For 열 = 1 To 4 { // 추세채널을 판단할 레벨만 사용자함수에 전달 고0[행,열] = 고[행,v1 + 열]; 저0[행,열] = 저[행,v1 + 열]; } } val2 = data1(YHS_Channel(고0,저0,결과리턴)); If val2 == 1 Then { // 추세대가 형성되었다면 시작일 = 결과리턴[0]; 시작시각 = 결과리턴[1]; 고라인기울기 = 결과리턴[2]; 고라인시작 = 결과리턴[3]; 고라인끝 = 결과리턴[4]; 저라인기울기 = 결과리턴[5]; 저라인시작 = 결과리턴[6]; 저라인끝 = 결과리턴[7]; If 고라인시작[1] == 고라인시작 and 고라인기울기[1] == 고라인기울기 Then { // 겹쳐 그리지 않도록 TL_SetEnd(TL1[0],sDate,sTime,고라인끝); } Else { TL1[0] = TL_New(시작일,시작시각,고라인시작,sDate,sTime,고라인끝); TL_SetColor(TL1[0],IFF(고라인기울기<0,RED,BLUE)); TL_SetSize(TL1[0],선두께); } If 저라인시작[1] == 저라인시작 and 저라인기울기[1] == 저라인기울기 Then { TL_SetEnd(TL1[1],sDate,sTime,저라인끝); } Else { TL1[1] = TL_New(시작일,시작시각,저라인시작,sDate,sTime,저라인끝); TL_SetColor(TL1[1],IFF(고라인기울기<0,RED,BLUE)); TL_SetSize(TL1[1],선두께); } cnt = 0; #Plot1(고라인끝,"고점추세선",IFF(고라인기울기<0,RED,BLUE)); #Plot2(저라인끝,"저점추세선",IFF(고라인기울기<0,RED,BLUE)); if max(고라인끝,저라인끝) >= data1(c) and data1(c) >= min(고라인끝,저라인끝) and max(고라인끝,저라인끝) >= data2(c) and data2(c) >= min(고라인끝,저라인끝) and data2(c> ma(C,P)) and data3(C>C[1]) Then buy(); } } If cnt > 0 and cnt < (레벨 + 1) * 20 Then { 고라인끝 = 고라인끝 + 고라인기울기; 저라인끝 = 저라인끝 + 저라인기울기; #If 고라인끝 > 0 Then Plot1(고라인끝,"고점추세선",IFF(고라인기울기<0,RED,BLUE)); #If 저라인끝 > 0 Then Plot2(저라인끝,"저점추세선",IFF(고라인기울기<0,RED,BLUE)); if max(고라인끝,저라인끝) >= data1(c) and data1(c) >= min(고라인끝,저라인끝) and max(고라인끝,저라인끝) >= data2(c) and data2(c) >= min(고라인끝,저라인끝) and data2(c< ma(C,P)) and data3(C<C[1]) Then sell(); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
프로필 이미지
maker
2020-03-08
419
글번호 136685
시스템

수색대대 님에 의해서 삭제되었습니다.

프로필 이미지
수색대대
2020-03-08
2
글번호 136684
시스템