커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

하루4% 님에 의해서 삭제되었습니다.

프로필 이미지
하루4%
2016-10-20
0
글번호 103128
시스템
답변완료

부탁드려요.

10시 15분이후 저점 고점을 표시하고, 고저점 대비 10틱 15틱 자리를 표시하고 싶습니다.
프로필 이미지
디엠
2016-10-20
112
글번호 103121
지표
답변완료

부탁드립니다

수고하십니다 아래수식은지그재그 사선이형성된후 고,저수치가나타나는데요.사선이나오면 바로수치가 나타나게할수있는수식부탁드립니다 Var:jjjjj(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),Tx(0),trnd(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); For jjjjj = 0 To 9 { barArr[jjjjj] = barArr[jjjjj] + 1; } Condition1 = Highest(H,26) == H and lastHiVal <> H; Condition2 = Lowest(L,26) == L and lastLoVal <> L; If Condition1 Then lastHiVal = H; If Condition2 Then lastLoVal = L; // 전환점구분 null값으로 초기화; turnPntBit = ""; If Condition1 and Condition2 Then { If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then turnPntBit = "HiLo"; Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi"; Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo"; } Else If Condition1 Then turnPntBit = "Hi"; Else If Condition2 Then turnPntBit = "Lo"; If turnPntBit <> "" Then { If turnPntBit == "HiLo" Then { valArr[1] = IFF(turnPntArr[1] == "Hi",H,L); barArr[1] = 0; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); If turnPntArr[1] == "Hi" Then turnPntBit = "Lo"; Else turnPntBit = "Hi"; } If turnPntBit <> turnPntArr[1] Then { for jjjjj = 8 downto 1 { valArr[jjjjj+1] = valArr[jjjjj]; barArr[jjjjj+1] = barArr[jjjjj]; turnPntArr[jjjjj+1] = turnPntArr[jjjjj]; } } If turnPntBit <> turnPntArr[1] or (turnPntBit == turnPntArr[1] and ((turnPntBit == "Hi" and valArr[1] < H) or (turnPntBit == "Lo" and valArr[1] > L))) Then { valArr[1] = IFF(turnPntBit == "Hi",H,L); barArr[1] = 0; turnPntArr[1] = turnPntBit; If turnPntArr[1][1] <> turnPntArr[1][0] Then { Tx = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],NumToStr(valArr[2],2)); Text_SetStyle(tx,0,2); TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]); PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); } if turnPntArr[1][0] == "Lo" Then trnd = -1; if turnPntArr[1][0] == "hi" Then trnd = 1; } } TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); TL_SetSize(TL1[1],1); TL_SetColor(TL1[1],BLACK); if Trnd == -1 and Trnd[1] == -1 and L == TL_GetValue(TL1,sdate,stime) and L < L[1] Then PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); if Trnd == 1 and Trnd[1] == 1 and H == TL_GetValue(TL1,sdate,stime) and H > H[1] Then PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
프로필 이미지
파생돌이
2016-10-20
123
글번호 103120
지표
답변완료

수식재문의합니다

사용중인 수식을 보완하고자 합니다 알려주신 수식 var : ii(0),Tcond(false); if bdate != Bdate[1] Then{ ii = 0; Tcond = true; } if Tcond == true then{ ii = ii+1; if ii == 3 Then{ var1 = max(c,o); var2 = min(c,o); } plot1(Var1); plot2(var2); } 1.위 지표수식 2개라인이 생성될때 라인가격표시를 하고 싶습니다. 가능한가요? 2.라인생성될때 - 상단 라인으로부터 0.5포인트기준(국선)으로 위 아래로 라인을 추가하고 싶습니다, 그리고 해선은 25틱기준으로 부탁드립니다 - 마찬가지로 하단 라인으로 부터 0.5포인트기준(국선)으로 위 아래로 라인을 추가하고 싶습니다, 그리고 해선은 25틱기준으로 부탁드립니다
프로필 이미지
회원
2016-10-20
110
글번호 103114
지표
답변완료

제발 .....

제발 ㅠ 지표1 : 고가 저가 라인에서 가격대 위로 전 #틱 # 수치점 부탁드려요 ㅠ 시스템 신호 : 파동 고가 저가 꼭지점에서 유사하개 비슷한 매수 매도 시스템 시그널점 올려주세요 ㅠㅠ ㅠㅠㅠㅠㅠㅠㅠㅠ 고가저라파동차트 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-10-20
206
글번호 103112
시스템

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

프로필 이미지
수다리
2016-10-20
16
글번호 103111
종목검색
답변완료

질문입니다.

고생이 많으십니다. 번거로우시더라도 필요한 지표라서 부탁드립니다. 500틱 차트에서, 전일의 봉의 갯수를 표현하는 지표를 만들고자 합니다, 1. 전 거래일 0:00 ~ 24:00 까지의 봉의 갯수 1-1. 0:00 ~ 24:00 시간기준 전 거래일부터 x일의 봉의 갯수 (x가 2이라면 전전일의 0:00 부터 전일 24:00까지) 한국시간을 중심으로 2. 전 거래일 정규장의 봉의 갯수 3. 전 거래일 야간장의 봉의 갯수 4. 전 거래일 복합장의 봉의 갯수(전 거래일의 정규장과 야간장 봉의 갯수의 합) 5. 전 거래일을 기준으로 전 거래일 포함하여 x일의 봉의 갯수 (x가 2이라면 전 거래일과 전전 거래일, x가 3이라면 전 거래일, 전전 거래일, 전전전 거래일) 위와같은 로직을 각각 표현하는 지표를 구하고자 합니다. 문제는 질문2~5까지는 우리나라시간에 맞추어서 만들고 싶습니다. 즉, 한국 시간으로 9:00 ~ 3:45 까지 정규장으로 규정하고, 그 외의 시간은 야간장으로 규정해서 봉의 갯수를 측정하고자 합니다. 예시로 부탁드립니다. 감사합니다.
프로필 이미지
yanartas
2016-10-20
98
글번호 103109
지표
답변완료

질문드립니다.

안녕하세요 자꾸 질문드리기도 쑥쓰럽네요. 초보라 이해 부탁드립니다. 1. 일봉에 일목균형표 기준선(지표값 26)만 분봉에 표시 할수 있는지요? 2. 시스템 수식에서 분봉 조건과 일봉의 조건을 같이 적용 시킬수 있나요? 감사합니다 수고하세요~
프로필 이미지
하루4%
2016-10-19
104
글번호 103108
시스템
답변완료

말씀해주신 구문으로도 안됩니다...

자주 반복하여 질문해서 정말 죄송합니다,, 근데 뭐가 잘못된지 도저히 모르겠습니다. 1) 알려주신 수식을 이용해서 아래와 같이 실험을 해봤습니다. if data1(sdate) == data2(date) Then buy("b", AtMarket); ExitLong("Ex1", onclose); 위의 식대로라면 다우가 전날 장이 없을때만 거래가 안되어야 하는데, 코스피 전날 장이 없을때도 거래가 안됩니다.... 2) 그리고 아래와 같이.. 제가 질문했던 수식도 그대로 실험해봤는데... if data1(sdate) == data2(date) Then{ if data2(CloseD(0) > CloseD(1)) Then buy("b", AtMarket); ExitLong("ex", OnClose); } 전일 다우가 올른 다음날 아침 우리장에서 매수 진입이 되어야 하는데, 결과를 보면 그렇지가 않습니다. 혹시나 하여, 그 다음봉에 매수 신호가 들어가나 확인해보았더니.. 그렇지도 않습니다. 규칙을 모를정도로 랜덤으로 매수 신호가 나옵니다.... 간단하게 답변이 가능하시면 남겨주심 감사하겠고, 어려우시면 제가 내일 전화를 드리던지 하겠습니다.
프로필 이미지
중박주식
2016-10-19
122
글번호 103107
시스템