커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6346
글번호 230811
답변완료
51749관련입니다
아래와 같이 산식을 작성해 주셨는데
Hv를 양봉일때의 거래량으로 제한하고
금일의 봉도 양봉이며
최근50일간 금일거래량합계의 50%이상의 거래량은 없을것을 구현하고 싶습니다
이리저리 만져봐도 잘 않되서 질문합니다
=========아래============
15시 이후 거래량이라면 60분봉에서 가능하지만
15시~15시20분 사이 거래량이면 10분봉이나 20분봉에서만 가능합니다.
15시 이후 거래량이면 아래식을
var : Hv(0),cnt(0);
if date != date[1] Then
var1 = 0;
if stime >= 130000 Then
var1 = var1+V;
Hv = DayVolume(1);
for cnt = 1 to 40{
if DayVolume(cnt) > Hv Then
Hv = DayVolume(cnt);
}
if var1 > Hv Then
find(1);
2017-02-09
163
글번호 106702
답변완료
부탁 드립니다.
도움 주심에 감사 드립니다.
다음 수식을 실행한것과
이것을 함수화 하여 실행 한것이 차이가 있습니다.
그림처럼 함수화 한것의 수평선을 없애고 싶습니다.
미리 감사 드립니다.
input:시작년월일(20170208),시작시각(080000);
input:종료년월일(20170208),종료시각(153000);
input: Period1(12),Period2(26),Period3(9);
variables: VolumeValue( 0 ), MedPrice( 0 ), PV( 0 ),StartCalcDate(0),StartTime(0),
CumulativeVolume( 0 ), CumulativePV( 0 ), Started( false ), Denom( 0 ),
KeyCumVol( 0 ), KeyCumPV( 0 ), MidasValue( 0 ),endCalcDate(0),endTime(0) ;
Var : Ep1(0), JISU1(0),Ep2(0), JISU2(0),Ep3(0),Jisu3(0);
var : MACDVal(0),MACDSig(0),ii(0),SD(false),ED(false);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
StartCalcDate = 시작년월일;
StartTime = 시작시각;
endCalcDate = 종료년월일;
endTime = 종료시각;
if sdate == StartCalcDate and
(stime == StartTime or (stime > StartTime and stime[1] < StartTime)) Then
Started = true;
if Started == true and sdate == endCalcDate and
(stime >= endTime or (stime > endTime and stime[1]< endTime)) Then
Started = false;
if Started == true then
{
VolumeValue = iff( DataCompress < 1, Ticks, Volume ) ;
MedPrice = (H + L)/2 ;
PV = MedPrice * VolumeValue ;
CumulativeVolume = VolumeValue + CumulativeVolume ;
CumulativePV = PV + CumulativePV ;
}
if Started == true and Started[1] == false then
{
Started = true ;
Denom = 1 ;
KeyCumVol = CumulativeVolume ;
KeyCumPV = CumulativePV ;
}
else if Denom >= 1 then
Denom = CumulativeVolume - KeyCumVol ;
if Started then
{
if Denom > 1 then
MidasValue = ( CumulativePV - KeyCumPV ) / Denom ;
else if Denom == 1 then
MidasValue = MedPrice ;
ii = ii+1;
if ii <= 1 then {
JISU1 = MidasValue;
JISU2 = MidasValue;
MACDVal = JiSu1-Jisu2;
MACDsig = MACDVal;
}
else{
JISU1 = MidasValue * EP1 + JISU1[1] * (1-EP1);
JISU2 = MidasValue * EP2 + JISU2[1] * (1-EP2);
MACDVal = JiSu1-Jisu2;
MACDsig = MACDVal * EP3 + MACDsig[1] * (1-EP3);
}
plot1(MACDVal);
// plot2(MACDsig);
//PlotBaseLine1(0);
}
함수 실행파일:
input: 시작년월일(20170208),시작시각(080000);
input:종료년월일(20170208),종료시각(153000);
input: Period1(12),Period2(26),Period3(9);
var1=function_macd(시작년월일,시작시각,종료년월일,종료시각,Period1,Period2,Period3);
plot1(var1);
함수명:function_macd
input:시작년월일(numeric),시작시각(numeric);
input:종료년월일(numeric),종료시각(numeric);
input: Period1(numeric),Period2(numeric),Period3(numeric);
variables: VolumeValue( 0 ), MedPrice( 0 ), PV( 0 ),StartCalcDate(0),StartTime(0),
CumulativeVolume( 0 ), CumulativePV( 0 ), Started( false ), Denom( 0 ),
KeyCumVol( 0 ), KeyCumPV( 0 ), MidasValue( 0 ),endCalcDate(0),endTime(0) ;
Var : Ep1(0), JISU1(0),Ep2(0), JISU2(0),Ep3(0),Jisu3(0);
var : MACDVal(0),MACDSig(0),ii(0),SD(false),ED(false);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
StartCalcDate = 시작년월일;
StartTime = 시작시각;
endCalcDate = 종료년월일;
endTime = 종료시각;
if sdate == StartCalcDate and
(stime == StartTime or (stime > StartTime and stime[1] < StartTime)) Then
Started = true;
if Started == true and sdate == endCalcDate and
(stime >= endTime or (stime > endTime and stime[1]< endTime)) Then
Started = false;
if Started == true then
{
VolumeValue = iff( DataCompress < 1, Ticks, Volume ) ;
MedPrice = (H + L)/2 ;
PV = MedPrice * VolumeValue ;
CumulativeVolume = VolumeValue + CumulativeVolume ;
CumulativePV = PV + CumulativePV ;
}
if Started == true and Started[1] == false then
{
Started = true ;
Denom = 1 ;
KeyCumVol = CumulativeVolume ;
KeyCumPV = CumulativePV ;
}
else if Denom >= 1 then
Denom = CumulativeVolume - KeyCumVol ;
if Started then
{
if Denom > 1 then
MidasValue = ( CumulativePV - KeyCumPV ) / Denom ;
else if Denom == 1 then
MidasValue = MedPrice ;
ii = ii+1;
if ii <= 1 then {
JISU1 = MidasValue;
JISU2 = MidasValue;
MACDVal = JiSu1-Jisu2;
MACDsig = MACDVal;
}
else{
JISU1 = MidasValue * EP1 + JISU1[1] * (1-EP1);
JISU2 = MidasValue * EP2 + JISU2[1] * (1-EP2);
MACDVal = JiSu1-Jisu2;
MACDsig = MACDVal * EP3 + MACDsig[1] * (1-EP3);
}
function_macd=MACDVal;
// plot2(MACDsig);
// PlotBaseLine1(0);
}
2017-02-09
234
글번호 106701
답변완료
지표문의드림니다
1,이동평균 크로스업 가격(위치) 다음봉종가
2,이동평균 크로스다운 가격(위치) 다음봉종가
3,아침 9시부터 크로스 한자리를 계산하여 다음날 아침 6시까지 누적한다
4 그림첨부합니다
나타낼지표 :
1d 보다2u가높을경우 (1d-2u)
1d 보다2u가낮을경우 (1d+2u)
2u 보다3d가높을경우 (2u+3d)
2u 보다3d가낮을경우 (2u-3d)
위값을 만족할경우
누적 합산해주세요
2017-02-10
230
글번호 106700
답변완료
macd과 스톡케스틱(슬로우)의 합성 시스템식
안녕하세요.
(1안)
macd 0선 상향돌파하고 스톡케스틱(슬로우)이 침체에서 상향돌파시 매수.
macd 0선 하향돌파하고 스톡케스틱(슬로우)이 과열에서 하향돌파시 매도.
(2안)
macd 0선 상향돌파하고 스톡케스틱(슬로우)이 침체에서 기준선 50.00을 상향돌파시 매수.
macd 0선 하향돌파하고 스톡케스틱(슬로우)이 과열에서 기준선 50.00을 하향돌파시 매도.
1, 2안의 매수, 매도 신호의 시스템식 부탁합니다.
감사합니다.
2017-02-09
179
글번호 106699
답변완료
부탁합니다
시스템 수식 부탁합니다
이동평균선 600,300,160,80,40,20 하락 정배열 일때 이동평균선 20일선이 80일선 골든크로스일때 매수진입
이동평균선 600,300,160,80,40,20 상승 정배열 일때 이동평균선 20일선이 80일선 데드크로스일때 매도진입
감사합니다
2017-02-09
143
글번호 106698
답변완료
문의 드립니다
안녕하세요. 수고가 많습니다.
다름이 아니오라 패턴 조건식 작성중 어려움이 있어 문의 드립니다.
---------------------------
보조지표 macd 추세선 돌파 수식 부탁드립니다.
첨부파일 차트 그림에서
1.macd선 기준으로 전파동 고점위치에서 현파동 저점을 연결하는 직선을 돌파할때..
액션이 일어날수 있는 수식 부탁드립니다.
----------------------------
수고하세요.
2017-02-09
213
글번호 106697
답변완료
문의드립니다.
수고 많으십니다.
아래와 같은 수식을 부탁드립니다.
기준 : 당일 고가 와 저가의 중심선을 기준으로 진입
중심선 근처 알림 : 봉이 중심선 5틱 이내 진입시 aa.wav 파일실행
1.매수
봉이 중심선을 상향 돌파한 후 다시 중심선을 반대로(하향) 터치 또는 돌파했을때 다시 반대 돌파(하향)한 봉을 상향 돌파하면 즉시 매수진입
또는 봉이 중심선을 아래로 터치후 다시 올라가 5일선을 상향 돌파하는 봉이 나오면 5일선 상향 돌파한 봉을 다음 봉이 상향 돌파할때 매수진입
2.매도
매수진입과 반대
2017-02-09
154
글번호 106696
답변완료
해외선물 시가
안녕하세요
예스글로벌로 해외선물에 에너지종목을 대상으로 식을 작성중입니다.
다름이 아닌 당일시가라인 매주월요이날만 되면 외곡현상이 나타나는데
해결방법이없나요
crude , brent ,wti 에 당일 시가라인을 적용하면 crude는 정상이고
나머지 두종목은 매주월요일 장시작시 시가라인이 두번 발생합니다
월요일만 시작시간이 틀려서 그러는것같은데 이럴경우 시가라인을 작성하는
방법부탁드립니다
감사합니다.
2017-02-09
165
글번호 106695
답변완료
지표문의 합니다
제가 해보니 잘 안되서 문의 드립니다.
분봉에서 일봉조건을 이용하여 지표선을 그으려 하는데요
제가 작성한 수식은
var : sum(0),sum1(0),Didx(0);
var : DD(0),LL(0),HH(0),RR(0);
if Bdate != Bdate[1] Then{
sum = 0;
sum1 = sum[1];
Didx = Didx+1;
if DayHigh(1) >= DayClose(2)*1.15 and DayHigh(1) >= DayLow(1)*1.15
and DayClose(1) < DayClose(2)*1.295 and sum1 >= 20000000000 Then{
HH = max(DayLow(1),DayHigh(1));
LL = Min(DayLow(1),DayHigh(1));
RR = (HH+LL)/2;
DD = Didx;
}
}
sum = sum + money;
if DD > 0 and Didx < DD+5 and Didx >= DD Then{
plot1(HH);
plot2(LL);
plot3(RR);
plot4(LL+(HH-LL)*0.236);
plot5(LL+(HH-LL)*0.382);
plot6(LL+(HH-LL)*0.618);
}
저는 조건이 만족하는 날 다음날로부터 5일동안 출력을 하게했는데요
1. 분봉에 일봉조건을 만족하면 다음날부터가 아닌 만족하는 날만 분봉상 출력
2. 제가 작성한 식은 만족하는 날, 다음날부터 5일동안 출력인데, 만족하는 날,
다음날이 아닌 만족하는 당일부터 5일동안 출력
3. 그리고 위식에서는 2일전대비 1일전 비교 그리고 1일전끼리 고가 저가 비교인데
원래는 1일전 대비 당일 비교 그리고 당일끼리 고가 저가 비교인데 잘 안되서
위식으로 한것이거든요. 이것도 수정 부탁드립니다. 1번,2번도 3번으로 하시면됩니다
전일 종가대비 당일고가가 15%이상 이고 당일 고가가 당일저가보다 15% 이상
전일종가보다 당일종가가 29.5%이하 일 거래대금이 200억 이상일때.
제가 수정해봐도 잘 안되서 문의 드립니다.
감사합니다.......
2017-02-10
158
글번호 106694