커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4557
글번호 230811
답변완료
수정부탁합니다.
감사합니다.
그런데 적용해보니 캔들에 표시되는게 잘보이지 않는데
조건만족시 해당캔들마다 아래또는 위에 점으로 계속표시해 나갈수 있나요?
그리고 지표식으로도 부탁합니다.
잘하지 못해서 계속 부탁드려 죄송합니다.
감사합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Re : Re : 강조식부탁합니다.
> 안녕하세요
예스스탁입니다.
일목균형표의 선행스팬1,2는 지표를 우측으로 전진한 값입니다.
지표에서는 지표속성의 차트표시탭에서 25개봉 전진하게
옵션이 설정되어 있어 현재봉에 25개봉 전의 값이 위치하게 되어 있습니다.
시스템이나 강조식에서는
[25]를 사용해 25봉전 값을 가져오게 해야 합니다.
해당 값이 지표의 현재봉에 표시되는 선행스팬1,2,값이 맞습니다.
선행스팬1 = (전환선[25] + 기준선[25]) / 2 ;
선행스팬2 = (Highest(H, 선행스팬2기간)[25] + Lowest(L, 선행스팬2기간)[25]) / 2;
5일전의 값으로 하고자 하시면
[25]를 [5]로 변경하시면 됩니다.
해당부분은 사용자분의 기준에 따라 변경하시면 됩니다.
즐거운 하루되세요
> 한바다 님이 쓴 글입니다.
> 제목 : Re : Re : 강조식부탁합니다.
>
감사합니다.
선행스팬1을 26일뒤가 아니고 5일뒤로 표시하면서 적용하려면 어떻게 수정해야하는가요?
그리고 아래수식으로 할경우 봉차트의 현재봉에 해당하는 선행1,2선(26일뒤의 선이 아닌)
이 강조에 적용되는게 맞는가요?
감사합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 강조식부탁합니다.
>
안녕하세요
예스스탁입니다.
input : 전환선기간(9),기준선기간(26),선행스팬2기간(52), P1(10),P2(20);
Var : 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0);
var : mav1(0),mav2(0);
전환선 = (Highest(H, 전환선기간) + Lowest(L, 전환선기간)) / 2;
기준선 = (Highest(H, 기준선기간) + Lowest(L, 기준선기간)) / 2;
후행스팬 = c ;
선행스팬1 = (전환선[25] + 기준선[25]) / 2 ;
선행스팬2 = (Highest(H, 선행스팬2기간)[25] + Lowest(L, 선행스팬2기간)[25]) / 2;
mav1 = ma(C,P1);
mav2 = ma(C,P2);
if C >= 선행스팬2 and
선행스팬1 > 선행스팬2 and
mav1 > mav1[1] and
mav2 > mav1[1] Then
PlotPaintBar(H,L,"강조",RED);
if C <= 선행스팬2 and
선행스팬1 < 선행스팬2 and
mav1 < mav1[1] and
mav2 < mav1[1] Then
PlotPaintBar(H,L,"강조",BLUE);
즐거운 하루되세요
> 한바다 님이 쓴 글입니다.
> 제목 : 강조식부탁합니다.
> 안녕하세요.
1. 매수강조조건 :
캔들값 >= 선행스팬2
선행스팬1 > 선행스팬2
10이평선이 우상향하고 있으며,
20이평선이 우상향하고 있을때
---> 빨간색으로 표시
2. 매도강조조건 :
캔들값 =< 선행스팬2
선행스팬1 < 선행스팬2
10이평선이 우하향하고 있으며,
20이평선이 우하향하고 있을때
---> 파란색으로 표시
선행스팬과 이평선의 값은 변수로 조정할 수 있도록 부탁합니다.
감사합니다.
2016-08-10
127
글번호 100903
답변완료
질문입니다.
아래의 두 식을 비교하였을 때 같은 값이 나와야 하는 듯 한데,
다른 값이 나와서 질문드립니다.
식1.
일봉에 적용된 수식입니다.
input : Period(5);
var1 = LRL(Open, Period);
Plot1(var1, "var1", black);
식2.
분봉에 적용된 수식입니다.
input: Period(5);
var1 = LRL(DayOpen, Period);
Plot1(var1, "var1", black);
이렇게 두식을 작성한 다음 비교를 해보니, 마지막 값이 서로 다르게 나옵니다.
제 생각에는 같아야 한다고 보는데 말입니다.
마찬가지로 LRL함수 대신 MA나 EMA를 적용해도 그렇습니다.
특히, 분봉에서 대입한 수식이 장시작 후 제 의도는 일직선으로 그려져야 하는데,
초반에 두세번 꺽여지는 현상이 발생합니다.
이에대한 답변 부탁드립니다.
예시와 함께 부탁드립니다.
날씨가 더운데 몸건강에 유의하시고 항상 감사합니다.
2016-08-10
104
글번호 100902
답변완료
지표와 종목검색식 수정 문의드립니다.
1. 먼저 지표 수식인데요. 1차 고점보다 2차 고점이 높아야합니다. 2차저점은 1차 저점보다 높아야합니다. hh[n] < hh[x] 이렇게 해야할지 어떻게 해야할지 모르겠네요.
Input : Period(20), Percent(3);
var : UPline(0),DNline(0),cnt(0),TL1(0),TL2(0),TL3(0),TL4(0);
Array : HH[10](0),HD[10](0),HT[10](0);
Array : LL[10](0),LD[10](0),LT[10](0);
UPline = EnvelopeUp(Period, Percent);
Dnline = EnvelopeDown(Period, Percent);
#고가가 상단선 돌파
if crossup(H,upline) Then{
#상단 위 최고가의 기준값
HH[0] = H; #고가저장
HD[0] = sdate; #날짜 저장
HT[0] = stime; #시간저장
#최고가 이후 최저가의 기준값
LL[0] = L; #저가저장
LD[0] = sdate; #저가날짜저장
LT[0] = stime;
#이전의 값들
for cnt = 1 to 9{
HH[cnt] = HH[cnt-1][1];
HD[cnt] = HD[cnt-1][1];
HT[cnt] = HT[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
LD[cnt] = LD[cnt-1][1];
LT[cnt] = LT[cnt-1][1];
}
}
#고가가 상단선 위해서 최고가 갱신
if H > upline and H > HH[0] Then{
#최고가값과 날짜 시간을 현재봉으로 변경
HH[0] = H;
HD[0] = sdate;
HT[0] = stime;
#최고가 이후 최저가의 기준값과 날짜 시간 현재봉으로 변경
LL[0] = L;
LD[0] = sdate;
LT[0] = stime;
HH[1] < HH[0];
}
#최저가가 갱신되면 최저가 값과 날짜시간 변경
if L < LL[0] Then{
LL[0] = L;
LD[0] = sdate;
LT[0] = stime;
}
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
#고가가 상단밴드 위에 있는 경우에는
#직전과 전전을 기준으로 그림
if H > upline Then{
TL1 = TL_New(HD[1],HT[1],HH[1],LD[1],LT[1],LL[1]);
TL2 = TL_New(LD[2],LT[2],LL[2],HD[1],HT[1],HH[1]);
TL3 = TL_New(HD[2],HT[2],HH[2],LD[2],LT[2],LL[2]);
TL4 = TL_New(LD[3],LT[3],LL[3],HD[2],HT[2],HH[2]);
}
Else{ #고가가 상단밴드 아래있는 경우에는 최근과 직전을 연결해 그림
TL1 = TL_New(HD[0],HT[0],HH[0],LD[0],LT[0],LL[0]);
TL2 = TL_New(LD[1],LT[1],LL[1],HD[0],HT[0],HH[0]);
TL3 = TL_New(HD[1],HT[1],HH[1],LD[1],LT[1],LL[1]);
TL4 = TL_New(LD[2],LT[2],LL[2],HD[1],HT[1],HH[1]);
}
2. 종목검색식입니다.
1차고점보다 2차고점이 높아야 하며, 그리고 현재가가 2차고점을 돌파해야합니다. 1차저점보다 2차저점이 높아야 합니다.이런 파동이 발생한지 30봉이내로 검색하고싶습니다. 검색에 필요한 최소기준봉과는 다른 개념이겠지요. 노고에 감사드립니다.
Input : Period(20), Percent(3);
var : UPline(0),DNline(0),cnt(0);
Array : HH[10](0),LL[10](0);;
UPline = EnvelopeUp(Period, Percent);
Dnline = EnvelopeDown(Period, Percent);
#고가가 상단선 돌파
if crossup(H,upline) Then{
#상단 위 최고가의 기준값
HH[0] = H; #고가저장
#최고가 이후 최저가의 기준값
LL[0] = L; #저가저장
#이전의 값들
for cnt = 1 to 9{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
CP_HaramiCrossDnTrend(Num, Num, Num)
#고가가 상단선 위해서 최고가 갱신
if H > upline and H > HH[0] Then{
#최고가값과 날짜 시간을 현재봉으로 변경
HH[0] = H;
#최고가 이후 최저가의 기준값과 날짜 시간 현재봉으로 변경
LL[0] = L;
}
#최저가가 갱신되면 최저가 값과 날짜시간 변경
if L < LL[0] Then{
LL[0] = L;
}
#현재 상단위에서 고가가 있으면 직전 고점보다 큰종목
#현재 상단아래에 고가가 있으면 최근 고점보다 큰종목
if (H > upline and C > HH[1] and HH[1] > 0) or (H < upLine and C > HH[0] and HH[0] > 0) Then
find(1);
2016-08-10
128
글번호 100898
답변완료
수정 부탁 드려요.
아래 적은식은 기존에 알려주신식에서
시가 5틱 상승 후 매도, 5틱 하락 후 매수로 바꿔봤는데요..
익절된 곳에서 StopLoss , 손절된 곳에서 StopProfittarge로 표시되네요.
그 외의 표현은 제대로 쓴것인가요?
수정 부탁드리겠습니다~
input : 차이틱수(5),손절틱수(5),익절틱수(5);
#시가에서 5틱 상승하면 즉시 매도
if MarketPosition >= 0 then
Buy("b",AtStop,NextBarOpen+PriceScale*차이틱수);
#시가에서 5틱 하락하면 즉시 매수
if MarketPosition <= 0 then
Sell("s",AtStop,NextBarOpen-PriceScale*차이틱수);
#5틱 손실시 즉시 손절
SetStopLoss(PriceScale*손절틱수,PointStop);
#5틱 수익시 즉시 익절
SetStopProfittarget(PriceScale*익절틱수,PointStop);
수고하세요!
2016-08-10
107
글번호 100897
답변완료
검색시..
1.장이 열리는 시간(9시~3:30분)외에는 검색이 되질 않습니다.원래 그런가요?
2.또,분,일,주봉은 검색이 되는데, 월봉이 검색이 되질 않네요.
월봉 검색도 가능하게 부탁드림니다.
3.현제의 검색식은 역사적 최저가 검색으로 되어 있는데,
역사적 최저 종가로도 검색되게 수정 부탁드림니다.
var : sum1(0),sum2(0),avgv(0),LL(0),ii(0);
if index == 0 Then{
LL = L;
sum1 = 0;
sum2 = 0;
ii = 0;
}
if L < LL Then{
LL = L;
sum1 = 0;
sum2 = 0;
ii = 0;
}
sum1 = sum1 + (v*c);
sum2 = sum2 + v;
avgv = sum1/sum2;
ii = ii +1;
if ii >= 3 and C >= avgv and avgv >= L and O > avgv Then
find(1);
2016-08-10
106
글번호 100890
답변완료
소리가 제가 설정한 소리가 아닌데..
plot1(V,"거래량");
PlotBaseLine1(20000,"2만");
PlotBaseLine2(30000,"3만");
if (V >= 20000 and V <= 20500) or (V >= 30000 and V <= 30500) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩시세포착1.wav");
소리가 제가 설정한 소리가 안나오고 엉뚱한 소리가 나오는데..뭐가 문제인지..소리가 나오긴 하는데..
2016-08-10
100
글번호 100885
답변완료
작성 부탁드립니다.
아래 작성하신 대로 해 보니 매일 장 시작 시점에 매수 혹은 매도 신호가 나옵니다.
매일 장 종료시 청산하고 장시작시 아래 로직으로 다시 시작하는 것으로 수정 부탁드립니다.
그리고 한가지 질문은 data3 은 변수로 선언하지 않아도 되나요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 시스템 작성 부탁드립니다.
> 안녕하세요
예스스탁입니다.
코스피와 선물의 순매수 데이터를
참조데이터 data2, data3으로 추가하고 식 적용하시면 됩니다.
참조데이터는 차트왼쪽 상단의 종목선택버튼 중 오른쪽 클릭하시면
선택해서 추가할수 있고 수급데이터는 참조탭에 있습니다.
동일포지션에 대해 누적하므로
피라미딩을 모든진입신호 허용으로 설정하고 적용하시면 됩니다.
var : VV(0,data2),sum(0,data2);
sum = data2(c)+data3(c);
if data2(date != date[1]) Then{
VV = 0;
}
if sum >= VV+1000 Then{
VV = sum;
if MarketPosition >= 0 Then
buy("b",OnClose,def,1);
Else
ExitShort("sx",OnClose,def,"",1,2);
}
if sum <= VV-1000 Then{
VV = sum;
if MarketPosition <= 0 Then
Sell("s",OnClose,def,1);
Else
ExitLong("bx",OnClose,def,"",1,2);
}
즐거운 하루되세요
> wisdom 님이 쓴 글입니다.
> 제목 : 시스템 작성 부탁드립니다.
> 실시간 증권사의 (코스피 + 선물) 순매수의 합이
매 1000억 증가시마다 1계약 매수
매 1000억 감소시마다 1계약 순매도
하는 시스템 부탁드립니다.
예를 들어 다음과 같이 작동되도록 하는 것입니다.
예1)
실시간 순매수금액합 매수/매도
+ 700
+ 1000 +1
+ 1200
+ 2000 +1
+ 2200
+ 1200 -1
+ 1500
+ 200 -1
예2)
실시간 순매수금액합 매수/매도
- 500
- 1000 -1
- 1300
- 300 +1
+ 100
+ 700 +1
2016-08-10
102
글번호 100880
답변완료
종목검색 부탁드려요.
대상종목은 코스피 와 코스탁이며, 제외종목은 관린종목입니다.
주봉에서 찾고 싶습니다.
2015년도의 최저가(1)를 구해서
10봉전 종가(2)가 비교해서 5% ~ 10% 상승한 종목(3)을 찾은 후
(3)과 현재 봉과 비교해서 5% 이상 상승종목을 찾는 식을 부탁드립니다.
그리고 nh트레이더에서 어떻게 적용해야하는지도 알려주세요.
2016-08-10
106
글번호 100879
답변완료
수식 부탁드립니다.
input : Per1(0.0),Per2(23.6),Per3(38.2),Per4(50.0),Per5(61.8),Per6(76.4),Per7(100);
var : HH(0),LL(0);
HH = dayhigh;
LL = daylow;
var1 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per1/100));
var2 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per2/100));
var3 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per3/100));
var4 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per4/100));
var5 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per5/100));
Var6 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per6/100));
Var7 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per7/100));
plot1(var1,"0.0");
plot2(Var2,"23.6");
plot3(Var3,"38.2");
plot4(Var4,"50.0");
plot5(Var5,"61.8");
plot6(Var6,"76.4");
plot7(Var7,"100");
무더위에 수고많으십니다.
위 수식은 일봉상 자동으로 로그피보나치를 표시하는 수식입니다. 이 수식을 툴바같이 틱봉. 분봉상 임의의 구간에 사용할 수 있는 수식으로 만들어 주시면 감사하겠습니다.
2016-08-10
151
글번호 100878