커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의 드립니다.

input : 익절틱수(200),손절틱수(30); var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ST(0),ET(0),entry(0); if NextBarSdate != sDate Then { DD = DayOfWeek(NextBarSdate); Year = Floor(NextBarSdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { ST = 70000; ET = 55000; } Else { ST = 80000; ET = 65000; } } if Year > 0 Then { IF ET > ST Then SetStopEndofday(ET); Else { if NextBarSdate != sDate Then SetStopEndofday(ET); } if ((NextBarSdate != sDate and NextBarStime >= ST) or (NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then { if ET < ST Then SetStopEndofday(0); if NextBarOpen != c Then { Buy("b",AtStop,NextBarOpen+PriceScale*10); Sell("s",AtStop,NextBarOpen-PriceScale*10); } } Else { if h < DayOpen+PriceScale*10 Then Buy("b1",AtStop,DayOpen+PriceScale*10); if l > DayOpen-PriceScale*10 Then Sell("s1",AtStop,DayOpen-PriceScale*10); } } if NextBarOpen != c Then { Buy("bb",AtStop,NextBarOpen+PriceScale*10); Sell("ss",AtStop,NextBarOpen-PriceScale*10); } Else { if h < DayOpen+PriceScale*10 Then Buy("b11",AtStop,DayOpen+PriceScale*10); if l > DayOpen-PriceScale*10 Then Sell("s11",AtStop,DayOpen-PriceScale*10); } if NextBarOpen != c Then { Buy("bbb",AtStop,NextBarOpen+PriceScale*10); Sell("sbb",AtStop,NextBarOpen-PriceScale*10); } Else { if h < DayOpen+PriceScale*10 Then Buy("b111",AtStop,DayOpen+PriceScale*10); if l > DayOpen-PriceScale*10 Then Sell("s111",AtStop,DayOpen-PriceScale*10); } if NextBarOpen != c Then { Buy("bbbb",AtStop,NextBarOpen+PriceScale*10); Sell("bbbs",AtStop,NextBarOpen-PriceScale*10); } Else { if h < DayOpen+PriceScale*10 Then Buy("b1111",AtStop,DayOpen+PriceScale*10); if l > DayOpen-PriceScale*10 Then Sell("s1111",AtStop,DayOpen-PriceScale*10); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); ---------------------- 위 수식어에 60분선 위(바이 > 40틱 청산),아래(셀 > 40틱 청산) 60분선 골든 데드시 손절후 반대 포지션 진입 청산의 수식어로 변경을 부탁드립니다.
프로필 이미지
푸른
2022-10-19
1311
글번호 163094
시스템
답변완료

옵션 시뮬레이터

안녕하세요. 혹시 옵션 시뮬레이터에서 옵션 포지션 성과를 볼때 mdd 혹은 최대하락폭을 단번에 볼 수 있는 방법이 있을까요? 그리고 예스트레이더 성과표처럼 일별 손익, 주별, 월별 손익을 볼 수 있는지 궁금합니다. 예를들면 만기일 하루 후 풋옵션 등가격 매도 후 만기일날 손익을 보는데 딱 그 만기날만 손익을 볼 수 있던데, 일별 손익을 모두 보고 싶습니다.(옵션시뮬레이터 가동 안하고 한번에 성과표를 보고 싶습니다) 방법이 있을까요?
프로필 이미지
히익
2022-10-19
1185
글번호 163093
시스템
답변완료

검색식 부탁합니다

당일 양봉이면서 거래량이 20일평균거래량의 250% 발생한 캔들의 검색식 부탁합니다
프로필 이미지
파워
2022-10-18
1238
글번호 163090
검색
답변완료

문의드립니다

특정일이후 n일의 데이타를 구하는 지표식에서 n일은 주식시장이 열리는 날만 카운트하는건가요? 토일, 공휴일은 제외한?
프로필 이미지
러블리
2022-10-18
1326
글번호 163089
지표
답변완료

수식 부탁드립니다.

안녕하세요. 수식 하나 부탁 드리겠습니다. 1분봉에서 1.09시 10분 지수가 12:00분 지수보다 높으면은 12:01분에 매수후에 15:00분 청산 2.09시 10분 지수가 12:00분 지수보다 낮으면은 12:01분에 매도후에 15:00분에 청산 하는 식입니다. 감사합니다.
프로필 이미지
뭐이런걸다
2022-10-18
1422
글번호 163088
시스템
답변완료

주석부탁드립니다

수고하십니다 아래수식을 자세하게 주석부탁드립니다 CS[7](0), ==5같다 ,==0같다 , +0.5을 왜 더하는지? cnt ,[cnt],(SymbolCode,1),StrToNum...등등 var : V1(0,Data1),V2(0,Data1),ATM(0,Data1); var : cnt(0,Data1); var : Ci(0,Data1),Pi(0,Data1),count(0,Data1); Array : CS[7](0),CC[7](0),PS[7](0),PP[7](0),CT[7](0),PT[7](0); CC[2] = Data2(H); CC[3] = Data4(H); PP[2] = Data3(L); PP[3] = Data8(L); CS[2]= data2(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); CS[3]= data4(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[2]= data3(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[3]= data8(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); var1 = 0; Var2 = 0; Var3 = 0; For cnt = 2 to 6 { if CS[cnt] == ATM Then var1 = cnt; if CS[cnt] == ATM+2.5 Then Var2 = cnt; if CS[cnt] == ATM-2.5 Then Var3 = cnt; if PS[cnt] == ATM Then value1 = cnt; if PS[cnt] == ATM+2.5 Then Value2 = cnt; if PS[cnt] == ATM-2.5 Then
프로필 이미지
파생돌이
2022-10-18
1743
글번호 163087
지표

매치다는 님에 의해서 삭제되었습니다.

프로필 이미지
매치다는
2022-10-18
3
글번호 163086
지표
답변완료

파동의 저점과 고점 위치

안녕하십니까. 아래 프로그램으로 장중 파동의 고점과 저점의 봉의 데이터 값, 즉 첨부된 그름 파일에서 붉은 색 값인 경우 +1로 출력하고 푸른색의 값인 경우 -1로 리턴하는 함수를 작성하고자 합니다. 도움 좀 부탁드립니다. 사용 목적은 파동의 고점과 저점 봉의 데이터 출력하고자 합니다. (죄송스럽게도 제가 로직 이해가 부족해서 인지 정확히 숫자 찍히는 고점과 저점 지점을 잡을 수가 없네요) Input:P(0),length(10); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0), Text1(0),처리구분(""),T(0),TL3(0),TL4(0),TL5(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 { 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; TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); 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]); TL2 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL3 = TL_New(sDate[sBar],sTime[sBar],저점[1,1]+(고점[1,1]-저점[1,1])*0.382,sDate[eBar],sTime[eBar],저점[1,1]+(고점[1,1]-저점[1,1])*0.382); TL4 = TL_New(sDate[sBar],sTime[sBar],저점[1,1]+(고점[1,1]-저점[1,1])*0.500,sDate[eBar],sTime[eBar],저점[1,1]+(고점[1,1]-저점[1,1])*0.500); TL5 = TL_New(sDate[sBar],sTime[sBar],저점[1,1]+(고점[1,1]-저점[1,1])*0.618,sDate[eBar],sTime[eBar],저점[1,1]+(고점[1,1]-저점[1,1])*0.618); Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],P)); Var1 = 고점[1,1]; Text_SetStyle(Text1, 2, 1); Text_SetColor(Text1,Blue); } # End of If 고점[1,2] < 저점[1,2] or 고점[1,1] < H } # End of If 처리구분 == "고점처리"... If 처리구분 == "저점처리" Then { 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; TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } # End of If TL_GetBeginDate(TL1) == TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL2 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL3 = TL_New(sDate[sBar],sTime[sBar],고점[1,1]-(고점[1,1]-저점[1,1])*0.382,sDate[eBar],sTime[eBar],고점[1,1]-(고점[1,1]-저점[1,1])*0.382); TL4 = TL_New(sDate[sBar],sTime[sBar],고점[1,1]-(고점[1,1]-저점[1,1])*0.500,sDate[eBar],sTime[eBar],고점[1,1]-(고점[1,1]-저점[1,1])*0.500); TL5 = TL_New(sDate[sBar],sTime[sBar],고점[1,1]-(고점[1,1]-저점[1,1])*0.618,sDate[eBar],sTime[eBar],고점[1,1]-(고점[1,1]-저점[1,1])*0.618); Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],P)); Var2 = 저점[1,1]; Text_SetStyle(Text1, 2, 8); Text_SetColor(Text1,Red); } # End of If 저점[1,2] < 고점[1,2] or 저점[1,1] > L } # End of If 처리구분 == "저점처리" TL_SetSize(TL1,0); TL_SetColor(TL1,GRAY);
프로필 이미지
구천룡
2022-10-18
1578
글번호 163085
지표
답변완료

수식 문의 드립니다.

IF marketposition == 1 and OpenPositionProfit>loss*5 and data2(C)<entry2 Then SetStopTrailing(loss,loss*5,PointStop); SetStopLoss(loss,PointStop); loss는 ATR(10)이고 data2는 코스피 5분봉이며 entry는 data2의 당일매도역치 설정 기준입니다. 의도는 수익이 loss*5 이상인 상황에서 loss 만큼 빠지면 이익청산한다 입니다. 이때 혹시 트레일링스탑 과최적화가 발생할 수 있습니까? https://blog.naver.com/chartist/30035941729 이 글을 읽고 혹시나 싶어서 질문 드립니다. 항상 감사합니다.
프로필 이미지
마녀58
2022-10-18
1583
글번호 163080
시스템