커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7036
글번호 230811
답변완료
수식문의 드립니다
아래의 수식이 분챠트 시가에는 정확하게 맞는데
틱챠트에 적용해 보니
예) 종가가 341.95(09:34:52)라면 다음봉 시가341.95(09:35:09)에 선이 보여야 하는데
그 다음봉 341.85(09:35:43)에서 부터 시가선이 나타나는 현상이 보입니다.
틱챠트 시가에 맞는 수식 부탁드립니다.
input : 분(1);
var : S1(0),D1(0),TM(0),TF(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or
(Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then
{
var1 = O;
}
Plot1(var1);
}
2022-05-11
1328
글번호 158743
답변완료
종목검색식 부탁드립니다.
항상 감사드립니다.
다음 조건에 해당하는 종목검색식 부탁드립니다.
1) 지난 100개 캔들 이내에서
2) DMI 지표의 PDI가 3일 연속 30 초과인 동시에 MDI가 3일 연속 15 미만 상태인 적이 있고
3) 현재 볼린저밴드(20,2)의 하단밴드보다 40 이동평균선이 아래에 위치하고 있는 종목.
미리 감사드립니다.
2022-05-11
1590
글번호 158742
답변완료
77105번글 재질문입니다
혹시 H > HH 또는 L > LL 이 되었을 때
직전 봉의 상태에 대해 수식작성이 가능한가요?
예를들어
L > LL 의 1봉전의 상태가 HL > 0 이라면 noplot
H > HH 의 1봉전의 상태가 LH > 0 이라면 noplot
2022-05-11
1362
글번호 158741
답변완료
문의 드립니다.
안녕하세요 수정해준 지표 잘 쓰고 있습니다.
그런데 표시한 지표가 너무 많아서 몇개 빼고 싶어서 제가 직접 삭제 해보고 수정 해보는데 너무 잘 안되서 도움 부탁드립니다. ㅠㅠ
이 지표는 고점 저점에 3가지 숫자가 표시 되는데 그중에 시간만 남고 가격, 몇틱인지 표시되는 것을 빼주시면 감사하겠습니다.
또 고점 저점에 수평선이 나오는데 그것도 지표 변경 옵션창에 있는 수치표시 하기 기능과 비슷하게 1 하면 나오고 0 하면 안 나오게 해주시면 감사하겠습니다.
또 추가 하고 싶은게 있는데요.
지금 지표는 저점에서 고점까지 몇틱 고점에서 저점까지 몇틱 나오잖아요?
그것을 응용해서
저점시간에서 고점시간까지 빼서 시/분/초 단위로 얼마 증가 했는지
고점시간에서 저점시간까지 빼서 시/분/초 단위로 얼마 증가 했는지 이렇게 계산해서 표시 할 수 있을까요?
다시 정리 하자면
1. 3가지 표시된 것 중에 시간 남기고 다 빼버린다.
2. 수평선을 1 or 0 설정하기 기능 넣기
3. 고저 저고 몇틱을 표시한 것을 응용해서 고저 저고 시간을 빼서 시간 얼마 증가 했는지 계산해서 표시
이렇게 수정 해주시면 정말 감사하겠습니다.
================수정해준 지표================
input:length(4),종가사용여부(0),파동선두께(5),수치표시(1);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),tl2(0),tl3(0),tl4(0),tl5(0),T(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부==1,C,H);
LL = IFF(종가사용여부==1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
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
{
T = 1;
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],"+"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+NewLine+NumToStr(고[1,1],2)+NewLine+NumToStr(고[1,4],0));
Text_SetStyle(Text1, 2, 1);
Text_SetColor(Text1,BLACK);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,red);
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,NumToStr(고[1,4],0)+NewLine+"+"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+NewLine+NumToStr(고[1,1],2));
}
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
T = -1;
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)+NewLine+NumToStr((저[1,1]-고[1,1])/PriceScale,0)+NewLine+NumToStr(저[1,4],0));
Text_SetStyle(Text1, 2, 0);
Text_SetColor(Text1,BLACK);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,blue);
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,NumToStr(저[1,1],2)+NewLine+NumToStr((저[1,1]-고[1,1])/PriceScale,0)+NewLine+NumToStr(저[1,4],0));
}
}
최종꼭지점 = "저점";
}
if T == -1 and T[1] != -1 Then{
TL2 = TL_New(고[2,3],고[2,4],고[2,1],sdate,stime,고[2,1]);
TL_Delete(TL3);
TL3 = TL_New(고[1,3],고[1,4],고[1,1],sdate,stime,고[1,1]);
TL_SetExtRight(TL3,true);
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,BLUE);
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,BLUE);
}
if T == 1 and T[1] != 1 Then{
TL4= TL_New(저[2,3],저[2,4],저[2,1],sdate,stime,저[2,1]);
TL_Delete(TL5);
TL5= TL_New(저[1,3],저[1,4],저[1,1],sdate,stime,저[1,1]);
TL_SetExtRight(TL5,true);
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,RED);
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,RED);
}
+표시해서
2022-05-11
1527
글번호 158740
답변완료
문의드립니다.
시작시간 15시.30분 끝나는 시간 다음날 오전 05시50분.진입한 상품이 있다면 모두청산후
시스템 완전종료.
이평 1 이 이평 2 아래의 있고
스토캐스틱 퍼스트80 아래의 있고
스토캐스틱 퍼스트35 상향돌파 매도.40상향돌파 매도.50상향돌파 매도. 60상향돌파 매도.
65상향돌파 매도.
알에스아이 45상향돌파 매도.50상향돌파 매도.
스토캐스틱 퍼스트80 상향돌파 매도청산.
누적수익400틱. 누적수익3회 달성되면 시간과 관계없이 시스템 완전종료.
수고하세요.
2022-05-10
1041
글번호 158739
답변완료
문의드립니다.
시작시간 15시.30분 끝나는 시간 다음날 오전 05시50분.진입한 상품이 있다면 모두청산후
시스템 완전종료.
이평 1 이 이평 2 위의 있고
스토캐스틱 퍼스트20 위의 있고
스토캐스틱 퍼스트65 하향돌파 매수.60하향돌파 매수.50하향돌파 매수. 40하향돌파 매수.
35하향돌파 매수.
알에스아이 55하향돌파 매수.50하향돌파 매수.
스토캐스틱 퍼스트20 하향돌파 매수청산.
누적수익400틱. 누적수익3회 달성되면 시간과 관계없이 시스템 완전종료.
수고하세요.
2022-05-10
955
글번호 158738
답변완료
수식문의 드립니다
매번 친절하게 가르쳐 주셔서 감사 드립니다.
가르쳐 주신대로 적용 했는데 원하는 답이 안나와서 파일을 첨부해서 좀더 구체적으로 문의 드립니다.
2022-05-11
1247
글번호 158736
답변완료
수식부탁드려요
월봉기준으로 매수신호나 종목으로 검색되는 경우에, 일봉상으로 언제부터 검색되었는지 알고 싶어서 이에 대한 수식이 가능한지 여쭈어보고자 합니다.
예를들어 조건1의 수식으로 월봉상 종목이 검색되는 경우에 일봉차트상이나 파워종목검색에서 편리하게 확인할 수 있는 수식을 알려주세요.
또한 일봉상 종목검색시에 특정기간동안에 발생된 종목을 검색하고자하는 경우
<sDate >= 검색시작일 and sDate <= 검색종료일>라는 수식을 넣어서 하는데
주봉이나 월봉에서 특정기간을 설정해서 검색할려면 어케 해야하나요?
2022-05-10
1079
글번호 158735
답변완료
수식 재문의 드립니다
가르쳐 주신 수식대로 하니까 buy와sell은 전략에서만 사용할 수 있다고 나옵니다. 제가 무지해서 어떻게 해야 할지 모르겠습니다. 초보인 제가 사용할 수 있도록 부탁 드립니다.
문의하신 내용이 31이상 차이가 발생하면 매수나 매도 신호가 발생하는 것이면 아래식 적용하시면 됩니다.
가격이 상승해서 31이상이 되면 매수, 하락해서 차이가 31이상이 되면 매도가 발생하게 작성해 드립니다.
var : HH(0),LL(0);
if Index == 0 Then
{
HH = H;
LL = L;
}
Else
{
if H > HH then
{
HH = H;
if HH > LL+30 Then
Buy();
}
if L < LL Then
{
LL = L;
if LL < HH-30 Then
Sell();
}
}
2022-05-10
1222
글번호 158728