커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다

input : aa(3),P(5); var : cnt(0),count(0),count1(0); var : cnt2(0),count2(0),count3(0); var : HH(0),HV(0); var : HH2(0),HV2(0); count= 0; For cnt =0 to 5 Begin if h == h[cnt] Then count = count + 1; count1 = count + h; end var1 = (count1); HH = var1; HV = H; for cnt = 0 to P-1{ if var1[cnt] > HH Then{ HH = var1[cnt]; HV = H[cnt]; } } count2= 0; For cnt2 =0 to 5 Begin if h == l[cnt2] Then count2 = count2 + 1; count3 = count2 + h; end var2 = (count3); HH2 = var2; HV2 = H; for cnt2 = 0 to P-1{ if var2[cnt2] > HH2 Then{ HH2 = var2[cnt2]; HV2 = H[cnt2]; } } plot1(Hv); plot2(Hv2); 위 수식은 만들어주신걸 살작 가공하였습니다 그런데 여기서 더 가공하고 십은것은 hh 와 hh2 의값을+합하여 이전 5봉중 가장큰값의고가를 표시하고십습니다 var1 = (Hh+Hh2); plot2(var1); 이런식으로 해보니 안되어서요 부탁드립니다 감사합니다
프로필 이미지
파파리리
2015-11-21
175
글번호 92634
지표
답변완료

부탁드립니다.

if MarketPosition <= 0 and 첫매수진입조건 Then buy("b"); if MarketPosition == 1 Then{ exitlong("bl",AtStop,EntryPrice-PriceScale*15); exitlong("bp",AtLimit,EntryPrice+PriceScale*30); if MaxEntries == 1 Then buy("bb",atlimit,EntryPrice-PriceScale*10); } if MarketPosition >= 0 and 첫매도진입조건 Then sell("s"); if MarketPosition == -1 Then{ exitlong("sl",AtStop,EntryPrice+PriceScale*15); exitlong("sp",AtLimit,EntryPrice-PriceScale*30); if MaxEntries == 1 Then sell("ss",atlimit,EntryPrice+PriceScale*10); } &&&&&&&&&&&&&& ( 상기수식에서 매도청산의 exitlong을 exitshort로 변경했읍니다.) &&&&&&&&&&&&&&& 그림 2를보면 추가계약 체결은 잘되는것 같은데... 청산이 따로 되네요. 첫 계약의 청산조건에서 두번째 계약도 같이 일괄 청산되게 부탁드립니다. ( 두계약의 평단이 아닌 첫계약 청산조건에서 일괄청산되게 부탁드립니다.) *** 궁금한점하나 --- 추가진입은 봉완성시인가요? 아님 10틱지정가인가요? 혹, 지정가라면 봉완성시추가계약이 체결되는 수식도 부탁드립니다. *** 궁금한점 둘 --- 그림2에서 두번째신호의 청산이 이상하네요. 추가계약되면서 익절이되어야 정상인것같은데... &&&&&&&&&&& *** 다른 부탁 하나 더 드립니다. C < O+PriceScale*20 상기수식을 data2에서 적용할수있게 변경 부탁드립니다.
프로필 이미지
vmfha
2015-11-21
176
글번호 92633
시스템
답변완료

호가잔량 호가건수 시스템식

안녕하세요!! 매수호가+ 와 매수건수+ 면 매수 매수호가- 와 매수건수- 면 매도 수익 0.5P(변수값가능) 청산후 매매종료 여기서 각각 호가와 건수 차이가 300 이상일때만 (변수로 조정가능) 수식신호가 나오는 시스템식 부탁드립니다 늘 수고하시는 노고에 감사드립니다.
프로필 이미지
duoemail
2015-11-21
272
글번호 92632
시스템
답변완료

문의 드립니다.

아래수식을 부탁드립니다. 1 1분봉에서 일봉5일이평을 표현합니다. 2 ma(c,5)>일봉5일이평 차이가 1 이상일때 당일상전환 정의하고 3 ma(c,5)<일봉5일이평 차이가 이이상일때 당일하전환이라 정의 함 4 당일까지 상전환,하전환의 일수를 표현한다, 상전환예를들면 발생일이 상전환1,다음일이 상전환2... 하루에 몇번이 발생해도 일수로는 하나로 간주함. 당일상전환이 없는날도 상전환일수에는+함, 즉 당일하전환이발생하지 않으면계속+하고, 당일하전환이발생시 상전환일수는 0 로함 5.상전환경우에 상전환진행중인데 .. 그사이 멸일간은 당일하전환도없고 당일상전환도 없이진행돼다가 그이후 당일상전환이 발생한경우, 이전당일상전환과 현당일상전환 사이의 일수를 표현함 6. 하전환경우도 5와동일하게 표현함. 위식을 부탁드립니다.
프로필 이미지
해월정
2015-11-22
165
글번호 92631
지표
답변완료

문의드립니다

안녕하세요 아래지표식(RENKO_MACD)에서 MACD 대신에 1.RENKO_스토케스틱(단순이평적용) 2.RENKO_CCI 지표식을 각각 부탁드립니다. input:renkoSize(0.5),p1(12),p2(26),p3(9); input : 마지막봉시간(065900); var:j(0),k(0),renkoCnt(0),gubun(0),filename("renko2.txt"),printOK(False), sum(0),ema1_OK(false),ema2_OK(false),sig_OK(False),idx(0); array:OO[50](0),HH[50](0),LL[50](0),CC[50](0),ma1[50](0),ma2[50](0), ema1[50](0),ema2[50](0),macdVal[50](0),macdSig[50](0); if Bdate != Bdate[1] Then idx = 0; idx = idx+1; If idx == 0 Then { //break on session에 해당, 즉 일자가 바뀌면 새로 계산 gubun = 0; //방향을 초기화한다. 이후 형성되는 가격에 의해 방향이 계산 For j = 49 DownTo 1 { //금일 시가봉을 신규 추가 OO[j] = OO[j-1]; HH[j] = HH[j-1]; LL[j] = LL[j-1]; CC[j] = CC[j-1]; ema1[j] = ema1[j-1]; ema2[j] = ema2[j-1]; macdVal[j] = macdVal[j-1]; macdSig[j] = macdSig[j-1]; } OO[0] = C; //분봉의 종가를 기반으로 계산하기 때문에 당일 시초가 아니다 HH[0] = C; LL[0] = C; CC[0] = C; } Else { If gubun == 0 and CC[0] > 0 Then { //일 첫봉이 완성되지 않은 시점 If OO[0] - renkoSize >= C Then { gubun = -1; CC[0] = OO[0] - renkoSize; HH[0] = OO[0]; LL[0] = CC[0]; //지수이평을 계산할 수 있을 만큼 렌코가 만들어진 이후 계산 시작 if ema1_OK then ema1[0] = (CC[0]-ema1[1])*(2/(p1+1))+ema1[1]; if ema2_OK then ema2[0] = (CC[0]-ema2[1])*(2/(p2+1))+ema2[1]; if ema2_OK then macdVal[0] = ema1[0] - ema2[0]; if sig_OK then macdSig[0] = (macdVal[0] - macdSig[1])*(2/(P3+1))+macdSig[1]; j = 0; if printOK then print(filename, "1=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } Else If OO[0] + renkoSize <= C Then { gubun = 1; CC[0] = OO[0] + renkoSize; HH[0] = CC[0]; LL[0] = OO[0]; if ema1_OK then ema1[0] = (CC[0]-ema1[1])*(2/(p1+1))+ema1[1]; if ema2_OK then ema2[0] = (CC[0]-ema2[1])*(2/(p2+1))+ema2[1]; if ema2_OK then macdVal[0] = ema1[0] - ema2[0]; if sig_OK then macdSig[0] = (macdVal[0] - macdSig[1])*(2/(P3+1))+macdSig[1]; j = 0; if printOK then print(filename, "2=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } } If LL[0] - renkoSize >= C Then { gubun = -1; renkoCnt = Int(Round((LL[0]-C)/renkoSize,9)); if renkoCnt > 49 then renkoCnt = 49; For j = 49 DownTo renkoCnt { OO[j] = OO[j-renkoCnt]; HH[j] = HH[j-renkoCnt]; LL[j] = LL[j-renkoCnt]; CC[j] = CC[j-renkoCnt]; if ema1_OK then ema1[j] = ema1[j-renkoCnt]; if ema2_OK then ema2[j] = ema2[j-renkoCnt]; if ema2_OK then macdVal[j] = macdVal[j-renkoCnt]; if sig_OK then macdSig[j] = macdSig[j-renkoCnt]; } For j = renkoCnt-1 DownTo 0 { OO[j] = LL[j+1]; CC[j] = LL[j+1] - renkoSize; HH[j] = OO[j]; LL[j] = CC[j]; if ema1_OK then ema1[j] = (CC[j]-ema1[j+1])*(2/(p1+1))+ema1[j+1]; if ema2_OK then ema2[j] = (CC[j]-ema2[j+1])*(2/(p2+1))+ema2[j+1]; if ema2_OK then macdVal[j] = ema1[j] - ema2[j]; if sig_OK then macdSig[j] = (macdVal[j] - macdSig[j+1])*(2/(P3+1))+macdSig[j+1]; if printOK then print(filename, "3=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",j,gubun,OO[j],HH[j],LL[j],CC[j]); } } Else If HH[0] + renkoSize <= C Then { gubun = 1; renkoCnt = Int(Round((C-HH[0])/renkoSize,9)); if renkoCnt > 49 then renkoCnt = 49; For j = 49 DownTo renkoCnt { OO[j] = OO[j-renkoCnt]; HH[j] = HH[j-renkoCnt]; LL[j] = LL[j-renkoCnt]; CC[j] = CC[j-renkoCnt]; ema1[j] = ema1[j-renkoCnt]; ema2[j] = ema2[j-renkoCnt]; macdVal[j] = macdVal[j-renkoCnt]; macdSig[j] = macdSig[j-renkoCnt]; } For j = renkoCnt-1 DownTo 0 { OO[j] = HH[j+1]; CC[j] = HH[j+1] + renkoSize; HH[j] = CC[j]; LL[j] = OO[j]; if ema1_OK then ema1[j] = (CC[j]-ema1[j+1])*(2/(p1+1))+ema1[j+1]; if ema2_OK then ema2[j] = (CC[j]-ema2[j+1])*(2/(p2+1))+ema2[j+1]; if ema2_OK then macdVal[j] = ema1[j] - ema2[j]; if sig_OK then macdSig[j] = (macdVal[j] - macdSig[j+1])*(2/(P3+1))+macdSig[j+1]; if printOK then print(filename, "4=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } } Else If stime >= 마지막봉시간 and stime[1] < 마지막봉시간 Then { //당일 종가봉에서 For j = 49 DownTo 1 { OO[j] = OO[j-1]; HH[j] = HH[j-1]; LL[j] = LL[j-1]; CC[j] = CC[j-1]; ema1[j] = ema1[j-1]; ema2[j] = ema2[j-1]; macdVal[j] = macdVal[j-1]; macdSig[j] = macdSig[j-1]; } If LL[1] > C Then { //종가가 이전 봉보다 아래 형성 OO[0] = LL[1]; CC[0] = C; HH[0] = OO[0]; LL[0] = CC[0]; } Else If HH[1] < C Then { //종가가 이전 봉보다 위에 형성 OO[0] = HH[1]; CC[0] = C; HH[0] = CC[0]; LL[0] = OO[0]; } Else { //종가가 이전 봉의 중간에 형성 OO[0] = C; CC[0] = C; HH[0] = C; LL[0] = C; } if ema1_OK then ema1[0] = (CC[0]-ema1[1])*(2/(p1+1))+ema1[1]; if ema2_OK then ema2[0] = (CC[0]-ema2[1])*(2/(p2+1))+ema2[1]; if ema2_OK then macdVal[0] = ema1[0] - ema2[0]; if sig_OK then macdSig[0] = (macdVal[0] - macdSig[1])*(2/(P3+1))+macdSig[1]; j = 0; //마지막 1봉만 출력 if printOK then print(filename, "5=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } } if ema1_OK == False and CC[p1] > 0 then { //지수이평 계산 가능할 때까지 대기 sum = 0; for j = 0 to p1 - 1 { sum = sum + CC[j]; } ema1[0] = sum/p1; //처음 값은 단순이평값으로 ema1_OK = True; //다음 봉부터 지수이평 계산되도록 설정 } if ema2_OK == False and CC[p2] > 0 then { sum = 0; for j = 0 to p2 - 1 { sum = sum + CC[j]; } ema2[0] = sum/p2; ema2_OK = True; } if sig_OK == False and CC[P2+p3] > 0 then { sum = 0; for j = 0 to p3 - 1 { sum = sum + macdVal[j]; } macdSig[0] = sum/p3; sig_OK = True; } Plot1(macdVal[0],"macd"); Plot2(macdSig[0],"macd signal"); PlotBaseLine1(0);
프로필 이미지
뉴스타트
2015-11-23
296
글번호 92630
지표
답변완료

KQ 외인/기관 순매수 금액 지표

안녕하세요. KQ의 외인과 기관 순매수 금액을 지표로 구현하고자 할때, 다음과 같이 사용하는 것으로 알고 있습니다. plot1(data2(c),"개인"); plot2(data3(c),"외국인"); plot3(-(data2(c)+data3(c)),"기관"); 첨부 그림은 금요일 코스닥 장중 순매수 금액 데이터인데요. 위와 같이 구현하면 기관값이 정확하게 표시되지 않습니다. 다른 방법이 없나요?
프로필 이미지
hugnkiss
2015-11-20
221
글번호 92629
지표
답변완료

부탁드립니다

해선에서 메뉴에 있는 분봉 피봇 디마크 말고 일봉 피봇 디마크 부탁드립니다 1.피봇기준선,1,2차지지선,1,2차 저항선 수식 부탁드립니다 2.demark 기준선, 목표고가, 목표저가 수식 부탁드리립니다
프로필 이미지
마르뚝
2015-11-20
206
글번호 92628
지표

부양가족 님에 의해서 삭제되었습니다.

프로필 이미지
부양가족
2015-11-20
5
글번호 92621
지표

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

프로필 이미지
해월정
2015-11-20
2
글번호 92620
지표