커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7525
글번호 230811
답변완료
질문
var1 = C-C[1];# 등락폭
if var1 > 0 Then{ # 상승구간
value1 = 1; # 구간번호 1
value2 = var1; #value2 상승구간의 최종 등락폭
}
if var1 < 0 Then{ #하락구간
value1 = -1; #구간번호 -1
value3 = var1; #하락구간의 최종 등락폭
}
# 상승구간으로 전환
if value1 == 1 and value1[1] != 1 Then
value22 = 0; #상승구간 등락폭 누적값을 0으로 초기화
#상승구간에서
if value1 == 1 Then{
value22 = value22+abs(var1); #매봉 등락폭을 누적
if value22 > abs(value3) then #누적값이 하락구간 최종값보다 크면 매수
buy();
}
# 하락구간으로 전환
if value1 == -1 and value1[1] != -1 Then
value33 = 0; #하락구간 등락폭 누적값을 0으로 초기화
#하락구간에서
if value1 == -1 Then{
value33 = value33+abs(var1); #매봉 등락폭을 누적
if value33 > abs(value2) then #누적값이 상승구간 최종값보다 크면 매도
sell();
}
위식을 아래식에 매수 매도식에 대입하고 싶습니다. 수식이 완료되도록 만들어주세요
input : 시작날짜(20070104);
if sdate >= 시작날짜 and c>c[1] Then{
if PositionProfit(1) >= 0 Then
buy("b1",onclose,def,1);
Else
buy("b2",onclose,def,var1*2);
}
if c<c[1] then Sell();
if MarketPosition == 1 Then
var1 = CurrentContracts;
2014-01-08
137
글번호 71188
답변완료
문의
체결강도가 타 hts 와 차이가 나는 이유가 있나요 ?
체결강도는 상승거래와 하락거래로 산출하는데
그 값은 어느 회사랑 상관없는 것 아닌가요 ?
2014-01-08
161
글번호 71185
답변완료
문의드립니다
1.
전환비율 0.5 이고 가격이 고점과저점이 0.5이하에서 움직일때만 캔들의 아래와위에 표시하고 싶습니다
2.
장시작과동시에 현재가가 시가보다 높으면 빨간색선을 시가와 봉의고점 까지 잇고
현재가가 시가보다 낮으면 파랑색선을 시가와 봉의저점 까지 잇고 싶습니다
2014-01-08
137
글번호 71184
답변완료
수식문의
추세선 긋는 수식 부탁드립니다.
예를 들어 257.20을 그으려면 어떻게 해야하는지요?
2014-01-08
134
글번호 71182
러블리 님에 의해서 삭제되었습니다.
2014-01-08
22
글번호 71181
회원 님에 의해서 삭제되었습니다.
2014-01-08
6
글번호 71177
답변완료
재문의 합니다.2
항상 도움주셔서 감사합니다.
작성식에서 이해가 되지 않는 부분이 있어 재 문의 드립니다.
1.
작성식 1번중
BBup = data1(BollBandUp(20,2));
BBdn = data1(BollBandUp(20,2)); >>>BollBandup 이 맞는지요? 혹시 down 이 아닌지요?
또한 볼린져밴드 하단선을 터치할때 매수, 상단선을 터치할때 매도로는 작성이 안되는지요?
만약 안된다면, 한단선통과시 매수, 상단선 터치시 매도로 작성 부탁드립니다.
2.
if data1(stime == 93000) and data2(c) > 0 and data2(c) > 0 Then
cond = 1;
if data1(stime == 93000) and data2(c) > 0 and data2(c) > 0 Then
cond = -1;
아래 위의 식의 등호가 같네요. 제가 의미한건 개인들 수급이 선물과 현물의 방향이 다를때를 나타낸 건데요. 혹시 어떻게 수정을 해야 할까요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다.
>
안녕하세요
예스스탁입니다.
1.
랭귀지에서 미리 특정가격에 주문을 내는 기능은 없습니다.
9시 30분에 data2,data3이 순매수이면 이후 상단을 상향돌파할때 매수가 됩니다.
#data2 KP개인순매수금액
#data3 선물개인순매수금액
var : cond(0,data1),BBup(0,data1),BBdn(0,data1);
BBup = data1(BollBandUp(20,2));
BBdn = data1(BollBandUp(20,2));
if data1(date != date[1]) Then
Cond = 0;
if data1(stime == 93000) and data2(c) > 0 and data2(c) > 0 Then
cond = 1;
if data1(stime == 93000) and data2(c) > 0 and data2(c) > 0 Then
cond = -1;
if data1(crossup(c,BBup)) and cond == 1 Then
buy();
if data1(CrossDown(c,BBdn)) and cond == -1 Then
sell();
SetStopLoss(PriceScale*10,PointStop);
SetStopEndofday(145000);
2.
#data2 KP개인순매수금액
#data3 선물개인순매수금액
var : cond(0,data1),BBup(0,data1),BBdn(0,data1);
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
BBup = data1(BollBandUp(20,2));
BBdn = data1(BollBandUp(20,2));
if data1(date != date[1]) Then
Cond = 0;
if data1(stime == 93000) and data2(c) > 0 and data2(c) > 0 Then
cond = 1;
if data1(stime == 93000) and data2(c) > 0 and data2(c) > 0 Then
cond = -1;
if count == 0 Then{
if data1(crossup(c,BBup)) and cond == 1 Then
buy();
if data1(CrossDown(c,BBdn)) and cond == -1 Then
sell();
}
if count > 0 Then{
if data1(crossup(c,BBup)) Then
buy();
if data1(CrossDown(c,BBdn)) Then
sell();
}
SetStopLoss(PriceScale*10,PointStop);
SetStopEndofday(145000);
즐거운 하루되세요
> 까마귀 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 선물 2분봉 기준
1.
9시 30분 기준 개인 코스피 순매수, 선물 순매수 일경우
볼린져밴드(12,2) 상단에 시장가로 매도 진입 종가청산
9시 30분 기준 개인 코스피 순매도, 선물 순매도 일경우
볼린져밴드(12,2) 하단에 시장가로 매수 진입 종가청산
손절은 진입가 대비 10틱
2.
9시 30분 기준 개인 코스피 순매수, 선물 순매도 혹은 코스피 순매도, 선물 순매수일때
볼린져밴드(12.2)의 상하단선에 먼저 닿는 쪽에서 시장가로 매수, 매도 진입(상단에 먼저 닿으면 매도 진입, 하단에 먼저 닿으면 매수진입) 반대쪽 밴드에 닿을때 청산 및 스위칭
14시 50분 청산 및 거래 중지
손절은 5틱
2014-01-08
140
글번호 71171
답변완료
재문의합니다.
1.
근데, 차트의 시간대를 1분, 2분, 3분, 5분 등 변경시마다 값에 결과값에 차이가 많이 나네요.
아마, 진입을 분봉 종가에 해서그런것 같네요.
혹시, 돌파시 즉시 진입을 하려고 한다면, 어떻게 고치면 될까요?
2. 매수 진입시 9시 30분, 혹은 선물 거래량 25000계약 까지의 최저점을 손절라인으로 지정,
매도 진입시 9시 30분, 혹은 선물 거래량 25000계약 까지의 최고점을 손절라인으로 지정
하는 식을 부탁드립니다.
3.
1.2.3 식은 시스템 성능 보고서에 값이 나오는데, 4번 식은 보고서에 아무런 값이 나오지 않네요. data 값 및 숫자를 정확히 기입하였는데도 값이 나오지 않네요. 어떻게 해야할지...
4.
1,2,3,4 식의 경우
최고점, 혹은 최저점에 매수 , 매도 진입시 최고점 혹은 최저점 돌파 순간의 개인 혹은 외국인수급인가요 아니면, 9시 30분 혹은 25000거래량 발생시의 수급인가요?
혹시, 9시 30분 혹은 25000거래량 발생시의 수급을 적용한 식이라면, 최고점 혹은 최저점 돌파와 수급 조건이 동시에 발생할때만 진입하는 식으로 부탁드립니다.
어려운 부탁드립니다. 감사합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드려요
> 안녕하세요
예스스탁입니다.
수급데이터는 모두 참조데이터로 추가하셔야 합니다.
참조데이터는 차트왼쪽 상단의 종목선택버튼 중 오른쪽을 클릭하시면
선택해 차트에 추가할수 있습니다.
추가하는 순서에 따라 data2부터 data99까지 번호가 부여됩니다.
수급데이터는 순매수만 제공됩니다. 해당 값이 0보다 작으면 순매도입니다.
1.
#data2 kp개인순매수금액
#data3 개인선물순매수금액
#data4 개인옵션순매수금액
var : HH(0,data1),LL(0,data1);
if data1(stime < 93000) Then{
HH = data1(highD(0));
LL = data1(LowD(0));
}
if data2(c) < 0 and data3(c) < 0 and data4(c) < 0 and
data1(stime >= 93000 and crossup(c,HH)) Then
buy();
if data2(c) > 0 and data3(c) > 0 and data4(c) > 0 and
data1(stime >= 93000 and CrossDown(c,LL)) Then
sell();
SetStopEndofday(145000);
2.
#data2 kp외국인순매수금액
#data3 외국인선물순매수금액
#data4 외국인옵션순매수금액
var : HH(0,data1),LL(0,data1);
if data1(stime < 93000) Then{
HH = data1(highD(0));
LL = data1(LowD(0));
}
if data2(c) > 0 and data3(c) > 0 and data4(c) > 0 and
data1(stime >= 93000 and crossup(c,HH)) Then
buy();
if data2(c) < 0 and data3(c) < 0 and data4(c) < 0 and
data1(stime >= 93000 and CrossDown(c,LL)) Then
sell();
SetStopEndofday(145000);
3.
#data2 kp개인순매수금액
#data3 개인선물순매수금액
#data4 개인옵션순매수금액
var : HH(0,data1),LL(0,data1);
if data1(DayVolume <= 25000) Then{
HH = data1(highD(0));
LL = data1(LowD(0));
}
if data2(c) < 0 and data3(c) < 0 and data4(c) < 0 and
data1(DayVolume >= 25000 and crossup(c,HH)) Then
buy();
if data2(c) > 0 and data3(c) > 0 and data4(c) > 0 and
data1(DayVolume >= 25000 and CrossDown(c,LL)) Then
sell();
SetStopEndofday(145000);
4.
#data2 kp외국인순매수금액
#data3 외국인선물순매수금액
#data4 외국인옵션순매수금액
var : HH(0,data1),LL(0,data1);
if data1(DayVolume <= 25000) then{
HH = data1(highD(0));
LL = data1(LowD(0));
}
if data2(c) > 0 and data3(c) > 0 and data4(c) > 0 and
data1(DayVolume <= 25000 and crossup(c,HH)) Then
buy();
if data2(c) < 0 and data3(c) < 0 and data4(c) < 0 and
data1(DayVolume <= 25000and CrossDown(c,LL)) Then
sell();
SetStopEndofday(145000);
즐거운 하루되세요
> 까마귀 님이 쓴 글입니다.
> 제목 : 문의드려요
> 1.
매수 : 개인수급이 코스피 순매도, 선물 순매도, 옵션 순매도 일때 9시 30분까지의 장중 최고가를 상향돌파하면 매수
매도 : 개인수급이 코스피 순매수, 선물 순매수, 옵션 순매수 일때 9시 30분까지의 장중 최저가를 하향돌파하면 매도
청산 : 14시50분
2.
매수 : 외국인 수급이 코스피 순매수, 선물 순매수, 옵션 순매수 일때 9시 30분까지의 장중 최고가를 상향돌파하면 매수
매도 : 외국인 수급이 코스피 순매도, 선물 순매도, 옵션 순매도 일때 9시 30분까지의 장중 최고가를 상향 돌파하면 매도
청산 : 14시50분
1분봉 기준
3.
매수 : 개인수급이 코스피 순매도, 선물 순매도, 옵션 순매도 일때 선물 거래량 25,000계약 까지의 장중 최고가를 상향돌파하면 매수
매도 : 개인수급이 코스피 순매수, 선물 순매수, 옵션 순매수 일때 선물 거래량 25,000계약 까지의 장중 최저가를 하향돌파하면 매도
청산 : 14시50분
4.
매수 : 외국인 수급이 코스피 순매수, 선물 순매수, 옵션 순매수 일때 선물 거래량 25,000계약 까지의 장중 최고가를 상향돌파하면 매수
매도 : 외국인 수급이 코스피 순매도, 선물 순매도, 옵션 순매도 일때 선물 거래량 25,000계약 까지의 장중 최고가를 상향 돌파하면 매도
청산 : 14시50분
2014-01-08
165
글번호 71170
답변완료
문의드립니다
안녕하세요.
a>b 를 만족할때 최근10봉동안 고가를 돌파하면 매수. 당연히 기준가는 만족한 봉이겟죠.
죄솔합니다. 멍청해서..
2014-01-08
121
글번호 71169