커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1638
글번호 230811
답변완료
도사님 도움부탁드려요.
1. 두번째 갱신되었을경우, 별모양 추가해주세요. 3번째갱신되었을경우,별모양
input : 전환포인트(0.8);
Array : HD[10](0),HT[10](0),HV[10](0);
Array : LD[10](0),LT[10](0),LV[10](0);
var : cnt(0),Hprice(0),Lprice(0);
var : UpTrend(false),DownTrend(False),Trend(0),Trend1(0),ZigZagTL(0),TX(0),tx1(0);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0),TL8(0),t(0);
Plot1 (0);
HPrice = H;
LPrice = L;
if Index == 0 or Bdate != Bdate[1] Then
{
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
trend = 0;
trend1 = 0;
t = 0;
}
Else
{
if Trend == 0 Then
{
if L < LV[0] Then
{
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
}
if H > HV[0] Then
{
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
}
}
UpTrend = HPrice >= LV[0]+전환포인트;
DownTrend = LPrice <= HV[0]-전환포인트;
if trend <= 0 and UpTrend == true Then
{
trend = 1;
trend1 = trend[1];
For cnt = 9 DownTo 1
{
HD[cnt] = HD[cnt-1];
HT[cnt] = HT[cnt-1];
HV[cnt] = HV[cnt-1];
}
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]);
TL_SetColor(ZigZagTL,Gold);
TL_SetSize(ZigZagTL,1);
TX = Text_New(HD[0],HT[0],HV[0],NumToStr(HV[0]-LV[0],2)+" ");
Text_SetStyle(TX,1,1);
Text_SetColor(TX,Black);
Text_SetSize(tx,25);
Text_SetBold(tx,1);
var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(23.6/100));
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(76.4/100));
TL1 = TL_New(LD[0],LT[0],HV[0],NextBarSdate,NextBarStime,HV[0]);
TL2 = TL_New(LD[0],LT[0],var2,NextBarSdate,NextBarStime,var2);
TL3 = TL_New(LD[0],LT[0],var3,NextBarSdate,NextBarStime,var3);
TL4 = TL_New(LD[0],LT[0],var4,NextBarSdate,NextBarStime,var4);
TL5 = TL_New(LD[0],LT[0],var5,NextBarSdate,NextBarStime,var5);
TL6 = TL_New(LD[0],LT[0],var6,NextBarSdate,NextBarStime,var6);
TL7 = TL_New(LD[0],LT[0],LV[0],NextBarSdate,NextBarStime,LV[0]);
TL_SetColor(TL1,Magenta);
TL_SetColor(TL2,Gold);
TL_SetColor(TL3,Orange);
TL_SetColor(TL4,Green);
TL_SetColor(TL5,Orange);
TL_SetColor(TL6,Gold);
TL_SetColor(TL7,Magenta);
TL_SetSize(TL1,1);
t = t+1;
if t == 1 Then
{
tx1 = Text_New(NextBarSdate,NextBarStime,LV[0]-PriceScale*2,"■");
}
}
Else if trend >= 0 and DownTrend Then//하락추세 전환
{
trend = -1;
trend1 = trend[1];
For cnt = 9 DownTo 1
{
LD[cnt] = LD[cnt-1];
LT[cnt] = LT[cnt-1];
LV[cnt] = LV[cnt-1];
}
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]);
TL_SetColor(ZigZagTL,Gold);
TL_SetSize(ZigZagTL,1);
TX = Text_New(LD[0],LT[0],LV[0],NumToStr(HV[0]-LV[0],2)+" ");
Text_SetStyle(TX,1,0);
Text_SetColor(TX,Black);
Text_SetSize(tx,25);
Text_SetBold(tx,1);
var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(23.6/100));
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(76.4/100));
TL1 = TL_New(HD[0],HT[0],HV[0],NextBarSdate,NextBarStime,HV[0]);
TL2 = TL_New(HD[0],HT[0],var2,NextBarSdate,NextBarStime,var2);
TL3 = TL_New(HD[0],HT[0],var3,NextBarSdate,NextBarStime,var3);
TL4 = TL_New(HD[0],HT[0],var4,NextBarSdate,NextBarStime,var4);
TL5 = TL_New(HD[0],HT[0],var5,NextBarSdate,NextBarStime,var5);
TL6 = TL_New(HD[0],HT[0],var6,NextBarSdate,NextBarStime,var6);
TL7 = TL_New(HD[0],HT[0],LV[0],NextBarSdate,NextBarStime,LV[0]);
TL_SetColor(TL1,Magenta);
TL_SetColor(TL2,Gold);
TL_SetColor(TL3,Orange);
TL_SetColor(TL4,Green);
TL_SetColor(TL5,Orange);
TL_SetColor(TL6,Gold);
TL_SetColor(TL7,Magenta);
TL_SetSize(TL7,1);
t = t+1;
if t == 1 Then
{
tx1 = Text_New(NextBarSdate,NextBarStime,HV[0]+PriceScale*2,"■");
}
}
Else
{
if trend == 1 Then
{
if trend1 == 0 Then
{
LV[0] = DayLow;
}
if HPrice > HV[0] Then
{
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]);
Text_SetLocation(TX,HD[0],HT[0],HV[0]);
Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" ");
var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(23.6/100));
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(76.4/100));
TL_SetBegin(TL1,LD[0],LT[0],HV[0]);
TL_SetBegin(TL2,LD[0],LT[0],Var2);
TL_SetBegin(TL3,LD[0],LT[0],Var3);
TL_SetBegin(TL4,LD[0],LT[0],Var4);
TL_SetBegin(TL5,LD[0],LT[0],Var5);
TL_SetBegin(TL6,LD[0],LT[0],Var6);
TL_SetBegin(TL7,LD[0],LT[0],LV[0]);
TL_SetEnd(TL1,Sdate,Stime,HV[0]);
TL_SetEnd(TL2,Sdate,Stime,Var2);
TL_SetEnd(TL3,Sdate,Stime,Var3);
TL_SetEnd(TL4,Sdate,Stime,Var4);
TL_SetEnd(TL5,Sdate,Stime,Var5);
TL_SetEnd(TL6,Sdate,Stime,Var6);
TL_SetEnd(TL7,Sdate,Stime,LV[0]);
if t == 1 Then
Text_SetLocation(tx1,sDate,sTime,LV[0]-PriceScale*2);
}
}
if trend == -1 Then
{
if trend1 == 0 Then
{
HV[0] = DayHigh;
}
if LPrice < LV[0] Then
{
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]);
Text_SetLocation(TX,LD[0],LT[0],LV[0]);
Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" ");
var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(23.6/100));
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(76.4/100));
TL_SetBegin(TL1,HD[0],HT[0],HV[0]);
TL_SetBegin(TL2,HD[0],HT[0],Var2);
TL_SetBegin(TL3,HD[0],HT[0],Var3);
TL_SetBegin(TL4,HD[0],HT[0],Var4);
TL_SetBegin(TL5,HD[0],HT[0],Var5);
TL_SetBegin(TL6,HD[0],HT[0],Var6);
TL_SetBegin(TL7,HD[0],HT[0],LV[0]);
TL_SetEnd(TL1,Sdate,Stime,HV[0]);
TL_SetEnd(TL2,Sdate,Stime,Var2);
TL_SetEnd(TL3,Sdate,Stime,Var3);
TL_SetEnd(TL4,Sdate,Stime,Var4);
TL_SetEnd(TL5,Sdate,Stime,Var5);
TL_SetEnd(TL6,Sdate,Stime,Var6);
TL_SetEnd(TL7,Sdate,Stime,LV[0]);
if t == 1 Then
Text_SetLocation(tx1,sDate,sTime,HV[0]+PriceScale*2);
}
}
}
}
2024-12-24
614
글번호 186563
살빼고싶다 님에 의해서 삭제되었습니다.
2024-12-24
81
글번호 186562
답변완료
검색식 부탁 드립니다
기준 시가
A=Valuewhen(1,dayclose()>predayclose()*m,dayopen());
기준 중심
A=Valuewhen(1,dayclose()>predayclose()*m,dayclose());
B=Valuewhen(1,dayclose()>predayclose()*m,dayopen());
(A+B)/2
기준 종가
A=Valuewhen(1,dayclose()>predayclose()*m,dayclose());
지표 조건
M 1.10
5이평각도
a=avg(c,기간1);
b=(a(0)/c)-(a(1)/c);
10이평각도
a=avg(c,기간2);
b=(a(0)/c)-(a(1)/c);
20이평각도
a=avg(c,기간3);
b=(a(0)/c)-(a(1)/c);
지표조건
기간1 5
기간2 10
기간3 20
기준 시가 기준 중심 기준종가 를 이평각도5이평이 돌파 하는
종목검색식 부탁 드립니다
상단
당일=(dayClose()+dayHigh()+dayLow())/3;
A=당일+npdc(1)+npdc(2)+npdc(3)+npdc(4)+npdc(5)+npdc(6)+
npdc(7)+npdc(8)+npdc(9)+npdc(10)+npdc(11)+npdc(12)+npdc(13)+
npdc(14)+npdc(15)+npdc(16)+npdc(17)+npdc(18)+npdc(19);
M=A/20;
편차합=
pow(당일-M,2)+pow(npdc(1)-M,2)+pow(npdc(2)-M,2)+
pow(npdc(3)-M,2)+pow(npdc(4)-M,2)+pow(npdc(5)-M,2)+
pow(npdc(6)-M,2)+pow(npdc(7)-M,2)+pow(npdc(8)-M,2)+
pow(npdc(9)-M,2)+pow(npdc(10)-M,2)+pow(npdc(11)-M,2)+
pow(npdc(12)-M,2)+pow(npdc(13)-M,2)+pow(npdc(14)-M,2)+
pow(npdc(15)-M,2)+pow(npdc(16)-M,2)+pow(npdc(17)-M,2)+
pow(npdc(18)-M,2)+pow(npdc(19)-M,2);
M-D1*sqrt(편차합/20)
상단중심
M1=M-D1*sqrt(편차합/20);
(M+M1)/2
지표조건
D1 2
상단 중심을 돌파하는 종목 검색식 부탁 드립니다
2024-12-24
589
글번호 186561
답변완료
종목검색식 부탁드림니다.
항상 노고에 감사드림니다.
아래의 수식을 종목검색식으로 부탁드림니다.
1)종목수식
a=ma((npredayclose(2)+npredayclose(1)+
dayclose())/3,3)*0.92.5;
crossup(c,a)
2)종목수식
a=ma((npredayclose(2)+npredayclose(1)+
dayclose())/3,3)*0.85;
crossup(c,a)
2024-12-24
547
글번호 186560
답변완료
박스 높이(위-아래)
아래 박스 수식의 위 아래의 높이를 구하는 수식 부탁합니다(위-아래)
=================================================================
Input : 기준(-10),p(5);
var : Vpower(0),Upper(0),Lower(0),mav(0),T(0);
var : hh(0),ll(0),dd(0),tt(0),box(0);
Vpower = upVol/(upVol+downVol)*100-50;
If Vpower > 0 Then
Upper = Vpower;
Else
Upper = 0;
If Vpower <= 0 Then
lower = Vpower;
Else
lower = 0;
mav = ma(Vpower,p);
if CrossUp(기준,mav) Then
{
T = 1;
hh = h;
ll = l;
dd = sDate;
tt = sTime;
box = Box_New(sDate,sTime,hh,NextBarSdate,NextBarStime,ll);
Box_SetColor(box,Blue);
Box_SetFill(box,true,100,true);
}
if CrossDown(기준,mav) Then
T = -1;
if T == 1 Then
{
if h > hh Then
hh = h;
if l < ll Then
ll = l;
Box_SetBegin(box,dd,tt,hh);
Box_SetEnd(box,NextBarSdate,NextBarStime,ll);
}
2024-12-24
533
글번호 186559
답변완료
예스랭귀지 수식 요청합니다
안녕하세요
1봉전보다 0봉전 상승
OBV(10) and
CCI(9)
이렇게 수식 가능할까요?
감사합니다
2024-12-24
575
글번호 186558
답변완료
질문드리겠습니다
안녕하세요
crossup,crossdown 을 함수로 만들어 응용하고자 하는데 수식이 어떻게 되는지 알고 싶습니다
랭귀지 편집기에 사용자 함수에는 등재가 안돼있어서요
항상 감사드리며 즐거운 크리스마스 보내시고 한 해 마무리 잘 하시길 바랍니다~
2024-12-24
479
글번호 186557
살빼고싶다 님에 의해서 삭제되었습니다.
2024-12-24
89
글번호 186556
답변완료
안녕하세요. 수식전환 부탁드릴게요.
안녕하세요. 키움증권에서 약세강세 패턴으로
사용중인 수식 변환 문의드릴게요.
당일 누적 분봉거래대금 500억이상 5%이상 발생시점부터
오후12시까지 차트상 분홍색상으로 배경으로 표시.
오후12시 이후부터는 기존 차트색상 배경으로 표시입니다.
강세패턴
B = sum((H+O+L+C)/4*V/100000000);
B2 = valueWhen(1, date(1)!=date, B(1) );
AA = predayclose()*1.05<= dayHigh();
(B-B2)>분봉누적거래대금 and AA;
약세패턴
A=TIME<끝;
B=TIME>시작;
A AND B
지표변수
분봉누적거래대금 500억
시작 120000
끝 160000
입니다. 감사합니다.
2024-12-24
870
글번호 186555