커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8126
글번호 230811
답변완료
키움증권 수식 변환을 부탁드립니다.
수고하십니다. 키움 수식 변환을 부탁드립니다.
새해 복많이 받으십시요
S=sum(1);
TT=S%기간;
조건=TT==1;
HH=HighestSince(1,조건,H);
Hc=valuewhen(1,조건,HH(1));
LL=LowestSince(1,조건,L);
Lc=valuewhen(1,조건,LL(1));
Cc=valuewhen(1,조건,C(1));
Oo=valuewhen(2,조건,O);
기준=Hc+Lc+Cc;
고=if(Cc>Oo, (기준+Hc)/2-Lc,
if(Cc<Oo, (기준+Lc)/2-Lc, (기준+Cc)/2-Lc));
저=if(Cc>Oo, (기준+Hc)/2-Hc,
if(Cc<Oo, (기준+Lc)/2-Hc, (기준+Cc)/2-Hc));
(고+저)/2
-----------------
기간 : 3
비율 : 3
2022-12-29
1609
글번호 164964
회원 님에 의해서 삭제되었습니다.
2022-12-29
31
글번호 164963
답변완료
검토 부탁드립니다.
안녕하세요?
아래 지표수식에서 입력변수 n값이 잘 반영이 안되는 것 같습니다.
즉 변수 값(예 500)에 넘어갈 경우 라인이 변해야 되는데 1,000 ~ 3,000 이상 넘어가도 라인이 변하지 않습니다.
검토해 주시면 정말정말 감사하겠습니다.
새해에도 복 많이 받으시고 건강하세요.
그리고 지난 한해에도 정말 감사했습니다.
==========================
input : R1(500),G1(0),B1(0);
input : R2(0),G2(0),B2(255);
input : n(500);
var : hh(0),ll(0),hc(0),Lc(0),hl(0),lh(0),T(0);
if Bdate != Bdate[1] Then
var1 = 0;
var1 = var1 + (Upvol-DownVol);
if Bdate != Bdate[1] Then
{
hh = var1;
ll = var1;
hl = var1;
lh = var1;
HC = C;
LC = C;
}
Else
{
if var1 > hh Then
{
T = 1;
hh = var1;
hl = var1;
hc = c;
}
Else if var1 < ll Then
{
T = -1;
ll = var1;
lh = var1;
lc = c;
}
Else
{
if T == 1 and var1 < hl Then
{
hl = var1;
if CrossDown(hl,hh-n) Then
LC = c;
}
if T == -1 and var1 > lh Then
{
lh =var1;
if CrossUp(lh,ll+n) Then
hc = c;
}
}
}
{
Plot1(hc,"최고");
plot2(lc,"최저");
}
2022-12-29
888
글번호 164957
답변완료
함수
안녕하세요
if c > (전일종가 - 2pt) then buy();
수고하세요
2022-12-29
888
글번호 164954
답변완료
80134 이어서 질문입니다.
1. average(c,10)
2. accumn(c,10)
3. c+c[1]+c[2].......+c[9]
제일 마지막이 시뮬이 2배가까이 제일 빠릅니다.
3번은 램이 500메가 움직이는데,
1번,2번 모두 램이 6기가씩 출렁입니다.
어쩔수없는지 궁금하네요
period 를 길게 쓰는것도 아니고 ,
accumn(c,3) 이정도 선에서 accumn 함수를 150개 씁니다.
2022-12-29
989
글번호 164952
답변완료
부탁 드립니다
도움에 감사 드립니다.
그림과 같이 부탁드립니다.
미리 감사 드립니다.
input:년월일(20220101);
input:sig(5);
var : v2(0,data2),sum(0,data2);
v2=data2(ma(c,sig));
if Condition1 == false and sdate >=년월일 Then
Condition1 = true;
if Condition1 == true and Condition1[1] == false Then
{
sum = 0;
}
if Condition1 == true then
{
sum = sum + v2;
}
var1=ma(sum,sig);
plot1(var1);
PlotBaseLine1(0);
2022-12-28
1181
글번호 164950
답변완료
트렌드 쓰리바닥
inputs: ATRLength(15), Strength(18), 폭(0.25);
input : 쌍바닥상1(2),쌍바닥상2(0),쌍바닥하1(1),쌍바닥하2(2);
input : 쌍봉상1(2),쌍봉상2(1),쌍봉하1(0),쌍봉하2(2);
var : STrend(0),ATRv(0), avgv(0), dnv(0), upv(0), trend(1), flag(0), flagh(0), ST(0),hl(0);
var : idx(0),hh(0),ll(0),EP1(0),EP2(0);
var : ema1(0),ema2(0),ema3(0),h1(0),h2(0),h3(0),h4(0),L1(0),l2(0),l3(0),l4(0);
var :tx(0),tl(0),tx1(0),tx2(0),tx11(0),tx12(0),tx3(0);
Ep1 = 2/(ATRLength+1);
Ep2 = 2/(Strength+1);
idx = idx+1;
if idx < ATRLength Then
{
hh = DayHigh;
ll = daylow;
}
Else
{
hh = Highest(High, ATRLength);
ll = Lowest(Low, ATRLength);
}
if idx < Strength Then
{
h1 = DayHigh;
l1 = daylow;
}
Else
{
h1 = Highest(High, Strength);
l1 = Lowest(Low, Strength);
}
hl = hh-ll;
if idx == 1 Then
{
ema1 = hl;
ema2 = h;
ema3 = l;
}
Else
{
ema1 = hl * EP1 + ema1 * (1-EP1);
ema2 = h * EP2 + ema2 * (1-EP2);
ema3 = l * EP2 + ema3 * (1-EP2);
}
atrv = ema1;
avgv = (ema2+ema3)/2;
upv = avgv + ATRv;
dnv = avgv - ATRv;
if idx >= 2 then
{
if c > upv[1] and c > h1[1] then trend = 1;
else if c < dnv[1] and c < l1[1] then trend = -1;
if trend < 0 and trend[1] > 0 then flag=1; else flag=0;
if trend > 0 and trend[1] < 0 then flagh = 1; else flagh = 0;
if trend > 0 and dnv < dnv[1] then dnv=dnv[1];
if trend < 0 and upv > upv[1] then upv=upv[1];
if flag == 1 then upv = avgv + ATRv;
if flagh == 1 then dnv = avgv - ATRv;
if trend == 1 then ST = dnv; else ST = upv;
STrend = trend;
}
Plot1(st,"SuperTrend",iff(strend == 1,red,blue));
if Trend != Trend[1] Then
{
if Trend == 1 Then
{
var1 = h;
var2 = var1[1];
TL = TL_New_Self(sDate,sTime,var1,sDate,sTime,99999999);
TL_SetColor(TL,Red);
TL_SetSize(TL,0.5);
tx = Text_New_Self(sDate,sTime, st-PriceScale*0,"●");
Text_SetColor(tx,Red);
Text_SetSize(tx,20);
Text_SetStyle(tx,2,2);
if Var4 > 0 and var3 <= Var4+PriceScale*쌍바닥상1 and var3 >= Var4+PriceScale*쌍바닥상2 Then
{
tx11 = Text_New_Self(sDate,sTime, st-PriceScale*0,"●");
Text_SetColor(tx11,Magenta);
Text_SetSize(tx11,30);
Text_SetStyle(tx11,2,2);
}
if Var4 > 0 and var3 <= Var4-PriceScale*쌍바닥하1 and var3 >= Var4-PriceScale*쌍바닥하2 Then
{
tx11 = Text_New_Self(sDate,sTime, st-PriceScale*0,"●");
Text_SetColor(tx11,Lime);
Text_SetSize(tx11,30);
Text_SetStyle(tx11,2,2);
}
}
Else
{
Var3 = l;
Var4 = Var3[1];
tx = Text_New_Self(sDate,sTime, st+PriceScale*0,"●");
Text_SetColor(tx,Blue);
Text_SetSize(tx,20);
Text_SetStyle(tx,2,2);
if Var2 > 0 and var1 <= Var2+PriceScale*쌍봉상1 and var1 >= Var2+PriceScale*쌍봉상2 Then
{
tx12 = Text_New_Self(sDate,sTime, st+PriceScale*0,"●");
Text_SetColor(tx12,Cyan);
Text_SetSize(tx12,30);
Text_SetStyle(tx12,2,2);
}
if Var2 > 0 and var1 <= Var2-PriceScale*쌍봉하1 and var1 >= Var2-PriceScale*쌍봉하2 Then
{
tx12 = Text_New_Self(sDate,sTime, st+PriceScale*0,"●");
Text_SetColor(tx12,Green);
Text_SetSize(tx12,30);
Text_SetStyle(tx12,2,2);
}
}
}
Else
{
if Trend == 1 Then
{
if h > var1 Then
var1 = h;
}
if Trend == -1 Then
{
if l < var3 Then
var3 = l;
}
}
if Trend != Trend[1] Then
{
if Trend == 1 Then
{
h2 = h;
h3 = h2[1];
h4 = h3[1];
if L4 > 0 and
max(L2,l3,l4) <= min(L2,l3,l4)+폭 Then
{
tx1 = Text_New_Self(sDate,sTime, st-PriceScale*0,"●");
Text_SetColor(tx1,Black);
Text_SetSize(tx1,20);
Text_SetStyle(tx1,2,2);
}
Text_Delete(tx3);
}
Else #음전환
{
L2 = l;
l3 = l2[1];
l4 = l3[1];
Condition1 = False;
if L4 > 0 and max(l3,l4) <= min(L3,L4)+폭 Then
{
tx3 = Text_New_Self(sDate,sTime, st+PriceScale*2,"●");
Text_SetColor(tx3,Red);
Text_SetSize(tx3,40);
Text_SetStyle(tx3,2,2);
Condition1 = true;
}
if Condition1 == true and l2 < max(l3,l4)-폭 Then
{
Condition1 = False;
Text_Delete(tx3);
}
}
}
Else
{
if Trend == 1 Then
{
if h > h2 Then
h2 = h;
}
if Trend == -1 Then
{
if l < L2 Then
{
L2 = l;
if Condition1 == true and l2 < max(l3,l4)-폭 Then
{
Condition1 = False;
Text_Delete(tx3);
}
}
}
}
첨부한 파일에서 아래쪽이 수정한 실시간 쓰리바닥인데 표시한 부분에 동그라미 출력이 안됩니다. 161줄의 Text_Delete(tx3); 와 연관된 듯 합니다. 실시간 쓰리바닥은 잘됩니다.
여러번 귀찮게 하네요. 고맙습니다.
2022-12-28
1264
글번호 164949
신대륙발견 님에 의해서 삭제되었습니다.
2022-12-28
28
글번호 164947
답변완료
확인부탁합니다
지표문의 80085 번 수식확인 부탁합니다
안녕하세요
예스스탁입니다.
input : ndate(20221201),n(20);
var : ii(0);
var : pre1(0),pre2(0),pre3(0),pre4(0);
var : sum1(0),sum2(0),sum3(0),sum4(0);
var : do(0),dh(0),dl(0),dc(0);
if Bdate != Bdate[1] Then
{
if Bdate >= ndate Then
{
ii = ii+1;
}
if ii >= 1 Then
{
pre1 = pre1 + dh[1];
pre2 = pre2 + do[1];
pre3 = pre3 + dl[1];
pre4 = pre4 + dc[1];
do = o;
dh = h;
dl = l;
dc = c;
}
}
if ii >= 1 Then
{
if ii <= n Then
{
if dh > 0 and H > dh Then
dh = H;
if dl > 0 and L < dl Then
dl = L;
dc = C;
sum1 = pre1+do;
sum2 = pre2+dh;
sum3 = pre3+dl;
sum4 = pre4+dc;
}
Plot1(sum1);
Plot2(sum2);
Plot3(sum3);
Plot4(sum4);
}
2022-12-28
1255
글번호 164945