커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
2553
글번호 230811
답변완료
해외선물 순매수체결량???
안녕하세요?
해외선물 순매수체결량을 보려고 아래처럼 수식을 이용했는데
모든 체결이 매수체결량으로 나오는데 뭐가 문제일까요?
sumPL = sumPL + (Upvol-DownVol);
2022-10-24
1041
글번호 163251
푸른 님에 의해서 삭제되었습니다.
2022-10-24
3
글번호 163244
답변완료
수식 부탁드립니다.
5, 20, 60이평선의 역배열상태와 하향추세에서 5이평선의 상승전환과 5이평선위에서 종가상으로 최소 2개봉이 형성된후(순서1) 다시 종가상 또는 시가상으로 5이평선을 이탈하고(순서2) 다시 5이평선을 돌파한후 전고종가(고가상이 아닌 종가상 고가)를 돌파(순서3)하는
종목 검색수식.
여기에서 다음의 제한 조건을 만족해야한다.
1. 최저가격조건: 순서1이 만족할때의 봉으로 부터 최근 5봉중 최저가격은 최근 60봉중의 최저가격조건을 만족해야한다.
2. 전고종가라 함은 5이평선을 시가나 종가상으로 깨고 내려오기전의 5이평선위에서 형성된 가격중 종가 또는 시가중 가장 높은 가격을 의미한다
3. 순서2가 형성될 때 즉 5이평선 아래에 형성되는 종가는 1의 최저가격조건보다 높아야 한다.
추가적으로 순서1,2,3의 발생순서를 표현하는 수식에 대하여 주석을 표기해주시면 감사하겠읍니다.
항상 감사하고 고맙습니다.
2022-10-24
1030
글번호 163242
답변완료
지표문의.
input:고점(20220907);
if sDate == 고점 Then{Var1=DayHigh;}
plot1(Var1,"추세고점",Yellow,DEF,3);
일봉에서 입력값 고정선을 그리는 지표식입니다.
일봉상에는 바른값이 나타납니다.
이상태서 분봉으로 변경하면 10분 까지는 바른값이 출력됩니다.
10분 이하 차트에서는 지표값이 0제로 출력됩니다.
3분차트에서도 지표값이 바르게 출력할수는 없는지요?
2022-10-24
1093
글번호 163238
답변완료
추세선 쌍봉 세로선
input : Period(12),선두께(1);
Var:상승색(red), 하락색(blue);
input : 바닥상1(2),바닥하1(1),바닥상2(2),바닥하2(1),쓰리봉(2),상(2),하(1);
Var:j(0),T(0);
Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0),
date21(0),date22(0),time21(0),time22(0),
date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0),TL9(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0)/*,ZZ[20](0)*/;
Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0);
r[0] = 0;
r[1] = 2;
r[2] = 3.;
r[3] = -1;
r[4] = -2.;
r[5] = 1;
r[6] = 0.5;
For j = 0 To 19
{
HiBar[j] = HiBar[j] + 1;
LoBar[j] = LoBar[j] + 1;
}
if crossup(c,highest(H,Period)[1]) Then
T = 1;
if CrossDown(c,Lowest(L,Period)[1]) Then
T = -1;
If T == -1 Then
{
If T[1] != -1 Then
{
For j = 18 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
//ZZ[j+1] = ZZ[j];
}
LoVal[0] = L;
LoBar[0] = 0;
//ZZ[0] = L;
date11 = date[HiBar[0]];
time11 = stime[HiBar[0]];
Value11 = HiVal[0];
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,하락색);
Tx = Text_New(date11,time11,Value11,"●");
#동그라미 색상, 빨강
Text_SetColor(Tx,Blue);
Text_SetStyle(Tx,2,2);
Text_SetSize(tx,7);
//tx = Text_New(date11,time11,Value11,NumToStr(value11,2)+NewLine+NumToStr(value11,2)+NewLine);
//Text_SetStyle(tx,2,1);
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
for j = 0 to 6
{
fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]);
}
#TL2[1] = TL_New(date21,time21,fr[1],date22,time22,fr[1]);
#TL_SetColor(TL2[1],RED);
#TL_SetStyle(TL2[1], 3);
#TL2[2] = TL_New(date21,time21,fr[2],date22,time22,fr[2]);
#TL_SetColor(TL2[2],RED);
#TL_SetSize(TL2[2],1);
#TX2[2] = Text_New(date22,time22,fr[2],NumToStr(fr[2],2));
#Text_SetColor(Tx2[2],BWHITE);
#Text_SetStyle(TX2[2],1,1);
#TL2[3] = TL_New(date21,time21,fr[3],date22,time22,fr[3]);
#TL_SetColor(TL2[3],RED);
#TL_SetStyle(TL2[3], 3);
#TL2[4] = TL_New(date21,time21,fr[4],date22,time22,fr[4]);
#TL_SetColor(TL2[4],RED);
#TL_SetSize(TL2[4],1);
#TX2[4] = Text_New(date22,time22,fr[4],NumToStr(fr[4],2));
#Text_SetColor(Tx2[4],BWHITE);
#Text_SetStyle(TX2[4],1,0);
if max(hival[0],hival[1],hival[2]) <= min(hival[0],hival[1],hival[2])+PriceScale*쓰리봉 Then
{
TL9 = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(TL9,Blue);
TL_SetSize(TL9,0.5);
}
}
If LoVal[0] > L Then
{
LoVal[0] = L;
LoBar[0] = 0;
//ZZ[0] = L;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date22 = date[0];
time22 = stime[0];
TL_SetEnd(TL2[0],date22,time22,fr[0]);
TL_SetEnd(TL2[1],date22,time22,fr[1]);
TL_SetEnd(TL2[2],date22,time22,fr[2]);
Text_SetLocation(TX2[2],date22,time22,fr[2]);
TL_SetEnd(TL2[3],date22,time22,fr[3]);
TL_SetEnd(TL2[4],date22,time22,fr[4]);
Text_SetLocation(TX2[4],date22,time22,fr[4]);
TL_SetEnd(TL2[5],date22,time22,fr[5]);
TL_SetEnd(TL2[6],date22,time22,fr[6]);
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
For j = 18 DownTo 0
{
HiVal[j+1] = HiVal[j];
HiBar[j+1] = HiBar[j];
//ZZ[j+1] = ZZ[j];
}
HiVal[0] = H;
HiBar[0] = 0;
//ZZ[0] = H;
date11 = date[LoBar[0]];
time11 = stime[LoBar[0]];
Value11 = LoVal[0];
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,상승색);
Tx1 = Text_New(date11,time11,Value11,"●");
#동그라미 색상, 파랑
Text_SetColor(Tx1,Red);
Text_SetStyle(Tx1,2,2);
Text_SetSize(tx1,7);
//tx = Text_New(date11,time11,Value11,NewLine+NumToStr(value11,2)+NewLine+NumToStr(value11,2));
//Text_SetStyle(tx,2,0);
date31 = date[LoBar[0]];
time31 = stime[LoBar[0]];
date32 = date[0];
time32 = stime[0];
for j = 0 to 5
{
fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]);
}
Condition1 = False;
if Condition1 == False and LoVal[0] <= Loval[1]+PriceScale*바닥상1 and LoVal[0] >= Loval[1]-PriceScale*바닥하1 and
LoVal[1] <= Loval[2]+PriceScale*바닥상2 and LoVal[1] >= Loval[2]-PriceScale*바닥하2 Then
{
Condition1 = true;
TL9 = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(TL9,Magenta);
TL_SetSize(TL9,1);
}
if Condition1 == False and LoVal[0] <= Loval[1]+PriceScale*바닥상1 and LoVal[0] >= Loval[1]-PriceScale*바닥하1 Then
{
Condition1 = true;
TL9 = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(TL9,Red);
TL_SetSize(TL9,0.5);
}
}
If HiVal[0] < H Then
{
HiVal[0] = H;
HiBar[0] = 0;
//ZZ[0] = H;
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date32 = date[0];
time32 = stime[0];
TL_SetEnd(TL3[0],date32,time32,fr[0]);
TL_SetEnd(TL3[1],date32,time32,fr[1]);
TL_SetEnd(TL3[2],date32,time32,fr[2]);
Text_SetLocation(TX3[2],date32,time32,fr[2]);
TL_SetEnd(TL3[3],date32,time32,fr[3]);
TL_SetEnd(TL3[4],date32,time32,fr[4]);
Text_SetLocation(TX3[4],date32,time32,fr[4]);
TL_SetEnd(TL3[5],date32,time32,fr[5]);
TL_SetEnd(TL3[6],date32,time32,fr[6]);
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
}
}
TL_SetSize(TL1,선두께);
재문의
1.수정:쌍바닥,쓰리바닥 세로선은 그대로 유지한체 쓰리봉 세로선만 쌍봉 세로선으로 변경
총 세가지 세로선. 쌍봉도 상하 변수 분리.
2.추가: 그 상태에서 세로선과 관계없이 "추세선이 음전환되면" 그 상단 꼭지점 위에 큰 동그라미 표시.
동그라미는 첫째, 음선이 직전저점 -1틱 안깨고 양전환되면 삭제. 둘째, 계속 하락하여 직저 깨지면
직전저점 -2틱 도달시 삭제. 직저 -1틱까지는 존재.
동그라미는 남는게 아니고 바로 바로 삭제됩니다. 최대 1개 존재.
동그라미는 음전환 될때마다 생기고 양전환되거나 직전저점 깨지면 삭제되기를 반복합니다.
동그라미 생성 삭제는 세로선과는 무관한, 쌍바닥이 깨지는가를 실시간으로 알기위한 별도 추가 수식.
-2틱은 변수로 설정. 감사합니다.
2022-10-24
1317
글번호 163235
답변완료
타주기분 지표식 부탁드립니다.
아래의 지표식을 타주기분(15분)으로 변경 부탁드립니다
===========================
input : RSIPeriod(14),Period(14),K(3),D(3);
var : RSIV(0),StoRsi(0);
var : StoK(0),StoD(0);
RSIv = RSI(RSIPeriod);
StoRsi = (RSIv- lowest(RSIv,Period)) / ( highest(RSIv,Period)-lowest(RSIv,Period) ) *100 ;
StoK = ma(StoRsi,K);
StoD = ma(StoK,D);
Plot1(StoK, "StoRsiK");
Plot2(StoD, "StoRsiD");
PlotBaseLine1(20, "기준선 20");
PlotBaseLine2(80, "기준선 80");
PlotBaseLine3(50, "기준선 50");
2022-10-24
1216
글번호 163234
답변완료
문의
79283번 재문의 한거 좀 봐주시고 답을 부탁드립니다
2022-10-24
1186
글번호 163230
답변완료
직선 수식 부탁 드립니다.
수고가 많으십니다.
첨부와 같이 Index=0과 8의 저점을 알고 있을 때,
이 두 점을 잇는 직선을 plot함수로 그리기 위한 수식 좀 부탁 드립니다.
감사합니다.
2022-10-24
1361
글번호 163229
오이도인 님에 의해서 삭제되었습니다.
2022-10-24
3
글번호 163228