커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4351
글번호 230811
답변완료
수식문의
안녕하세요
아래수식의 내용을 이해좀시켜주셔요(설명좀 부탁드립니다)
if date != date[1] Then{
var1 = 0;
var2 = 0;
var3 = 0;
}
var1 = var1+C;
var2 = var2+1;
var3 = var1/var2;
plot1(var3);
2018-02-08
139
글번호 116475
답변완료
추가 수정 부탁드립니다.
며칠전 만들어주신 매매수식 감사드립니다.
한가지 수정부탁드리고 싶은게 있는데요
(1)오늘 시가 + W 값을 현재가가 돌파하고
그 돌파한 현재가가 5이평선위에 있으면
즉시 시장가매수 (일봉 완성후 매수 아닙니다)
조건에서
(수정 1) 오늘 시가가 어제까지 만들어진 5이평선 위에 있고
오늘 시가 + W 값을 현재가가 돌파하면
즉시 시장가매수 (일봉 완성후 매수 아닙니다)
(수정 2)
오늘 시가 + W 값을 현재가가 돌파하면
조건을
수식 DayHigh < dayopen+W 으로 표현해 주셨는데
C > dayopen+W 으로 바꿔줘야 하는게 아닐까요?
--------------------------- -----------------
안녕하세요
예스스탁입니다.
문의하신 내용은 분봉차트에서 구현해야 합니다.
일봉에서는 미완성시에 이평과 현재가 비교해서 신호발생 불가능합니다.
분봉차트에서 일봉이평 계산해 비교해게 만들어야 합니다
아래식 참고하시기 바랍니다.
input : N(5);
var : cnt(0),sum(0),mav(0),W(0);
sum = 0;
for cnt = 0 to N-1{
sum = sum + DayClose(cnt);
}
mav = sum/N;
W = dayhigh(1)-DayLow(1);
if MarketPosition <= 0 and
C > mav and
DayHigh < dayopen+W and
NextBarSdate == sdate Then
buy("b",AtStop,dayopen+W);
if NextBarSdate != sdate Then
exitlong("bx",AtMarket);
즐거운 하루되세요
> 야구르트 님이 쓴 글입니다.
> 제목 : 수식 질문드립니다.
> 수식은 간단합니다.
어제 일봉중에
전일고가-전일저가 = W
(1)오늘 시가 + W 값을 현재가가 돌파하고 그 돌파한 현재가가 5이평선위에 있으면
즉시 시장가매수 (일봉 완성후 매수 아닙니다)
(2) 다음날 아침 시가에 모두 매도
부탁드립니다.
2018-02-08
141
글번호 116474
답변완료
지표식 문의
안녕하세요
하기 지표식 문의 드립니다.
1. 볼린져 밴드
* data 1(60분봉), data 2(30분봉) 가 같이 나타나게 부탁드립니다.
* 두개의 볼밴 모두 상단과 하단이 넓어지고 있을때는 네이비 칼라로 부탁드립니다.
* 두개의 볼밴 모두 상단과 하단이 좁아지고 있을때는 옐로우 칼라로 부탁드립니다.
* 중앙이평의 값의 증감을 표현하려고 합니다.
예를들어, 가격 상승시 볼린져 중앙이평의 증가값이 증가할때는 분홍색
증가는 하고 있지만, 전전봉보다 증가값이 감소할 때는 검은색 이런식으로 표현 부탁드립니다.
하락시에도 마찬가지로 표현부탁드립니다.
* 두개의 볼린져 밴드 모두 상기의 조건들이 동시에 표현되게 부탁드립니다.
감사합니다.
2018-02-08
176
글번호 116473
답변완료
해석
아래 수식 주석부탁드립니다
**********************
input: 진입(092700);
if date != date[1] then {
var1 = 0;
var2 = 0;
}
if stime <= 진입 then {
if C > O then
var1 = var1 + 1;
else if C < O then
var2 = var2 + 1;
}
if stime == 진입 and var1 > var2 then
buy();
if stime == 진입 and var1 < var2 then
sell();
2018-02-08
128
글번호 116471
답변완료
시스템식 추가 문의드립니다
안녕하세요
작성해 주신 시스템식 잘 작동합니다
감사합니다!!!
추가 문의사항이 있어서 글 올립니다
input에 금액 부분하고
2차 3차 4차 매수시 1차매수 대비 비율을 넣을 수 있는지 궁금합니다
금액 변경을 해보고,
추가 매수시 마다 몇배수(2배 , 3배 등등)로 넣을지 변경을 해보고 싶어 문의드립니다
감사합니다!!!
--------------------------------------------------------------------------------
input : P(5);
input : BBP(20),dv(2);
var : cnt(0),sum(0),Dmav(0);
var : BBmd(0),BBup(0),BBdn(0);
var : Dmoney(0);
sum = 0;
for cnt = 0 to P-1{
sum = sum + DayClose(cnt);
}
Dmav = sum/P;
BBmd = ma(C,BBP);
BBup = BollBandUp(BBP,dv);
BBdn = BollBandDown(BBP,dv);
if Bdate != bdate[1] Then
Dmoney = 0;
Dmoney = Dmoney+m;
if MarketPosition == 0 and
C > Dmav and
Dmoney > 7500000000 and
((countif(H>=BBup,6) >= 1 and C[2] <= O[1]*0.97 and C[1] <= O[1]*0.97 and C <= BBmd) or
(C[1] <= O[1]*0.985 and l < BBdn)) Then
buy("b1");
if MarketPosition == 1 Then
{
if MaxEntries == 1 Then
buy("b2",atlimit,LatestEntryPrice(0)*0.98);
if MaxEntries == 2 Then
buy("b3",atlimit,LatestEntryPrice(0)*0.97);
if MaxEntries == 3 Then
buy("b4",atlimit,LatestEntryPrice(0)*0.96);
#상단-1% 터치시 매도
exitlong("bx1",AtLimit,BBup*0.99);
#중단 터치시 매도
exitlong("bx2",AtLimit,BBmd);
if MaxEntries <= 2 Then
ExitLong("bp1",atlimit,AvgEntryPrice*1.03);
Else
ExitLong("bp2",atlimit,AvgEntryPrice);
}
2018-02-08
140
글번호 116469
답변완료
Re : Re : 수식요청 드립이다.
안녕하세요.
당일고가 저가 변폭 표시가 아니고 직전 완성봉의 고가 저가 변폭 입니다.
장중 직번봉 현재의 지수 위치를 파악하기 위해서 입니다.
수식수정 요청 드립이다.
감사합니다.
//---------------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
var : tx1(0),tx2(0);
plot1(dayopen,"당일시가");
Text_Delete(tx1);
Text_Delete(tx2);
tx1 = Text_New(sdate,stime,dayopen,"고가변폭 : "+NumToStr(DayHigh-dayopen,2));
tx2 = Text_New(sdate,stime,dayopen,"저가변폭 : "+NumToStr(Dayopen-daylow,2));
Text_SetStyle(tx1,0,1);
Text_SetStyle(tx2,0,0);
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식요청 드립이다.
> 안녕하세요.
연결선물 분봉 틱봉 차트에서 장시작 후 실시간으로 봉이 완성될때마다 차트에 표시.
-> 직전완성봉 기준으로, 당일시가에서 직전완성봉 고가 까지의 변폭 시가라인 위에 표시
예) 고가변폭 : 0.5P
-> 직전완성봉 기준으로, 당일시가에서 직전완성봉 저가 까지의 변폭 시가라인 아래에 표시
예) 저가변폭 : 0.8P
수식요청 드립이다.
감사합니다.
2018-02-08
140
글번호 116464
답변완료
다시 문의 드립니다
예를들면 만약에 10원 거래량 100 다음날에 20원 거래량 200 예상가격이 17원 정도 잖아요 그식을 구한식이고요
input : N(120); var1 = AccumN(V*C,N);
var2 = AccumN(V,N);
var3 = var1/var2;
plot1(var3);
여기에 120봉 중에 거래량 평균을 내서 거래량 평균 이하는 제외 시켯으면 합니다
2018-02-08
136
글번호 116461
답변완료
수식변경부탁드립니다
안녕하세요 다음식은 고저점파동수식입니다
이식을 첨부 그림에서 1번고점기준으로 저점B를 찍고 1번고점을 CRSSUP하면 신호음이발생,
반대로 A점 저점기준으로 1번고점을 찍고 A저점을 CROSSDOWN하면 신호음발생되도로 부탁드립니다
Input:length(4),종가사용여부(0),파동선두께(5),수치표시(1);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),tl2(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부==1,C,H);
LL = IFF(종가사용여부==1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL2 = TL_New(고[2,3],고[2,4],고[2,1],고[1,3],고[1,4],고[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2));
Text_SetStyle(Text1, 2, 1);
Text_SetColor(Text1,BLACK);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,red);
TL_SetSize(TL2,파동선두께);
TL_SetColor(TL2,red);
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
TL_SetEnd(TL2,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,NumToStr(고[1,1],2));
}
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL2 = TL_New(저[2,3],저[2,4],저[2,1],저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2));
Text_SetStyle(Text1, 2, 0);
Text_SetColor(Text1,BLACK);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,blue);
TL_SetSize(TL2,파동선두께);
TL_SetColor(TL2,blue);
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
TL_SetEnd(TL2,저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,NumToStr(저[1,1],2));
}
}
최종꼭지점 = "저점";
}
2018-02-08
177
글번호 116460
답변완료
오류가 나네요 틀린검색이 됩니다.
# 지수이동평균 (5일/20일/60일/120일/250일)
# 오늘부터 N일전까지 찾아라
# 'mm' 은 그날 고가와 저가의 평균이다.
Input : P1(5), P2(20), P3(60), P4(120), P5(250);
input : n(10);
var : mm(0);
mm = (H+L)/2;
var1 = ema(mm,P1);
var2 = ema(mm,P2);
var3 = ema(mm,P3);
var4 = ema(mm,P4);
var5 = ema(mm,P5);
# 5일지수이동평균이 20일지수이동평균을 상향 돌파하고
Condition1 = CrossUp(var1, var2);
# N일전까지 찾아라.
# 돌파한 값이 60일, 120일, 250일 지수이동평균보다 밑에 있는 것을 찾아라.
if CountIF(Condition1, n) AND var1<var3 and var2<var3 and var3<var4 and var4<var5 Then
find(1);
===문 제 점==
1. n 일수가 적용이 됐다 안됐다 합니다
2. 이평이 배열이 된것도 검색되고 안된것도 검색이 됩니다.
(원래는 돌파점 < 60<120<250 순서여야 하는데
돌파점 < 60<120<250, 돌파점> 60>120>250 같이 검색이 됩니다.
2018-02-08
135
글번호 116454