커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁 드립니다.

도움 주심에 감사 드립니다. 아래 수식이 그림과 같이 그려지도록 부탁 드립니다. 미리 감사 드립니다. Input:length(10); Var:TL1(0),TL2(0),TL2_exist(0),color(0), 종가사용여부(0), // 종가로 계산하려면 1로 설정한다. TL_NewBit(0), // 1:NewLine 2:SetEndLine slope(0),mid_idx(0),mid_val(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# Value1 = HiLoLineZigZag(length,종가사용여부,고,저,TL_NewBit); // HiLoLineZigZag는 사용자함수입니다. 링크에서 내려받으세요.. If Value1 == 1 Then { // 고점 If TL_NewBit == 1 Then { // 신규 If 고[2,1] < 고[1,1] Then { // 신규 고점이 이전 고점을 상향 돌파 // y = 기울기 * x + 절편 // x = (y - 절편) / 기울기 // y = 고[2,1] // 절편 = 저[1,1] slope = (고[1,1] - 저[1,1]) / (고[1,2] - 저[1,2]); // 추세선의 기울기 mid_idx = Floor((고[2,1] - 저[1,1]) / slope); // 고[2,1]과 만나는 지점 mid_val = slope * mid_idx + 저[1,1]; Var1 = Index - (저[1,2] + mid_idx); // 추세선의 중간지점 x좌표 TL1 = TL_New(저[1,3],저[1,4],저[1,1],sDate[Var1],sTime[Var1],mid_val); TL2 = TL_New(sDate[Var1],sTime[Var1],mid_val,고[1,3],고[1,4],고[1,1]); Var2 = Index - 저[1,2]; // 이전 색깔을 따라감 TL_SetColor(TL1,color[Var2]); color = RED; // 상향 돌파했으므로 빨간색으로 전환 TL_SetColor(TL2,color); TL2_exist = 1; // 추세선 2개를 연결해서 그린 것이므로 추세선이 2개임을 저장 } Else { TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetColor(TL1,color); TL2_exist = 0; } } If TL_NewBit == 2 Then { // 연장 TL_Delete(TL1); If TL2_exist == 1 Then TL_Delete(TL2); // 추세선이 2개면 두번째 추세선도 삭제 If 고[2,1] < 고[1,1] Then { slope = (고[1,1] - 저[1,1]) / (고[1,2] - 저[1,2]); mid_idx = Floor((고[2,1] - 저[1,1]) / slope); mid_val = slope * mid_idx + 저[1,1]; Var1 = Index - (저[1,2] + mid_idx); TL1 = TL_New(저[1,3],저[1,4],저[1,1],sDate[Var1],sTime[Var1],mid_val); TL2 = TL_New(sDate[Var1],sTime[Var1],mid_val,고[1,3],고[1,4],고[1,1]); Var2 = Index - 저[1,2]; TL_SetColor(TL1,color[Var2]); color = RED; TL_SetColor(TL2,color); TL2_exist = 1; } Else { TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetColor(TL1,color); TL2_exist = 0; } } } Else If Value1 == -1 Then { // 저점 If TL_NewBit == 1 Then { // 신규 If 저[2,1] > 저[1,1] Then { slope = (저[1,1] - 고[1,1]) / (저[1,2] - 고[1,2]); mid_idx = Floor((저[2,1] - 고[1,1]) / slope); mid_val = slope * mid_idx + 고[1,1]; Var1 = Index - (고[1,2] + mid_idx); TL1 = TL_New(고[1,3],고[1,4],고[1,1],sDate[Var1],sTime[Var1],mid_val); TL2 = TL_New(sDate[Var1],sTime[Var1],mid_val,저[1,3],저[1,4],저[1,1]); Var2 = Index - 고[1,2]; TL_SetColor(TL1,color[Var2]); color = BLUE; TL_SetColor(TL2,color); TL2_exist = 1; } Else { TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetColor(TL1,color); TL2_exist = 0; } } If TL_NewBit == 2 Then { // 연장 TL_Delete(TL1); If TL2_exist == 1 Then TL_Delete(TL2); If 저[2,1] > 저[1,1] Then { slope = (저[1,1] - 고[1,1]) / (저[1,2] - 고[1,2]); mid_idx = Floor((저[2,1] - 고[1,1]) / slope); mid_val = slope * mid_idx + 고[1,1]; Var1 = Index - (고[1,2] + mid_idx); TL1 = TL_New(고[1,3],고[1,4],고[1,1],sDate[Var1],sTime[Var1],mid_val); TL2 = TL_New(sDate[Var1],sTime[Var1],mid_val,저[1,3],저[1,4],저[1,1]); Var2 = Index - 고[1,2]; TL_SetColor(TL1,color[Var2]); color = BLUE; TL_SetColor(TL2,color); TL2_exist = 1; } Else { TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetColor(TL1,color); TL2_exist = 0; } } } TL_SetSize(TL1,2); TL_SetSize(TL2,2); 적용된 함수식) //함수명--->HiLoLineZigZag Input:Length(NumericSimple),useCLprice(NumericSimple), oHiZZ[MaxSize1,MaxSize2](NumericArrayRef), // 열번호 1:가격,2:Index,3:sDate,4:sTime oLoZZ[MaxSize3,MaxSize4](NumericArrayRef), oTL_NewBit(NumericRef); // 1:NewLine 2:SetEndLine Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""); #==========================================# HH = IFF(useCLprice==1,C,H); LL = IFF(useCLprice==1,C,L); If Index == 0 Then { oHiZZ[1,1] = HH; oLoZZ[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then { // 기간고점과 기간저점 동시 발생 If oHiZZ[1,1] < HH and oLoZZ[1,1] > LL Then { // 기존의 파동을 벗어난 경우 If HH - oHiZZ[1,1] > oLoZZ[1,1] - LL Then // 많이 벗어난 쪽으로 처리 처리구분 = "고점처리"; Else If HH - oHiZZ[1,1] < oLoZZ[1,1] - LL Then 처리구분 = "저점처리"; Else If 최종꼭지점 == "저점" Then // 벗어난 정도가 동일하면 지그재그 순서대로 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } Else If oLoZZ[1,1] > LL Then 처리구분 = "저점처리"; Else If oHiZZ[1,1] < HH Then 처리구분 = "고점처리"; Else If 최종꼭지점 == "저점" Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; oTL_NewBit = 0; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { oHiZZ[j,jj] = oHiZZ[j-1,jj]; } } oHiZZ[1,1] = HH; oHiZZ[1,2] = Index; oHiZZ[1,3] = sDate; oHiZZ[1,4] = sTime; oTL_NewBit = 1; } Else If oHiZZ[1,1] < HH Then { // 1번 고점보다 높은 고가 출현 oHiZZ[1,1] = HH; oHiZZ[1,2] = Index; oHiZZ[1,3] = sDate; oHiZZ[1,4] = sTime; oTL_NewBit = 2; } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { oLoZZ[j,jj] = oLoZZ[j-1,jj]; } } oLoZZ[1,1] = LL; oLoZZ[1,2] = Index; oLoZZ[1,3] = sDate; oLoZZ[1,4] = sTime; oTL_NewBit = 1; } Else If oLoZZ[1,1] > LL then { oLoZZ[1,1] = LL; oLoZZ[1,2] = Index; oLoZZ[1,3] = sDate; oLoZZ[1,4] = sTime; oTL_NewBit = 2; } 최종꼭지점 = "저점"; } If 최종꼭지점 == "고점" Then HiLoLineZigZag = 1; Else If 최종꼭지점 == "저점" Then HiLoLineZigZag = -1; Else HiLoLineZigZag = 0;
프로필 이미지
yes
2018-07-09
382
글번호 120406
지표
답변완료

수식 부탁드립니다

5,20이평 골든크로스일때 최고가를 연결하는선 5,20이평 데드트로스일때 최저가를 연결하는선
프로필 이미지
없음
2018-07-09
183
글번호 120405
지표
답변완료

문의드립니다

안녕하세요. 피보나치 수식 하나 부탁드립니다. 전일 종가를 저점으로 하고, 당일 고가를 고점으로 하는 기본식인데... 전일 종가보다 당일 저가가 더 낮으면, 저점을 당일의 저가로 합니다. 지수가 하락을 하게될 경우를 생각해서 고점 역시 당일의 고가보다 전일 종가가 높으면 고점은 전일의 종가로 합니다. 이상을 바탕으로 피보나치 수식 부탁 드리겠습니다. 수고하세요^^
프로필 이미지
쿠루드
2018-07-09
198
글번호 120404
지표
답변완료

시간조정

아래식을 아침9시 이후 부터 오후3시까지 범위 안에서만 신호가 나올수 있도록 만들어 주십시오. 가능하면 시간 조정을 할수 있도록 부탁 드립니다. Input : af1(0.02), maxAF1(0.2); Input : af2(0.02), maxAF2(0.2); input : P(60); var : sarv1(0),sarv2(0),mav(0); sarv1 = sar(af1,maxAF1); sarv2 = sar(af2,maxAF2); mav = ma(C,P); If C > sarv1 and C > mav Then { if C > sarv1 Then Buy(); Else ExitShort(); } If C < sarv1 and C < mav Then { if C < sarv2 Then Sell(); Else ExitLong(); }
프로필 이미지
뚜벅뚜벅
2018-07-09
173
글번호 120403
시스템
답변완료

하나씩 해 보겠슴다.

기계어라고는 생전 배워본 적이 한 번도 엄서서, ㅜㅜ 이건 머 아랍어 배우는 듯 함다. ㅜㅜ 제가 만들고 싶은 그림은 아래와 같슴다. [설정팩터] 1. 시간 : 시간을 입력해 두면 1분봉상 그 시간의 시작가를 인식 (예 10:00 입력해 두면 10:00의 시작가를 인식) 2. 매수/매도 : 매수를 선택하면 그 시간의 현재가로 매수 진입(예 10:00 입력해 두면 10:00의 시작가로 매수 진입) 3. 간격설정 : 1X3하면 1틱 단위로 3계약 추가 진입(물타기). 2X5면 2틱씩 5계약이 추가 4. 청산 : 10틱을 입력하면 시작가의 10틱 도달시 모든 이익청산 5. 손절 : 20틱을 입력하면 시작가의 20틱 도달시 모든 손절청산 6. 만약 1계약도 체결되지 않았으나, 시작가의 청산/손절 틱에 도달시 진입 설정한 모든 포지션은 취소 7. 보유포지션이 장 종료까지 익절/손절되지 않았다면 15:40에 시장가 청산 [수식] 1,2,4,5,7번을 다른 분들 질문하신 것을 참조해서 만들어봤는데, 맞을까요?? if stime == 100000 or(stime > 100000 and stime[1] < 100000) Then buy(); SetStopProfittarget(PriceScale*10, PointStop); SetStopLoss(PriceScale*20, PointStop); if stime == 154000 or (stime > 154000 and stimep[1] < 154000) Then ExitLong(); [문의] 1. 3번은 호가창에서 멀티주문을 이용하면 될까 싶은데, 이것도 수식으로 할 수는 있는 걸까요?? 2. 6번은 취소주문은 다른분들 문의사항을 보니까 안되어서 수동으로 해야 한다고 했는데 아직 그렇슴까?? 감사함다. ^^
프로필 이미지
kenshinn
2018-07-10
238
글번호 120402
시스템
답변완료

시스템 질문드립니다

120일 최저가와 최고가의 절반가격인 중심선에 현재가가 터치를 하면 봉완성 되지 않더라도 바로 매수진입 (일봉상에서 가능한지여부, 전일봉을 참조해서 하는방법도 있을것 같은데 잘모르겠네요 ) 진입이후에는 중심선 대비 +5%되면 익절, -5%되면 손절 한번매수가 진행된 라인에 대해서는 두번진입은 하지않고 고가가 갱신되면, 다시 진입 시스템좀 부탁드려요, 젤 중요한건 일봉상 그 가격대가 되면 매수를 해야되는데, 아무리 해도 다음봉에서 매수를하네요 초보라 어렵습니다 부탁드려요
프로필 이미지
동작맨
2018-07-09
194
글번호 120401
시스템
답변완료

수식 문의 드려요

안녕하세요! 한번더 문의드립니다 1, 선물지수가 특정이평선(예 20일선)을 (위 혹은 아래로)돌파시 그 돌파방향에있는 "그당시 옵션 등가차트의 같은이평선"(예 콜295나 풋295의 20일선)을 다시 정확히 찍을때(꼬리로 찍어도 적용) 음성이나 다른 표시를 차트에 나타나게하고싶습니다 가능하다면 수식뿐아니라 적용방법이나 순서등 될수있는한 자세한 설명 부탁드리겠습니다 아직왕초보인 관계로 모르는것이 많습니다 ㅎ 감사합니다 ^^
프로필 이미지
유로파54
2018-07-09
186
글번호 120400
지표

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2018-07-09
17
글번호 120388
시스템
답변완료

수식문위 드립니다

10이평,20이평 골든크로스 상태면 음봉종가에 매수신호 반대면,,,,,,,양봉종가에 매도신호 부탁 드립니다
프로필 이미지
이공주7
2018-07-09
156
글번호 120386
시스템