커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5509
글번호 230811
답변완료
문의 에스추세선골드2분
input:p1(48),Rsi변동폭(10);
Var:j(0),상승(100),하락(-100),양방향(2),추세(0),
파동선(0),Rsi파동선(0),방향(0),RsiV(0),Rsi추세선(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),
Rsi고[20](0),Rsi저[20](0),Rsi고Bar[20](0),Rsi저Bar[20](0);
RsiV =RSI(P1);
#==========================================#
# 전고점,전저점 index 증가
#==========================================#
For j = 1 To 19
{
Rsi고Bar[j] = Rsi고Bar[j] + 1;
Rsi저Bar[j] = Rsi저Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If Rsi고[0] <= RsiV || Rsi고[0] == 0 || IsNaN(Rsi고[0]) == True Then
{
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
}
Else
Rsi고Bar[0] = Rsi고Bar[0] + 1;
If Rsi저[0] >= RsiV || Rsi저[0] == 0 || IsNaN(Rsi저[0]) == True Then
{
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
}
Else
Rsi저Bar[0] = Rsi저Bar[0] + 1;
If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then
{
고[0] = H;
고Bar[0] = 0;
}
Else
고Bar[0] = 고Bar[0] + 1;
If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then
{
저[0] = L;
저Bar[0] = 0;
}
Else
저Bar[0] = 저Bar[0] + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If Rsi저[0][1] + Rsi변동폭 > RsiV[1] &&
Rsi저[0][1] + Rsi변동폭 <= RsiV Then 방향 = 상승;
If Rsi고[0][1] - Rsi변동폭 < RsiV[1] &&
Rsi고[0][1] - Rsi변동폭 >= RsiV Then 방향 = 하락;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 방향[1] == 하락 && 방향 == 상승 Then
{
For j = 18 DownTo 1
{
Rsi저[j+1] = Rsi저[j];
Rsi저Bar[j+1] = Rsi저Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
Rsi저[1] = Rsi저[0];
Rsi저Bar[1] = Rsi저Bar[0];
Rsi파동선 = Rsi저[0];
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
저[1] = 저[0];
저Bar[1] = 저Bar[0];
파동선 = 저[0];
저[0] = L;
저Bar[0] = 0;
고[0] = H;
고Bar[0] = 0;
}
Else If 방향[1] == 상승 && 방향 == 하락 Then
{
For j = 18 DownTo 1
{
Rsi고[j+1] = Rsi고[j];
Rsi고Bar[j+1] = Rsi고Bar[j];
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
Rsi고[1] = Rsi고[0];
Rsi고Bar[1] = Rsi고Bar[0];
Rsi파동선 = Rsi고[0];
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
고[1] = 고[0];
고Bar[1] = 고Bar[0];
파동선 = 고[0];
고[0] = H;
고Bar[0] = 0;
저[0] = L;
저Bar[0] = 0;
}
Else If 방향[1] == 하락 && 방향 == 하락 Then
{
If Rsi고[1] < Rsi고[0] &&
Rsi고[0][1] - Rsi변동폭 <= RsiV[1] &&
Rsi고[0][1] - Rsi변동폭 > RsiV Then
{
Rsi고[1] = Rsi고[0];
Rsi고Bar[1] = Rsi고Bar[0];
Rsi파동선 = Rsi고[0];
Rsi고[0] = RsiV;
Rsi고Bar[0] = 0;
}
If 고[1] < 고[0] &&
고[0] > H Then
{
고[1] = 고[0];
고Bar[1] = 고Bar[0];
파동선 = 고[0];
고[0] = H;
고Bar[0] = 0;
}
}
Else If 방향[1] == 상승 && 방향 == 상승 Then
{
If Rsi저[1] > Rsi저[0] &&
Rsi저[0][1] + Rsi변동폭 >= RsiV[1] &&
Rsi저[0][1] + Rsi변동폭 < RsiV Then
{
Rsi저[1] = Rsi저[0];
Rsi저Bar[1] = Rsi저Bar[0];
Rsi파동선 = Rsi저[0];
Rsi저[0] = RsiV;
Rsi저Bar[0] = 0;
}
If 저[1] > 저[0] &&
저[0] < L Then
{
저[1] = 저[0];
저Bar[1] = 저Bar[0];
파동선 = 저[0];
저[0] = L;
저Bar[0] = 0;
}
}
If Rsi파동선[1] != Rsi파동선 Then{
if 방향 == 하락 and Rsi파동선 >= 65 then
sell();
if 방향 == 상승 and Rsi파동선 <= 35 then
buy();
}
2023-08-05
915
글번호 171114
답변완료
문의
당일 아침9시 이후의 데이타2,데이타3의 고가,저가가 한지표에 나타나도록 표현을 부탁드립니다.
2023-08-01
901
글번호 171113
답변완료
수식 변환 부탁드립니다
관리자님~~
더운 여름 건강 유의 하시길 바랍니다.
하기 RSI 기준 백분율 및 시그널로 표현한 것입니다.
R=RSI(Period);
(R-Lowest(R, 기간))/(Highest(R, 기간)-Lowest(R, 기간))*100
Rs=eavg(RSI(Period), Signal);
(Rs-Lowest(Rs, 기간))/(Highest(Rs, 기간)-Lowest(Rs, 기간))*100
*Period : 26
*기간 : 120
*Signal : 9
검색 조건
R이 20 돌파 ---- 과매도 구간
R 이 Rs 돌파 --- 시그널 돌파
2가지 조건을 각각 검색하고자 합니다
2023-08-01
1757
글번호 171112
답변완료
문의
아침 선물 9시이후 저가,고가,시가를 텍스트로 표현하고 숫자가 나타나게 부탁드립니다
2023-08-01
1308
글번호 171111
답변완료
수식 부탁드립니다
안녕하세요
장 시작 후 (장 시작 시간은 변수로 지정. 090000등등),
x 분 이내에, Y라는 이벤트가 z회 이상 발생 할 시
를 어떻게 수식으로 나타낼 수 있나요???
2023-08-01
1407
글번호 171110
답변완료
수정부탁드립니다-----------------------------------
//주의신호를 0 으로 입력해도 계속 소리가나네요 수정 부탁드립니다 수고하세요
input : 주의신호(0),Period1(13),Period2(25),Period3(2),Length1(26),Length2(50),Length3(2);
var : StMomentum1(0),StMomentum2(0);
StMomentum1 = SMI(Period1,Period2,Period3);
StMomentum2 = SMI(Length1,Length2,Length3);
plot1(StMomentum1);
plot2(StMomentum2);
PlotBaseLine1(40,"과열");
PlotBaseLine2(-40,"침체");
if StMomentum1 > StMomentum1[1] Then {
if 주의신호 == 1 then {
PlaySound("C:₩Users₩user₩Desktop₩Sound₩상30초.wav");
}
}
if StMomentum1 < StMomentum1[1] Then {
if 주의신호 == 1 then {
PlaySound("C:₩Users₩user₩Desktop₩Sound₩하20초.wav");
}
}
2023-08-01
1091
글번호 171109
답변완료
최고가, 최저가 구하기
차트에서
최고가, 최저가를 구하려면 어떻게 해야 하나요??
2023-08-01
819
글번호 171107
답변완료
분봉에서 일봉의 atr
안녕하세요 항상 많은 도움 주셔서 감사합니다.
아래는 분봉상에서 일봉의 atr을 사용자함수화 한 뒤, 과거 atr을 구하기 위해
배열변수에 일봉의 atr을 저장한 내용입니다.
문제는 atr의 변수값을 모두 일일이 다르게 설정한 뒤 과거값을 구해야 한다는 것입니다.
일봉상에서는 atr 변수값을 자유자제로 (예를들면 ATR(6)[4], ATR(4)[8] 와 같이) 다루는게 가능한데, 분봉상에서는 저렇게 하나하나 따로 때어서 정의해야 합니다. 이를 일봉상에서 자유롭게 atr변수와 과거값을 불러오듯 더 간편하게 할 수 있는 방법은 없을까요?
input : P(20);
var : TH(0),TL(0),Sum(0),TR(0),DayATR(0),cnt(0);
Array : dayatr4[20](0),dayatr6[20](0);
/*//////////////////////////////아래 식은 사용자 함수화 내용입니다/////////////////////////////////////////////
sum = 0;
for cnt = 0 to P-1{
If DayClose(cnt+1) > dayhigh(cnt) then
TH = DayClose(cnt+1);
else
TH = dayhigh(cnt);
If DayClose(cnt+1) < DayLow(cnt) then
TL = DayClose(cnt+1);
else
TL = daylow(cnt);
TR = TH-TL;
Sum = Sum+TR;
}
ATRminute = Sum/P;
///////////////////////////////////////////////////////////////////////////*/
dayatr4[0] = ATRminute(4);
If sDate!=sDate[1] Then
{
For cnt = 0 to 20 {
dayatr4[cnt+1] = dayatr4[cnt][1];
}
}
dayatr6[0] = ATRminute(6);
If sDate!=sDate[1] Then
{
For cnt = 0 to 20 {
dayatr6[cnt+1] = dayatr6[cnt][1];
}
}
Plot1(dayatr6[4]);
Plot2(dayatr4[8]);
2023-08-01
1021
글번호 171106
답변완료
시스템식 문의드립니다.
안녕하세요..
조건만족시 같은 포지션으로는 한번만 진입되는 수식 문의드립니다.
매수조건:
- 20이평 위에서 주가가 10이평 골든크로스 할때
매수청산조건:
- 주가가 20이평을 이탈하거나
- 5이평과 10이평 데드크로스 될 때 청산
* 매수포지션 청산 후에 매도신호 없이 다시 매수조건이 충족될 경우에는 추가 매수진입 금지
즉, 매수포지션 청산 후 다시 20이평 위에서 주가가 10이평 골든크로스 하더라도
매수진입 금지
매도조건 :
- 20이평 아래에서 주가가 10이평을 데드크로스 할때
매도청산조건:
- 주가가 20이평을 상향돌파하거나
- 5이평과 10이평이 골든크로스 될때 청산
* 매도포지션 청산 후에 매수신호 없이 다시 매도조건이 충족될 경우에는 추가 매도진입 금지
즉, 매도포지션 청산 후 다시 20이평 아래에서 주가가 10이평을 데드크로스 하더라도
매도진입 금지
2023-07-31
1052
글번호 171105