커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1645
글번호 230811
답변완료
수식 좀 요청 드립니다.
* 항상 많은 도움에 고맙 습니다.
* 두가지좀 요청 드립니다.
<요청1 >아래 수식 점찍기에서 점을 "LOWER-PriceScale*40" 선에 찍고 싶은데 error 가 납니다.
어느부분이 잘못 되었나요?
INPUT: MALEN(10),CONST(0.8),ATRs(0);
VAR: CENTLINE(0), AVGRANGE(0), UPPER(0), LOWER(0);
CENTLINE=KeltnerChannel(Close, MALEN, ATRs);
AVGRANGE=Ma(TRUERANGE(),MALEN);
UPPER=CENTLINE+(AVGRANGE*CONST);
LOWER=CENTLINE-(AVGRANGE*CONST);
PLOT1(CENTLINE,"CENTLINE");
PLOT2(UPPER-PriceScale*40,"UPPER");
PLOT3(LOWER-PriceScale*40,"LOWER");
input : 간격(5),갯수(0),색상(BLACk);
input: bb(25) ;
var : T(0),cnt(0);
var : HH1(0),HI1(0),HI2(0),LL1(0),LI1(0),LI2(0);
var : LD(0),LT(0),LL(0),HD(0),HT(0),HH(0),TX(0);
Array : HTL[100](0),LTL[100](0);
if LOWER-PriceScale*40[간격] > Highest(LOWER-PriceScale*40,간격) and LOWER-PriceScale*40[간격] > Highest(LOWER-PriceScale*40,간격)[간격+1] Then
{
T = 1;
HH1 = LOWER-PriceScale*40[간격];
Hi1 = index[간격];
Hi2 = HI1[1];
HTL[0] = TL_New_Self(sdate[간격],stime[간격],HH1,sdate,stime,HH1);
TL_SetColor(HTL[0],색상);
TL_SetExtRight(HTL[0],true);
TX = Text_New_Self(sdate[간격],stime[간격],HH1,"●");
Text_SetColor(TX,색상);
Text_SetStyle(TX,0,2+1);
TL_SetSize(TX,1);
Text_SetSize(Tx,bb);
for cnt = 1 to 99
{
HTL[cnt] = HTL[cnt-1][1];
}
TL_Delete(HTL[갯수]);
if t == t[1] then
{
LD = 0;
LT = 0;
LL = 0;
for cnt = index-HI1 to index-HI2
{
if LL == 0 or (LL > 0 and LOWER-PriceScale*40[cnt] < LL) Then
{
LL = LOWER-PriceScale*40[cnt];
LD = sdate[cnt];
LT = stime[cnt];
}
}
LTL[0] = TL_New_Self(ld,lt,ll,sdate,stime,ll);
TL_SetColor(LTL[0],색상);
TL_SetExtRight(LTL[0],true);
TX = Text_New_Self(LD,LT,LL,"●");
Text_SetColor(TX,색상);
Text_SetStyle(TX,0,2+1);
Text_SetSize(Tx,bb);
for cnt = 1 to 99
{
LTL[cnt] = LTL[cnt-1][1];
}
TL_Delete(LTL[갯수]);
}
}
if LOWER-PriceScale*40[간격] < Lowest(LOWER-PriceScale*40,간격) and LOWER-PriceScale*40[간격] < Lowest(LOWER-PriceScale*40,간격)[간격+1] Then
{
T = -1;
LL1 = LOWER-PriceScale*40[간격];
LI1 = index[간격];
LI2 = LI1[1];
LTL[0] = TL_New_Self(sdate[간격],stime[간격],LL1,sdate,stime,LL1);
TL_SetColor(LTL[0],색상);
TL_SetExtRight(LTL[0],true);
TX = Text_New(sdate[간격],stime[간격],LL1,"●");
Text_SetColor(TX,색상);
Text_SetStyle(TX,0,2+1);
Text_SetSize(Tx,bb);
for cnt = 1 to 99
{
LTL[cnt] = LTL[cnt-1][1];
}
TL_Delete(LTL[갯수]);
if t == t[1] then
{
HD = 0;
HT = 0;
HH = 0;
for cnt = index-LI1 to index-LI2
{
if HH == 0 or (HH > 0 and LOWER-PriceScale*40[cnt] > HH) Then
{
HH = LOWER-PriceScale*40[cnt];
HD = sdate[cnt];
HT = stime[cnt];
}
}
HTL[0] = TL_New_Self(HD,HT,HH,sdate,stime,HH);
TL_SetColor(HTL[0],색상);
TL_SetExtRight(HTL[0],true);
TX = Text_New_Self(HD,HT,HH,"●");
Text_SetColor(TX,색상);
Text_SetStyle(TX,0,2+1);
Text_SetSize(Tx,bb);
for cnt = 1 to 99
{
HTL[cnt] = HTL[cnt-1][1];
}
TL_Delete(HTL[갯수]);
}
}
<요청2> 아래 수식에서 점찍기 표시좀 부탁 드립니다.
두개 수식을 합처서 점찍기 하려는데 어떻게 해야 하나요?
즉 5이평선이 점으로된선(LRLv5<= LRLv1)을 크로스업 할때 큰점을 찍고 싶습니다.
근데 B수식을 어떻게 처리 해야 A수식이 B수식 점선을 크로스업 할 때 큰점을 찍을수 있나요??
▶ B수식 을 선으로 표현 하는 방법좀 알려 주십시요.
var : TX68(0) ;
/*A수식*/ var1 = ma(c,5) ;
/*B수식*/ if LRLv5 <= LRLv1 Then {TX68 = Text_New(sdate,stime, LRLv2[15] , "●" ); Text_SetStyle(TX68,2,2); Text_SetColor(TX68,RED); Text_SetSize(TX68,20); }
if CrossUp( A수식 , B수식 ) Then {TX68 = Text_New(sdate,stime, LRLv2[15] , "●" ); Text_SetStyle(TX68,2,2); Text_SetColor(TX68,BLACK); Text_SetSize(TX68,40); }
* 매번 고맙습니다. 수고하십시요.
2021-07-11
970
글번호 150656
답변완료
문의 드립니다
안녕하세요, 73225번 글 관련 답변 잘 받았습니다.
결론적으로 만기일 다음날 금요일 아침 9시에 0으로 출발하는 문제는 잘 해결 되었습니다.
하지만 데이터의 수치 자체의 문제는 그대로인데요,
해당 수식에서 데이터는 확인을 위해 딱 하나만(Data6(C)) 사용했습니다.
================================
Var : V1(0,Data1);
Var : sum1(0,Data1);
var : month(0,Data1),nday(0,Data1),week(0,Data1),X(False,Data1);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
Week = DayOfWeek(date);
if (nday >= 8 and nday <= 14 and week == 4) then
{
X = true;
}
Else
{
X = False;
}
V1 = Data6(C);
if X == False and X[1] == true Then
{
sum1 = 0;
}
sum1 = sum1 + v1;
Plot1(sum1,"데이터1누적");
PlotBaseLine1(0,"0",BLACK);
==============================
Data6(C)는 외국인선물순매수수량 지표이구요,
5분봉, 180틱 각각 하나씩 캡쳐를 해보았습니다.
7월 9일 금요일 기준 -2,931 이 당일 값인데 맨 아래가 위 수식의 지표 입니다.
5분봉은 -2,931 -2,946 차이가 비슷하게 나지만 위 수식은 수치가 -20만, -55만 이렇게
수치가 확연히 차이가 나고 그래프 모양 자체가 똑같지 않은 것으로 보아 매시간
가중치로 누적이 되는 것 같습니다.
저 수치 문제만 부탁 드리겠습니다ㅜ
2021-07-09
994
글번호 150655
회원 님에 의해서 삭제되었습니다.
2021-07-12
98
글번호 150654
답변완료
동시 매도 발생시의 경우
여러 번에 나누어 매수를 한 뒤, 동시에 매도가 발생하는 경우 '이전 매도 주문을 먼저 주문합니다.'와 비슷한 알림이 뜨며, 3~4가지의 매도 주문이 정상적으로 되지 않는 경우가 잦습니다.
예스스팟이 아닌 예스랭귀지만 이용해서 이 부분을 해결할 방법은 없나요?
혹은, 시간을 딜레이를 주어 매도주문이 단계적으로 들어가도록 할수는없나요?
지금까지 매수했던 수량들을 카운트하여 일괄 시장가 매매가 돼도 좋습니다.
코인이라 랭귀지 내에서는 잔고 함수가 등록이 안되어 그렇습니다. 예스스팟을 이용하지 못하는것은 쉐어로 받은 차트라서 그렇습니다.
2021-07-10
873
글번호 150653
답변완료
만기일 질문드립니다.
국선 미니 선물 기준인데요.
시스템 오버매매 하고있습니다.
1달마다 만기가 바뀌는데..
보통 연결차트를 쓰니, 이거 롤오버 가능하게하는건 불가능할듯한데,,
1. 만기일 15분에 exit 되게하면 대충 해결될듯한데, 부탁드립니다.
2. 월물 첫째 날부터 매매하게하고 하고 싶습니다. 가능할가요?
3. 월물 둘째 날부터 매매하게하고 싶습니다. 가능할가요?
2021-07-09
763
글번호 150650
타이탄 님에 의해서 삭제되었습니다.
2021-07-09
6
글번호 150642
답변완료
수식 부탁드립니다.
5분봉상에서..
0봉전 77봉전사이에
분봉거래대금이 100억이상 발생 횟수가
10회 이상인 종몯을 검색하고 싶습니다.
2021-07-09
627
글번호 150637
회원 님에 의해서 삭제되었습니다.
2021-07-09
115
글번호 150635
답변완료
문의 드립니다
안녕하세요!
아래 73218번 관련 재문의드립니다
보내주신 수식을 적용해보니 챠트화면상에 전구간의 모든선이 다 표시가 되면서 캔들이 상대적으로 쪼그라드는 경향이 발생되네요
이전 수식에서는 캔들을 기준으로 적당한 범위가 자동으로 설정이됐었습니다
수고스럽겠지만 다시한번만 검토 부탁드립니다
감사합니다!!
2021-07-09
1513
글번호 150633