커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁드립니다

1. 종가가 전일 시가보다 높으면 해당 봉에 빨강색으로, 전일 및 전전일 시가보다 높으면 해당 봉에 흰색으로, 전일 시가보다 낮으면 해당 봉에 파란색으로, 전일 및 전전일 시가보다 낮으면 해당 봉에 검정색으로 구현해 주세요 2. 보조차트의 종가가 전일 고가보다 높으면 기본차트 해당 봉에 빨강색으로, 전일 저가보다 낮으면 기본차트 해당 봉에 파란색으로 구현해 주세요 고맙습니다.
프로필 이미지
서태공
2023-09-20
938
글번호 172620
강조
답변완료

거래대금 수식 관련

다음 조건을 만족할 때 매수한다면 어떤 식을 만들면 되나요? 1. 이틀전 거래대금이 1000억원 이상일 때 오늘 시초가에 매수, 혹은 오늘 첫봉에서 매수 2. 당일 거래대금이 500억원 이상일 때 즉시 매수
프로필 이미지
소총부대
2023-09-20
839
글번호 172619
시스템
답변완료

수식 문의

안녕하세요? input: 시작(01시), 끝(23시) var1 = 어제의 시작시각부터 끝시각까지의 중심값 (= 0.5*(최대값 + 최소값))을 오늘 01시부터 내일 01시가 되기 전까지 수평선으로 그려 주세요. var2 = 위의 var1 을 24시간 빠꾸 시켜서 왼쪽에 그려주세요. 그러니까 어제의 시작시각부터 끝시각까이의 중심값을 어제의 01시(== 시작)부터 오늘 01시가 되기 전까지 수평선으로 그려 주세요. 물론 시작시각은 22시, 끝 시각은 다음날 15시로 인풋을 줄 수도 있습니다. 감사합니다.
프로필 이미지
에구머니
2023-09-21
723
글번호 172618
지표

러블리 님에 의해서 삭제되었습니다.

프로필 이미지
러블리
2023-09-20
13
글번호 172617
지표
답변완료

함수요청

안녕하세요? 아래 글번호 83866번 재질문드립니다. 스크립트 검증 부탁드립니다. 작성주신 스크립트를 국내선물 1분봉에 적용해보면 9월 19일은, [1]은 나오나 [2]가 나오지 않습니다. 따라서 [3]으로도 연결이 안됩니다. 해당일은 DayOpen < DayClose(1) and value1 > DayOpen 이고 Var2 = DayHigh = 343.25, Var3 = DayLow = 342.70 입니다. [1] 09:06에 CrossDown(c=342.65,var3=342.70)을 만족하므로 익봉 시가인 09:07에 342.60으로 "s1" 신호가 생성되어야 합니다. [2] 그리고 09:27 완성봉 종가가 343.30이므로 CrossUp(c=343.30,var2=343.25)이 되어 익봉 시가인 09:28에 343.30으로 "b2" 신호가 나와야 합니다. [3] 그리고 11:20에는 CrossDown(c=341.80, var1=341.86)이면서 (var1=341.86) < (var3 =342.70)을 만족하므로 익봉 시가인 11:21에 341.75로 "Cx" 신호가 나와야 합니다. [4] 아울러 매수, 매도 신호가 최대 1번씩 총 2번이 나와서 당일 추가 신호는 없어야 합니다. ////////////글번호 83866번에서 작성주신 스크립트//////////// var : b(0),s(0); var1 = ma(c,100); if Bdate != Bdate[1] Then { b = 0; s = 0; value1 = var1; } if DayIndex < 7 Then { Var2 = DayHigh; Var3 = DayLow; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then b = b+1; if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then s = s+1; if MarketPosition >= 0 and DayOpen < DayClose(1) and value1 > DayOpen Then { if s < 1 and DayIndex >= 7 and CrossDown(C,Var3) Then Sell("s1",AtMarket); if b < 1 and s == 1 and CrossUp(C,Var2) Then Buy("b2",AtMarket); if CrossDown(c,var1)and var1 < Var3 Then ExitLong("Cx",AtMarket); } if MarketPosition <= 0 and DayOpen > DayClose(1) and value1 < DayOpen Then { if b < 1 and DayIndex >= 7 and CrossUp(C,Var2) Then Buy("b1",AtMarket); if s < 1 and b == 1 and CrossDown(C,Var3) Then Sell("s2",AtMarket); if CrossUp(c,var1) and var1 > Var2 Then ExitShort("Px",AtMarket); } SetStopEndofday(151900); ////////////스크립트로 작성하고자는 전략//////////// 1번 신호는 2번 신호보다 우선하여 나오게 하고 싶습니다. 즉 s1은 b2에 우선합니다. b1은 s2에 우선합니다. s1이 발생하지 않았는데 b2가 먼저 나오게 하지 않게 하고자 합니다. s1이 발생된 후에는 b2가 나올 수 있습니다. b1이 발생하지 않았는데 s2가 먼저 나오게 하지 않게 하고자 합니다. b1이 발생된 후에는 s2가 나올 수 있습니다. 당일 매수는 최대 1번, 매도도 1번, 도합 2번까지 진입이 가능하게 하고자 합니다. 1 .당일 시초가가 전일 종가대비 하락 출발하되 시초가 당시의 100ma > 시초가일 때 가) 당일 개장 후 7개봉의 고점과 저점을 잡고 저점 이탈시 익봉 시가에 매도(s1) 진입 나) 당일 개장 후 7개봉의 고점과 저점을 잡고 s1인 상태에서 고점 돌파시 익봉 시가에 매수(b2) 진입 다) 분봉의 종가가 100ma를 하향 이탈하되 당시 100ma가 당일 개장 후 7개봉 저점보다 작은 상태이면 b2 청산 2. 당일 시초가가 전일 종가대비 상승 출발하되 시초가 당시의 100ma < 시초가일 때 가) 당일 개장 후 7개봉의 고점과 저점을 잡고 고점 돌파시 익봉 시가에 매수(b1) 진입 나) 당일 개장 후 7개봉의 고점과 저점을 잡고 b1인 상태에서 저점 이탈시 익봉 시가에 매도(s2) 진입 다) 분봉의 종가가 100ma를 상향 돌파하되 당시 100ma가 당일 개장 후 7개봉 고점보다 큰 상태이면 s2 청산 3. 15시 19분 강제청산 *1번 신호는 2번 신호보다 우선하여 나오게 하고 싶습니다. 즉 s1은 b2에 우선합니다. b1은 s2에 우선합니다. s1이 발생하지 않았는데 b2가 먼저 나오게 하지 않게 하고자 합니다. s1이 발생된 후에는 b2가 나올 수 있습니다. b1이 발생하지 않았는데 s2가 먼저 나오게 하지 않게 하고자 합니다. b1이 발생된 후에는 s2가 나올 수 있습니다. 당일 매수는 최대 1번, 매도도 1번, 도합 2번까지 진입이 가능하게 하고자 합니다.
프로필 이미지
흰둥이아빠
2023-09-20
577
글번호 172616
시스템

예스쟁이 님에 의해서 삭제되었습니다.

프로필 이미지
예스쟁이
2023-09-20
6
글번호 172605
시스템
답변완료

전환추세 중간선

Input : 전환(0.7); Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""); Array:고[10,4](0),저[10,4](0); var : box(0),TX(0),TL(0),T(0),TL1(0),TL2(0); HH = H; LL = L; If Index == 0 Then { 고[1,1] = HH; 고[1,2] = 0; 고[1,3] = sDate; 고[1,4] = sTime; 저[1,1] = LL; 저[1,2] = 0; 저[1,3] = sDate; 저[1,4] = sTime; } If Index > 0 Then { hiBar = hiBar + 1; loBar = loBar + 1; } If HH[hiBar] < HH Then hiBar = 0; If LL[loBar] > LL Then loBar = 0; Condition1 = 저[1,1]+전환 <= HH and hiBar == 0; Condition2 = 고[1,1]-전환 >= LL and loBar == 0; 처리구분 = ""; If Condition1 and Condition2 Then { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL = TL_New_Self(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL,2); TL_SetColor(TL,Red); TX = Text_New_Self(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1]-저[1,1],2)+" "); Text_SetSize(tx,25); Text_SetColor(tx,Red); Text_SetStyle(tx,1,1); Text_SetBold(tx,1); Condition2 = false; } If 고[1,1] < HH[hiBar] Then { 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL,고[1,3],고[1,4],고[1,1]); Text_SetString(TX,NumToStr(고[1,1]-저[1,1],2)+" "); Text_SetLocation(TX,고[1,3],고[1,4],고[1,1]); } if Condition2 == False and abs(저[1,1]-고[1,1]) >= 0.9 Then { Condition2 = true; TL1 = TL_New_Self(고[1,3],고[1,4],(고[1,1]+저[1,1])/2,저[1,3],저[1,4],(고[1,1]+저[1,1])/2); TL2 = TL_New_Self(고[1,3],고[1,4],고[1,1] + abs(고[1,1]-저[1,1])*0.618,저[1,3],저[1,4],고[1,1] + abs(고[1,1]-저[1,1])*0.618); } if Condition2 == true Then { TL_SetBegin(TL1,고[1,3],고[1,4],(고[1,1]+저[1,1])/2); TL_SetEnd(TL1,저[1,3],저[1,4],(고[1,1]+저[1,1])/2); TL_SetBegin(TL2,고[1,3],고[1,4],고[1,1] + abs(고[1,1]-저[1,1])*0.618); TL_SetEnd(TL2,저[1,3],저[1,4],고[1,1] + abs(고[1,1]-저[1,1])*0.618); } 최종꼭지점 = "고점"; Plot1(고[1,1]); NoPlot(2); } If 처리구분 == "저점처리" Then { If 최종꼭지점 == "고점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL = TL_New_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL,2); TL_SetColor(TL,Blue); TX = Text_New_Self(저[1,3],저[1,4],저[1,1],NumToStr(고[1,1]-저[1,1],2)+" "); Text_SetSize(tx,25); Text_SetColor(tx,Blue); Text_SetStyle(tx,1,0); Text_SetBold(tx,1); Condition1 = False; } If 저[1,1] > LL[loBar] Then { 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL,저[1,3],저[1,4],저[1,1]); Text_SetString(TX,NumToStr(고[1,1]-저[1,1],2)+" "); Text_SetLocation(TX,저[1,3],저[1,4],저[1,1]); } if Condition1 == False and abs(고[1,1]-저[1,1]) >= 0.9 Then { Condition1 = true; TL1 = TL_New_Self(고[1,3],고[1,4],(고[1,1]+저[1,1])/2,저[1,3],저[1,4],(고[1,1]+저[1,1])/2); TL2 = TL_New_Self(고[1,3],고[1,4],고[1,1] - abs(고[1,1]-저[1,1])*0.618,저[1,3],저[1,4],고[1,1] - abs(고[1,1]-저[1,1])*0.618); } if Condition1 == true Then { TL_SetBegin(TL1,고[1,3],고[1,4],(고[1,1]+저[1,1])/2); TL_SetEnd(TL1,저[1,3],저[1,4],(고[1,1]+저[1,1])/2); TL_SetBegin(TL2,고[1,3],고[1,4],고[1,1] - abs(고[1,1]-저[1,1])*0.618); TL_SetEnd(TL2,저[1,3],저[1,4],고[1,1] - abs(고[1,1]-저[1,1])*0.618); } 최종꼭지점 = "저점"; Plot2(저[1,1]); NoPlot(1); } 그림 위와 같이, 추세선 크기가 0.9p 이상일 때, 추세선의 50% 지점과 61.8% 지점에 추세선의 좌우 폭만큼 수평라인. 수정 부탁드립니다.
프로필 이미지
고성
2023-09-20
942
글번호 172602
지표
답변완료

문의드립니다.

종목검색식을 부탁드립니다. A=(C+C(9)+C(8)+C(7)+C(6)+C(5)+C(4)+C(3)+C(2)+C(1))/10; M=ma(A, 기간); MH=Valuewhen(1, M > M(1), M); K=HighestSince(1,crossup(C, MH), MH); CrossUp(C, K)
프로필 이미지
redcon
2023-09-20
751
글번호 172597
종목검색

러블리 님에 의해서 삭제되었습니다.

프로필 이미지
러블리
2023-09-20
19
글번호 172596
지표