커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식작성 부탁합니다.

아래 조건 수식 작성좀 부탁합니다. 매수 진입 1차 조건 : 캔들의 종가가 볼밴 하단을 이탈할 것. 한 번 만족한 위 1차 조건은 해제하지 말고 유지하고 있다가 아래 2차 조건을 만족하면 매수 진입한다 2차조건 : 볼밴의 상단이 우상향일 때는 진입하지 말고 수평 또는 우하향일 때만 진입할 것 매도 진입 1차 조건 : 캔들의 종가가 볼밴 상단을 돌파할 것. 한 번 만족한 위 1차 조건은 해제하지 말고 유지하고 있다가 아래 2차 조건을 만족하면 매도 진입한다 2차조건 : 볼밴의 하단이 우하향일 때는 진입하지 말고 수평 또는 우상향일 때만 진입할 것 1차~2차 조건을 동시에 만족하는 경우가 거의 없어 진입 기회가 오지 않아 1차 만족후 보유하고 있는 상태에서 2차 조건을 만족하면 진입해보려고 합니다.
프로필 이미지
천왕봉
2017-06-30
116
글번호 110888
시스템
답변완료

부탁드립니다

input : 시작시간(090000),종료시간(152000); input : Period15(200),Period16(100),Period17(40),Period18(20),익절틱수(20),손절틱수(15); Input : Period(500),sigPeriod(150); input : Period33(100),sigPeriod34(75); input : Period43(20),sigPeriod44(15); var : mav15(0),mav16(0),mav17(0),mav18(0),Bxcond(false),Sxcond(false); var : Tcond(false); mav15 = ma(c, Period15); mav16 = ma(c, Period16); mav17 = ma(c, Period17); mav18 = ma(c, Period18); value1 = TRIX(Period); value2 = ema(value1, sigPeriod); value3 = TRIX(Period33); value4 = ema(value3, sigPeriod34); value5 = TRIX(Period43); value6 = ema(value5, sigPeriod44); if Bdate != Bdate[1] then { Tcond = True; BXcond = false; SXcond = false; } if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{ Tcond = false; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if TotalTrades > TotalTrades[1] then{ BXcond = false; SXcond = false; if (IsExitName("bl",1) == true or IsExitName("bp",1) == true) Then BXcond = true; if (IsExitName("sl",1) == true or IsExitName("sp",1) == true) Then SXcond = true; } if Tcond == true then{ if MarketPosition <= 0 and Bxcond == false and (value1 > value2 and value3 > value4 and mav15[3] < mav15[2] and mav15[2] < mav15[1] and mav15[1] < mav15 and mav16[1] < mav16 and mav17[1] < mav17 and mav18[3] < mav18[2] and mav18[2] < mav18[1] and mav18[1] < mav18) Then buy("b1",OnClose,def,1); if MarketPosition <= 0 and Bxcond == false and (value1 > value2 and value3 < value4 and value5 > value6 and mav18[3] < mav18[2] and mav18[2] < mav18[1] and mav18[1] < mav18) Then buy("b2",OnClose,def,1); if MarketPosition == 1 Then{ if (mav17[1] < mav17 and mav18[1] < mav18 and CurrentContracts < 3) Then buy("bb1",OnClose,def,1); if (mav17[1] < mav17 and mav18[3] >= mav18[2] and mav18[2] <= mav18[1] and mav18[1] < mav18 and CurrentContracts < 5) Then buy("bb2",OnClose,def,1); if IsEntryName("b1") == true and (CrossDown(value1, value2)) or (CrossDown(value3, value4)) or (mav17[3] > mav17[2] and mav17[2] > mav17[1] and mav17[1] > mav17 and mav18[3] > mav18[2] and mav18[2] > mav18[1] and mav18[1] > mav18) Then ExitLong("bx1"); if IsEntryName("b2") == true and CrossDown(value5, value6) Then ExitLong("bx2"); ExitLong("bp",atlimit,AvgEntryPrice+PriceScale*익절틱수); ExitLong("bl",AtStop,AvgEntryPrice-PriceScale*손절틱수); } if MarketPosition >= 0 and Sxcond == false and (value1 < value2 and value3 < value4 and mav15[3] > mav15[2] and mav15[2] > mav15[1] and mav15[1] > mav15 and mav16[1] > mav16 and mav17[1] > mav17 and mav18[3] > mav18[2] and mav18[2] > mav18[1] and mav18[1] > mav18) Then sell("s1",OnClose,def,1); if MarketPosition >= 0 and Sxcond == false and (value1 < value2 and value3 > value4 and value5 < value6 and mav18[3] > mav18[2] and mav18[2] > mav18[1] and mav18[1] > mav18) Then sell("s2",OnClose,def,1); if MarketPosition == -1 then{ if mav17[1] > mav17 and mav18[1] > mav18 and CurrentContracts < 3 Then sell("ss1",OnClose,def,1); if mav17[1] > mav17 and mav18[3] <= mav18[2] and mav18[2] >= mav18[1] and mav18[1] > mav18 and CurrentContracts < 5 Then sell("ss2",OnClose,def,1); if IsExitName("s1") == true and (crossup(value1, value2)) or (crossup(value3, value4)) or (mav17[3] < mav17[2] and mav17[2] < mav17[1] and mav17[1] < mav17 and mav18[3] < mav18[2] and mav18[2] < mav18[1] and mav18[1] < mav18) Then ExitShort("sx1"); if IsExitName("s2") == true and crossup(value5, value6) Then ExitShort("sx2"); ExitShort("sp",atlimit,AvgEntryPrice-PriceScale*익절틱수); ExitShort("sl",AtStop,AvgEntryPrice+PriceScale*손절틱수); } } 위 수식에서 한가지 이상한 점이 있어 문의합니다 다른 수식은 정상으로 동작하지만 s2-ss1-ss2 ====== sx2 (모두청산)이 정상적으로 동작하지 않고 있습니다 b1-bb1-bb2 ====== bx1 모두청산정상 b2-bb1-bb2 ====== bx2 모두청산정상 s1-ss1-ss2 ====== sx1 모두청산정상 s2-ss1-ss2 ====== sx2 동작불가 sx1으로 동작 어떤 이유인지 모르겠습니다 계속 수정도 했지만 원인을 모르겠습니다 수정해 주시면 대단히 고맙겠습니다 매번 감사합니다
프로필 이미지
남산
2017-06-30
112
글번호 110887
시스템
답변완료

호가 단위를 리턴하는 함수

주식 거래 시스템작성중입니다 예를 들어 현물에서 1500원 짜리 주식은 호가단위가 5이고 10000원짜리 주식은 호가단위가 50원인데요 이렇듯이 이런 호가단위를 리턴해주는 함수는없나요?
프로필 이미지
여유로운투자
2017-06-30
119
글번호 110883
사용자 함수
답변완료

53862에 대한 재 부탁입니다

분봉에서 시가중심으로부터 고가가 저가보다 크다면 고가까지의 4등분선이 시가위 아래에 대칭되서 그려지게 해주실수 있는지요? 다음봉이 고가를 돌파하면 확장된4등분선이 시가위아래그려지게 해주시고 주가가 시가위 가장 윗선과 시가아래 가장 아래선사이에 머물면 사등분선은 평행을 유지하겠고 가장윗선과 아래선을 돌파(이탈)할때만 확장돼서 그려지겠지요 그러니까 장중내내 사등분선은 확장되거나 수평을 유지하거나 이겠고 수렴은 하지 않겠지요 그리고 가장 윗선과 가장 아래선 둘중 하나는 고가선이거나 저가선이겠지요 53862에 대한 수식을 적용하면 고가와 저가 한참 위 아래에 사등분선이 그려져서 다시 부탁드립니다 잘부탁합니다
프로필 이미지
매화산삼
2017-06-30
143
글번호 110882
지표
답변완료

지표문의

지표를 도출하는 기준이 지수평균과 단순이평에 따라 지표값이 다르게 도출된다는 걸 알았습니다. 예스트레이더에서는 스토캐스틱이 지수평균으로 값을 구한다고 하셨는데, 게시판을 찾아보니 단순평균을 구하는 식이 아래와 같이 나오는데, 이대로 쓰면 될까요? 단순평균방식 스토캐스틱 Input : Period(25), Period1(6),Period2(6); Var : value1(0), value2(0), value3(0), StoK(0), STOD(0); value1 = lowest(L,Period); value2 = highest(H,Period); value3 = (Close-value1)/(value2-value1)*100; StoK = ma(value3, Period1); StoD = ma(StoK, Period2); Plot1(StoK, "StochasticsK"); Plot2(StoD, "StochasticsD"); PlotBaseLine1(20, "기준선20"); PlotBaseLine2(80, "기준선80"); 그리고 Trix의 경우 타사는 eavg(Trix(Period),sigPeriod) 로 시그널 선을 구하는데 예스스탁에서는 ema(Trix(Period),sigPeriod)로 나옵니다. 근데, 예스스탁에서는 eavg 이란 명령어가 없던데 어떻게 해야 같은 값이 나올까요? 역시나 Trix 도 단순이평 기준으로 구하는 수식이 궁금합니다. MACD 같은방법 즉 단순이평으로 구하는 수식 부탁드립니다. 결국 질문은 스토캐스틱, Trix, MACD 의 단순이평 기준 수식 부탁드립니다. 항상 감사드립니다.
프로필 이미지
탄탄시스템
2017-06-30
155
글번호 110881
지표
답변완료

분봉 다운 로듬 문의 드립니다.

과거 분봉을 다운 받으려고 찾다가 아래 함수를 발견했는데요 종목을 여러개 받으려고 했더니 계속 동일 이름으로만 저장이 되는거 같은데 종목코드로 파일 이름이 자동으로 저장되게 할 수는 없을까요??? print("c.csv","%.2f,%.2f,%.2f,%.2f,%.2f",O,H,L,C,V);
프로필 이미지
등푸른생선
2017-06-30
120
글번호 110880
사용자 함수
답변완료

부탁 드립니다.

아래와 같이 과거 일시를 지정 하는 유형과 같은, 예를 들어 100봉전에 계산을 시작하는 피보나치 부탁 드릴까 합니다. 도움 주심에 경배로 감사 인사 올립니다. input:일시(20170629),시작시간(070000); Var : cond5(false); var:a5(0),b5(0),k5(0),HH5(0),LL5(0),TX(0),TX1(0); var99=일시; var1=시작시간; if sdate == var99 and (stime == var1 or (stime > var1 and stime[1] < var1)) then{ cond5 = true; HH5 = H; LL5 = L; } if cond5 == true then{ if H > HH5 Then HH5 = H; if L < LL5 Then LL5 = L; a5 = HH5; b5 = LL5; k5 =a5-b5; plot41((a5),"H",RED); plot42((k5*0.882+b5),"882",red); plot43((k5*0.764+b5),"764",yellow); plot44((k5*0.618+b5),"618",blue); plot47((k5*0.5+b5),"50",magenta); plot48((k5*0.382+b5),"382",green); plot49((k5*0.236+b5),"236",white); plot50((k5*0.118+b5),"118",black); plot55((b5),"L",black); }
프로필 이미지
yes
2017-06-30
122
글번호 110876
지표
답변완료

가중평균 문의드립니다

안녕하세요 관리자님!! 성심껏도와주시는데 꾸준한 수익은 아직 어렵네요^^ 다름이 아니오라 전일 분봉차트의 고,저,종가의 가중평균값을 기준선으로 하는 이격도를 만들고 싶습니다. 가중평균값이 움직임에 영향을 주는지 확인하고자 합니다 번거로우시더라도 부탁드립니다.
프로필 이미지
카카
2017-06-30
126
글번호 110875
지표
답변완료

체결강도 이평선 요청

체결 강도 이평선 으로 매매 수식요청 드립니다. MA (20.60) 수고 하십시요. 좋은 주말 되십시요
프로필 이미지
요타
2017-06-30
190
글번호 110867
시스템