커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7195
글번호 230811
답변완료
부탁드립니다.
그림과 같이 부탁 드립니다.
Input:기간(100),매물대개수(10),선두께(1);
Var:j(0),k(0),구간최고가(0),구간최저가(0),가격단위(0),
총거래량(0),최대거래량(0),최대매물대(0),비중(0),TL1(0);
Array:매물대[30,3](0); // 열번호 1:가격이상,2:가격미만,3:수량
//============= 매물대 계산 =======================//
구간최고가 = Highest(H,기간);
구간최저가 = Lowest(L,기간);
If !(구간최고가[1] == 구간최고가 and 구간최저가[1] == 구간최저가) Then {
가격단위 = (구간최고가 - 구간최저가)/매물대개수;
매물대[1,1] = 구간최저가;
매물대[1,2] = 매물대[1,1] + 가격단위;
매물대[1,3] = 0;
For j = 2 To 매물대개수 {
매물대[j,1] = 매물대[j-1,1] + 가격단위;
매물대[j,2] = 매물대[j-1,2] + 가격단위;
매물대[j,3] = 0;
}
총거래량 = 0;
For k = 0 To 기간 - 1 {
총거래량 = 총거래량 + V[k];
For j = 1 To 매물대개수 {
If 매물대[j,1] <= C[k] and C[k] < 매물대[j,2] Then {
매물대[j,3] = 매물대[j,3] + V[k];
j = 매물대개수;
}
}
}
} Else {
총거래량 = 총거래량 + V;
For j = 1 To 매물대개수 {
If 매물대[j,1] <= C and C < 매물대[j,2] Then {
매물대[j,3] = 매물대[j,3] + V;
j = 매물대개수;
}
}
}
최대거래량 = 0;
최대매물대 = 0;
For j = 1 To 매물대개수 {
If 최대거래량 < 매물대[j,3] Then {
최대거래량 = 매물대[j,3];
최대매물대 = j; // 값이 큰 행의 번호
}
}
//============= 매물벽 출력 =======================//
If 최대매물대 > 0 Then {
TL1 = TL_New(sDate[1],sTime[1],매물대[최대매물대,1],sDate,sTime,매물대[최대매물대,2]);
TL_SetSize(TL1,선두께);
비중 = int(최대거래량 / 총거래량 * 200);
TL_SetColor(TL1,RGB(200 - 비중, 200 - 비중, 200 - 비중)); // 비중이 클수록 더 진해집니다.
}
2019-07-06
517
글번호 130103
답변완료
고저라인 파동지표식 수정
고저라인 파동지표식인데요.
추세선을 설정해보니 추세선 두께가 너무 두꺼운 듯 해서
좀 얇게 하고싶은데요.
또 수치가 표시가 되는데 수치가 표시되지 않게 하고 싶습니다.
밑에 수식중 추세선 두께부분과 수치표시부분 수식이 어떤것인지 좀 알려주시면
감사하겠습니다.
-------------------------------------------------------------------------
Input:length(10);
Var:TL1(0),TL2(0),TL2_exist(0),color(0),
종가사용여부(0), // 종가로 계산하려면 1로 설정한다.
TL_NewBit(0), // 1:NewLine 2:SetEndLine
slope(0),mid_idx(0),mid_val(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
Value1 = HiLoLineZigZag(length,종가사용여부,고,저,TL_NewBit);
// HiLoLineZigZag는 사용자함수입니다. 링크에서 내려받으세요..
If Value1 == 1 Then { // 고점
If TL_NewBit == 1 Then { // 신규
If 고[2,1] < 고[1,1] Then { // 신규 고점이 이전 고점을 상향 돌파
// y = 기울기 * x + 절편
// x = (y - 절편) / 기울기
// y = 고[2,1]
// 절편 = 저[1,1]
slope = (고[1,1] - 저[1,1]) / (고[1,2] - 저[1,2]); // 추세선의 기울기
mid_idx = Floor((고[2,1] - 저[1,1]) / slope); // 고[2,1]과 만나는 지점
mid_val = slope * mid_idx + 저[1,1];
Var1 = Index - (저[1,2] + mid_idx); // 추세선의 중간지점 x좌표
TL1 = TL_New(저[1,3],저[1,4],저[1,1],sDate[Var1],sTime[Var1],mid_val);
TL2 = TL_New(sDate[Var1],sTime[Var1],mid_val,고[1,3],고[1,4],고[1,1]);
Var2 = Index - 저[1,2]; // 이전 색깔을 따라감
TL_SetColor(TL1,color[Var2]);
color = RED; // 상향 돌파했으므로 빨간색으로 전환
TL_SetColor(TL2,color);
TL2_exist = 1; // 추세선 2개를 연결해서 그린 것이므로 추세선이 2개임을 저장
} Else {
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetColor(TL1,color);
TL2_exist = 0;
}
}
If TL_NewBit == 2 Then { // 연장
TL_Delete(TL1);
If TL2_exist == 1 Then TL_Delete(TL2); // 추세선이 2개면 두번째 추세선도 삭제
If 고[2,1] < 고[1,1] Then {
slope = (고[1,1] - 저[1,1]) / (고[1,2] - 저[1,2]);
mid_idx = Floor((고[2,1] - 저[1,1]) / slope);
mid_val = slope * mid_idx + 저[1,1];
Var1 = Index - (저[1,2] + mid_idx);
TL1 = TL_New(저[1,3],저[1,4],저[1,1],sDate[Var1],sTime[Var1],mid_val);
TL2 = TL_New(sDate[Var1],sTime[Var1],mid_val,고[1,3],고[1,4],고[1,1]);
Var2 = Index - 저[1,2];
TL_SetColor(TL1,color[Var2]);
color = RED;
TL_SetColor(TL2,color);
TL2_exist = 1;
} Else {
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetColor(TL1,color);
TL2_exist = 0;
}
}
} Else If Value1 == -1 Then { // 저점
If TL_NewBit == 1 Then { // 신규
If 저[2,1] > 저[1,1] Then {
slope = (저[1,1] - 고[1,1]) / (저[1,2] - 고[1,2]);
mid_idx = Floor((저[2,1] - 고[1,1]) / slope);
mid_val = slope * mid_idx + 고[1,1];
Var1 = Index - (고[1,2] + mid_idx);
TL1 = TL_New(고[1,3],고[1,4],고[1,1],sDate[Var1],sTime[Var1],mid_val);
TL2 = TL_New(sDate[Var1],sTime[Var1],mid_val,저[1,3],저[1,4],저[1,1]);
Var2 = Index - 고[1,2];
TL_SetColor(TL1,color[Var2]);
color = BLUE;
TL_SetColor(TL2,color);
TL2_exist = 1;
} Else {
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetColor(TL1,color);
TL2_exist = 0;
}
}
If TL_NewBit == 2 Then { // 연장
TL_Delete(TL1);
If TL2_exist == 1 Then TL_Delete(TL2);
If 저[2,1] > 저[1,1] Then {
slope = (저[1,1] - 고[1,1]) / (저[1,2] - 고[1,2]);
mid_idx = Floor((저[2,1] - 고[1,1]) / slope);
mid_val = slope * mid_idx + 고[1,1];
Var1 = Index - (고[1,2] + mid_idx);
TL1 = TL_New(고[1,3],고[1,4],고[1,1],sDate[Var1],sTime[Var1],mid_val);
TL2 = TL_New(sDate[Var1],sTime[Var1],mid_val,저[1,3],저[1,4],저[1,1]);
Var2 = Index - 고[1,2];
TL_SetColor(TL1,color[Var2]);
color = BLUE;
TL_SetColor(TL2,color);
TL2_exist = 1;
} Else {
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetColor(TL1,color);
TL2_exist = 0;
}
}
}
TL_SetSize(TL1,2);
TL_SetSize(TL2,2);
2019-07-07
461
글번호 130102
회원 님에 의해서 삭제되었습니다.
2019-07-05
7
글번호 130101
답변완료
식?
안녕하세요
단순이동평균그물망 7.8.9.10선이
50선 상승돌파 매수
50선 하락돌파 매도
단순이동평균그물망 7.8.9.10.선이
단순이동평균선그물망 12선
상승돌파 모든포지션 청산
하락돌파 모든포지션 청산
감사합니다
2019-07-05
338
글번호 130098
답변완료
수식
1.
일봉에서 가격이 상향하는 20 캔들 이평 위에 위치할 때 틱봉에서 시가-2.0 매수
일봉에서 가격이 하향하는 20 캔들 이평 아래 위치할 때 틱봉에서 시가+2.0 매도
2019-07-05
307
글번호 130097
답변완료
선 긋는 수식 작성좀 부탁드립니다.
콜옵션과 풋옵션의 각 행사가 별로 월물 첫째날 저가를 선긋기 하려고 합니다.
행사가는 등가 기준 아래위로 5개 정도씩만 하면 되겠습니다.
그러니까 콜옵션에서 10개 풋옵션에서 10개의 선이 만들어 지는 겁니다.
월물 첫째날이란?
당월물이 마감된(매월 두번째 목요일) 다음 영업일입니다.
2019-07-05
332
글번호 130093
답변완료
수식 조언좀 부탁드립니다
배경색상을 바꾸고 싶은데요
지표는 ADX를 사용하고 싶습니다.
input : Period(14);
var : ADXv(0);
ADXv = ADX(Period);
ADX수식으로 알고 있는데요
ADXv>75 크다면 배경이 빨강색
ADXv<25 작다면 배경은 초록색으로 바꾸고 싶은데요
배경색상 교환하는 수식이 있을까요?
2019-07-05
322
글번호 130089
답변완료
문의
양봉이 연속되는 경우가 아닌
연속봉 중 음봉도 포함하는 수식으로 변경하고 싶습니다.
연속봉들의 바디(시가,종가)의 총합이 1.00 포인트 이하이고 전체봉수대비 양봉수 비율이 80%보다 크면 buy 입니다.
항상 고맙습니다.
********************************************************************************
input : 연속봉수(5), 연속봉들총합(1.00);
if countif(C>O,연속봉수) == 연속봉수 and
AccumN(abs(C-O), 연속봉수) <= 연속봉들총합 then
buy();
2019-07-05
312
글번호 130087
답변완료
종목검색식에 대한 문의입니다.
<종목검색식> - 일봉 차트에서
A 금일 종가가 5봉중 신고가
B 금일 기준 5일 이평 > 10일 이평 > 20일 이평
C 금일 종가가 60일 이평을 골든크로스
A OR B OR C 조건
D 금일 첫 10분봉 거래량이 전일거래량대비 50%이상임
E 금일 첫 20분봉 거래량이 전일거래량대비 50%이상임
F 금일 거래량이 전일 거래량 대비 50% 이상 큼 (=1.5배 이상)
D OR E OR F 조건
상기한 조건의 종목을 검색하는 식을 부탁드리겠습니다. ^^
2019-07-05
382
글번호 130086