커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 수정 부탁합니다.

아래와 같이 9시부터 매매 시작해서 23시 55분봉 종가에서 청산하는 수식을 9시부터 매매해서 23시 55분 전까지만 진입 허용하고, 청산은 다음날 5시에 하는 식으로 변경 부탁합니다. input : starttime(090000),endtime(235500); var : Tcond(false); if (sdate != sdate[1] and stime >= starttime) or (sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then { Tcond = true; } if (sdate != sdate[1] and stime >= endtime) or (sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then { Tcond = false; if MarketPosition == 1 Then ExitLong("bx"); if MarketPosition == -1 Then ExitShort("sx"); } if Tcond == true then {
프로필 이미지
란돌
2020-11-24
440
글번호 144154
시스템
답변완료

국내 주식 수식 보완좀 부탁드릴께요~~

국내주식입니다. (삼성전자) 문의:차트설정을 data1로 일봉으로 설정하면 되나요? 아니면 분봉으로 설정해야되나요? 아니면 같은 종목을 data1(10분봉) 과 data2(일봉) 로 구분해야할까요? 알려주시면 감사하겠습니다. 매수 조건 ( 누적 매수 ) * 오후 3시 10분에 아래조건에 해당하는 상황에 맞는 조건에 매수 진입 1. MFI(14) < 30 일때 10만원 진입 2. MFI(14) < 20 일때 20만원 진입 4. MFI(14) < 10 일때 30만원 진입 5. RSI(14) < 30 일때 10만원 진입 6. RSI(14) < 20 일때 20만원 진입 7. RSI(14) < 10 일때 30만원 진입 예를들어 오후 3시 10분에 MFI(14)< 15 이면서 RSI(14)< 25 이라면 20만원+10만원 총 30만원 매수 진행 입니다. 매수 청산 조건 * 오전 9시 10분에 아래조건에 해당하는 조건시 분할매도( 동일금액 25%씩 4일에 걸쳐 청산) 1. MFI(14) > 80 또는 RSI(14) > 70 일때 ================================================================================ 아래수식으로 잘 활용하고 있습니다. 그런데 개선점을 발견했습니다. 매도 조건 발생시 보유분의 일정분량만큼 분할매도로 청산하는 수식인데요... 분할매도되는 조건에서는 신규 매수가 않되게 수식 보정 부탁드리겠습니다 아래수식입니다. ============================================================================== input : 시작일(19001107); input : 일봉RSI기간(30); input : 일봉RSI값1(52),일봉RSI값2(36),일봉RSI값3(30); input : 최대투자금액(500); input : 진입금액1(5); input : 진입금액2(15); input : 진입금액3(20); input : 진입금액4(25); input : 진입금액5(30); input : 진입금액6(35); input : 진입금액7(40); input : 진입금액8(50); input : 진입금액9(60); input : 진입금액10(70); input : 이차진입금액(100); input : 삼차진입금액(200); input : MFI기간(15),MFI값(90); input : 심리도기간(15),심리도값(80); input : 분할매도횟수(50); input : 분할매도퍼센트(2); input : 청산수익률(4); var : mav(0,data2),MM(0,Data3),SS(0,Data3); var : MMM(0,Data2),SSS(0,Data2),Xcnt(0,Data2),Xvol(0,data1); MM = Data3(mfi(MFI기간)); SS = Data3(Simrido(심리도기간)); MMM = Data2(mfi(MFI기간)); SSS = Data2(Simrido(심리도기간)); var : vol(0); var : RSI2(0,Data2); RSI2 = Data2(RSI(일봉RSI기간)); if Data1(sDate) >= 시작일 Then { if MarketPosition == 0 or (MarketPosition == 1 and AvgEntryPrice*CurrentContracts < 최대투자금액*10000 ) Then { if data1(sTime == 93000 or sTime == 120000 ) Then # or sTime == 123000 { if Data2(RSI2 > 일봉RSI값1) Then { if MarketPosition == 0 or (MarketPosition == 1 and C >= AvgEntryPrice*0.98) Then vol = Floor(진입금액1*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.98 and C >= AvgEntryPrice*0.96 Then vol = Floor(진입금액2*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.96 and C >= AvgEntryPrice*0.94 Then vol = Floor(진입금액3*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.94 and C >= AvgEntryPrice*0.92 Then vol = Floor(진입금액4*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.92 and C >= AvgEntryPrice*0.90 Then vol = Floor(진입금액5*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.90 and C >= AvgEntryPrice*0.88 Then vol = Floor(진입금액6*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.88 and C >= AvgEntryPrice*0.86 Then vol = Floor(진입금액7*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.86 and C >= AvgEntryPrice*0.84 Then vol = Floor(진입금액8*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.84 and C >= AvgEntryPrice*0.82 Then vol = Floor(진입금액9*10000/c); if MarketPosition == 1 and C < AvgEntryPrice*0.82 and C >= AvgEntryPrice*0.80 Then vol = Floor(진입금액10*10000/c); Buy("불타기매매1",OnClose,DEf,vol); } if Data2(RSI2 < 일봉RSI값2 and RSI2 > 일봉RSI값3 ) Then { Buy("하락과도매매1",OnClose,DEf,Floor(이차진입금액*10000/c)); } if Data2(RSI2 < 일봉RSI값3) Then { Buy("폭락과도매매1",OnClose,DEf,Floor(삼차진입금액*10000/c)); } } } } SetStopProfittarget(청산수익률,PercentStop); if MM > MFI값 or SS > 심리도값 or MMM > MFI값 or SSS > 심리도값 Then { xcnt = xcnt+1; if Xcnt <= (분할매도횟수-1) Then Xvol = Floor(MaxContracts*분할매도퍼센트/100); else Xvol = CurrentContracts; if Xcnt <= 분할매도횟수 Then exitlong("청산",atlimit,C,"",Xvol,2); } Else xcnt = 0;
프로필 이미지
이형지
2020-11-29
598
글번호 144153
시스템

양치기 님에 의해서 삭제되었습니다.

프로필 이미지
양치기
2020-11-24
15
글번호 144152
시스템
답변완료

문의

ATR 지표를 캔들차트에 넣고 싶습니다. ATR값의 3배 정도의 밴드형태로 그려 넣고 싶습니다.
프로필 이미지
엉덩공주
2020-11-23
690
글번호 144150
지표
답변완료

수정 부탁드립니다.

안녕하세요? 잘 안되는 부분 두가지가 있어서 도움요청 드립니다. 1) (진입음봉,진입양봉 은 외부변수로 지정한틱수 그대로 인식하고, 전봉음봉과 전봉양봉 은 외부변수로 지정한 틱수 보다 클떄) 이 조건이 충족되었을때 진입 신호로 인식되었 으면 좋겠습니다. 2) 짧은지식으로 이렇게 저렇게 수식을 건드려보았지만, 가장고치고 싶은부분이 재진입 부 분입니다. 재진입은 한번만 되었으면좋겠는데, 반복이 되고있습니다. 재진입 신호가 나온후 설정해놓은 익절/손절이 될때까지 추가로 재진입은 안이루어지게 하고싶습니다. 감사합니다. input : 전봉음봉(5),진입음봉(5); input : 전봉양봉(5),진입양봉(5); input : p1(5),p2(20); input : entrycnt(3),profit(50),loss(50); var1 = ma(c,p1); var2 = ma(c,p2); if MarketPosition == 0 and var1 > Var2 and C <= O-진입음봉*PriceScale and C[1] == O[1]-전봉음봉*PriceScale then sell("s"); if MarketPosition == 0 and var1 < Var2 and C >= O+진입양봉*PriceScale and C[1] == O[1]+전봉양봉*PriceScale then buy("b"); if MarketPosition == -1 and BarsSinceEntry <= 3 and C > O Then Buy("sb"); if MarketPosition == 1 and BarsSinceEntry <= 3 and C < O Then Sell("bs"); SetStopProfittarget(PriceScale*profit,PointStop); SetStopLoss(PriceScale*loss,PointStop);
프로필 이미지
대구어린울프
2020-11-23
773
글번호 144149
시스템
답변완료

재문의 드립니다.

수고 하십니다. 죄송하지만 다시 한번 문의 드립니다. 수식작성 해주신것은 글과 맞지만 저가 설명을 잘못 했습니다. 69936번 수식작성 재문의 드립니다. *. 고점 발생후 value2(0.618) 아래저점중 작은 저점을 변수 a1의 저장입니다. 첨부된 그림을 보시면 검정색이 value2 입니다. value2 아래 저점 두개 11976 과 11962.50 중 작은 값인 11962.50 을 변수 a1에 저장입니다. 그이후 고점갱신시 녹색부분인 a1[1]을 라인 출력 하는 수식입니다. 반대쪽인 value3 도 부탁드립니다. 파동의 고점중에 높은 값을 b1에 저장입니다. 감사합니다. 기존 69936번 수식입니다. var : a1(0),a2(0),a3(0); var : b1(0),b2(0),b3(0); value1 = DayHigh; value2 = daylow+(DayHigh-DayLow)*0.618; value3 = daylow+(DayHigh-DayLow)*0.382; value4 = daylow; if Bdate != Bdate[1] Then { a1 = 0; a2 = Index; a3 = 0; b1 = 0; b2 = Index; b3 = 0; } Else { if h > DayHigh(0)[1] Then { a1 = 0; a2 = Index; b3 = 0; if a1[1] > 0 Then a3 = a1[1]; } if l < DayLow(0)[1] Then { b1 = 0; b2 = Index; a3 = 0; if b1[1] > 0 Then b3 = b1[1]; } } if a1 == 0 and S == 1 and S != S[1] and 저[1,2] > a2 and 저[1,1] < value2[Index-저[1,2]] and 저[1,1] > value4[Index-저[1,2]] Then a1 = 저[1,1]; if b1 == 0 and S == -1 and S != S[1] and 고[1,2] > b2 and 고[1,1] > value3[Index-고[1,2]] and 고[1,1] < value1[Index-고[1,2]] Then b1 = 고[1,1]; if a3 > 0 then Plot1(a3); if b3 > 0 then Plot2(b3);
프로필 이미지
상중하
2020-11-23
749
글번호 144144
지표
답변완료

70006 번 답글 달아주신 시스템 식이 오류가 납니다.

안녕하세요. 지난 번에 질문 드린 내용에 대해 알려주신 시스템 식이 오류가 나는데 확인 한 번 부탁드립니다. 내용은 지난번 70006번 게시물 아래에 답변글로 상세하게 적어놓았습니다. 감사합니다.
프로필 이미지
doublnim
2020-11-23
544
글번호 144133
시스템
답변완료

차트 배경 화면 관련 문의

파라볼릭에서요 수치는 기본값 최대값 0.2 증가분 0.02로 세팅이 되어 있던데.. 이럴 경우 상승할때는 점선을 위에, 하락할때는 점섬을 아래에 나타내 주는데 차트 배경을 상승인 경우 노란색, 하락일 경우 회색으로 표시하고 싶은데 이럴경우 어떻게 해야 하는지 몰라서 문의 드립니다. 감사합니다
프로필 이미지
머니사이언스
2020-11-23
589
글번호 144131
강조
답변완료

수식 문의

수식 문의 드립니다. 첨부한 예전 수식을 수정하는 내용입니다. 감사드립니다.
프로필 이미지
에구머니
2020-11-23
558
글번호 144123
시스템