커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

다니엘87 님에 의해서 삭제되었습니다.

프로필 이미지
다니엘87
2014-11-04
0
글번호 80094
사용자 함수
답변완료

다음 함수식 설명 좀 부탁드립니다.

사용자 함수 중 swinghigh 함수입니다. 응용을 할 부분이 많을 것 같아 보았으나 이해가 잘 되지 않습니다. 괜찮으시다면 설명 좀 부탁 드려도 될까요? < SwingHigh > ------------------------------------------------------------- Input : Occur(NumericSimple), Value(NumericSeries), Left(NumericSimple), Right(NumericSimple), Length(NumericSimple); Var : Result(0), X(0), J(0), Z(0), Ltrue(FALSE), Counter(0), Found(FALSE); if CurrentBar >= Length - 1 then { Result = -1; Z = 0; X = Right; Counter = 0; Found = FALSE; while Counter < Length && X + Left < Length && Found == FALSE Begin J = X + Left; Ltrue = TRUE; while Ltrue && J > X Begin if Value[X] < Value[J] then Ltrue = FALSE; J = J - 1; End J = X - 1; while Ltrue && J >= X - Right Begin if Value[X] <= Value[J] then Ltrue = FALSE; J = J - 1; End if LTrue == TRUE then { Z = Z + 1; if Z >= Occur then { Result = Value[X]; Found = TRUE; } } X = X + 1; Counter = Counter + 1; End if Z == 0 then SwingHigh = -1; else SwingHigh = Result; }
프로필 이미지
다니엘87
2014-11-04
162
글번호 80093
사용자 함수
답변완료

부탁드립니다.

A=highest(V,x1) valuewhen(1,V==A,(H+L+C)/3) ---------------------------------------- x1은변수20
프로필 이미지
운송
2014-11-04
148
글번호 80092
지표
답변완료

안녕하세요?

시스템식 문의 드립니다. If Data1(date!=date[1]) Then cond= False; If cond==False and C<= HH*0.15 and C>O and CountIF(CrossUp(mav1,mav2),250)==1 Then{ TT = H; cond=True; } If cond==True and CrossUp(C,TT) Then{ Buy("1"); } 위 식에서 매수후 당일이든 다음날이든 청산을 했다고 가정할때 하루가 지나든 이틀이 지나든 위 조건이 만족한 상태가 이어지면서 + 또 다른 조건을 만족할때 다시 매수 하려 합니다. 즉 어떤 조건을 만족해서 이를 TT에 저장한후 저장한 날을 기준으로 며칠이 지나도 추가 조건을 넣어서 매수2,3,4 를 하려 합니다. 현재는 TT라고 저장한 조건은 맞지 않지만 전일에는 만족 했었고 또는 2일전에는 만족 했었고 ... 이런식이 되는겁니다. 설명을 제대로 했는지 모르겠습니다. 부탁드립니다.
프로필 이미지
회원
2014-11-04
132
글번호 80091
시스템
답변완료

문의 드립니다

1. N일이내(N봉이내) 갭상승이발생하고 그 갭상승 캔들의 저가을 오늘(C) 돌파하는 종목검색식 2. N일이내(N봉이내) 갭하락이발생하고 그 갭하락 전캔들의 저가을 오늘(C) 돌파하는 종목검색식 1번 2번 자세히 보시면 수식의 개념의 차이가 있습니다 일봉기준으로 사용할겁니다 미리 감사 인사 드립니다 꾸벅
프로필 이미지
매일굿
2014-11-04
180
글번호 80090
종목검색
답변완료

비율표기 방법 문의 합니다.

var1 = H-L; var2 = C-L; var3 = var2/var1*100; plot1(var3); var4 = Text_New(sdate,stime,H+PriceScale,NumToStr(var3,2)); Text_SetStyle(var4,2,2); 위의 식이 일봉의 캔들에서 고가와 저가의 폭에서 종가의 위치를 비율로 표시하는 식으로 알고 있는데.... 차트에서 마지막봉의 전봉에만 텍스트로 표시하는 식은 어떻게 되는지요... 차트가 너무 혼란스럽게 보여서요
프로필 이미지
바이오해피존
2014-11-04
142
글번호 80089
검색
답변완료

현재가 읽어들이기

var Data = []; var Current = []; function Main_OnStart() { Main.MessageLog("현재가, 시가총액 데이터 불러오기"); Start = 0; for(var i=2; i<=152; i++) { Data[i] = Excel.GetData(1, "A"+i); Current[i] = Data[i].current; } for(var i=2; i<=152; i++) { Excel.SetData(1,"B"+i,Current[i]); } Excel.Save(); Main.MessageLog("현재가, 시가총액 데이터 불러오기 완료"); } 엑셀에서 A줄에 있는 종목의 현재가를 스팟으로 읽어와서 B줄에 순서대로 입력시키고 나서 자동 저장 하게 싶은데 방법이 없을까요???
프로필 이미지
클릭한번
2014-11-04
227
글번호 80088
사용자 함수
답변완료

부탁드립니다.

1.당일 1번째, 2번째, 3번째 봉들만의 최고점,최저점을 선으로 표시 2.당일 고점으로 부터 -1.2P를 선으로 표시 당일 저점으로 부터 +1.2P를 선으로 표시 3.전일 시,고,저,종가를 당일에 선으로 표시
프로필 이미지
비류천
2014-11-04
141
글번호 80083
지표
답변완료

한번만 더 부탁드립니다.

정말 많은 도움이 되었습니다. 감사합니다. 만들어 주신 아래 서식을 Data2에 대해서 적용할 수 있도록 한번만 더 (수정) 부탁드립니다. #==========================================# # 지표명 : MACD다이버전스 MACD파동선 # 작성자 : 수식지왕 # 블로그 : http://yahoosir.blog.me #==========================================# Input:P1(12),P2(26),MACD변동폭(0.02); Var:j(0),상승(100),하락(-100),양방향(2),추세(0), 파동선(0),MACD파동선(0),방향(0),MACDV(0),MACD추세선(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0), MACD고[20](0),MACD저[20](0),MACD고Bar[20](0),MACD저Bar[20](0); MACDV = MACD(P1,P2);//MACD(Period); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { MACD고Bar[j] = MACD고Bar[j] + 1; MACD저Bar[j] = MACD저Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 최근 고,저 갱신 #==========================================# If MACD고[0] <= MACDV || MACD고[0] == 0 || IsNaN(MACD고[0]) == True Then { MACD고[0] = MACDV; MACD고Bar[0] = 0; } Else MACD고Bar[0] = MACD고Bar[0] + 1; If MACD저[0] >= MACDV || MACD저[0] == 0 || IsNaN(MACD저[0]) == True Then { MACD저[0] = MACDV; MACD저Bar[0] = 0; } Else MACD저Bar[0] = MACD저Bar[0] + 1; If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then { 고[0] = H; 고Bar[0] = 0; } Else 고Bar[0] = 고Bar[0] + 1; If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then { 저[0] = L; 저Bar[0] = 0; } Else 저Bar[0] = 저Bar[0] + 1; #==========================================# # 추세방향 결정 #==========================================# If MACD저[0][1] + MACD변동폭 > MACDV[1] && MACD저[0][1] + MACD변동폭 <= MACDV Then 방향 = 상승; If MACD고[0][1] - MACD변동폭 < MACDV[1] && MACD고[0][1] - MACD변동폭 >= MACDV Then 방향 = 하락; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 방향[1] == 하락 && 방향 == 상승 Then { For j = 18 DownTo 1 { MACD저[j+1] = MACD저[j]; MACD저Bar[j+1] = MACD저Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } MACD저[1] = MACD저[0]; MACD저Bar[1] = MACD저Bar[0]; MACD파동선 = MACD저[0]; MACD저[0] = MACDV; MACD저Bar[0] = 0; MACD고[0] = MACDV; MACD고Bar[0] = 0; 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; 고[0] = H; 고Bar[0] = 0; } Else If 방향[1] == 상승 && 방향 == 하락 Then { For j = 18 DownTo 1 { MACD고[j+1] = MACD고[j]; MACD고Bar[j+1] = MACD고Bar[j]; 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } MACD고[1] = MACD고[0]; MACD고Bar[1] = MACD고Bar[0]; MACD파동선 = MACD고[0]; MACD고[0] = MACDV; MACD고Bar[0] = 0; MACD저[0] = MACDV; MACD저Bar[0] = 0; 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; 저[0] = L; 저Bar[0] = 0; } Else If 방향[1] == 하락 && 방향 == 하락 Then { If MACD고[1] < MACD고[0] && MACD고[0][1] - MACD변동폭 <= MACDV[1] && MACD고[0][1] - MACD변동폭 > MACDV Then { MACD고[1] = MACD고[0]; MACD고Bar[1] = MACD고Bar[0]; MACD파동선 = MACD고[0]; MACD고[0] = MACDV; MACD고Bar[0] = 0; } If 고[1] < 고[0] && 고[0] > H Then { 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; } } Else If 방향[1] == 상승 && 방향 == 상승 Then { If MACD저[1] > MACD저[0] && MACD저[0][1] + MACD변동폭 >= MACDV[1] && MACD저[0][1] + MACD변동폭 < MACDV Then { MACD저[1] = MACD저[0]; MACD저Bar[1] = MACD저Bar[0]; MACD파동선 = MACD저[0]; MACD저[0] = MACDV; MACD저Bar[0] = 0; } If 저[1] > 저[0] && 저[0] < L Then { 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; } } #==========================================# # 지표식 출력 #==========================================# If MACD파동선[1] != MACD파동선 Then Plot1(MACD파동선,"MACD파동선",GREEN); //적당껏 수평이동 Else If LastBarOnChart == 1 Then plot1(Iff(방향 == 상승,MACD고[0],MACD저[0]),"MACD파동선",GREEN); #상승 다이버전스 : 주가의 저점 하락 + 지표의 저점 상승 If 저[2] > 저[1] && MACD저[2] < MACD저[1] Then { MACD추세선 = (MACD저[1]-MACD저[2])/(MACD저Bar[2]-MACD저Bar[1]) * MACD저Bar[2] + MACD저[2]; Plot2(MACD추세선,"저점추세선",MAGENTA); } #하락 다이버전스 : 주가의 고점 상승 + 지표의 고점 하락 if 고[2] < 고[1] && MACD고[2] > MACD고[1] Then { MACD추세선 = (MACD고[1]-MACD고[2])/(MACD고Bar[2]-MACD고Bar[1]) * MACD고Bar[2] + MACD고[2]; Plot3(MACD추세선,"고점추세선",BLUE); }
프로필 이미지
회원
2014-11-04
187
글번호 80082
지표