커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6191
글번호 230811
답변완료
지표식
10초봉차트에서 20일이동평균선을 표시하고자 할 때 지표식 부탁드립니다.
2017-12-01
168
글번호 114625
답변완료
문의드립니다~
1. 하단볼린저밴드의 최근20봉중에서 최고값이 형성된 봉이 최근20봉 중의 최저값이 형성된 봉보다 더 먼저 있거나 같이 있다.
위 내용을 식으로 부탁드립니다.~ index를 이용하는거 같은데 index사용이 생소해서요~
그리고 예스트레이더에서 동그라미랑 네모도구를 가지고 화면에 그리면 안지워지고 잘 그려질 때도 있는데 그리자마자 계속해서 지워지거든요 이부분 다시 고칠 수 있는 방법이 있을까요
2017-12-01
152
글번호 114624
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 즐거운 주말 되세요~~
1. 시스템
피라미딩 설정으로 매수하고 있는 식인데요. 여기에다가 포지션 전체 손실금이 n이 되면 포지션 모두 청산하고 더이상 진입하지 않는 코딩 부탁드립니다.
input : 날짜(20171130),설정자금(1000000),자금나누기(5);
if sdate == 날짜 and stime > 141900 and stime < 152000 then
buy("b",OnClose,def,floor((설정자금/자금나누기)/C));
if NextBarSdate > sdate Then
ExitLong("bx",AtMarket);
2. 시스템
09:00~09:30 사이
시가가 n% 이상일 때
고가 - n%로 가격이 떨어졌을 때 즉시 진입
진입가격+n%에 도달할 때 즉시 청산
진입은 하루 1회
3. 시스템
분봉에 적용하고 있는데요. 아래식에 n개봉 이내에 종가가 볼린저밴드 상단선을 '하향돌파하지 않음'(하향돌파했음 n개봉 조건이 사라질 때까지 진입하지 않도록)이라는 조건 추가 부탁드립니다.
Inputs: rt(0);
var : ChUp(0), ChDn(0);
ChUp = dayopen + ((dayhigh(1) - daylow(1)) * rt);
ChDn = dayopen - ((dayhigh(1) - daylow(1)) * rt);
If crossup (Close, ChUp) then
buy();
if crossdown (Close, dayopen) then
exitlong();
4. 종목검색
해당날짜(날짜)에 종가가 볼린저밴드 상단에 있는 코스닥 종목을 찾으려고 이렇게 작성했는데요. 해당날짜가 장이 열렸던 날이고 검색기준도 500으로 넉넉하게 잡았는데 하나도 나오지 않았습니다. 뭘 잘못했는 지 몰라서 질문드립니다.
input : p(200),dv(2), 날짜(20170109),코드구분(2);
var1 = BollBandUp(p,dv);
if c > var1 and sdate == 날짜 and CodeCategory == 코드구분 Then
find(1);
5. 종목검색
-날짜기준(변수) 이전 3일간 평균상승률이 10% 이상
-날짜기준(변수) 이전 3일간 평균변동폭이 15% 이상
-날짜기준(변수) 이전 3일간 평균 거래대금 80억이상
2017-12-01
187
글번호 114623
답변완료
55714에 관한 질문입니다
그전에 올린 예스차트처럼 매봉마다 지표 수치가 변하는것이 아니고 위차트처럼 기준가격기준으로 일직선으로 그어지게 만들어주세요. 기준가격은 당일시가 혹은 당일 상승vi이나 하락vi가격이고 상승vi는 기준가격 기준으로 10%,하락vi는 기준가격 기준으로 -10%입니다.
2017-12-01
188
글번호 114619
유선 님에 의해서 삭제되었습니다.
2017-12-01
1
글번호 114618
답변완료
수식 부탁드립니다
1.
시간대별(60분 단위) 고가(A)를 그린다
시간대별(60분 단위) 저가(B)를 그린다
A와 B 진폭(A~B)의 상방 대칭(=A*2-B)을 그린다
A와 B 진폭(A~B)의 하방 대칭(=B*2-A)을 그린다
A의 당일 최고가(C)를 그린다
B의 당일 최저가(D)를 그린다
C와 D 진폭(C~D)의 상방 대칭(=C*2-D)을 그린다
C와 D 진폭(C~D)의 하방 대칭(=D*2-C)을 그린다
2.
A를 돌파하는 양 캔들 매수
B를 붕괴하는 음 캔들 매도
3.
A를 돌파하는 양 캔들 매수...1포 익절,1포 손절
B를 붕괴하는 음 캔들 매도...1포 익절,1포 손절
감사합니다
2017-12-01
199
글번호 114617
답변완료
문의 드립니다.
안녕하세요.
키움에서 사용한 수식을 예스로 옮기고 싶은데요.
제가 초보이라 ㅠㅠ 해보지만 너무 어려워서 도움 부탁드립니다.
상승V 와 하락V 두가지인데요 이 두개를 차트에 각각 직선으로 표시 되는 겁니다.
이해 되십니까? 예스로 옮기기 가능하세요?
======================================
상승 V
A5=MA(가격,P5,이평종류);
A20=MA(가격,P20,이평종류);
A60=MA(가격,P60,이평종류);
A120=MA(가격,P120,이평종류);
B1=CROSSUP(A20,A120);
B2=CROSSDOWN(A5,A20);
B3=CROSSDOWN(A20,A60);
AL=LOWESTSINCE(1, B3, L);
BH=HIGHESTSINCE(1, B1, H);
BL=LOWESTSINCE(1, B2, L);
VN=IF(B2 AND L==BL,1,0);
V=2*BH-BL;
N=BH-AL+BL;
VALUEWHEN(1,VN,V)
하락 V
A5=MA(가격,P5,이평종류);
A20=MA(가격,P20,이평종류);
A60=MA(가격,P60,이평종류);
A120=MA(가격,P120,이평종류);
B1=CROSSUP(A20,A120);
B2=CROSSDOWN(A5,A20);
B3=CROSSDOWN(A20,A60);
AH=HIGHESTSINCE(1, B1, H);
AL=LOWESTSINCE(1, B3, L);
BH=HIGHESTSINCE(1, B2, H);
LVN=IF(B2 AND H==BH,1,0);
VL=2*AL-BH;
NL=AL+BH-AH;
VALUEWHEN(1,LVN,VL)
======================================
2017-12-01
218
글번호 114616
답변완료
문의드립니다
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),
Text1(0),처리구분(""),T(0);
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
T = 1;
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],
sDate[eBar],sTime[eBar],고점[1,1]);
TL2 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],
sDate[eBar],sTime[eBar],저점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],
NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
TL_SetColor(TL2,BLUE);
}
}
If 처리구분 == "저점처리" Then
{
T = -1;
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],
sDate[eBar],sTime[eBar],저점[1,1]);
TL2 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],
sDate[eBar],sTime[eBar],고점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],
NumToStr(저점[1,1],1));
Text_SetStyle(Text1, 2, 10);
TL_SetColor(TL2,MAGENTA);
}
}
TL_SetSize(TL1,3);
TL_SetColor(TL1,CYAN);
TL_Delete(TL3);
if T == 1 then{
TL3 = TL_New(sDate[index-고점[1,2]],sTime[index-고점[1,2]],고점[1,1],sDate,sTime,고점[1,1]);
TL_SetColor(TL3,MAGENTA);
TL_SetSize(TL3,3);
TL_SetExtRight(TL3,true);
}
if T == -1 then{
TL3 = TL_New(sDate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1],sDate,sTime,저점[1,1]);
TL_SetColor(TL3,BLUE);
TL_SetSize(TL3,3);
TL_SetExtRight(TL3,true);
}
다시한번더문의드립니다 현재그림과같이 핑크색은 트리(true)가안된상태에서고점에서 저점을찍으면핑크색이 나오는데 나올때만 트리(true)로 나오게할수있는지요?(나오기전에는트리가안된상태에서고점저점이바낄때만트리로)블루색도마찬가지로...가능하다면 부탁드립니다~~미리감사드립니다
2017-12-01
239
글번호 114615
답변완료
55709글 관련 재질문
질문을 통해 받은 기준자산 3분할 매매식을 아래와 같은 기준수량 3분할 매매식으로 고쳐보았습니다.
input : 기준수량(100);
var : ET1(0),ET2(0),ET3(0);
if Bdate != Bdate[1] Then{
if stime < 100000 Then
{
ET1 = 90000;
ET2 = 90300;
ET3 = 90600;
}
else
{
ET1 = 100000;
ET2 = 100300;
ET3 = 100600;
}
}
if stime == 142700 or (stime > 142700 and stime[1] < 142700) Then{
var1 = 기준수량*(1/3);
buy("b1",OnClose,def,Floor(var1));
}
if stime == 143000 or (stime > 143000 and stime[1] < 143000) Then{
var1 = 기준수량*(1/3);
buy("b2",OnClose,def,Floor(var1));
}
if stime == 143300 or (stime > 143300 and stime[1] < 143300) Then{
var1 = 기준수량*(1/3);
buy("b3",OnClose,def,Floor(var1));
}
if MarketPosition == 1 and sdate > EntryDate then{
if stime == ET1 or (stime > ET1 and stime[1] < ET1) Then
ExitLong("bx1",OnClose,def,"",floor(MaxContracts*(1/3)),1);
if stime == ET2 or (stime > ET2 and stime[1] < ET2) Then
ExitLong("bx2",OnClose,def,"",floor(MaxContracts*(1/3)),1);
if stime == ET3 or (stime > ET3 and stime[1] < ET3) Then
ExitLong("bx3");
}
기준수량을 100(3의 배수가 아님)으로 설정하니 33개씩 매매가 되고 1개가 남습니다.
3번째 매매(b3, bx3) 때 잔량 전부(34개)를 매매하게 하려면 식을 어떻게 수정해야 할까요?
감사합니다.
2017-11-30
168
글번호 114614