커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8142
글번호 230811
답변완료
문의 드립니다
안녕하세요 아래의 지표을 이격도지표로 만들고 싶습니다
감사합니다
if date != date[1] Then{
var1 = 0;
var2 = 0;
}
if C > O Then
var1 = var1+v;
if C < O Then
var2 = var2+V;
plot1(var1,"양봉거래량");
plot2(var2,"음봉거래량");
2014-10-30
170
글번호 79898
매일굿 님에 의해서 삭제되었습니다.
2014-10-30
0
글번호 79897
매일굿 님에 의해서 삭제되었습니다.
2014-10-30
0
글번호 79896
매일굿 님에 의해서 삭제되었습니다.
2014-10-30
0
글번호 79895
답변완료
엑셀을 정상적으로 호출 할 수 없습니다??
스팟에서....
for( i=3; i<=152; i++ )
{
Data[i] = Excel.GetData(1,"AEi");
Data1[i] = Excel.GetData(1,"AIi");
Data2[i] = Excel.GetData(1,"AJi");
Data3[i] = Excel.GetData(1,"Zi");// 예상 주가 상승 마지노선
}
엑셀을 정상적으로 호출할 수 없습니다.
Excel: 객체를 생성할 수 없습니다.
1) 위와 같이 나오는데 뭐가 문제인가요??
혹시 GetData안의 "AEi" 를 AE1,AE2,AE3... 이런식으로 읽어와야
되는데 AEi 그대로 읽어와서 안되는건가요??
2) 엑셀 객체의 프로세스 새로 생성이라는 말이 쉽게 말해서 뭘 말하는지 궁금합니다.
2014-10-30
349
글번호 79894
답변완료
문의드립니다.
늘 수고많으세요.
아래 키움껀데 우리트레이드로 이사하면서
예스로 바꿀려고해요 꼭 부탁드릴께요.
뭐 시스템신호로는 수익이 별로지만
이전부터 봐왔던거라서요.
매수진입 = 매도청산
If((eavg(c,10)>BBandsC(Period,D1)or
eavg(c,5)>=eavg(c,10)),c<LRL(Period1),0);
if((eavg(c,10)>BBandsC(Period,D1)&&
eavg(c,5)>=eavg(c,10)),c,0)&&
100* (10 - ((
If (h(1) == highest(h,10), 1 ,
If (h(2) == highest(h,10), 2 ,
If (h(3) == highest(h,10), 3,
If (h(4) == highest(h,10), 4,
If (h(5) == highest(h,10), 5,
If (h(6) == highest(h,10), 6,
If (h(7) == highest(h,10), 7,
If (h(8) == highest(h,10), 8,
If (h(9) == highest(h,10), 9,
If (h(10)== highest(h,10), 10, 0) ) ) ) ) ) ) ) ) ) ) ) ) / 10
>
100* (10 - ((
If (L(1) == lowest(L,10), 1 ,
If (L(2) == lowest(L,10), 2 ,
If (L(3) == lowest(L,10), 3,
If (L(4) == lowest(L,10), 4,
If (L(5) == lowest(L,10), 5,
If (L(6) == lowest(L,10), 6,
If (L(7) == lowest(L,10), 7,
If (L(8) == lowest(L,10), 8,
If (L(9) == lowest(L,10), 9,
If (L(10) == lowest(L,10), 10, 0)))) ))))))))) / 10
매수청산 = 매도진입
If((eavg(c,10)<BBandsC(Period,D1)or
eavg(c,5)<=eavg(c,10)),c<LRL(Period1),0);
if((eavg(c,10)<BBandsC(Period,D1)&&
eavg(c,5)<=eavg(c,10)),c,0)&&
100* (10 - ((
If (h(1) == highest(h,10), 1 ,
If (h(2) == highest(h,10), 2 ,
If (h(3) == highest(h,10), 3,
If (h(4) == highest(h,10), 4,
If (h(5) == highest(h,10), 5,
If (h(6) == highest(h,10), 6,
If (h(7) == highest(h,10), 7,
If (h(8) == highest(h,10), 8,
If (h(9) == highest(h,10), 9,
If (h(10)== highest(h,10), 10, 0) ) ) ) ) ) ) ) ) ) ) ) ) / 10
<
100* (10 - ((
If (L(1) == lowest(L,10), 1 ,
If (L(2) == lowest(L,10), 2 ,
If (L(3) == lowest(L,10), 3,
If (L(4) == lowest(L,10), 4,
If (L(5) == lowest(L,10), 5,
If (L(6) == lowest(L,10), 6,
If (L(7) == lowest(L,10), 7,
If (L(8) == lowest(L,10), 8,
If (L(9) == lowest(L,10), 9,
If (L(10) == lowest(L,10), 10, 0)))) ))))))))) / 10
지표변수
period 10
d1 1
period1 5
2시 55분에 청산
그리고 이 시스템신호를
갭보정된 차트에서와 갭조정없는 차트일때 2개로 만들어주시면
감사하겠습니다.
2014-10-29
202
글번호 79893
카르마다 님에 의해서 삭제되었습니다.
2014-10-29
0
글번호 79892
답변완료
data2용으로 수정 부탁드립니다.
120틱챠트를 기준으로 사용하고 있는데 data2에 480틱을 만들어 넣고 아래식을 사용하려고 합니다. data2에 맞게 수정해 주시면 대단히 감사하겠습니다.
==================================================================
#==========================================#
# 지표명 : RSI다이버전스 주가파동선
# 작성자 : 수식지왕
# 블로그 : http://yahoosir.blog.me
#==========================================#
Input:Period(14),Rsi변동폭(5);
Var:j(0),상승(100),하락(-100),양방향(2),추세(0),
파동선(0),Rsi파동선(0),방향(0),RsiV(0),추세선(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(Period);
#==========================================#
# 전고점,전저점 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 Plot1(파동선); //적당껏 수평이동
Else If LastBarOnChart == 1 Then plot1(Iff(방향 == 상승,고[0],저[0]));
#상승 다이버전스 : 주가의 저점 하락 + 지표의 저점 상승
If 저[2] > 저[1] &&
Rsi저[2] < Rsi저[1] Then
{
추세선 = (저[1]-저[2])/(저Bar[2]-저Bar[1])*저Bar[2] + 저[2];
Plot2(추세선);
}
#하락 다이버전스 : 주가의 고점 상승 + 지표의 고점 하락
if 고[2] < 고[1] &&
Rsi고[2] > Rsi고[1] Then
{
추세선 = (고[1]-고[2])/(고Bar[2]-고Bar[1])*고Bar[2] + 고[2];
Plot3(추세선);
}
2014-10-29
234
글번호 79890
jun85jun 님에 의해서 삭제되었습니다.
2014-10-29
0
글번호 79885