커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7788
글번호 230811
답변완료
추세선 쌍봉 세로선
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
1471
글번호 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
1300
글번호 163234
답변완료
문의
79283번 재문의 한거 좀 봐주시고 답을 부탁드립니다
2022-10-24
1276
글번호 163230
답변완료
직선 수식 부탁 드립니다.
수고가 많으십니다.
첨부와 같이 Index=0과 8의 저점을 알고 있을 때,
이 두 점을 잇는 직선을 plot함수로 그리기 위한 수식 좀 부탁 드립니다.
감사합니다.
2022-10-24
1519
글번호 163229
오이도인 님에 의해서 삭제되었습니다.
2022-10-24
3
글번호 163228
답변완료
에스트레더에서 만든 사용자 추세 지표를 예스 글로벌넥스트애서 사용하는 방법 문의
예스트레이더서 작성한 사용자 지표를 예스글로벌넥스트로 옮기는 방법이 궁금합니다.
2022-10-24
1263
글번호 163227
회원 님에 의해서 삭제되었습니다.
2022-10-24
18
글번호 163226
답변완료
문의 드립니다.
수고하십니다.
a. countif(crossup(c,ma(c,20)),dayindex)>= 2 와
b. countif(crossup(c,ma(c,20)),dayindex+1)>=2 의 차이가
무엇인가요?
구현하고 싶었던 것은 당일 092000 까지
c가 20이평 골드크로스 두번 이상 하는 것입니다.
그런데 a와 b의 결과를 보면
b는 시작 첫 캔들에 골드가 일어나면 그것을 카운트에 포함시키는데
a는 첫 캔들에 발생하는 것을 카운트하지 않는 것 같습니다.
그래서 차이점이 무엇인지 알고 싶어요
감사합니다.
2022-10-24
754
글번호 163219
답변완료
문의드립니다.
안녕하세요.
매수:
무포지션에서 현재봉과 전봉을 비교해서 둘다 양봉이고
전봉 양봉 종가< 현재봉 양봉 종가 A 이면
이 때 현재봉 양봉 저가를 손절가 B 라고 합니다.
매수 진입합니다.
추가 매수:
매수후에 현재봉 종가가 양봉이고
이전 봉중 가장 최근의 양봉 < 현재봉 양봉 종가 이면
피라미딩으로 5단계 까지 계속 진입합니다.
손절:
모든 단계에서 ㅣ단계 때의 위의 현재봉 양봉 저가 B가 손절가이고 손절가를 현재가가
하향할 때 손절 합니다.
본절 청산 : 2단계이상 부터는 현재가가 평균 매수가 밑으로 하향할 때 본절 청산합니다.
중간 청산 :
매수 후에 음봉이 2개 연속으로 발생하면 청선합니다.
이익 청산:
5단계이후에 마지막 5단계 진입가보다 10틱 더 이익이 나면
전부 청산합니다.
매도: 반대논리로 부탁드립니다.
2022-10-23
1025
글번호 163218