커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4422
글번호 230811
답변완료
수식 점검 부탁드립니다.
아래의 수식을 사용하고 있습니다.
오늘 아이리버와 로보스타 두 종목에서 예상했던 시그널이 나오지 않아서
수식에 잘못된 부분이 있는지 점검해 주시면 감사하겠습니다.
아이리버
전일종가와 시가가 같았으며 초반 상승후 하락하였다가 전일종가를 돌파하는 시점에서 매수 시그널이 발생하지 않았습니다.
로보스타
전일종가와 시가가 같았으며 초반 하락후 상승하여 전일종가를 돌파하는 시점에서 매수 시그널이 발생하지 않았습니다.
이왕에 봐 주시는거 몇가지 더 질문 드리겠습니다.
시초가가 전일종가보다 높고 전일종가보다 당일저가가 높을때 시가돌파시 매수
시초가가 전일종가보다 높고 전일종가보다 당일저가가 낮되 전일저가보다 높을때 전일종가돌파시 매수
시초가가 전일종가보다 낮을때 하락후 시가돌파시 매수
이 부분도 한번 봐주시면 감사하겠습니다.
- 아 래 -
input : 날짜 (20180808);
if date != date[1] Then
Condition1 = false;
if Condition1 == false and
sdate == 날짜 and
dayindex > 0 and
dayopen > DayClose(1) and
dayopen < DayClose(1)*1.07 and
daylow > dayclose(1) and
CrossUp(C,DayOpen) Then{
Condition1 = true;
Buy("매수1",OnClose,def,Floor(C));
}
if Condition1 == false and
sdate == 날짜 and
dayindex > 0 and
dayOpen > DayClose(1) and
dayOpen < DayClose(1)*1.07 and
daylow < dayclose(1) and
Daylow > Daylow(1) and
CrossUp(C,DayClose(1)) Then{
Condition1 = true;
Buy("매수2",OnClose,def,Floor(C));
}
if Condition1 == false and
sdate == 날짜 and
dayindex > 0 and
dayopen < DayClose(1) and
Daylow > Daylow(1) and
CrossUp(C,DayOpen) Then{
Condition1 = true;
Buy("매수3",OnClose,def,Floor(C));
}
if NextBarSdate == 날짜 and
NextBarSdate != sdate and
NextBarOpen == C and
Daylow > Daylow(1) and
CrossUp(C,DayOpen) Then{
Buy("매수4",OnClose,def,Floor(C));
}
if MarketPosition == 1 and C > AvgEntryPrice Then
ExitLong("수익",Atlimit,EntryPrice*1.06);
if MarketPosition == 1 and C > AvgEntryPrice Then
ExitLong("매도",AtStop,highest(H,BarsSinceEntry)*0.97);
if MarketPosition == 1 Then
ExitLong("손절",AtStop,highest(H,BarsSinceEntry)*0.96);
2018-08-08
196
글번호 121235
yes 님에 의해서 삭제되었습니다.
2018-08-08
1
글번호 121233
회원 님에 의해서 삭제되었습니다.
2018-08-08
18
글번호 121232
답변완료
재 문의드립니다.
안녕하세요 아래식 해주셨는데 작동이 안되서 다시 문의드립니다.
다름이 아니라 따로 설정된 진입조건이 있는것이 아니라
제가 지정한 값 ( 270.5에 매도진입, 식으로 수치와 방향 지정하여) 넣어서
오실레이터 전환 또는 지정한 수치와방향에 왔을때
작동되도록 부탁드립니다.
감사합니다.
------------------------------------------------
안녕하세요
예스스탁입니다
Input : shortPeriod(12), longPeriod(26), Period(9);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
value3 = value1-value2;
If CrossUP(value3, 0) Then
{
if MarketPosition == 0 or (MarketPosition == -1 and IsEntryName("s1") == true) Then
Buy("b1");
}
If CrossDown(value3, 0) Then
{
if MarketPosition == 0 or (MarketPosition == 1 and IsEntryName("b1") == true) Then
Sell("s1");
}
If 설정값매수진입조건 Then
{
if MarketPosition == 0 or (MarketPosition == -1 and IsEntryName("s1") == false) Then
Buy("b1");
}
If 설정값매도진입조건 Then
{
if MarketPosition == 0 or (MarketPosition == 1 and IsEntryName("b1") == false) Then
Sell("s1");
}
즐거운 하루되세요
> 스누피독 님이 쓴 글입니다.
> 제목 : 식문의드립니다.
>
안녕하세요, 시스템식 문의 드립니다.
1번
분봉기준으로 완성봉이 되었을때
macd오실레이터가 음봉에서 양봉으로 전환되면 매수
macd오실레이터가 양봉에서 음봉으로 전환되면 매도
2번
설정값
제가 따로 값을 설정해서 그 값으로 매수나 매도가 일어나면
macd오실레이터는 작동하지않습니다.
반대로 macd오실레이터가 작동해 매수나 매도가 발생되면
설정값은 작동하지 않습니다.
1번 2번이 한개의 식입니다.
위 식 부탁드립니다.
감사합니다.
2018-08-08
120
글번호 121227
바라코드 님에 의해서 삭제되었습니다.
2018-08-08
24
글번호 121219
답변완료
수식 문의
아래와 같은 두개의 수식을 문의 드립니다.
1. --------------------------------------
다음 네개의 값을 구합니다.
1. 당일 upvol-downvol 누적값
2. data2의 당일 upvol-downvol 누적값
3. data3의 당일 upvol-downvol 누적값
4. 호가잔량
위의 지표값 중
1. 두 개 이하로 양수였다가 세개 이상이 양수가 될 때,
2.세 개가 양수였다가 네개가 양수가 될 때,
매수
1. 두 개 이하로 음수였다가 세 개 이상이 음수가 될 때,
2. 세 개가 음수였다가 네 개가 음수가 될 때
매도
2. -----------------------------------
ㄱ. 매매 종목에 볼린저 밴드를 입힙니다.
ㄴ. rsi에 볼린저 밴드를 입힙니다.
rsi가 볼린저밴드 상단선을 돌파 했다가 다시 진입하면 매도
rsi가 볼린저밴드 하단선을 이탈 했다가 다시 진입하면 매수
단, 여기에 필터를 겁니다.
매매 종목이,
(해당종목에) 설정된 볼린저 밴드의 상단선 위에 있다면,
매수만,
볼린저 밴드의 하단선 아래에 있다면,
매도만 합니다.
항상 친절한 답변 감사드립니다.
2018-08-08
150
글번호 121212
답변완료
재문의
58900번과 관련된 질문입니다
- 스팟식에서 완성, 미완성신호 관련입니다
- 먼저, 완성이던 미완성신호던 신호봉이 발생되면 신호가 발생되다가 조건에
맞지 않으면 신호가 없어졌다가, 다시 조건에 맞으면 신호가 발생하고
- 신호를 저장해서 엑셀로 보고 있는데요, 문제는 신호가 사려져도 이전에 발생된
(변수값으로 저장됨) 신호값을 그대로 엑셀로 보여주다 보니
- 현재 없어진 신호상태를 엑셀로 실시간 확인 할 수 있도록 하고 싶고(요청사항)
- 미완성 신호가 다음 확정신호와 다른 경우 이전에 발생된 확정신호를 계속 엑셀로 리턴받
고자 합니다.
- 설명이 어렸읍니다만 수식 부탁드립니다
2018-08-08
122
글번호 121210
답변완료
지표부탁드립니다
A값은 외부변수 기본값2
(0봉전 종가 >= 0봉전 시가*(1+A/100)) 또는
(1봉전종가*1.02 <= 0봉전 고가이고 0봉전 종가 >= 0봉전 시가) 또는
(2봉전종가 > 2봉전시가*1.01이고 1봉전종가 > 1봉전시가*1.01 이고 0봉전 종가 >= 0봉전 시가)
위 조건 만족시 거래량을 누적
(0봉전 종가 <= 0봉전 시가*(1-A/100)) 또는
(0봉전 종가 < 0봉전시가이고 1봉전 종가*1.03 <= 0봉전 고가) 또는
(1봉전종가*0.99 >= 0봉전 종가이고 0봉전 종가 < 0봉전 시가) 또는
(1봉전 종가*0.97 >= 0봉전저가이고 0봉전 종가 < 0봉전 시가) 또는
(1봉전고가*0.97 >= 0봉전 종가이고 0봉전 시가 > 0봉전 종가)
위 조건만족시 거래량을 차감
당일지표로 사용할 생각입니다
외부변수로 A값과 날짜를 직접 입력하게 부탁드립니다
2018-08-08
139
글번호 121209
답변완료
글번호 [58902] 재문의 합니다.
data1, data2 건 참조하는 형식이면 지난주 데이터가 전혀 메세지 로그에 찍히 않습니다.
Weekh, D2_WeekH 메세지 로그에 나오지만 Weekh1, D2_Weekh1 은 값이 0입니다.
확인 좀 해주세요.
## 아래 두 로직은 잘못 적으신거죠?
if data1(h) > WeekH Then
WeekH = data2(h);
if data2(h) > D2_WeekH Then
D2_WeekH = h;
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Re : Re : 문의 드립니다.
>
안녕하세요
예스스탁입니다.
데이터번호를 잘못적어 드렸습니다.data2로 지정되어야 합니다.
var : D2_weeko(0,data2),D2_weekh(0,data2),D2_weekl(0,data2),D2_weekc(0,data2);
var : D2_weeko1(0,data2),D2_weekh1(0,data2),D2_weekl1(0,data2),D2_weekc1(0,data2);
var : D2_weeko2(0,data2),D2_weekh2(0,data2),D2_weekl2(0,data2),D2_weekc2(0,data2);
var : D2_weeko3(0,data2),D2_weekh3(0,data2),D2_weekl3(0,data2),D2_weekc3(0,data2);
var : D2_weeko4(0,data2),D2_weekh4(0,data2),D2_weekl4(0,data2),D2_weekc4(0,data2);
즐거운 하루되세요
> 달무드 님이 쓴 글입니다.
> 제목 : Re : Re : 문의 드립니다.
> 변수 선언을 D2_weekl(0,data1) data1으로 했는데 대입할 때 D2_WeekL = Data2(l) data2로 해되 되나요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의 드립니다.
> 안녕하세요
예스스탁입니다.
var : weeko(0,data1),weekh(0,data1),weekl(0,data1),weekc(0,data1);
var : weeko1(0,data1),weekh1(0,data1),weekl1(0,data1),weekc1(0,data1);
var : weeko2(0,data1),weekh2(0,data1),weekl2(0,data1),weekc2(0,data1);
var : weeko3(0,data1),weekh3(0,data1),weekl3(0,data1),weekc3(0,data1);
var : weeko4(0,data1),weekh4(0,data1),weekl4(0,data1),weekc4(0,data1);
var : D2_weeko(0,data1),D2_weekh(0,data1),D2_weekl(0,data1),D2_weekc(0,data1);
var : D2_weeko1(0,data1),D2_weekh1(0,data1),D2_weekl1(0,data1),D2_weekc1(0,data1);
var : D2_weeko2(0,data1),D2_weekh2(0,data1),D2_weekl2(0,data1),D2_weekc2(0,data1);
var : D2_weeko3(0,data1),D2_weekh3(0,data1),D2_weekl3(0,data1),D2_weekc3(0,data1);
var : D2_weeko4(0,data1),D2_weekh4(0,data1),D2_weekl4(0,data1),D2_weekc4(0,data1);
if data1(DayOfWeek(sdate) < DayOfWeek(sdate[1])) Then
{
WeekO = data1(o);
WeekH = data1(h);
WeekL = data1(l);
WeekO1 = WeekO[1];
WeekL1 = WeekL[1];
WeekH1 = WeekH[1];
WeekC1 = WeekC[1];
WeekO2 = WeekO1[1];
WeekH2 = WeekH1[1];
WeekL2 = WeekL1[1];
WeekC2 = WeekC1[1];
WeekO3 = WeekO2[1];
WeekH3 = WeekH2[1];
WeekL3 = WeekL2[1];
WeekC3 = WeekC2[1];
WeekO4 = WeekO3[1];
WeekH4 = WeekH3[1];
WeekL4 = WeekL3[1];
WeekC4 = WeekC3[1];
}
if data1(h) > WeekH Then
WeekH = data2(h);
if data1(l) < WeekL Then
WeekL = data1(l);
WeekC = data1(c);
if data2(DayOfWeek(sdate) < DayOfWeek(sdate[1])) Then
{
D2_WeekO = Data2(o);
D2_WeekH = Data2(h);
D2_WeekL = Data2(l);
D2_WeekO1 = D2_WeekO[1];
D2_WeekL1 = D2_WeekL[1];
D2_WeekH1 = D2_WeekH[1];
D2_WeekC1 = D2_WeekC[1];
D2_WeekO2 = D2_WeekO1[1];
D2_WeekH2 = D2_WeekH1[1];
D2_WeekL2 = D2_WeekL1[1];
D2_WeekC2 = D2_WeekC1[1];
D2_WeekO3 = D2_WeekO2[1];
D2_WeekH3 = D2_WeekH2[1];
D2_WeekL3 = D2_WeekL2[1];
D2_WeekC3 = D2_WeekC2[1];
D2_WeekO4 = D2_WeekO3[1];
D2_WeekH4 = D2_WeekH3[1];
D2_WeekL4 = D2_WeekL3[1];
D2_WeekC4 = D2_WeekC3[1];
}
if data2(h) > D2_WeekH Then
D2_WeekH = h;
if Data2(l) < D2_WeekL Then
D2_WeekL = Data2(l);
D2_WeekC = Data2(c);
즐거운 하루되세요
> 달무드 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 안녕하세요.
data2 참조 관련해서, 지난주 고저 수식 부탁 드립니다. 아래처럼 했지만 원하는 결과가 나오지 않습니다.
if DayOfWeek(sdate) < DayOfWeek(sdate[1]) Then{
WeekO = DayOpen;
WeekH = DayHigh;
WeekL = DayLow;
WeekO1 = WeekO[1];
WeekL1 = WeekL[1];
WeekH1 = WeekH[1];
WeekC1 = WeekC[1];
WeekO2 = WeekO1[1];
WeekH2 = WeekH1[1];
WeekL2 = WeekL1[1];
WeekC2 = WeekC1[1];
WeekO3 = WeekO2[1];
WeekH3 = WeekH2[1];
WeekL3 = WeekL2[1];
WeekC3 = WeekC2[1];
WeekO4 = WeekO3[1];
WeekH4 = WeekH3[1];
WeekL4 = WeekL3[1];
WeekC4 = WeekC3[1];
D2_WeekO = Data2(OpenD(0));
D2_WeekH = Data2(HighD(0));
D2_WeekL = Data2(LowD(0));
D2_WeekO1 = D2_WeekO[1];
D2_WeekL1 = D2_WeekL[1];
D2_WeekH1 = D2_WeekH[1];
D2_WeekC1 = D2_WeekC[1];
D2_WeekO2 = D2_WeekO1[1];
D2_WeekH2 = D2_WeekH1[1];
D2_WeekL2 = D2_WeekL1[1];
D2_WeekC2 = D2_WeekC1[1];
D2_WeekO3 = D2_WeekO2[1];
D2_WeekH3 = D2_WeekH2[1];
D2_WeekL3 = D2_WeekL2[1];
D2_WeekC3 = D2_WeekC2[1];
D2_WeekO4 = D2_WeekO3[1];
D2_WeekH4 = D2_WeekH3[1];
D2_WeekL4 = D2_WeekL3[1];
D2_WeekC4 = D2_WeekC3[1];
}
//주종목
if DayHigh > WeekH Then
WeekH = DayHigh;
if DayLow < WeekL Then
WeekL = DayLow;
WeekC = DayClose;
//참조종목
if Data2(HighD(0)) > D2_WeekH Then
D2_WeekH = DayHigh;
if Data2(LowD(0)) < D2_WeekL Then
D2_WeekL = Data2(LowD(0));
D2_WeekC = Data2(CloseD(0));
2018-08-08
125
글번호 121208