커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식문의

안녕하세요 하기 조건으로 수식 부탁드립니다. 1. 조건 1.볼린져 밴드의 폭이 3봉이상 같거나 작아지고 있습니다. 2. ADX 라인에서 DP/DI가 모두 ADX 라인 아래에 있습니다. 3. 가격이 볼린져 상단에 닿을때 볼린져 이평은 3봉이상 연속 낮아지고 있습니다. 가격이 볼린져 하단에 닿을때 볼린져 이평은 3봉이상 연속 높아지고 있습니다. 상기 상황에서 무포인경우 가격이 볼린져 밴드 상단에 닿으면 매도진입 매수상황인 경우 매도 스윗칭 부탁드립니다. 무포인경우 가격이 볼린져 밴으 하단에 닿으면 매수진입 매도상황인 경우 매수 스위칭 부탁드립니다. 2. 한개의 봉이 50틱이상 나타나고, 종가가 볼린져 밴드 상단 밖에서 종가가 된 상태에 MACD oscillator 가 음에서 양이 되면 매도 진입 부탁드립니다 반대로 매수도 진행부탁드립니다. 한개의 봉이 50틱이상 나타나고, 종가가 볼린져 밴드 하단 밖에서 종가가 된 상태에 MACD oscillator 가 양에서 음이 되면 매수 진입 부탁드립니다. 청산 조건은 매수 진입후 음봉이 발생하면 청산 합니다. 매도 진입후 양봉이 발생하면 청산합니다. 감사합니다.
프로필 이미지
softtoug
2018-09-07
142
글번호 121875
시스템
답변완료

질문드립니다.

data4 1분봉에서 오후 10시 30분이 되면 페인트바. // 2. 여러가지 이평이 있는데 로직이 길어져서 간단히 정리하고 싶은데요. if 시가를 크로스다운하고, 5이평, 20이평, 50이평, 100이평 충 하나라도 크로스 다운하면, 페인트바 이렇게 가능할까요 감사합니다.
프로필 이미지
stockric
2018-09-06
156
글번호 121874
강조
답변완료

키움수식 변환 부탁드립니다.

- 함수명 : STOS(Period1, Period2) Sum(C-lowest(L, Period1), Period2) / Sum((highest(H, Period1)-lowest(L, Period1)), Period2) * 100 - 지표조건설정 P8 : 8 P5 : 5 S5 : 5 - 수식1 E = 2.718281828; NS = 0.1 * (STOS (P8,1) - 50); SS = EAVG (EAVG (NS, P5), P5); EX = POW (E, SS)-1; EY = POW (E, SS)+1; EX/EY - 수식2 EAVG(EX/EY, S5)
프로필 이미지
jongkil2
2018-09-06
265
글번호 121873
지표
답변완료

지표

아래지표는 게시판 뒤지다가 발견한건대요 지표로 만들고 싶은거는 파랑에 맨위 선하고 빨강에 맨 아래선만 남겨두고 다 지워버리고 싶구요 시스탬으로는 선이 파랑으로 나오면 매도 빨강이면 매수로 부탁드립니다. Input:length(12),per1(23.7),per2(38.2),per3(50.0),Per4(61.8),per5(74.6),굵기(6); Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),diff(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); For j = 0 To 9 { barArr[j] = barArr[j] + 1; } Condition1 = Highest(H,length) == H and lastHiVal <> H; Condition2 = Lowest(L,length) == L and lastLoVal <> L; If Condition1 Then lastHiVal = H; If Condition2 Then lastLoVal = L; turnPntBit = ""; If Condition1 and Condition2 Then { If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then turnPntBit = "HiLo"; Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi"; Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo"; } Else If Condition1 Then turnPntBit = "Hi"; Else If Condition2 Then turnPntBit = "Lo"; // if 전환점구분에 값이 있을 때만 then 아래 실행, 없으면 통과 If turnPntBit <> "" Then { If turnPntBit == "HiLo" Then { valArr[1] = IFF(turnPntArr[1] == "Hi",H,L); barArr[1] = 0; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); If turnPntArr[1] == "Hi" Then turnPntBit = "Lo"; Else turnPntBit = "Hi"; } If turnPntBit <> turnPntArr[1] Then { for j = 8 downto 1 { valArr[j+1] = valArr[j]; barArr[j+1] = barArr[j]; turnPntArr[j+1] = turnPntArr[j]; } } If turnPntBit <> turnPntArr[1] or (turnPntBit == turnPntArr[1] and ((turnPntBit == "Hi" and valArr[1] < H) or (turnPntBit == "Lo" and valArr[1] > L))) Then { valArr[1] = IFF(turnPntBit == "Hi",H,L); barArr[1] = 0; turnPntArr[1] = turnPntBit; If turnPntArr[1][1] <> turnPntArr[1][0] Then TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2], sDate[barArr[1]],sTime[barArr[1]],valArr[1]); Else TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); } } TL_SetSize(TL1,4); TL_SetColor(TL1,WHITE); if turnPntArr[1] != turnPntArr[1][1] and barArr[3] > 0 Then{ if turnPntArr[2] == "Hi" then{ value1 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[3]],sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]); value2 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]],sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]); diff = abs(L[barArr[3]]-H[barArr[4]]); value3 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per1/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per1/100)); value4 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per2/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per2/100)); value5 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per3/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per3/100)); value6 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per4/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per4/100)); value7 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[4]]-diff*(per5/100),sdate[barArr[2]],stime[barArr[2]],H[barArr[4]]-diff*(per5/100)); TL_SetColor(value1,RED); TL_SetColor(value2,RED); TL_SetColor(value3,RED); TL_SetColor(value4,RED); TL_SetColor(value5,RED); TL_SetColor(value6,RED); TL_SetColor(value7,RED); TL_SetSize(value1,굵기); TL_SetSize(value2,굵기); TL_SetSize(value3,굵기); TL_SetSize(value4,굵기); TL_SetSize(value5,굵기); TL_SetSize(value6,굵기); TL_SetSize(value7,굵기); } Else{ value1 = TL_New(sdate[barArr[3]],stime[barArr[3]],H[barArr[3]],sdate[barArr[2]],stime[barArr[2]],H[barArr[3]]); value2 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]],sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]); diff = abs(L[barArr[4]]-H[barArr[3]]); value3 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per1/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per1/100)); value4 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per2/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per2/100)); value5 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per3/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per3/100)); value6 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per4/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per4/100)); value7 = TL_New(sdate[barArr[3]],stime[barArr[3]],L[barArr[4]]+diff*(per5/100),sdate[barArr[2]],stime[barArr[2]],L[barArr[4]]+diff*(per5/100)); TL_SetColor(value1,blue); TL_SetColor(value2,blue); TL_SetColor(value3,blue); TL_SetColor(value4,blue); TL_SetColor(value5,blue); TL_SetColor(value6,blue); TL_SetColor(value7,blue); TL_SetSize(value1,굵기); TL_SetSize(value2,굵기); TL_SetSize(value3,굵기); TL_SetSize(value4,굵기); TL_SetSize(value5,굵기); TL_SetSize(value6,굵기); TL_SetSize(value7,굵기); } } TL_Delete(value11); TL_Delete(value12); TL_Delete(value13); TL_Delete(value14); TL_Delete(value15); TL_Delete(value16); TL_Delete(value17); TL_Delete(value21); TL_Delete(value22); TL_Delete(value23); TL_Delete(value24); TL_Delete(value25); TL_Delete(value26); TL_Delete(value27); if turnPntArr[1] == "Hi" then{ value11 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]],sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]); value12 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]],sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]); diff = abs(L[barArr[3]]-H[barArr[2]]); value13 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per1/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per1/100)); value14 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per2/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per2/100)); value15 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per3/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per3/100)); value16 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per4/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per4/100)); value17 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]]-diff*(per5/100),sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per5/100)); TL_SetColor(value11,red); TL_SetColor(value12,red); TL_SetColor(value13,red); TL_SetColor(value14,red); TL_SetColor(value15,red); TL_SetColor(value16,red); TL_SetColor(value17,red); TL_SetSize(value11,굵기); TL_SetSize(value12,굵기); TL_SetSize(value13,굵기); TL_SetSize(value14,굵기); TL_SetSize(value15,굵기); TL_SetSize(value16,굵기); TL_SetSize(value17,굵기); value21 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[1]],sdate,stime,H[barArr[1]]); value22 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]],sdate,stime,L[barArr[2]]); diff = abs(L[barArr[2]]-H[barArr[1]]); value23 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per1/100),sdate,stime,L[barArr[2]]+diff*(per1/100)); value24 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per2/100),sdate,stime,L[barArr[2]]+diff*(per2/100)); value25 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per3/100),sdate,stime,L[barArr[2]]+diff*(per3/100)); value26 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per4/100),sdate,stime,L[barArr[2]]+diff*(per4/100)); value27 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[2]]+diff*(per5/100),sdate,stime,L[barArr[2]]+diff*(per5/100)); TL_SetColor(value21,blue); TL_SetColor(value22,blue); TL_SetColor(value23,blue); TL_SetColor(value24,blue); TL_SetColor(value25,blue); TL_SetColor(value26,blue); TL_SetColor(value27,blue); TL_SetSize(value21,굵기); TL_SetSize(value22,굵기); TL_SetSize(value23,굵기); TL_SetSize(value24,굵기); TL_SetSize(value25,굵기); TL_SetSize(value26,굵기); TL_SetSize(value27,굵기); } Else{ value11 = TL_New(sdate[barArr[2]],stime[barArr[2]],H[barArr[2]],sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]); value12 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]],sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]); diff = abs(L[barArr[3]]-H[barArr[2]]); value13 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per1/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per1/100)); value14 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per2/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per2/100)); value15 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per3/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per3/100)); value16 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per4/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per4/100)); value17 = TL_New(sdate[barArr[2]],stime[barArr[2]],L[barArr[3]]+diff*(per5/100),sdate[barArr[1]],stime[barArr[1]],L[barArr[3]]+diff*(per5/100)); TL_SetColor(value11,blue); TL_SetColor(value12,blue); TL_SetColor(value13,blue); TL_SetColor(value14,blue); TL_SetColor(value15,blue); TL_SetColor(value16,blue); TL_SetColor(value17,blue); TL_SetSize(value11,굵기); TL_SetSize(value12,굵기); TL_SetSize(value13,굵기); TL_SetSize(value14,굵기); TL_SetSize(value15,굵기); TL_SetSize(value16,굵기); TL_SetSize(value17,굵기); value21 = TL_New(sdate[barArr[1]],stime[barArr[1]],L[barArr[1]],sdate,stime,L[barArr[1]]); value22 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]],sdate,stime,H[barArr[2]]); diff = abs(L[barArr[1]]-H[barArr[2]]); value23 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per1/100),sdate,stime,H[barArr[2]]-diff*(per1/100)); value24 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per2/100),sdate,stime,H[barArr[2]]-diff*(per2/100)); value25 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per3/100),sdate,stime,H[barArr[2]]-diff*(per3/100)); value26 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per4/100),sdate,stime,H[barArr[2]]-diff*(per4/100)); value27 = TL_New(sdate[barArr[1]],stime[barArr[1]],H[barArr[2]]-diff*(per5/100),sdate,stime,H[barArr[2]]-diff*(per5/100)); TL_SetColor(value21,red); TL_SetColor(value22,red); TL_SetColor(value23,red); TL_SetColor(value24,red); TL_SetColor(value25,red); TL_SetColor(value26,red); TL_SetColor(value27,red); TL_SetSize(value21,굵기); TL_SetSize(value22,굵기); TL_SetSize(value23,굵기); TL_SetSize(value24,굵기); TL_SetSize(value25,굵기); TL_SetSize(value26,굵기); TL_SetSize(value27,굵기); }
프로필 이미지
야크
2018-09-06
180
글번호 121871
지표
답변완료

확인부탁입니다

#,안녕하세요 ㅡ,59200 답변수식에서~ 보내주신수식을 최대건수로 적용해도 차트에 구현되지 않습니다 다시한번 살펴주시길 부탁드립니다, ##,언제나 늘 고맙습니다.
프로필 이미지
회원
2018-09-06
166
글번호 121870
지표
답변완료

수식 검토 부탁드립니다.

시스템식을 만들려고 하는데 지식이 짧아 좀 무식하게 작성을 해 봤는데, 석연치 않아서 검토 부탁드립니다. 매수조건: A > A' (=조건1) and B > B'(=조건3) and C > C' (=조건5) 이면 매수 청산조건: 만약 위의 조건 중 하나라도 안맞으면 청산 하는 식 좀 부탁드립니다. ex) A <= A'(조건2) , B <= B(조건4) , C <= C'(조건6) 하나라도 있으면 청산! <작성 수식> (input 과 var 작성은 생략했습니다.) condition1 = A > A' ; condition2 = A <= A' ; condition3 = B > B'; condition4 = B <= B'; condition5 = C > C' ; condition6 = C <= C' ; if condition1 and condition3 and condition5 then buy(); if condition2 or condition4 or condition6 then Exitlong(); 감사합니다.
프로필 이미지
theogo66
2018-09-06
144
글번호 121868
시스템
답변완료

함수요청

안녕하세요? 아래는 하나금융투자에서 사용했던 전략입니다. 한국투자증권에서도 사용할 수 있도록 함수변환 요청드립니다. Param : SLpoint(1),PTpoint(1); var :SP(0); SP = SignalPosition; Value2 = 15 - dayofweek((10000 * Year(D)) + (100 * 3) + 1); // 3월 두번째 일요일 날짜 value4 = 8 - dayofweek((10000 * Year(D)) + (100 * 11) + 1); // 11월 첫번째 일요일 날짜 If date > (10000 * Year(D)) + (100 * 3) + value2 And date < (10000 * Year(D)) + (100 * 11) + value4 Then SetStopEndofday(033000) Else SetStopEndofday(043000); if time = 223100 Then Begin if C > O Then Buy("Buy",Atmarket) Else if C < O Then Sell("Sell",Atmarket); End; if time = 223600 Then Begin if C > O Then Begin if SP = 1 Then Buy("Buy2", Atmarket) Else if SP = -1 Then ExitShort("ES",Atmarket); End Else if C < O Then Begin if SP = -1 Then Sell("Sell2", Atmarket) Else if SP = 1 Then ExitLong("EL",Atmarket); End; End; SetStopLoss(SLpoint ,pointstop); SetStopProfittarget(PTpoint,pointstop);
프로필 이미지
흰둥이아빠
2018-09-06
155
글번호 121867
시스템
답변완료

손절 프로그램 문의합니다.

시스템 프로그램 작성코자 합니다. 해외 선물 청산 프로그램 설계시 1. 종목 GC(Gold) 매수 단가에서 5틱 손실 발생할 경우 자동적 시장가 청산식 2. 매도 단가에서 10틱 손실 발생할 경우 자동적 시장가 청산식 초보 임을 감안해서 부탁합니다.
프로필 이미지
바라코드
2018-09-06
158
글번호 121866
시스템

달마7 님에 의해서 삭제되었습니다.

프로필 이미지
달마7
2018-09-06
10
글번호 121865
시스템