커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7696
글번호 230811
답변완료
부탁드립니다.
갭보정하여 DMI에서 DIPlus와 DIMinus가 크로스가 발생하는 종목을 검색하고 싶습니다.
신속한 답변에 항상 감사합니다.
행복한 하루 되십시요.
2011-11-11
403
글번호 44647
답변완료
문의드립니다.
안녕하세요.
아래 기존 작성된식에 2가지 추가하고자 문의드립니다.
추가내용
########
1)최고가격/최저가격
If ma(c,5) > var3 Then
var4 = 최고가격
If ma(c,5) < var3 Then
var5 = 최저가격
plot4(var4);
plot5(var5);
plot6(설명); ==> ma(c,5) > var4
var6 = var5;
ma(c,5) < var5
var6 = var4;
2)추세선 작성
A)하락추세선 작성방법
********************
If ma(c,5) > var3 Then 일 경우 ---> A추세선(하락추세선)
직전최고가격과 직전전최고가격의 고점을 비교하여 작성
직전고점가격 < 직전전고점가격 => 고점 고점 연결추세선
직전고점가격 > = 직전전고점가격 => 직전고점부터 수평선
B)상승추세선 작성방법
********************
If ma(c,5) < var3 Then 일 경우 ---> B추세선(상승추세선)
직전최저가격과 직전전최저가격의 저점을 비교하여 작성
직전저점가격 > 직전전저점가격 => 저점 저점 연결추세선
직전저점가격 < = 직전전저점가격 => 직전저점부터 수평선
C)추세선 길이 작성방법
추세선 길이는 MA(C,5)이 VAR3를 UP / DOWN 할때 까지만 작성.
즉
UP 일 경우는 UP 기간 동안만 작성((DOWN 시작시 까지)
DOWN 일경우는 DOWN 기간 동안만 작성(UP 시작시 까지)
감사합니다.
## 기존식
========================================
Input : af(0.02), maxAF(0.2);
Var : value(0),Position(0);
value = sar(af,maxAF);
If crossup(C, value) Then
{
Position = 1;
var1 = H;
var2 = L;
var11 = var1[1];
var12 = var2[1];
}
If CrossDown(C, value) Then
{
Position = -1;
var1 = H;
var2 = L;
var11 = var1[1];
var12 = var2[1];
}
if H > var1 Then
var1 = H;
if L < var2 Then
var2 = L;
if Position == 1 and crossup(ma(c,5),var11) Then
var3 = var12;
if Position == -1 and CrossDown(ma(c,5),var12) Then
var3 = var11;
plot1(var1);
plot2(var2);
plot3(var3);
끋.
2011-11-11
494
글번호 44646
답변완료
문의합니다
아래 지그재그식을 이용해서
첨부한 그림처럼 표시되게 부탁합니다
상승과 하락시 출발점을 다르게 잡는게 힘드네요
Input:상승률(0.12),하락률(0.12);
Var:j(0),상승(100),하락(-100),양방향(2),색깔(0),파랑(-1),빨강(1),
기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),추세(0),이중파동(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0);
#==========================================#
# 전고점,전저점 index 증가
#==========================================#
For j = 1 To 19
{
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#==========================================#
# 이중파동 처리
#==========================================#
If 이중파동 > 0 Then
{
Plot1(이중파동,"Zigzag",Iff(색깔==빨강,RED,BLUE));
이중파동 = 0;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If 기준고 <= H || 기준고 == 0 || IsNaN(기준고) == True Then
{
기준고 = H;
기준고Bar = 0;
}
Else
기준고Bar = 기준고Bar + 1;
If 기준저 >= L || 기준저 == 0 || IsNaN(기준저) == True Then
{
기준저 = L;
기준저Bar = 0;
}
Else
기준저Bar = 기준저Bar + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If 기준고 * (1 - (하락률/100)) > H && 기준저 * (1 + (상승률/100)) < L Then
{
추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락));
}
Else If 기준고 * (1 - (하락률/100)) > H Then 추세 = 하락;
Else If 기준저 * (1 + (상승률/100)) < L Then 추세 = 상승;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 추세[1] == 상승 && 추세 == 하락 Then
{
For j = 18 DownTo 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강 ;
If 이중파동[1] > 0 Then 이중파동 = 고[1];
Else plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
}
If 추세[1] == 하락 && 추세 == 하락 &&
고[1] < 기준고 &&
기준고 * (1 - (하락률/100)) > H Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
If 추세[1] == 하락 && 추세 == 상승 Then
{
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
If 이중파동[1] > 0 Then 이중파동 = 저[1];
Else plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
}
If 추세[1] == 상승 && 추세 == 상승 &&
저[1] > 기준저 &&
기준저 * (1 + (상승률/100)) < L Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강;
plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
If 추세 == 양방향 Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
추세 = 추세[1];
If 추세[1] == 상승 Then
{
If 고[2] < 고[1] Then 색깔 = 빨강;
Plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
Else
{
If 저[2] > 저[1] Then 색깔 = 파랑;
Plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
}
2011-11-11
643
글번호 44645
답변완료
시스템 식 구현 관련해서 문의 드립니다.
얼마전 부터 예스 랭귀지를 배우고 있습니다.
전에 ELW 매매를 했었구요
질문은 2가지 입니다.
동영상 강의를 듣고 QnA를 둘러 봤는데 종목검색을 오토로 해서 수식에 맞는 종목을 또 자동
으로 시스템 진입/청산을 할 수는 없다고 하던데요
창을 링크 걸면 차트는 자동으로 변하던데 변하는 순간 순간에 시스템식으로 진입 신호를 감
지 할 수는 없는 것 인가요?
불가능 하다면 원하는 종목을 계속 띄워 놔야 하는데 전략실행차트는 몇개까지 띄울 수 있나
요?
종목 ELW 의 경우 본주 매수1호가를 한번에 먹을때을 상승형 틱체결로 감지 할 수 있는 건가
요? 가능하다면 수식좀 부탁 드립니다.
2011-11-10
511
글번호 44644
답변완료
문의드립니다
매매일지를 print를 통해 관리하고 싶습니다.
Input : shortPeriod(3), longPeriod(6);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
If MarketPosition == 0 and CrossUP(value1, value2) Then
{ buy(); }
If MarketPosition == 1 and CrossDown(value1, value2) Then
{ExitLong(); }
위와 같은 수식에서 진입가, 진입시간, 청산가, 청산시간 네 가지를 print되게
하려고 하는데 어떻게 사용해야 할지 몰라 질문드립니다.
2011-11-10
397
글번호 44641
골드드래곤 님에 의해서 삭제되었습니다.
2011-11-10
115
글번호 44639
프리 님에 의해서 삭제되었습니다.
2011-11-10
24
글번호 44625
답변완료
문의드립니다.
안녕하세요.
파라볼릭에 대한 문의드립니다
Input : af(0.02), maxAF(0.2);
Var : value(0);
value = sar(af,maxAF);
If crossup(C, value) Then
{
var1 = 최고점;
var2 = 최저점;
}
If CrossDown(C, value) Then
{
var1 = 최고점;
var2 = 최저점;
}
plot1(var1);
plot2(var2);
plot3(var3 ,설명);
## 설명드립니다
종가가 직전최고점 직전최저점 돌파 이탈시 지지 저항선으로 작성하고자 합니다
ex)
현재 매수시그널 발생하여 직전 매도구간의 최고점을 종가가 돌파하면 직전최저점이
지지 plot(var3)로 작성되고 다시 하락시그널이 발생하여 직전매수구간의 최저점을
이탈하면 직전최고점이 저항 plot(var3)로 작성되게 하고자합니다.
감사합니다.
2011-11-10
425
글번호 44624
답변완료
문의드립니다
input : shortPeriod(12),longPeriod(26),Period(9);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1,Period); 으로설정하고
문1)
현재 매수포지션 일때
가장최근에 value1이 value2를 골든크로스 했던 봉의 저가를 하향돌파 하면 매수청산 하는 수식부탁 드립니다
문2)
cond1== 최근 value1 이 value2를 골든크로스 할 당시의 value1값이
직전 value1 이 value2를 골든크로스 할 당시의 value1값보다 크다
cond2== 최근 value1 이 value2를 골든크로스 할 당시의 5이평이
직전 value1 이 value2를 골든크로스 할 당시의 5이평값보다 작다
현재 매수포지션 일때 cond1 and cond2 이면 청산하는 수식 부탁드립니다
2011-11-10
337
글번호 44623