커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

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

프로필 이미지
jba
2019-01-18
25
글번호 125371
시스템
답변완료

문의 드립니다.

아래 조건으로 수식 작성 부탁드립니다. 진입조건 1. 선물 전일종가 대비 0.5p 상승출발 & 09:30분까지의 저가를 09:30분 이후에 터치하면 매수 2. 09:30분까지의 저가 또는 고가를 갱신하면 갱신한 방향으로 진입 청산조건 [매수 상태일때] 1. 앞의 5개 봉에서는 선물매수호가 총건수 > 선물매도호가 총건수 였으나 현재봉에서 선물 매수호가 총건수 <= 선물 매도호가 총건수일 경우 2. 금일 12:30분 이전의 고가를 터치할 경우 3. 시가에서 2 point 이상 상승한 후 최고가에서 0.7 point 이상 하락한 경우
프로필 이미지
yunmx
2019-01-17
146
글번호 125370
시스템
답변완료

추세지표 TTF 와 TDI 지표식 문의

안녕하세요!!! 하아투자증권 교육생 입니다. 교육받는 중 교재 1권의 지표식이 궁금해서 문의 올립니다. TTF(Trend Triger Factor) 지표식과 TDI(Trend Detection Index) 지표식입니다. 설며이 이해는 가는데 막상 코드가 안되네요 부탁드립니다.
프로필 이미지
불스아이
2019-01-17
195
글번호 125369
지표
답변완료

부탁드립니다.

만들어 주신 아래 지표를 매매식으로 만들고자 합니다. 이전 Plot3와 현재 Plot3의 차가 (변화량이) 변수 A(5) 이상 발생하게 되면 plot5(ma(macdosc ,5)); 가 하강하기 전까지 plot3(highest(macdosc ,5)) 이 상승중이고, plot5(ma(macdosc ,5)); 가 A(5) 이상일때 매수 (매도 반대) Input : shortPeriod(12), longPeriod(26), signal(9); Var : MACDV(0),MACDS(0),macdosc (0) ; MACDV = MACD(shortPeriod, longPeriod); MACDS = wma(MACDV,Signal); macdosc = MACDV-MACDS; Plot1(MACDV, "MACD"); Plot2(MACDS, "MACDSignal"); PlotBaseLine1(0, "기준선1"); plot3(highest(macdosc ,5)); plot4(Lowest(macdosc ,5)); plot5(ma(macdosc ,5)); plot6(highest(macdosc,20)); plot7(Lowest(macdosc,20)); plot8(ma(macdosc,20));
프로필 이미지
라떼처럼
2019-01-17
142
글번호 125368
시스템
답변완료

함수식

안녕하세요 미리 감사인사올립니다 아래식에서 두가지조건을 추가하고십습니다 Input : short(12), long(26), signal(9); Input : Period(20), LPercent(98), SPercent(106); Var : MACDV(0) , MACDS(0),T(0),value(0); var : Hi1(0),Hi2(0),Hc1(0),Hc2(0),Li1(0),Li2(0),Lc1(0),Lc2(0); MACDV = MACD(short, long); MACDS = ema(MACDV,signal); value = Disparity(Period) ; if crossup(MACDV,MACDS) Then { T = 1; Hi1 = MACDV; Hi2 = Hi1[1]; Hc1 = C; Hc2 = Hc1[1]; if value >= LPercent and Li1 > Li2 and Lc1 < Lc2 and Lc2 > 0 Then buy(); } if CrossDown(MACDV,MACDS) Then { T = -1; Li1 = MACDV; Li2 = Li1[1]; Lc1 = C; Lc2 = Lc1[1]; if value >= SPercent and Hi1 < Hi2 and Hc1 > Hc2 and Hc2 > 0 Then sell(); } if T == 1 and MACDV > Hi1 Then { Hi1 = MACDV; HC1 = C; } if T == -1 and MACDV < Li1 Then Li1 = MACDV; LC1 = C; // 조건1 (매수/매도 신호발생시 신호봉의 종가에서 +/- 20틱 위나 아래에서 진입대기) var : S(0); if S <= 0 and 매수진입조건 Then { S = 1; var1 = C; } if S >= 0 and 매도진입조건 Then { S = -1; var1 = C; } if S == 1 Then buy("b",atlimit,var1-PriceScale*20); if S == -1 Then sell("s",atlimit,var1+PriceScale*20); // 조건 2 Condition1 = MarketPosition == 0 and MarketPosition(1) == 1 and IsExitName("StopLoss",1) == true; Condition2 = MarketPosition == 0 and MarketPosition(1) == -1 and IsExitName("StopLoss",1) == true; if Condition1 == false and 매수진입조건 Then buy(); if Condition2 == false and 매도진입조건 Then sell(); 틀린곳이있으면 수정도 부탁드립니다 감사합니다
프로필 이미지
달마7
2019-01-17
142
글번호 125361
시스템
답변완료

수식 부탁( mfi 매매)

조건1: 일봉기준: 1>10일때 매수 진입 조건2: 일봉기준 20일평균값이 우상향일때 매수진입 조건3: mfi(4) LPERCENT(30)이하일때 매수 진입 이세조건의 교집합시 매수 진입 아래식을 적용해보니 아무런 매수신호가 안뜨네요... 뭐가 잘못되었는지 알려주시면 감사 참고로 해외선물 30분봉입니다. ================================================================================== Input : Period(40), LPercent(30), SPercent(100); Input : P1(50),P2(165); Input : N1(1),N2(10),N3(20); Var : value(0); var : BEH(0),BEL(0),SEH(0),SEL(0); var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),avg3(0),T(0),mav2(0),mav3(0); var : sum3(0),Tcond(false); var : sum4(0),sum41(0),avg4(0),avg41(0); value = MFI(Period); if DayClose(max(N1,N2,N3)) > 0 Then { sum1 = 0; sum2 = 0; sum4 = 0; sum41 = 0; for cnt = 0 to max(N1,N2,N3)-1 { if cnt < N1 Then sum1 = sum1 + DayClose(cnt); if cnt < N2 Then sum2 = sum2 + DayClose(cnt+1); if cnt < N3 Then { sum4 = sum4 + DayClose(cnt); sum41 = sum41 + DayClose(cnt+1); } } avg1 = sum1/N1; avg2 = sum2/N2; avg4 = sum3/N3; avg41 = sum41/N3; T = 0; if avg1 >= avg2 Then T = 1; if avg1 < avg2 Then T = -1; # 매수/매도청산 If value <= LPercent and MarketPosition == 0 and avg4 > avg41 Then { Buy("매수"); } if MarketPosition == 1 then { ExitLong("즉시익절",AtLimit,EntryPrice+PriceScale*P1); ExitLong("즉시손절",AtStop,EntryPrice-PriceScale*P2); } }
프로필 이미지
이형지
2019-01-17
143
글번호 125360
시스템
답변완료

생초보입니다...지표식 부탁드립니다

키움에서 정형화된 지표들만 사용하다가... 예스트레이더로 갈아타서 지표 만들어서 해보려하는데 너무 어렵네요...몇개 질문좀 올릴게요 ... (제가 진짜 초보라...쉬운 질문을 장황하게 쓰더라도 이해해주십시오) 1.obv 지표 키움수식을보면 obv는 sum(if(c>c(1),v,if(c<c(1),-v,0))) 의 식으로 되어있는데요 이는 종가가 전종가와 같을&#46468; 0의 값을 취하게됩니다 키움은 upvol,uptick 이라는 단어자체가 없는데요 여기는 있네요?? 이를 이용하면 종가가 같아도 0이아닌 +-값을 나오게 할수 있는건지.... 즉, uptick,downtick 또는 upvol,downmvol의 단어(?),식(?) 같은게 많던데 이런거 이용해서 전종가와 현종가가 같을때도 obv의 값이 0이아닌 실질적으로 +-값이 나올수있게 지표작성이 가능한지.... ex) 가격 1050 1100 1100 전종가 = 종가 거래량 50 100 이렇다면 키움수식은 앞의 거래량 50만 더해주고, 뒤의 거래량 100은 종가가 같으므로 더해주지 않습니다. 뒤의 거래량 100이 매수체결이면 더해주고 매도체결이면 빼주게끔 해주세영. 2. 가격변화 지표 2.1 모든 가격변화량을 계속 더해주는 지표만들어주세요 예를 들어 가격이 1000 1020 1050 1040 1010 1030 1070 1080 1060 1070 ...총 10틱동안 이런값이라면 전값보다 높고 낮음 상관없이 변화량 20 + 30 + 10 + 30 + 20 + 40 + 10 + 20 + 10 이렇게 더해주는 지표요.... 2.2 가격변화량중 플러스(uptick)만 더해주는 지표만들어주세요 위의 가격 10틱이 있다면 전값보다 상승한 변화만 더해 주는지표... 20 + 30 + 0 + 0 + 20 + 40 + 10 + 0 + 10... 2.3 반대로 가격변화량중 마이너스(downtick)만 더해주는 지표 만들어주세요 위의 가격 10틱이 있다면 0 + 0 + 10 + 30 + 0 + 0 + 0 + 20 + 0..... 이렇게 총 4개...지표식 부탁드립니다 제가완전초보라 그러는데요 처음부터 쉽게 상세히 알려주시면고맙겠습니다 로그인해서 6109 예스랭귀지 편집기 까지는 들어가는데 그 이후 알려주신 식들?을 새로만들기에서 복사 붙혀넣기만하면되는지... 후,,,부탁좀드리겠습니다 감기조심하세요
프로필 이미지
말라
2019-01-17
225
글번호 125359
지표
답변완료

문의드립니다~

240일선과 960일선이 골든크로스가 되고나서 여러가지 진입신호이름 중에서 "학매수"라는 진입신호명으로 2번만 신호가 나오도록 240일선과 960일선이 데드크로스가 되고나서 여러가지 진입신호이름 중에서 "학매도"라는 진입신호명으로 2번만 신호가 나오도록 학매수라는 진입신호가 반드시2번이어지는건 아니구요. 다른신호명이 나오고 나서 학매수라는 진입신호가2번째로 나올수도 있습니다. 감사합니다~
프로필 이미지
겐지
2019-01-17
134
글번호 125352
시스템
답변완료

부탁 드립니다.

다음 수식은 지정 일시 이후에 저점에서 선을 긋고 있습니다. 이것을 지정일 이후에 (시간 제외, 일주월봉차트 사용 목적) 사용토록 부탁 드립니다. Input:length(10),기준일(20190110),기준시간(100000),파동선두께(2); Var:j(0),jj(0),jjj(0),최종고가(0),최종저가(0),최종변곡점(""),처리구분(""),TL1(0); Array:고[5,4](0),저[5,4](0), // 1:가격, 2:Index, 3:sDate, 4:sTime 역사적고점[5](0),역사적저점[5](0); // 1:가격, 2:Index, 3:sDate, 4:sTime var : Tcond(false); Var:기울기(0); Array:fr[7,4](0); // 1:비율, 2:값, 3:라인번호, 4:텍스트번호 if sdate >= 기준일 and stime >= 기준시간 Then { Tcond = true; 고[1,1] = H; 저[1,1] = L; fr[1,1] = 0; fr[2,1] = 0.236; fr[3,1] = 0.382; fr[4,1] = 0.50; fr[5,1] = 0.618; fr[6,1] = 0.764; fr[7,1] = 1; } Condition1 = Highest(H,length) == H and 최종고가 <> H; Condition2 = Lowest (L,length) == L and 최종저가 <> L; if Tcond == true then { 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리 Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리 } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { 최종고가 = H; // 신규고점을 체크하기 위해 저장 If 최종변곡점 == "저점" Then { For j = 5 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = H; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; //TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,GREEN); } Else If 고[1,1] < H Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = H; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); } If Tcond == true and 역사적고점[1] < 고[1,1] Then { For jjj = 1 To 4 // 1:가격, 2:Index, 3:sDate, 4:sTime { 역사적고점[jjj] = 고[1,jjj]; //역사적저점[jjj] = 0; // 역사적 고점 초기화 } } 최종변곡점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = L; If 최종변곡점 == "고점" then { For j = 5 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = L; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; //TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,GREEN); } Else If 저[1,1] > L then { 저[1,1] = L; 저[1,3] = sDate; 저[1,4] = sTime; 저[1,2] = Index; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); } If ( 역사적저점[1] > 저[1,1] or 역사적저점[1] == 0 ) Then { For jjj = 1 To 4 { 역사적저점[jjj] = 저[1,jjj]; 역사적고점[jjj] = 0; } } 최종변곡점 = "저점"; } #==========================================# If 역사적고점[1] > 0 and 역사적저점[1] > 0 Then { If 역사적고점[1][1] != 역사적고점[1] or 역사적저점[1][1] != 역사적저점[1] Then { 기울기 = (역사적고점[1] - 역사적저점[1]) / (역사적고점[2] - 역사적저점[2]); for j = 1 to 7 { If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 기존의 라인은 지우고 fr[j,2] = 기울기 * fr[j,1] * (index - 역사적저점[2]) + 역사적저점[1]; // 피보나치 비율을 곱해서 계산 fr[j,3] = TL_New(역사적저점[3],역사적저점[4],역사적저점[1],sDate,sTime,fr[j,2]); // 라인을 생성 TL_SetColor(fr[j,3],GREEN); } } Else { for j = 1 to 7 { fr[j,2] = 기울기 * fr[j,1] * (index - 역사적저점[2]) + 역사적저점[1]; TL_SetEnd(fr[j,3],sDate,sTime,fr[j,2]); } } } } Text_Delete(var1); Text_Delete(var2); Text_Delete(var3); Text_Delete(var4); Text_Delete(var5); Text_Delete(var6); Text_Delete(var7);
프로필 이미지
뮬리
2019-01-17
179
글번호 125345
지표