커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5308
글번호 230811
답변완료
수식작성부탁드립니다
1. 예스스탁에 사용 할수 있도록 변경 부탁 드립니다
Params: Price(Close), MALength(20), DisplayLength(60), SignalPeriod(9);
Vars: DegreeMA1(0), DegreeMA2(0), Height1(0), Height2(0), Degree45(0);
Value1 = WAverage(Price, MALength);
Value2 = Highest(High, DisplayLength);
Value3 = Lowest(Low, DisplayLength);
Height1 = (Value1 - Value1[MALength]) / MALength;
Height2 = Value1 - Value1[1] ;
Degree45 = (Value2 - Value3) / DisplayLength * 10/10;
DegreeMA1 = ArcTangent( Height1 / Degree45 );
DegreeMA2 = ArcTangent( Height2 / Degree45 );
V1 = Average(DegreeMA2, SignalPeriod);
Plot1(0, "0");
If Height1 > 0 And Height2 > 0 Then
Begin
Plot2(DegreeMA1, "DegreeMA1");
Plot3(DegreeMA2, "DegreeMA2");
End;
Plot4(V1, "Signal");
2. 위의 지표를 이용하여 매수진입조건에 DegreeMA1, DegreeMA2 지표선이 평행선인구간
(즉 DegreeMA1, DegreeMA2 지표의 상승 하락이 없는구간)에서 진입이 금지되도록
수식 부탁드립니다.
3. 예스스탁에 사용 할수 있도록 변경 부탁 드립니다.
Params : Period(20);
Vars : vPeriod(0);
vPeriod = AccumN(C * V, Period) / AccumN(V, Period);
Plot1(vPeriod, "vPeriod");
Params : Period(60), vN(20), BaseLine(0);
v1 = MA(c, Period);
v2 = v1[vN - 5];
v3 = Atan((v1 - v2) / vN) * 180 / 3.14;
Plot1(v3, "ATAN");
Plot2(BaseLine, "0");
2019-06-19
363
글번호 129583
답변완료
62933 재문의 합니다.
안녕하세요.
수고 많으십니다.
아래 강조식 수식을 적용을 해 보았으나 적용이 않됩니다.
위 그림처럼 나타 납니다.
if var1 > (HH+LL)/2 ); Then
PlotPaintBar(H,L,"강조",RED );
Else
PlotPaintBar(H,L,"강조",blue);
예스스탁 담당자 분께서
iff함수의 중심값의 계산식이 잘못되어 있습니다.
var1 >  HH+LL 을 var1 >  (HH+LL)/2 로 변경하시면 됩니다.
라고 답변을 해 주셨는데 위 수식과 담당자 분께서 변경 하면 된다고 하는 차이점은
어떤 차이가 있나요.
2019-06-19
387
글번호 129579
답변완료
문의 드립니다 !
안녕하세요!!!
며칠전에 답변해주신 아래 수식 아주 유용하게 잘 사용하고있습니다 ^^*
헌데 차트에 수식을 적용해보니 그림과같은 작은 문제점이 발생되네요
즉 "1일전최고값" 하나만을 적용시는 챠트가 제대로 보이는데
나머지 항목을 모두 적용시는 그림과같이 이 나머지선이 챠트의 맨하단의 0선에 나타나므로서
상단 캔들이 쪼그라들어서 각종 지표를 보는데 지장이 생긴다는것입니다
따라서 제 질문은..
모든항목을 다 체크하더라도 해당되는 선만 챠트상에서 보이고 나머지선은 하단에 안나타나게해서
어떤경우라도 항상 차트모양이 정상적으로 보이게할수있는 방법을 알고싶습니다
너무 기초적인 질문인것같아서 죄송합니다
감사합니다!!!
-------------------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
2
해당선의 행사가는 추가해 드리기 어렵습니다.
var : Avgv(0,data1),dayO(0,data1);
var : Hest(0,data1),Lest(0,data1);
var : Hest1(0,data1),Lest1(0,data1);
var : Hest2(0,data1),Lest2(0,data1);
var : Hest3(0,data1),Lest3(0,data1);
var : Hest4(0,data1),Lest4(0,data1);
var : tx1(0,data1),tx2(0,data1),tx3(0,data1),tx4(0,data1);
var : tx5(0,data1),tx6(0,data1),tx7(0,data1),tx8(0,data1);
Avgv = (data1(c)+data2(c))/2;
if data1(date != date[1]) Then{
Hest = Avgv;
Lest = Avgv;
dayO = (data1(O)+data2(O))/2;
Hest1 = Hest[1];
Lest1 = Lest[1];
Hest2 = Hest1[1];
Lest2 = Lest1[1];
Hest3 = Hest2[1];
Lest3 = Lest2[1];
Hest4 = Hest3[1];
Lest4 = Lest3[1];
}
if Avgv > Hest Then
Hest = Avgv;
if Avgv < Lest Then
Lest = Avgv;
plot1(Hest1,"1일전최고값");
plot2(Lest1,"1일전최저값");
plot3(Hest2,"2일전최고값");
plot4(Lest2,"2일전최저값");
plot5(Hest3,"3일전최고값");
plot6(Lest3,"3일전최저값");
plot7(Hest4,"4일전최고값");
plot8(Lest4,"4일전최저값");
Text_Delete(tx1);
Text_Delete(tx2);
Text_Delete(tx3);
Text_Delete(tx4);
Text_Delete(tx5);
Text_Delete(tx6);
Text_Delete(tx7);
Text_Delete(tx8);
tx1 = Text_New(sdate,stime,hest1,"1일전최고값");
tx2 = Text_New(sdate,stime,lest1,"1일전최저값");
tx3 = Text_New(sdate,stime,hest2,"2일전최고값");
tx4 = Text_New(sdate,stime,lest2,"2일전최저값");
tx5 = Text_New(sdate,stime,hest3,"3일전최고값");
tx6 = Text_New(sdate,stime,lest3,"3일전최저값");
tx7 = Text_New(sdate,stime,hest4,"4일전최고값");
tx8 = Text_New(sdate,stime,lest4,"4일전최저값");
즐거운 하루되세요
> 유로파54 님이 쓴 글입니다.
> 제목 : 문의 드려요!
> 안녕하세요!
2, 아래의 수식에서 "당일최고가, 당일최저가" 는 삭제해주시고
대신 나머지는 선이 발생시 선의 우측끝부분 상단에 각각 "아래 정보"가
표시되도록 해주세요
(1) "해당선"의 "챠트표시 항목의 이름" (예: "1일전 최고값" 등)
(2) "해당선의 행사가" (예; "콜 267.5" 등)
한결같은 노고에 항상 감사드립니다!!!
-------------------------------------------------------------------------------------
var : Avgv(0,data1),dayO(0,data1);
var : Hest(0,data1),Lest(0,data1);
var : Hest1(0,data1),Lest1(0,data1);
var : Hest2(0,data1),Lest2(0,data1);
var : Hest3(0,data1),Lest3(0,data1);
var : Hest4(0,data1),Lest4(0,data1);
Avgv = (data1(c)+data2(c))/2;
if data1(date != date[1]) Then{
Hest = Avgv;
Lest = Avgv;
dayO = (data1(O)+data2(O))/2;
Hest1 = Hest[1];
Lest1 = Lest[1];
Hest2 = Hest1[1];
Lest2 = Lest1[1];
Hest3 = Hest2[1];
Lest3 = Lest2[1];
Hest4 = Hest3[1];
Lest4 = Lest3[1];
}
if Avgv > Hest Then
Hest = Avgv;
if Avgv < Lest Then
Lest = Avgv;
plot1(Hest,"당일최고값");
plot2(Lest,"당일최저값");
plot3(Hest1,"1일전최고값");
plot4(Lest1,"1일전최저값");
plot5(Hest2,"2일전최고값");
plot6(Lest2,"2일전최저값");
plot7(Hest3,"3일전최고값");
plot8(Lest3,"3일전최저값");
plot9(Hest4,"4일전최고값");
plot10(Lest4,"4일전최저값");
2019-06-19
353
글번호 129578
답변완료
수식부탁드립니다
몇가지 부탁드려요
1)항셍지수의 아침장과 야간장을 통합해서 전일로 보고 전일 피보나치값을 부탁드려요
아침 야간 통합 전일기준피보나치값(라인에 지표값이 나오도록 해주세요)
0
0.118
0.236
0.382
0.5
0.618
0.764
0.882
1.0
1.236
1.382.
1.5
1.618.
1.764.
2.0
-0.236
-0.382
-0.5
-0.618
-1.0
이렇게 나오게 지표부탁합니다
2)당일 아침장과 야간장을 통합해서 당일피보나치값이 나오게 부탁드립니다(라인에 지표값이 나오도록 부탁드려요)
0
0.118
0.236
0.382
0.5
0.618
0.764
0.882
1
3)전일의 아침장과 야간장을 통합해서 피봇값을 뽑고 싶습니다 1차 2차 3차 까지 뽑아주세요~
(라인에 지표이름이 나오도록 해주세용)
기준선
1차지지,2차지지,3차지지
1차저항,2차저항,3차저항
부탁드립니다
2019-06-19
325
글번호 129577
답변완료
중간에 봉 처리좀요.
두가지 인데요.
1번은
라인에 봉이 걸처 있으면 기준선을 노란색으로 처리 가능 할까요.
-------------------------------------------------------
Var : 기준선(0);
기준선 = (Highest(H, 20) + Lowest(L, 20)) / 2;
Plot1(기준선,"기준선",iff(기준선 > C,blue,red));
-----------------------------------------------------
2번은
상,하 변동시 가로로 수직선이 빨강,파랑이 생기는데 그선이 다음 반대 선이 생길때까지만 연장이 가능 할까요.
빨강선이 파란선이 생선 되면 멈추게요.
항상 감사드립니다.
------------------------------------------
Input:length(6);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),
TL1(0),처리구분(""),T(0),TL2(0),TL3(0);
Array:고점[10,2](0),저점[10,2](0);
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
T = 1;
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL_SetExtRight(TL2,False);
TL2 = TL_New(sDate[1],sTime[1],고점[1,1],sdate,sTime,고점[1,1]);
TL_SetColor(TL2,RED);
TL_SetSize(TL2,3);
If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then
{
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,2];
}
}
}
If 처리구분 == "저점처리" Then
{
T = -1;
lastLoVal = L;
If 저점[1,2] < 고점[1,2] Then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL3);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL_SetExtRight(TL3,False);
TL3 = TL_New(sDate[1],sTime[1],저점[1,1],sdate,sTime,저점[1,1]);
TL_SetColor(TL3,BLUE);
TL_SetSize(TL3,3);
If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then
{
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
}
}
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,white);
TL_SetEnd(TL2,sdate,stime,고점[1,1]);
TL_SetEnd(TL3,sdate,stime,저점[1,1]);
TL_SetExtRight(TL2,true);
TL_SetExtRight(TL3,true);
2019-06-19
288
글번호 129576
답변완료
함수요청
안녕하세요?
함수요청드립니다.
해외선물 크루드오일 5분봉 매매입니다.
매수: 음봉마감으로 윗꼬리 길이 < 아래꼬리 길이 and 몸통 길이 < 아래꼬리 길이 and 아래 꼬리 길이 > 10틱
매도: 양봉마감으로 윗꼬리 길이 > 아래꼬리 길이 and 몸통 길이 < 위꼬리 길이 and 위 꼬리 길이 > 10틱
익봉 시가 진입이며 양봉과 음봉의 개념은 시가=종가는 제외합니다.
2019-06-19
275
글번호 129562
답변완료
문의
아래내용 수식 부탁드립니다.
100000 부터 120000 까지 누적봉갯수가 100개 이상이고 양봉수>음봉수 이면 buy
input : 시간1(100000), 시간2(120000),누적봉갯수(100);
항상 고맙습니다.
2019-06-19
310
글번호 129561
답변완료
문의드립니다
안녕하세요~
1. CROSSUP(A,B) AND D > E 일때 매수 수식에서.
AB 크로스업 조건을 만족한 캔들이 도지(윗꼬리가 긴 도지, 아랫꼬리가 긴 도지, 위아래 대칭인 도지 다포함)일땐 그다음캔들에 D > E 조건을 만족해도 매수 수식이 나오게끔 수정할수 있을까요?
즉 AB크로스업 했는데 D > E 조건이 안맞아서 신호가 실패했어도 AB크로스업한 캔들이 도지면 다음캔들에 조건이 맞으면 신호가 나오면 좋겠습니다
2. 혹시 도지 다음캔들이 또 도지일 경우에 다시 다음캔들에 조건이 맞으면 진입하는 수식이 숫자만 바꿔서 가능한거면 설명 달아주시면 제가 바꿔가면서 해보겠습니다
3. 시스템수식에서 MACD 의 A B 두선의 거리가 몇% 범위내로 가까우면 안된다는 표현이 수식으로 가능할까요? 혹은 반대로 몇% 이상이면 매수 가능하다를 조건으로 넣고 싶습니다
정말 감사합니다 수고하세요~
2019-06-19
307
글번호 129560
답변완료
옵션 시스템 제작
장 시작 전에
가격라인을 3개 입력합니다
ex) 3 / 2.5 / 1.5
그럼 이 3선 중 어디서 시작할진 모르지만
어느 선이든 닿고 지지반등, 혹은 붕괴후 돌파시 매수진입 (콜이든 풋이든..)
(무조건 이 가격에 닿았다고 매수 진입이 되면 안되고, 닿은 후 반등 혹은 뚫린 후 다시 돌파시)
손절 -10틱(익절 중일 경우는 10틱이상 익절 구간이면 손절을 -0틱(본청)으로 변경)
익절은 10틱 익절구간 시 5틱 이익보존, 15틱 익절 구간이면 10틱이익보존, 이런식으로 뒤에서 5틱으로 추격 이익보존 했으면 좋겠구요
옵션은 행사가를 특정하진 못하겠는데, 보통 ATM 행사가나 ATM-+1 , ATM-+2 행사가에서 이 가격라인에 걸립니다
시스템 구현이 가능한가요??
2019-06-19
376
글번호 129559