커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식좀 부탁합니다.

최근 가입해서 열공하고 있는 초보입니다. 아래 수식좀 부탁합니다. 매수후 보유종목에 매도관련수식입니다. 1분봉기준 1.손절매:3% 2.매수이후 현재봉기준 가장최근 RSI값:80이상이며 최고종가대비 등락율 3%이상 상승했으나 RSI값이 80이하일때 매도 3.당일청산:15:25:00
프로필 이미지
다낚아
2019-05-07
175
글번호 128483
시스템
답변완료

일봉과 분봉 관련 질문드립니다

안녕하세요 웰스멘토에서 예트로 만든 종목검색식을 사용하기위해서 수식을 작성했습니다 전일 일봉관련된 내용은 dayopen(1) dayclose(1)을 사용하여 정상적으로 동작하는데요 현재가가 특정 가격을 넘으면 검색되게 하기 위해서 if C > O + 특정값 then find(1) 처럼 작성하였습니다 예트에서는 차트를 분봉차트 열어두고 하면 정상동작을 하는데요 웰스멘토에서는 WM객체의 searchYL에 분봉으로 설정하고 해당 검색식을 사용하여 백테스트하면 그날 O+특정값을 넘어갈때 검색이 되는게 아닌 이미 그날 지나간걸 알고 신호가 미리 나와버립니다... 예를 들면 2일전 시가가 1000원이고 종가가 1500원, 특정값을 300으로 잡으면 1일전 090005 에 검색식을 돌리면 아직 위의 if문이 만족하지 않았는데 검색이 돠어바립니다... 어떻게해야 해당시간에 대응하는 정확한 c값을 알아낼 수 있을까요?? 감사합니다
프로필 이미지
작지않아
2019-05-07
179
글번호 128482
종목검색
답변완료

수식 문의 드립니다....^^

수고가 많으시죠...^^ MACD(12, 26 ,9) 1 MACD가 기준선 +0.04를 하락돌파시에 매도 2 MACD가 기준선 -0.04를 상승돌파시에 매수 이상입니다...수고하세요
프로필 이미지
우섭
2019-05-07
164
글번호 128481
시스템
답변완료

수식 문의 드립니다.

검색 시점에서 전날 종가 대비 0.1%라도 상승한 종목 중에서 5분 ~ 월봉까지의 모든 차트가 직전 하락장의 음봉 대비 상승장에서의 더 큰 양봉이 나온 종목만을 검색할 수 있는 수식을 부탁드립니다.
프로필 이미지
천유
2019-05-07
172
글번호 128470
종목검색
답변완료

볼밴

input : P(20),dv(2); var : Price(0),BBmd(0),BBup(0),BBdn(0); Price = (H+L+C)/3; BBmd = ma(price,P); BBup = BBmd+std(Price,P)*dv; BBdn = BBmd-std(Price,P)*dv; plot1(BBmd,"중단"); plot2(BBup,"상단"); plot3(BBdn,"하단"); 이것을 타주기 볼밴으로 사용할려면 어떡식으로 수식을 고쳐야하나요
프로필 이미지
레전드
2019-05-07
194
글번호 128469
지표

충주미꾸라지 님에 의해서 삭제되었습니다.

프로필 이미지
충주미꾸라지
2019-05-07
13
글번호 128466
시스템
답변완료

수식 의뢰 부탁드립니다.

개발자님 수식 수정 부탁드립니다 볼린저 밴드 20일, 3std 기준 매수조건 : 1) 신규매수 : 보유포지션 0 and 전봉저점 > 전봉볼린저하단 and 현재가격이 전봉볼린저하단 터치 할 때 매수 2) 추가 매수: 보유포지션 > 0 and 전봉저점 > 전봉볼린저하단 and 현재가격이 전봉볼린저하단 터치 할 때 추가매수 3) 매도청산&신규매수 : 보유포지션 < 0 and 전봉저점 > 전봉볼린저하단 and 현재가격이 전봉볼린저하단 터치 할 때 매도청산&신규매수 매도조건 : 1) 신규매도 : 보유포지션 0 and 전봉고점 < 전봉볼린저상단 and 현재가격이 전봉볼린저상단 터치 할 때 매도 2) 추가매도 : 보유포지션 <0 and 전봉고점 < 전봉볼린저상단 and 현재가격이 전봉볼린저상단 터치 할 때 추가매도 3) 매수청산&신규매도 : 보유포지션 >0 and 전봉고점 < 전봉볼린저상단 and 현재가격이 전봉볼린저상단 터치 할 때 매수청산&신규매도 아래는 제가 만든 실패한 수식입니다 ------------------ input : Period(20), MultiD(3); var : BBmd(0),BBup(0),BBdn(0); BBmd = ma(C,Period); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); If MarketPosition < 0 and daylow[1] > BBdn[1] and C <= BBdn then ExitShort(); Buy(); If MarketPosition == 0 and daylow[1] > BBdn[1] and C <= BBdn then Buy(); If MarketPosition > 0 and dayhigh[1] < BBup[1] and C >= BBup then ExitLong(); Sell(); If MarketPosition == 0 and dayhigh[1] < BBup[1] and C >= BBup then Sell();
프로필 이미지
산이보리
2019-05-07
230
글번호 128465
시스템
답변완료

볼밴과 기준선

안녕하세요 분봉에 주봉볼밴과 주봉기준선을 출력하는 수식을 부탁드립니다. 감사합니다.
프로필 이미지
beautyin
2019-05-07
257
글번호 128442
지표
답변완료

이유를 모르겠습니다. ㅠㅠ

수정된 수식을 바탕으로 프로그램을 돌렸는데 오늘 하락시작인데도 종목들을 매수 하지 않습니다... ㅠㅠ 뭐가 잘못된건지.. 모르겠네요.. -> 전날에 비해 하락시작할 경우에만 다음 봉때 1매수(5분기준), 장중에 하락하더라도 매수금지. -> 볼밴 하단을 터치하면 매수2~4(5분기준) 하지만 1매수가 이루어 지지 않으면 그날은 매수하지 않음 -> 고로 음봉 시작인날에만 매수진행. -> 지금까지 수정해왔던 내용들인데 막상 하니까 프로그램 돌린거 18개 종목중 1개종목만 매수됐네요... 거의 대부분 하락시작이었는데 말이죠. 그 1종목 마저 차트에 매수표시가 안되네요;; 제가 오늘 테스트 했던 종목이 필룩스. 평화정공. 심텍홀딩스. 대성산업. 테라셈. 서연이화. 성우하이텍. 유진기업. 세종공업. 휴비스. BGF. 삼보판지. 한화갤러리. 국일신동. 현대로템. 유니테스트. 한류AI센터 등등 인데. 평화정공 한개만 매수 되었네요. Input : 투자금액(1000000),Period(20), MultiD(2), N(1),시작일(20190507),시작시간(090000),청산시간(150000); Input : loss(5); var : e(0),x(0),count(0),Tcond(false),BBup(0),BBdn(0); var : HH(0),Bxcond1(false),Bxcond2(false),Bxcond3(false); var : LL(0),Sxcond1(false),Sxcond2(false),Sxcond3(false); Array : VV[5](0),XX[5](0); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); vv[0] = floor((투자금액*0.1)/NextBarOpen); vv[1] = floor((투자금액*0.2)/NextBarOpen); vv[2] = floor((투자금액*0.3)/NextBarOpen); vv[3] = floor((투자금액*0.4)/NextBarOpen); if sdate >= 시작일 and stime >= 시작시간 Then Tcond = true; if bdate != bdate[1] Then count = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then count = count+1; if Tcond == true then { if (TotalTrades == 0 or MarketPosition == 0 and BarsSinceExit(1) > 2) then { if MarketPosition == 0 and count >= 1 and count < N and CrossDown(c,bbdn) and C <= DayClose(1) and dayopen < DayClose(1) and NextBarSdate == sdate Then { buy("b1",atmarket,def,vv[MaxEntries]); } if MarketPosition == 0 and NextBarSdate != sdate and NextBarOpen <= C Then { buy("b11",atmarket,def,vv[MaxEntries]); } } if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { e = e +1; if e == 1 then XX[e] = CurrentContracts; Else XX[e] = CurrentContracts-CurrentContracts[1]; } #두번째 매수 if MarketPosition == 1 and e == 1 and count < N and CrossDown(c,bbdn) and C < DayClose(1) and dayopen < DayClose(1) and NextBarSdate == sdate Then { buy("b2",atmarket,def,vv[MaxEntries]); } #세번재매수 if MarketPosition == 1 and e == 2 and count < N and CrossDown(c,bbdn) and C < DayClose(1) and dayopen < DayClose(1) and NextBarSdate == sdate Then { buy("b3",atmarket,def,vv[MaxEntries]); } #네번재매수 if MarketPosition == 1 and e == 3 and count < N and CrossDown(c,bbdn) and C < DayClose(1) and dayopen < DayClose(1) and NextBarSdate == sdate Then { buy("b4",atmarket,def,vv[MaxEntries]); } HH = highest(H,BarsSinceEntry); if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx1" Then Bxcond1 = true; if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx2" Then Bxcond2 = true; if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx3" Then Bxcond3 = true; if Bxcond1 == false and HH >= EntryPrice*1.02 and HH < EntryPrice*1.05 Then ExitLong("Bx1",AtStop,HH-(HH-EntryPrice)*0.1,"",Floor(MaxContracts*(1/5)),1); if Bxcond2 == false and HH >= EntryPrice*1.06 and HH < EntryPrice*1.10 Then ExitLong("Bx2",AtStop,HH-(HH-EntryPrice)*0.1,"",Floor(MaxContracts*(2/5)),1); if Bxcond3 == false and HH >= EntryPrice*1.12 Then ExitLong("Bx3",AtStop,HH-(HH-EntryPrice)*0.1); if (stime >= 청산시간 and stime[1] < 청산시간) and C > AvgEntryPrice then { ExitLong("bx"); } if C >= AvgEntryPrice*1.01 Then ExitLong("x"); }}
프로필 이미지
바나
2019-05-07
204
글번호 128441
시스템