커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
2548
글번호 230811
답변완료
부탁 드립니다.
도움에 감사 드립니다.
함수를 사용 하면
그림과 같이 점 그래프를 설정해도 그려지지 않습니다.
함수를 사용해서
점 그래프가 그려질수 있도록 부탁 드립니다.
1)함수를 사용 하지 아니한 점 그래프 수식
input:rightleftbars(15);
input:volumeThresh(20);
var: toggleBreaks(true);
var:rightBars(0);
rightBars=rightleftbars;
var : SH(0),SL(0),highUsePivot(0),lowUsePivot(0),tx1(0),tx2(0);
if SwingHigh(1,h,rightleftbars,rightBars,rightleftbars+rightBars+1) != -1 Then
SH = H[rightBars];
highUsePivot = SH[1];
if SwingLow(1,l,rightleftbars,rightBars,rightleftbars+rightBars+1) != -1 Then
SL = L[rightBars];
lowUsePivot = SL[1];
var : short(0),long(0),osc(0);
short = ema(volume, 5);
long = ema(volume, 10);
osc = 100 * (short - long) / long;
condition1=toggleBreaks and CrossDown(close,lowUsePivot)
and !(open - close < high - open) and osc > volumeThresh ;
if condition1 then
plot1(h,"1",yellow,def,14);
2)함수를 사용하여 실행은 정상 이지만 점그래프가 그려지지 않음
실행식)
input:rightleftbars(15);
input:volumeThresh(20);
var1=허9300test(15,20);
plot1(var1);
함수식)
input:rightleftbars(numeric);
input:volumeThresh(numeric);
var: toggleBreaks(true);
var:rightBars(0);
rightBars=rightleftbars;
var : SH(0),SL(0),highUsePivot(0),lowUsePivot(0),tx1(0),tx2(0);
if SwingHigh(1,h,rightleftbars,rightBars,rightleftbars+rightBars+1) != -1 Then
SH = H[rightBars];
highUsePivot = SH[1];
if SwingLow(1,l,rightleftbars,rightBars,rightleftbars+rightBars+1) != -1 Then
SL = L[rightBars];
lowUsePivot = SL[1];
var : short(0),long(0),osc(0);
short = ema(volume, 5);
long = ema(volume, 10);
osc = 100 * (short - long) / long;
condition1=toggleBreaks and CrossDown(close,lowUsePivot)
and !(open - close < high - open) and osc > volumeThresh ;
if condition1 then
허9300test=h;
2020-10-16
809
글번호 143141
답변완료
질문드립니다 답변 부탁드릴게요 ㅍ.ㅍ
안녕하세요
어제 질문에 대한 답변 잘 받았습니다
지표식을 검색식으로 변환시켜주셨는데요
이렇게요
condition1 = Highest(H,2)[2] >= C[4]*1.06;
condition2 = Accumn(H-O,1)[3] > Accumn(H-O,1)[2];
condition3 = Highest(H,2)[2] > Highest(H,1)[1];
condition4 = AccumN(v,1)[1] <= AccumN(v,2)[2]*0.30;
condition5 = AccumN(v,1)[2] > AccumN(v,1)[1] and AccumN(v,1)[2] > AccumN(v,1)[3]*0.1;
condition6 = countif(m >= 500000000,3)[1] == 3;
condition7 = (AccumN(money,3)[1]/AccumN(Volume,3)[1]-C[4])/(highest(H,3)[1]-C[4]) >= 0.65;
condition8 = Accumn(Volume,2)[2]/Accumn(Volume,2)[4] >= 8;
condition9 = Accumn(Volume,2)[2]/Accumn(Volume,4)[4] >= 8;
condition10 = Accumn(Volume,2)[2]/Accumn(Volume,6)[4] >= 8;
condition11 = Accumn(Volume,2)[2]/Accumn(Volume,8)[4] >= 8;
condition12 = Accumn(Volume,2)[2]/Accumn(Volume,10)[4] >= 8;
condition13 = Highest(H,3)[1] > Highest(H,90)[4];
condition14 = AccumN(Volume,3)[1] > Highest(AccumN(v,3),90)[4];
condition15 = C[1] >= C[4]*1.06;
condition16 = C[1] <= C[2]*1.01 and C[1] >= C[2]*0.99;
condition17 = AccumN(DownVol,1)[1]/AccumN(Volume,1)[1] >= 0.45 and AccumN(DownVol,1)[1]/AccumN(Volume,1)[1] <= 0.60;
condition18 = C[1] < C[4]*1.06;
if condition1 and condition2 and condition3 and condition4 and condition5 and condition6 and condition7 and
(condition8 or condition9 or condition10 or condition11 or condition12) and
condition13 and condition14 and ((condition15 and (condition16 or condition17)) or condition18) Then
find(1);
근데 여기서 궁금한점이있습니다.
질문 1. 저 조건들 뿐만 아니라 여러가지 더 확장해서 사용할건데요
그렇게 되면 컨디션 1 2 3 4 쭉쭉늘어나서 1000까지 될거같아요
컨디션 1 2 3 들을 컨디션 1로 모아서 해도 되나요?
그렇게 해도 똑같은 종목검색이 될까요? 결과값이 같을지...
예를 들면 이렇게요
(18개 컨디션들을 and or로 통합해서 하나의 컨디션으로)
condition1 = Highest(H,2)[2] >= C[4]*1.06 and Accumn(H-O,1)[3] > Accumn(H-O,1)[2] and Highest(H,2)[2] > Highest(H,1)[1] and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.30 and AccumN(v,1)[2] > AccumN(v,1)[1] and AccumN(v,1)[2] > AccumN(v,1)[3]*0.1 and countif(m >= 500000000,3)[1] == 3 and (AccumN(money,3)[1]/AccumN(Volume,3)[1]-C[4])/(highest(H,3)[1]-C[4]) >= 0.65 and (Accumn(Volume,2)[2]/Accumn(Volume,2)[4] >= 8 or Accumn(Volume,2)[2]/Accumn(Volume,4)[4] >= 8 or Accumn(Volume,2)[2]/Accumn(Volume,6)[4] >= 8 or Accumn(Volume,2)[2]/Accumn(Volume,8)[4] >= 8 or Accumn(Volume,2)[2]/Accumn(Volume,10)[4] >= 8) and Highest(H,3)[1] > Highest(H,90)[4] and AccumN(Volume,3)[1] > Highest(AccumN(v,3),90)[4] and ((C[1] >= C[4]*1.06 and (C[1] <= C[2]*1.01 and C[1] >= C[2]*0.99 or AccumN(DownVol,1)[1]/AccumN(Volume,1)[1] >= 0.45 and AccumN(DownVol,1)[1]/AccumN(Volume,1)[1] <= 0.60)) or C[1] < C[4]*1.06);
if condition1 then find(1);
질문 2. 두번째 질문은 첫번째 질문과 비슷하지만 좀 다릅니다.
질문 1은 컨디션들의 통합이 되나 안되나 여부였고
질문 2는 find의 질문입니다.
즉 컨디션 1~18까지 find 또 추가해서
컨디션 19~36까지 finf 또 추가해서
컨디션 37~54까지 find 또 추가해서 ....쭈욱해서
컨디션 500정도까지 한다고 했을떄
find 가 20개가 넘어가게 됩니다.
하나의 종목검색식에서 복수의 find를 쓸수있는지요
있다면 어떻게 작성해야한는건지 알려주세요 즉,
find 를 하나의 종목검색식에서 여러개 사용할수 있는 방법좀 알려주세요
질문 3. 간혹가다 예스랭귀지가 작동하지않습니다.
혹시 재설치를 하게되면 이럴때 안에 저장되어있는
시스템식 종목식 지표식들이 날라갈까봐 걱정되요
저장되어있는 식들을 살릴수 있는 방법좀 알려주세요
2020-10-16
782
글번호 143140
답변완료
수식 수정 및 보완 부탁드립니다.
현재 다른 시그널이 올때까지 기존 시그널 자리가오면 계속 진입하는데
익절하고 나온 시그널은 다시 진입하지 않게 해주세요.
익절하면 시그널 리셋 입니다.
손절시만 다시 진입하게 해주시고 다시 진입전 새로운 시그널이 오면 먼저 오는 시그널로 진입하게 해주세요.
그리고 현재 기준봉의 절반에서 익절청산으로 되어있는데
기준봉의 (고가-저가) 크기가 12틱 이상일 경우에만 시그널로 인정하고 진입하게 부탁드립니다.
그보다 낮은경우에는 진입금지
+추가
매매를 시작한 시간부터 조건 카운팅되게 할 순 없나요?
예를들어 아래수식에선 10시 15분 시작인데 그 이전 데이터를 포함해서 조건을 카운팅해서
진입을 하더라구요.
10시 15분 시작이면 이전데이터는 무시하고 시작시간부터 조건이 만들어지면 진입되는식으로 부탁드립니다.
아래 수식에서 수정부탁드립니다.
input : StartTime(101500),EndTime(130000);
var : Tcond(false);
var : T(0),T1(0),P(0),N(0),B(False),S(False);
var : HH(0),HL(0),HM(0),LL(0),LH(0),LM(0),cnt(0);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
if EndTime < StartTime Then
SetStopEndofday(0);
}
if EndTime > StartTime Then
SetStopEndofday(EndTime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(EndTime);
}
if C > O Then
T = 1;
if C < O Then
T = -1;
if T != T[1] Then
{
T1 = T[1];
}
if T == 1 and CountIf(C > O and C > C[1],2) == 2 Then
{
T = 2;
P = Index[1];
if T1 == -2 Then
{
LL = L;
LH = H;
For cnt = 0 to Index-N
{
if L[cnt] < LL then
{
LL = L[cnt];
LH = H[cnt];
LM = (LL+LH)/2;
}
}
}
}
if T == -1 and CountIf(C < O and C < C[1],2) == 2 Then
{
T = -2;
N = Index[1];
if T1 == 2 Then
{
HH = H;
HL = L;
For cnt = 0 to Index-P
{
if H[cnt] > HH then
{
HH = H[cnt];
HL = L[cnt];
HM = (HH+HL)/2;
}
}
}
}
if MarketPosition == 0 and HL > 0 and NextBarOpen < HL and Tcond == true Then
{
Buy("매수",AtStop,HL+PriceScale*3);
ExitLong("매수익절.",AtLimit,HM);
}
if MarketPosition == 1 Then
{
ExitLong("매수익절",AtLimit,HM[BarsSinceEntry]);
ExitLong("매수손절",AtStop,L[BarsSinceEntry+1]);
}
if MarketPosition == 0 and LH > 0 and NextBarOpen > LH and Tcond == true Then
Sell("매도",AtStop,LH-PriceScale*3);
ExitShort("매도익절.",AtLimit,LM);
if MarketPosition == -1 Then
{
ExitShort("매도익절",AtLimit,LM[BarsSinceEntry]);
ExitShort("매도손절",AtStop,H[BarsSinceEntry+1]);
}
2020-10-16
887
글번호 143136
답변완료
안녕하세요
지표부탁 합니다.
일목균형지표의.후행성 지표를 단독으로 하구요.
예시)20개전 에 표시를하는것으로 막대1개만 수직선으로 길게 표시할수 없을까요.
(변화의 위치알수수있게요)(표시 현재값을 알고자 하기보단.20개전 캔들을 알고자함입니다
감사합니다.
2020-10-15
727
글번호 143128
대구어린울프 님에 의해서 삭제되었습니다.
2020-10-15
3
글번호 143127
답변완료
수식 부탁드립니다
5분봉에서 30분봉 이평 볼수있게 부탁드립니다
이평선은 5,10,20,30,60,120,240,360,420,500
2020-10-15
885
글번호 143123
고나리자 님에 의해서 삭제되었습니다.
2020-10-15
0
글번호 143122
답변완료
수고하십니다.
매수조건
c[3],c[2]이 양봉이고, c[1],c[0]이 음봉이며, 이중 H값이 가장 높은 최고가봉을 기준봉으로 삼고, 기준봉의 길이는 20틱이상 60이하의 장대봉이어야 한다.
c[0] 다음의 현재봉의 시작가가 기준봉의 L값보다 낮은상태에서, 기준봉의 L값보다 +5틱돌파할때 매수진입한다.
(atstop이나 atlimit로 실시간 매수 진입할수있게 부탁합니다.)
익절은 기준봉의 3/4지점도달까지 상승시 청산, 손절은 매수진입봉의 직전앞봉의 L값도달시 청산
매도조건은 위조건 반대입니다.
국선 오전장 9:00~10:00까지 매매하는 시간설정도 부탁드립니다.
감사합니다.
2020-10-15
938
글번호 143121
답변완료
과거 데이터 조회할 수 없을까요?
과거 데이터는 실행차트에서만 구현되고, 10000개만 가능한 것으로 알고 있습니다.
그 이전의 데이터를 엑셀로 가져올 방법은 100% 없는 것인가요?
다른 툴을 이용한다든지, 아니면 과거 데이터 조회는 어떤 비용이 필요하다던지...
어떤 방법이 있는지 알려주시면 감사하겠습니다.
2020-10-15
826
글번호 143120