커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

함수문의

안녕하세요? 항셍 선물을 거래하고 있습니다. 아래와 같이 추세추종전략으로 리버스전략을 사용하고 있습니다. 예스랭귀지 매뉴얼을 보다보니 atstop의 가격조건의 감시는 설정 후 다음 하나의 봉에서만 감시하여 다음 봉이 가격조건에 맞는 시세가 발생하지 않으면 설정은 해제된다고 나와있습니다. 이게 어떤 의미인지 이해가 되지 않습니다. 진입이 안될 리스크가 있는 것인지요? 설명 부탁드립니다. if MarketPosition <= 0 Then buy("b",AtStop,highest(H,5)+PriceScale); if MarketPosition >= 0 Then sell("s",AtStop,Lowest(L,5)-PriceScale);
프로필 이미지
흰둥이아빠
2018-03-09
279
글번호 117281
시스템

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

프로필 이미지
양치기
2018-03-09
0
글번호 117279
시스템
답변완료

문의드립니다.

선물차트 기준으로 문의드립니다. Chaikin's Oscillator 지표에 이동평균선 기간값처럼 5,20,60처럼 기간값을 넣을 수 있는지요? 혹시 가능하다면 기간값을 수정가능하게 부탁드립니다. 항상 감사드립니다. 수고하세요!!!
프로필 이미지
해암
2018-03-09
255
글번호 117275
지표
답변완료

수식부탁드립니다

*매번 미안합니다* 아래수식에서 파동마다 각각의 TL2,TL4 수평선들이 넘 짧아서요 1.각각의 TL2수평선들을 상승봉이나올때 까지 선연장 2.각각의 TL4수평선들을 하락봉이나올때 까지 선연장 부탁드립니다 (수고하세요) Input:length(6); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),Text1(0),처리구분(""); var : TL2(0),TL3(0),TL4(0),TL5(0),T(0),B(0),S(0),cnt(0),TL6(0),TL7(0),TL8(0),TL9(0); Array:고점[10,2](0),저점[10,2](0); //가격,위치 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { T = 1; lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); #Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1], #NumToStr(고점[1,1],2)); #Text_SetStyle(Text1, 2, 1); } } If 처리구분 == "저점처리" Then { T = -1; lastLoVal = L; If 저점[1,2] < 고점[1,2] then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1], sDate[eBar],sTime[eBar],저점[1,1]); #Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1], # NumToStr(저점[1,1],2)); #Text_SetStyle(Text1, 2, 0); } } TL_SetSize(TL1,3); TL_SetColor(TL1,CYAN); if T == -1 and T[1] != -1 Then{ TL2 = TL_New(sdate[index-고점[2,2]],stime[index-고점[2,2]],고점[2,1], sdate[index-고점[1,2]],stime[index-고점[1,2]],고점[2,1]); TL_SetSize(TL2,3); TL_SetColor(TL2,BLACK); TL_Delete(TL3); TL3 = TL_New(sdate[index-고점[1,2]],stime[index-고점[1,2]],고점[1,1],sdate,stime,고점[1,1]); TL_SetExtRight(TL3,true); TL_SetSize(TL3,3); TL_SetColor(TL3,BLACK); B = 0; for cnt = index-고점[1,2] downto 0 { if B == 0 and C[cnt] < O[cnt] Then { B = 1; S = cnt; if H[cnt] >= 고점[1,1] Then B = 2; } } TL_Delete(TL8); TL_Delete(TL9); if B >= 1 Then{ TL8 = TL_New(sdate[S+1],stime[S+1],O[S],Sdate,stime,O[S]); TL_SetExtRight(TL8,true); TL_SetColor(TL8,BLUE); } if B == 2 Then{ TL9 = TL_New(sdate[S+1],stime[S+1],O[S],Sdate,stime,O[S]); TL_SetExtRight(TL9,true); TL_SetColor(TL9,BLUE); } } if T == 1 and T[1] != 1 Then{ TL4 = TL_New(sdate[index-저점[2,2]],STime[index-저점[2,2]],저점[2,1], sdate[index-저점[1,2]],stime[index-저점[1,2]],저점[2,1]); TL_SetSize(TL4,3); TL_SetColor(TL4,BLACK); TL_Delete(TL5); TL5= TL_New(sdate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1],sdate,stime,저점[1,1]); TL_SetExtRight(TL5,true); TL_SetSize(TL5,3); TL_SetColor(TL5,BLACK); B = 0; for cnt = index-저점[1,2] downto 0 { if B == 0 and C[cnt] > O[cnt] Then { B = 1; S = cnt; if L[cnt] <= 저점[1,1] Then B = 2; } } TL_Delete(TL6); TL_Delete(TL7); if B >= 1 Then{ TL6 = TL_New(sdate[S+1],stime[S+1],O[S],Sdate,stime,O[S]); TL_SetExtRight(TL6,true); TL_SetColor(TL6,RED); } if B == 2 Then{ TL7 = TL_New(sdate[S+1],stime[S+1],L[S],Sdate,stime,L[S]); TL_SetExtRight(TL7,true); TL_SetColor(TL7,RED); } } if T == 1 and B == 0 and C > O Then{ B = 1; TL6 = TL_New(sdate[1],stime[1],O,Sdate,stime,O); TL_SetExtRight(TL6,true); TL_SetColor(TL6,RED); if L <= 저점[1,1] Then{ TL7 = TL_New(sdate[S+1],stime[S+1],L[S],Sdate,stime,L[S]); TL_SetExtRight(TL7,true); TL_SetColor(TL7,RED); } } if T == -1 and B == 0 and C < O Then{ B = 1; TL8 = TL_New(sdate[1],stime[1],O,Sdate,stime,O); TL_SetExtRight(TL8,true); TL_SetColor(TL8,blue); if H >= 고점[1,1] Then{ TL9 = TL_New(sdate[1],stime[1],H,Sdate,stime,L); TL_SetExtRight(TL9,true); TL_SetColor(TL9,RED); } }
프로필 이미지
파생돌이
2018-03-09
273
글번호 117271
지표
답변완료

현재가 - 전일중간값 Text

안녕하세요 text 작성 문의드립니다. 연결선물 분봉에서 다음 수식은 '봉완성기준 당일중간값 - 전일중간값'의 text 수식입니다. Tx1 = Text_New(D1,T1,(HH1+LL1)/2,NumToStr((HH1+LL1)/2,3)+" /"+" 전일비("+NumToStr(((HH+LL)-(HH1+LL1))/2,3)+")"); 이를 '봉완성기준 분봉종가 - 전일중간값'으로 수정하려고 하는데 다음과 같이 수정하니까 이상한 수치가 나옵니다. 어디가 잘못된 것인지 부탁드립니다. Tx1 = Text_New(D1,T1,(HH1+LL1)/2,NumToStr((HH1+LL1)/2,3)+" /"+" 전일비("+NumToStr((Close-(HH1+LL1))/2,3)+")"); 감사합니다 !!
프로필 이미지
새로운세상
2018-03-09
266
글번호 117270
검색
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 기타 코딩 부탁드립니다. '장시작후 3개봉까지의 봉 중에 n길이 이상의 봉이 나타났을 때' 2. 코딩 변환 부탁드립니다. Inputs: ReferenceAvgLen( 20 ), TargetAvgLen( 10 ) ; variables: Reference_SMA( 0, data2 ), Reference_Diff( 0, data2 ), Reference_Vol( 0, data2 ), Target_SMA( 0 ), Target_Diff( 0 ), Target_Vol( 0 ) ; Reference_SMA= Average(Close data2, ReferenceAvgLen) data2 ; Reference_Diff = close data2 - Reference_SMA ; Reference_Vol = Reference_Diff/(2 * StandardDev( Reference_ SMA,ReferenceAvgLen,2)); if Reference_Vol > 1 and close > Average( close, TargetAvgLen) then buy next bar at market ; if Reference_Vol < -1 and (close - Average(Close,TargetAvgLen)) /(2*StdDev( Average(Close, TargetAvgLen),TargetAvgLen)) < 1 then sell next bar at market ; Inputs: ReferenceAvgLen( 20 ), TargetAvgLen( 10 ) ; variables: Reference_SMA( 0, data2 ), Reference_Diff( 0, data2 ), Reference_Vol( 0, data2 ) ; Reference_SMA= Average(Close data2, ReferenceAvgLen) data2 ; Reference_Diff = close data2 - Reference_SMA ; Reference_Vol = Reference_Diff/(2 * StandardDev( Reference_ SMA,ReferenceAvgLen,2)); PLOT1(Reference_Vol,”RefVol”); Plot2(1); Plot3(-1); 3. 56993 재질문 답변 부탁드립니다.
프로필 이미지
잡다백수
2018-03-09
262
글번호 117256
시스템
답변완료

수식변경

아래의 수식을 변경부탁드립니다. 늘 감사드립니다. 중심=tema(c,중심선); 이평=tema(c,이평선); 중심 중심=tema(c,중심선); 이평=tema(c,이평선); 대칭=중심*2-이평; 이격=이평-중심; 중심+이격*(비율/100) 중심=tema(c,중심선); 이평=tema(c,이평선); 이격=이평-중심; 중심-이격*(비율/100)
프로필 이미지
알리섬
2018-03-09
291
글번호 117255
지표
답변완료

전일비 대비 미결증감 수식 문의

input : period1(0); plot1(period1,"기준선"); if dayoi(0)-dayoi(1) > 0 Then plot2(dayoi(0)-dayoi(1),">0"); Else plot3(dayoi(0)-dayoi(1),"<0"); ------------------ 위의 미결제증감 수식을 사용하고 있습니다. 그런데 오늘 같은 날 "지표"의 미결제증감 수치와 "현재가" 미결제증감 수치가 다르네요 아마도 어제가 만기일이라서 지표상에서 전일미결제를 0으로 처리하고 계산되는 것 같아요 현재가에는 전일미결제가 225,157로 되어있네요 만기일 다음에도 지표값이 현재가창 값과 같게 하고 싶은데 할 수 있을까요?
프로필 이미지
수급돌파
2018-03-09
259
글번호 117251
지표
답변완료

함수변환 요청

안녕하세요? 함수변환 요청드립니다. 아래는 시그널메이커(한국금융IT社)에서 사용했던 전략입니다. 예스트레이더(한국투자증권)에서 사용할 수 있도록 함수 변환요청드립니다. -매수: 60분봉 기준으로 60분봉 종가가 볼린저밴드를 하향 돌파하면 익봉 시가에 매수진입 -매수청산: 현재가가 20일이평선 터치시 즉시 매수청산 -매도: 60분봉 기준으로 60분봉 종가가 볼린져밴드를 상향 돌파하면 익봉 시가에 매도진입 -매도청산: 현재가가 20일이평선 터치시 즉시 매도청산 Params : bolPeriod(20), bolSTD(2); Vars : SP(0); Vars : SellPrice(0), BuyPrice(0); Vars : bolMid(0), bolUP(0), bolDN(0); SP = SignalPosition; bolMid = AvgFast(C, bolPeriod); bolUp = bolMid + bolSTD * StandardDev(C, bolPeriod, 1); bolDn = bolMid - bolSTD * StandardDev(C, bolPeriod, 1); If CrossUp(C, bolUP) Then SellPrice = C; If CrossDown(C, bolDN) Then BuyPrice = C; IF SellPrice > 0 And BuyPrice > 0 Then Begin If SP = 0 Then Begin If C > bolUP Then Sell("S", Atstop, SellPrice); If C < bolDN Then Buy("B", Atstop, BuyPrice); End; End; If SP = -1 And C > bolMid Then ExitShort("EXS", Atlimit, bolMid); If SP = 1 And C < bolMid Then ExitLong("EXL", Atlimit, bolMid);
프로필 이미지
흰둥이아빠
2018-03-09
303
글번호 117250
시스템