커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

텍스트 표시 없애고 싶습니다

수식 적용해보면 텍스트가 나오는데 텍스트를 없애고 싶습니다. 그리고 지그재그 선의 색상이 부분부분 다르게 표현(어떨때는 하늘색 또는 짙은 하늘색)이 되는데 한가지 색상으로 통일되게 하고 싶어요 .. 색상은 변수로 제가 yellow 라고 입력하면 노란선으로 출력되도록 하고 싶습니다. 그리고 추세선(빨강,파랑)이 생기는데 이거는 필요없으니 지워주시면 감사하겠습니다. Input:length(12); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""), TL_Val1(0),TL_Val2(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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then TL_Delete(TL2); } 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 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; TL2 = TL_New(sDate[sBar],sTime[sBar],저점[2,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetColor(TL2,BLUE); } } } 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; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then TL_Delete(TL3); } 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); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; TL3 = TL_New(sDate[sBar],sTime[sBar],고점[2,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetColor(TL3,RED); } } } TL_SetSize(TL1,3); TL_SetColor(TL1,CYAN); TL_SetSize(TL2,2); TL_SetSize(TL3,2); TL_Val1 = 0; TL_Val2 = 0; If 고점[2,1] > 고점[1,1] and 고점[2,1] > 고점[3,1] Then { If 고점[1,2] < 저점[1,2] and 저점[3,1] < 저점[2,1] Then TL_Val1 = (저점[2,1]-저점[3,1])/(저점[2,2]-저점[3,2]) * (Index-저점[3,2])+저점[3,1]; If 저점[1,2] < 고점[1,2] and 저점[2,1] < 저점[1,1] Then TL_Val1 = (저점[1,1]-저점[2,1])/(저점[1,2]-저점[2,2]) * (Index-저점[2,2])+저점[2,1]; } If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] Then { If 저점[1,2] < 고점[1,2] and 고점[3,1] > 고점[2,1] Then TL_Val2 = (고점[2,1]-고점[3,1])/(고점[2,2]-고점[3,2]) * (Index-고점[3,2])+고점[3,1]; If 고점[1,2] < 저점[1,2] and 고점[2,1] > 고점[1,1] Then TL_Val2 = (고점[1,1]-고점[2,1])/(고점[1,2]-고점[2,2]) * (Index-고점[2,2])+고점[2,1]; } If TL_Val1 > 0 Then Plot1(TL_Val1,"추세선1",BLUE); //점그래프 If TL_Val2 > 0 Then Plot2(TL_Val2,"추세선2",RED); //점그래프
프로필 이미지
퍼플앙
2016-02-02
147
글번호 95086
지표

삼족오 님에 의해서 삭제되었습니다.

프로필 이미지
삼족오
2016-02-02
17
글번호 95077
검색
답변완료

adx 재질문 입니다

input : P1(10),P2(20),P3(40),P4(60),P5(80); 아래 수식을 적용해보니 상승중일 때 노란색으로만 나와야 되는데, 첨부파일에 동그라미 친부분처럼 상승중에 이상하게도 검정이 표현되고 있습니다. 다시 수정 좀 부탁드립니다. 그리고 상승중일때 선이 두껍게 표현되는데, 두껍게 표현되는 것도 삭제해주면 감사하겠습니다. var1 = ADX(P1); var2 = ADX(P2); var3 = ADX(P3); var4 = ADX(P4); var5 = ADX(P5); plot1(var1,"ADX1",iff(var1>var1[1],YELLOW,BLACK),def,iff(var1>var1[1],3,1)); plot2(var2,"ADX2",iff(var1>var1[1],YELLOW,BLACK),def,iff(var2>var2[1],3,1)); plot3(var3,"ADX3",iff(var1>var1[1],YELLOW,BLACK),def,iff(var3>var3[1],3,1)); plot4(var4,"ADX4",iff(var1>var1[1],YELLOW,BLACK),def,iff(var4>var4[1],3,1)); plot5(var5,"ADX5",iff(var1>var1[1],YELLOW,BLACK),def,iff(var5>var5[1],3,1));
프로필 이미지
퍼플앙
2016-02-11
156
글번호 95076
지표
답변완료

재질문입니다.

아래수식은 분봉에서 일간의 갭보정 고가,저가,시가,종가를 호출하는 사용자 함수입니다. 이전 문의드린 내용에서 작성해주신것을 쪼개었는데 맞는지 확인 부탁드립니다. 값이 다르게 나오는것 같습니다. 감사합니다^^ =================================================== #갭보정 N일전 일봉 고가를 나타냅니다. input : N(numeric); var : gap(0),sumgap(0),GH(0),cnt(0); Array : DAH[13](0); if date!=date[1] THen { gap = Open-Close[1]; sumGap = sumGap+gap; DAH[0] = H - sumGap; for cnt = 1 to 12{ DAH[cnt] = DAH[cnt-1][1]; } } GH = H - sumGap; if GH > DAH[0] Then DAH[0] = GH; GDH=DAH[N]; ============================ #갭보정 N일전 일봉 저가를 나타냅니다. input : N(numeric); var : gap(0),sumgap(0),GL(0),cnt(0); Array : DAL[13](0); if date!=date[1] THen { gap = Open-Close[1]; sumGap = sumGap+gap; DAL[0] = L - sumGap; for cnt = 1 to 12{ DAL[cnt] = DAL[cnt-1][1]; } } GL = L - sumGap; if GL < DAL[0] Then DAL[0] = GL; GDL=DAL[N]; =============================== #갭보정 N일전 일봉 시가를 나타냅니다. input : N(numeric); var : gap(0),sumgap(0),GO(0),cnt(0); Array : DAO[13](0); if date!=date[1] THen { gap = Open-Close[1]; sumGap = sumGap+gap; DAO[0] = O - sumGap; for cnt = 1 to 12{ DAO[cnt] = DAO[cnt-1][1]; } } GO = O - sumGap; DAO[0] = GO; GDO=DAO[N]; ===================================== #갭보정 N일전 일봉 종가를 나타냅니다. input : N(numeric); var : gap(0),sumgap(0),GC(0),cnt(0); Array : DAC[13](0); if date!=date[1] THen { gap = Open-Close[1]; sumGap = sumGap+gap; DAC[0] = C - sumGap; for cnt = 1 to 12{ DAC[cnt] = DAC[cnt-1][1]; } } GC = C - sumGap; DAC[0] = GC; GDC=DAC[N];
프로필 이미지
7007
2016-02-02
143
글번호 95073
사용자 함수
답변완료

IF문과 현재가 주문간의 상관관계에 대한 문의입니다

안녕하세요 if문은 봉이 완성시에 조건을 충족할경우 작동되는것으로 알고있고 매수시에 가격타입중 atstop은 조건만족시 즉시 신호가 발생하는 타입으로 알고있습니다 두가지의 성질이 조금 모순적인것같네요 실시간으로 가격을 감시하여 if 문을 충족하면 봉이 완성되기전이라도 신호가 발생되게 할 수는 없나요? if문 안에 atstop이 있다면 if문 충족이 우선이라 봉이 완성되기전까지는 신호발생이 안되나요? 실시간으로 바로바로 발생되는 코드를 만들고싶습니다 ㅜㅜ
프로필 이미지
약쟁이
2016-02-02
116
글번호 95072
시스템
답변완료

시스템 문의 드립니다.

국내연결선물지수 210틱 틱차트 기준 macd 값 shortPeriod=12 longPeriod=26 sigPeriod=26 다음 기준일때 macd 와 sig 데드크로스가 발생한 후 다음봉 부터 8봉 이내에서 이평선 12일선 돌파시 매도 12틱 손절 20틱 익절 오후 2시 이후 매매종료 및 포지션 청산 부탁 드립니다.
프로필 이미지
심플
2016-02-02
93
글번호 95071
시스템
답변완료

please check

please check attaschment. always thank you.
프로필 이미지
흑수돌
2016-02-02
122
글번호 95070
지표

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

프로필 이미지
매의눈
2016-02-01
9
글번호 95069
시스템
답변완료

시스템 문의..

아래와 같은 수식을 받아 쓰고 있읍니다. (당일 시초가 대비 16% 상승하면 매수하여 트레일스탑 15%, 손절 15% 작용) var : TT(0),T1(0),Entry(0); TT = TotalTrades; if date != date[1] Then T1 = TT[1]; if MarketPosition == 0 Then entry = TT-T1; Else entry = TT-T1+1; if MarketPosition == 0 and stime < 100000 and entry < 1 Then buy("b",AtStop,dayopen*1.16); #손절 SetStopLoss(15,PercentStop); #트레일링스탑 SetStopTrailing(1,15,PercentStop,1); 위 식을 아래와 같이 좀더 세분화하고 싶읍니다. 1) 9:30 이전에 시초가 대비 16% 상승한 경우에, 16% 가격 대비 5% 하락한 가격에 매수함. -> 16%이상 상승후 하락반전하는 상황에서 5% 이상 하락시에 그 가격으로 매수 들어감. (16% 상승후 하락반전하여 재상승하는 경우 가정함) (트레일스탑 22%, 손절 9%) 만약, 시초가 대비 16% 상승 못하면 매수 안함. 2) 9:30 이후 시초가 대비 16% 상승한 가격에 매수하여 트레일스탑 15%, 손절 15% 가능하겠읍니까?
프로필 이미지
초록이
2016-02-01
113
글번호 95068
시스템