커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4732
글번호 230811
답변완료
지표요청
* 좋은 답변 항상 고맙습니다.
* 지표요청1번 : Volume Oscillotor 지표 랭귀지 부탁 드립니다.(일봉,분봉)
▶ Volume Oscillotor (5,20) 기준선 "0" 보이게요....
* 지표요청 2번 : 분봉으로 매매 하는데 일봉 가격평균 데이타를 보고 싶습니다.
일봉 기준 으로 당일 평균가(시+고+저)/3 일직선으로 나오고요
3일봉 기준 으로 당일 평균가(시+고+저)/3 일직선으로 나오게 하고 십습니다.
즉 2개의 일직선이 계단식이 될것 갔습니다.
* 수고하십시요.
2015-11-08
167
글번호 92165
답변완료
고점 과 저점 라인 문의입니다.
달(월) 기준 최고점 과 최저점 고저라인을 적용 하고 싶습니다. 최고점 이나 최저점
이 변동이 생긴다면 변동에 맞게 일직선으로 그려지길 원합니다.
매번 감사드립니다.
2015-11-07
191
글번호 92164
답변완료
문의드립니다
매매를 하다보면 슬리피지 과다로 +-5호가로 지정하더라도
체결이 안되는 경우가 간혹 있더군요.
이럴경우 청산신호가 나왔는데 체결이 안되었을때
손실이 계속발생될때 청산신호외에 청산할수있는 방법이 있는지 궁금합니다
2015-11-07
142
글번호 92163
답변완료
지표 작성 부탁합니다.
안녕하세요?
SwingHigh와 SwingLow (좌우 5봉 기준)를 사용하여 천정과 바닥이 "교대로" 발생
하도록 표시하고자 합니다.
일반적으로 SwingHigh를 천정으로, SwingLow를 바닥으로 사용합니다. 그런데 실제 SwingHigh와 SwingLow는 교대로 발생하지 않고 SwingHigh가 연속으로 나오는 경우도 있고 SwingLow가 연속으로 나오는 경우도 있습니다.
SwingHigh가 연속으로 나오면 큰 것(하락 시 이전 것, 상승 시 현재 것)을 천정으로 택하고, SwingLow가 연속으로 나오면 작은 것(하락 시 현재 것, 상승 시 이전 것)을 바닥으로 택하려고 합니다.
결국 천정은 SwingLow가 처음 나오고 나서야 확정되고, 바닥은 SwingHigh가 처음으로 나오고 나서 확정됩니다.
수식 작성 부탁드립니다. 감사합니다.
2015-11-07
167
글번호 92162
답변완료
data2 지표
data2 종목에 해외선물(예: gold)을 표시할 시 gold의 당일 고점과 저점을 나타내는 지표식 부탁드립니다.
2015-11-07
171
글번호 92161
답변완료
종목 검색 수식 부탁드립니다
다음 조건을 만족시키는 종목 검색식을 부탁드립니다.
1) 주봉이 양봉으로 20주이평선 위에 있으며 52주 최고가 대비 85% 이상인 종목
2) 시가총액 : 1천억 ~ 5천억
3) 최근일 일일 거래량 : 30만주 이상인 종목을
검색하고자 합니다.
수식 부탁드립니다.
2015-11-07
192
글번호 92160
답변완료
종목 검색 부탁합니다
다음의 조건들을 만족시키는 종목 검색 수식을 부탁드립니다.
1) 주봉기준 주가(양봉)가 20봉선 위에 있으며, 5봉선이 20봉 선에 있음
2) 일봉기준 주가(양봉)가 5봉선 위에 이틀 연속 있음
3) 시가총액 : 500억원 ~ 1000억원
4) 최근 5일간 일평균 거래량 : 1백만주 이상
2015-11-07
162
글번호 92159
답변완료
문의 드립니다.
아래식에 외부 변수로 60을 넣으면 한시간 마다 맞게 그려지는데
120분을 넣으면 장시작하고 9시 11시 13시 이렇게 그려져야하는데
9시 10시 12시 14시 이렇게 180을 넣으면 맞게 그려지고 240을 넣으면
이상하게 180과 같이 그리고 300을 넣으면 다시 다르게 그려집니다.
어디가 이상한지 고쳐 주십시요
===============
input : N(5),TP(180);
var : cnt(0),TF(0);
Array : sumCV[100](0),sumV[100](0);
TF = TimeToMinutes(stime)%TP;
if sdate != sdate[1] or (sdate == sdate and TF < TF[1]) Then{
sumCv[0] = 0;
sumv[0] = 0;
for cnt = 1 to 99{
sumCV[cnt] = sumCV[cnt-1][1];
sumV[cnt] = sumV[cnt-1][1];
}
}
var1 = C*V;
sumCv[0] = sumCv[0]+var1;
sumv[0] = sumv[0]+V;
value1 = 0;
value2 = 0;
for cnt = 0 to N{
value1 = value1+sumCV[cnt];
value2 = value2+sumV[cnt];
}
value3 = value1/value2;
plot1(value3);
2015-11-07
164
글번호 92158
답변완료
44871번글 답변 확인하고 재질문 드립니다.
안녕하세요.. 수고 많으세요.
보내주신 시스템식으로 피라미딩 설정확인후 검토해본 결과 그림1)과 같이 아래 일부의 식에서 보유일수 5일경과후 "익절2"의 신호가 나와야 하는데 잡히질 않습니다.
나머지 신호는 모두 잡히는 것으로 확인은 했습니다.
그림2)와 같이 다른 차트에서도 익절 신호만 잡히질 않습니다.
검토 부탁드립니다.
------------------------------------------------------------------------------------
#최종 매수일 포함 5일경과되면 다음날 시가에 매도
if Didx == LatestEntryDidx+(타점보유일수-1) and stime == 150000 Then{
exitlong("익절2",AtMarket);
}
-----------------------------------------------------------------------------------
input : 전략식시작일자(20151028), 전략식시작시간(090000), 전략총매수금액(5000);
input : 전략식종료일자(20151231);
input : 갭하락(5), 시장보정계수(5),일봉이평기간(120),이평보정계수(5);
input : P(10), 매수위치1차(10), 매수위치2차(7), 매수위치3차(14);
input : 매수위치보정(1);
input : 매도위치1차(7), 매도위치2차(14);
input : 매수비중1차(30), 매수비중2차(35), 매수비중3차(35);
input : 매도비중1차(50), 매도비중2차(50);
input : 전략식진입횟수(100);
input : 타점보유일수(5);
var : sum(0),mav(0),cnt(0),eup(0),edn(0),Didx(0),LatestEntryDidx(0),Ecnt(0);
var : TimeCond(false),Xcond1(false),Xcond2(false),Loss(0),LatestEntrylow(0);
var : Period(0),매수1차(0);
var : cum1(0),cum2(0),ma1(0),ma2(0);
# 일자수 계산
if date != date[1] Then
Didx = Didx+1;
# 일봉 120이평 계산(전일기준,전전일기준)
cum1 = 0;
cum2 = 0;
for cnt = 1 to 일봉이평기간{
cum1 = cum1+DayClose(cnt);
cum2 = cum2+DayClose(cnt+1);
}
# 전일기준 일봉 120일이평
ma1 = cum1/일봉이평기간;
# 전전일기준 일봉 120일이평
ma2 = cum2/일봉이평기간;
#기본값은 기간은 P, %는 매수위치1차
Period = P;
매수1차 = 매수위치1차;
#갭하락이면
#기간은 기존Period값+시장보정계수
#%는 기존 매수1차값에 + 시장보정계수
if dayopen < DayClose(1)*(1-갭하락/100) Then{
Period = Period + 시장보정계수;
매수1차 = 매수1차 + 시장보정계수;
}
#이평하락이면
#기간은 기존Period값+이평보정계수
#%는 기존 매수1차값에 + 이평보정계수
if ma1 < ma2 and DayClose(일봉이평기간+1) > 0 Then{
Period = Period + 이평보정계수;
매수1차 = 매수1차 + 이평보정계수;
}
#당일포함 일봉 Period개의 종가를 누적
sum = 0;
for cnt = 0 to Period-1{
sum = sum+DayClose(cnt);
}
#누적값을 Period로 나누어 평균값 산출
mav = sum/Period;
#상단계산
Eup = mav+mav*(매수1차/100);
#하단계산
Edn = mav-mav*(매수1차/100);
#지정일 지정시간이 되면 TimeCond는 True(그전에는 false)
if sdate == 전략식시작일자 and (stime == 전략식시작시간 or (stime > 전략식시작시간 and stime[1] < 전략식시작시간 )) then
TimeCond = true;
if sdate > 전략식종료일자 Then
TimeCond = false;
#TimeCond가 True가 된 후
if TimeCond == true and stime < 144200 then{
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "1차매수" Then
Ecnt = Ecnt+1;
#무포지션 상태에서 매수위치1차에 도달하면 매수
if MarketPosition == 0 and Ecnt < 전략식진입횟수 Then
buy("1차매수",atlimit,Edn*(1+매수위치보정/100),Floor((전략총매수금액*10000/c)*(매수비중1차/100)));
#첫매수이후
if MarketPosition == 1 Then{
#추가진입이 발생하면 1차매도가 다시 발생할수 있도록 false로 초기화
if CurrentContracts > CurrentContracts[1] Then
Xcond1 = false;
#최근 진입시점의 일자수 저장
if CurrentContracts > CurrentContracts[1] Then{
LatestEntryDidx = Didx;
LatestEntrylow = L;
}
#1차매수 발생 후 매수위치2차에 도달하면 매수
if MaxEntries == 1 Then
buy("2차매수",atlimit,Edn[BarsSinceEntry]*(1-매수위치2차/100),Floor((전략총매수금액*10000/c)*(매수비중2차/100)));
#1차매수 발생 후 매수위치3차에 도달하면 매수
if MaxEntries == 2 Then
buy("3차매수",atlimit,Edn[BarsSinceEntry]*(1-매수위치3차/100),Floor((전략총매수금액*10000/c)*(매수비중3차/100)));
#1차매도가 한번 발생하면 더이상 발생못하도록 Xcond1은 true
if CurrentContracts < CurrentContracts[1] and (LatestExitName(0) == "1차매도") then
Xcond1 = true;
#2차매도가 한번 발생하면 더이상 발생못하도록 Xcond2는 true
if CurrentContracts < CurrentContracts[1] and (LatestExitName(0) == "2차매도") then
Xcond2 = true;
#Xcond1이 false일때
#진입이후 최저가에서 매도위치1차 만큼 상승하면 일부 청산
if Xcond1 == false Then
exitlong("1차매도",Atlimit,lowest(L,BarsSinceEntry)*(1+매도위치1차/100),"",Floor(MaxContracts*(매도비중1차/100)),1);
#Xcond2가 false일
#진입이후 최저가에서 매도위치2차 만큼 상승하면 전량청산
if Xcond2 == false Then
exitlong("2차매도",Atlimit,lowest(L,BarsSinceEntry)*(1+매도위치2차/100));
#최근 진입후 3일이상 경과(현재 일자수가 최근진입시점의 일자수보다 3이상증가)
if Didx >= LatestEntryDidx+타점보유일수 and Xcond1 == false and CurrentContracts == CurrentContracts[1] Then{
#최근 진입이후 3일되었을때의 최근진입일 포함3일 최저가 계산
if date != date[1] and Didx == LatestEntryDidx[BarsSinceEntry]+3 Then{
Loss = daylow(1);
for cnt = 1 to 타점보유일수 {
if daylow(cnt) < Loss Then
Loss = daylow(cnt);
}
}
#Loss값 이하로 가격하락하면 전량 청산
exitlong("손절",AtStop,Loss);
}
#최종 매수일 포함 5일경과되면 다음날 시가에 매도
if Didx == LatestEntryDidx+(타점보유일수-1) and stime == 150000 Then{
exitlong("익절2",AtMarket);
}
# 1차매도가 발생한 상황
# 가장 최근 진입일의 당일최저가보다 낮은 시세 발생하면 전량청산
# if L < LatestEntrylow and Xcond1 == false Then
# LatestEntrylow = L;
# if Xcond1 == true and CurrentContracts == CurrentContracts[1] Then{
# exitlong("익절1",AtStop,LatestEntrylow);
# }
}
else{ #매수포지션이 아니면 false로 초기화
Xcond1 = false;
Xcond2 = false;
}
}
2015-11-08
181
글번호 92157