커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3741
글번호 230811
답변완료
문의 드립니다.
MACD 12 26 9 골든 크로스 매수 진입
손절은 20틱, 익절은 20틱 으로 한다.
MACD 12 26 9 데드 크로스 매도 진입
손절은 20틱, 익절은 20틱 으로 한다.
각각 분리해서 부탁드립니다.
2020-04-20
502
글번호 138127
답변완료
다시 부탁 드립니다
input : StartTime(90000),EndTime(120000);
Input: AccelFactor(0.02);
Variables: ParabolicValue(0);
var : Tcond(false);
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
ParabolicValue = SAR(AccelFactor, 0.2);
If Tcond == true and High <= ParabolicValue Then
Buy ("Pblc", AtStop, ParabolicValue);
SetStopEndofday(EndTime);
위수식을 선물 매수매도 진입 할수있게 부탁드립니다
2020-04-20
549
글번호 138126
답변완료
67089 재문의
1개의 봉 거래량을 세분해서 합치려는 방식이 아닙니다.
이해를 돕기위해 그림을 첨부합니다.
<원본 글>
최근 n개의 봉을 기준으로
n개의 봉의 고가~저가 범위에서
가장 거래량이 많았던 가격을 나타내주는 지표를 만들고 싶습니다.
n개의 봉의 최고가~최저가 범위를 세로축으로 하고
해당가격범위에 해당하는 봉들의 거래량을 합산하여
합산된 거래량이 가장 많은 가격이 선그래프로 표시되었으면 좋겠습니다.
<첨부 그림 설명>
예를들어 크루드오일 종목에서
봉 5개를 기준으로 보고 봉5개의 최고가가 21.09 최저가가 21.01 이라면,
세로축은 21.01~21.09 으로 되는것이고,
가격대별로 해당가격에 걸치는 봉들의 거래량을 합해보면
21.01 -> 10 = 10
21.02 -> 10 = 10
21.03 -> 10 + 20 = 30
21.04 -> 20 = 20
21.05 -> 20 + 15 + 5 = 40
21.06 -> 15 + 5 = 20
21.07 -> 15 + 30 + 5 = 50(최대)
21.08 -> 30 = 30
20.09 -> 30 = 30
이런식으로 계산이 되고, 현재봉에서의 거래량 지표는
거래량합계 최고치 '50' 에 해당하는 가격인 21.07을 가리키게 됩니다.
만약 거래량합계가 같은 가격대가 나온다면, 그중 큰 가격을 표시하면 됩니다.
해당 내용의 지표 구현이 가능하다면 도움을 요청합니다.
2020-04-20
617
글번호 138125
답변완료
시스템 수식전환
다음 수식을 예스 시스템 수식전환 부탁드려요.
매수진입
T=tsf
valuewhen(1,T<T(1),저점)
Crossup(C,저점)
매도진입
T=tsf
valuewhen(1,T>T(1),고점)
Crossup(C,고점)
기간 20
고점 T
저점 T
2020-04-20
581
글번호 138124
답변완료
문의 드립니다.
안녕하세요
항상 빠른 답변 감사드립니다.
2개의 종목검색식을 희망 합니다.
장중 5분봉에서 검색하고자 합니다.
[1] 검색 실시간 해당 종목만 검색
1, 거래량 순위 상위 100
2, 거래량 회전율 상위 100
3. 거래대금 상위 100
4. 5분봉상 시초가 상승 or 하락후 시초가 돌파,
이후 눌림(5이평선과 20이평선이 같거나 수렴)
5. 시초가는 5% 갭상승 이하 종목만
6, 거래량 오름순으로
ps. 4번의 경우는 구현이 가능한 범위내에서 식을 구현해 주셨으면 합니다.
[2] 장마감이후 검색시 장중에 한번이라도 시초가 돌파된 종목 검색
[1]조건에 추가하여
장마감이후 장중에 시초가를 돌파했던 종목을 따로 검색 가능한 식을
요청 드립니다.
가령 종가가 시초가 아래에 위치 하더라도
장중에 시초가를 돌파했던 종목을 검색하고자 합니다.
그럼 좋은 하루 되세요^^
2020-04-21
588
글번호 138116
새벽에 님에 의해서 삭제되었습니다.
2020-04-21
8
글번호 138113
물고기 님에 의해서 삭제되었습니다.
2020-04-20
0
글번호 138110
답변완료
문의드립니다.
study("ES", shorttitle="E", overlay=false, precision=3)
src=input(hl2, title="Source")
a=input(.07, title="Alpha")
co=input(8.0, title="Cutoff")
pi=4*atan(1.0), dtr=pi/180.0, rtd=1/dtr
s = (src + 2*src[1] + 2*src[2] + src[3])/6.0
c = nz(((1 - 0.5*a)*(1 - 0.5*a)*(s - 2*nz(s[1]) + nz(s[2])) + 2*(1-a)*nz(c[1]) - (1 - a)*(1-a)*nz(c[2])), (src - 2*src[1] + src[2])/4.0)
q1 = (.0962*c + 0.5769*nz(c[2]) - 0.5769*nz(c[4]) - .0962*nz(c[6]))*(0.5+.08*nz(ip[1]))
I1 = nz(c[3])
dp_ = iff(q1 != 0 and q1[1] != 0, (I1/q1 - nz(I1[1])/nz(q1[1])) / (1 + I1*nz(I1[1])/(q1*nz(q1[1]))),0)
dp = iff(dp_ < 0.1, 0.1, iff(dp_ > 1.1, 1.1, dp_))
med(x,y,z) => (x+y+z) - min(x,min(y,z)) - max(x,max(y,z))
md = med(dp,dp[1], med(dp[2], dp[3], dp[4]))
//dc = iff(md == 0, 15, 6.28318 / md + 0.5)
dc = iff(md == 0, 15, 2*pi / md + 0.5)
ip = .33*dc + .67*nz(ip[1])
p = .15*ip + .85*nz(p[1])
pr=round(abs(p-1))
vx0=0
vx1=pr==1?(src - src[1]):vx0
vx2=pr==2?(src - src[2]):vx1
vx3=pr==3?(src - src[3]):vx2
vx4=pr==4?(src - src[4]):vx3
vx5=pr==5?(src - src[5]):vx4
vx6=pr==6?(src - src[6]):vx5
vx7=pr==7?(src - src[7]):vx6
vx8=pr==8?(src - src[8]):vx7
vx9=pr==9?(src - src[9]):vx8
vx10=pr==10?(src - src[10]):vx9
vx11=pr==11?(src - src[11]):vx10
vx12=pr==12?(src - src[12]):vx11
vx13=pr==13?(src - src[13]):vx12
vx14=pr==14?(src - src[14]):vx13
vx15=pr==15?(src - src[15]):vx14
vx16=pr==16?(src - src[16]):vx15
vx17=pr==17?(src - src[17]):vx16
vx18=pr==18?(src - src[18]):vx17
vx19=pr==19?(src - src[19]):vx18
vx20=pr==20?(src - src[20]):vx19
vx21=pr==21?(src - src[21]):vx20
vx22=pr==22?(src - src[22]):vx21
vx23=pr==23?(src - src[23]):vx22
vx24=pr==24?(src - src[24]):vx23
vx25=pr==25?(src - src[25]):vx24
vx26=pr==26?(src - src[26]):vx25
vx27=pr==27?(src - src[27]):vx26
vx28=pr==28?(src - src[28]):vx27
vx29=pr==29?(src - src[29]):vx28
vx30=pr==30?(src - src[30]):vx29
vx31=pr==31?(src - src[31]):vx30
vx32=pr==32?(src - src[32]):vx31
vx33=pr==33?(src - src[33]):vx32
vx34=pr==34?(src - src[34]):vx33
vx35=pr==35?(src - src[35]):vx34
vx36=pr==36?(src - src[36]):vx35
vx37=pr==37?(src - src[37]):vx36
vx38=pr==38?(src - src[38]):vx37
vx39=pr==39?(src - src[39]):vx38
vx40=pr==40?(src - src[40]):vx39
vx41=pr==41?(src - src[41]):vx40
vx42=pr==42?(src - src[42]):vx41
vx43=pr==43?(src - src[43]):vx42
vx44=pr==44?(src - src[44]):vx43
vx45=pr==45?(src - src[45]):vx44
vx46=pr==46?(src - src[46]):vx45
vx47=pr==47?(src - src[47]):vx46
vx48=pr==48?(src - src[48]):vx47
vx49=pr==49?(src - src[49]):vx48
vx50=pr==50?(src - src[50]):vx49
vx51=pr==51?(src - src[51]):vx50
vx52=pr==52?(src - src[52]):vx51
vx53=pr==53?(src - src[53]):vx52
vx54=pr==54?(src - src[54]):vx53
vx55=pr==55?(src - src[55]):vx54
vx56=pr==56?(src - src[56]):vx55
vx57=pr==57?(src - src[57]):vx56
vx58=pr==58?(src - src[58]):vx57
vx59=pr==59?(src - src[59]):vx58
vx60=pr==60?(src - src[60]):vx59
vx61=pr==61?(src - src[61]):vx60
vx62=pr==62?(src - src[62]):vx61
vx63=pr==63?(src - src[63]):vx62
vx64=pr==64?(src - src[64]):vx63
vx65=pr==65?(src - src[65]):vx64
vx66=pr==66?(src - src[66]):vx65
vx67=pr==67?(src - src[67]):vx66
vx68=pr==68?(src - src[68]):vx67
vx69=pr==69?(src - src[69]):vx68
vx70=pr==70?(src - src[70]):vx69
vx71=pr==71?(src - src[71]):vx70
vx72=pr==72?(src - src[72]):vx71
vx73=pr==73?(src - src[73]):vx72
vx74=pr==74?(src - src[74]):vx73
vx75=pr==75?(src - src[75]):vx74
v1=vx75
a1=exp(-pi/co)
b1=2.0*a1*cos((1.738*180/co)*dtr)
c1=a1*a1
coef2=b1+c1
coef3= -(c1+b1*c1)
coef4=c1*c1
coef1=1-coef2-coef3-coef4
f3=nz(coef1*v1+coef2*nz(f3[1])+coef3*nz(f3[2])+coef4*nz(f3[3]), v1)
ml=plot(0, color=gray, title="ZeroLine")
pl=plot(f3>0?f3:0,title="DummyP",color=gray, linewidth=0, style=circles)
nl=plot(f3<0?f3:0,title="DummyN",color=gray, linewidth=0, style=circles)
plot(f3, title="Ehlers SAMI", color=black, linewidth=2)
fill(pl, ml, green, title="PositiveFill", transp=70), fill(nl, ml, red, title="NegativeFill", transp=70)
ebc=input(false, title="Enable bar colors")
bc=ebc?(f3>0?f3>nz(f3[1])?lime:green:f3<f3[1]?red:orange):na
barcolor(bc)
긴 수식 문의드려서 죄송합니다.
변환 문의드립니다. 감사합니다.
2020-04-20
640
글번호 138109
답변완료
수식수정부탁드립니다
input : 카운팅시작일자(20200420), 카운팅시작시간(070000);
Input : 기준거래량(10000);
var : 거래량(0), UDV(0), 거래량색(0), UDV색(0),Tcond(false);
if sdate >= 카운팅시작일자 and stime >= 카운팅시작시간 Then
Tcond = true;
if Tcond == true Then
{
if (sdate != sdate[1] and stime >= 카운팅시작시간) or
(sdate == sdate[1] and stime >= 카운팅시작시간 and stime[1] < 카운팅시작시간) Then
{
UDV = Upvol - DownVol;
Plot1(0, "횡보구간", RGB(251, 251, 0), def, 30);
if UDV > 0 then {
거래량 = V;
거래량색 = RGB(255, 128, 255); //연핑
UDV색 = RGB(170, 0, 0); //밤색
}
if UDV <= 0 then {
거래량 = -V;
거래량색 = RGB(104, 206, 255); //연청
UDV색 = BLACK;
}
plot11(거래량, "거래량", 거래량색);
plot12(UDV, "UDV", UDV색, def, 0);
//==== 대량 거래 표시
if Tcond == true then
{
if bdate != bdate[1] Then
if V >= 기준거래량-100 and UDV > 0 then
plot21(기준거래량, "기준거래량-상위", RGB(206, 0, 103), def, 1);
if V >= 기준거래량-100 and UDV <= 0 then
plot22(-기준거래량, "기준거래량-하위", BLACK, def, 1);
if Tcond == true then
{
if bdate != bdate[1] Then
var : 봉수(0), 최대봉(0), 점크기(0);
if dayindex+1 < 100 Then 봉수 = dayindex+1;
점크기 = v/600;
If 점크기 < 1 Then 점크기 = 3;
If 점크기 > 20 Then 점크기 = 20;
if stime >= 070000 and stime <= 060000 and
highest(V, 봉수)[1] <= V Then {
if UDV > 0 then
Plot61(V/2, "■최대거래터짐", black, def, 점크기);
if UDV <= 0 then
Plot62(-V/2, "■최대거래터짐", black, def, 점크기);
playsound("C:₩____Mysound₩거래량당일 최대치 갱신.wav");
}
if Tcond == true then
{
if bdate != bdate[1] Then
Input : U점크기(1), UDV최대(2000), U점위치(700);
Var : 출력위치(0), UDV대량색(0);
if UDV >= UDV최대 then {
출력위치 = -U점위치;
UDV대량색 = RED;
}
if UDV <= -UDV최대 then {
출력위치 = U점위치;
UDV대량색 = BLUE;
}
if Tcond == true then
{
if bdate != bdate[1] Then
if stime >= 070000 and
stime <= 060000 and
abs(UDV) >= UDV최대 then
Plot71(출력위치, "●UDV 대량", UDV대량색, def, U점크기);
}}}}}}
1. 상기수식 카운트일자 사용가능
2. 수식전체를 검토 부탁드립니다.
감사합니다
2020-04-20
573
글번호 138107