커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3588
글번호 230811
답변완료
수식 문의
수식 문의 드립니다.
첨부한 예전 수식을 수정하는 내용입니다.
감사드립니다.
2020-11-23
560
글번호 144123
답변완료
수식의뢰
1. 분봉에서 최근 n일동안의 최고가 라인
2. 분봉에서 전일 종가라인
3. 분봉에서 당일 시가라인
4. 분봉에서 당일 고가라인
볼 수 있도록 부탁합니다.
2020-11-23
659
글번호 144122
답변완료
문의드립니다
Input:length(5);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Tl4(0),TL5(0),Text1(0),처리구분(""),
TL_Val1(0),TL_Val2(0);
Var:TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0),TL19(0),TL20(0);
Var:TL21(0),TL22(0),TL23(0),TL24(0),TL25(0),TL26(0),TL27(0),TL28(0),TL29(0),TL30(0),mav(0),T(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;
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
Text_Delete(Text1);
If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1]and 저점[2,1][1] < 저점[1,1][1] Then
{
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
}
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL2 = TL_New(sDate[eBar+1],sTime[eBar+1],고점[1,1]+ PriceScale*20,sDate[eBar],sTime[eBar],고점[1,1]+PriceScale*20);
TL3 = TL_New(sDate[eBar+1],sTime[eBar+1],고점[1,1]+ PriceScale*40,sDate[eBar],sTime[eBar],고점[1,1]+PriceScale*40);
TL4 = TL_New(sDate[eBar+1],sTime[eBar+1],고점[1,1]+ PriceScale*60,sDate[eBar],sTime[eBar],고점[1,1]+PriceScale*60);
TL5 = TL_New(sDate[eBar+1],sTime[eBar+1],고점[1,1]+ PriceScale*80,sDate[eBar],sTime[eBar],고점[1,1]+PriceScale*80);
TL_SetExtRight(Tl2,true);
TL_SetColor(Tl2,YELLOW);
TL_SetSize(TL2,1);
TL_SetExtRight(Tl3,true);
TL_SetColor(Tl3,YELLOW);
TL_SetSize(TL3,2);
TL_SetExtRight(Tl4,true);
TL_SetColor(Tl4,YELLOW);
TL_SetSize(TL4,2);
TL_SetExtRight(Tl5,true);
TL_SetColor(Tl5,YELLOW);
TL_SetSize(TL5,2);
TL_SetColor(TL1,BLACK);
TL_SetSize(TL1,0);
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;
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
Text_Delete(Text1);
If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then
{
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
}
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL2 = TL_New(sDate[eBar+1],sTime[eBar+1],저점[1,1]+ PriceScale*20,sDate[eBar],sTime[eBar],저점[1,1]+PriceScale*20);
TL3 = TL_New(sDate[eBar+1],sTime[eBar+1], 저점[1,1]- PriceScale*40,sDate[eBar],sTime[eBar],저점[1,1]-PriceScale*40);
TL4 = TL_New(sDate[eBar+1],sTime[eBar+1], 저점[1,1]- PriceScale*60,sDate[eBar],sTime[eBar],저점[1,1]-PriceScale*60);
TL5 = TL_New(sDate[eBar+1],sTime[eBar+1], 저점[1,1]- PriceScale*80,sDate[eBar],sTime[eBar],저점[1,1]-PriceScale*80);
TL_SetExtRight(Tl2,true);
TL_SetColor(Tl2,BLACK);
TL_SetSize(TL2,1);
TL_SetExtRight(Tl3,true);
TL_SetColor(Tl3,GREEN);
TL_SetSize(TL3,2);
TL_SetExtRight(Tl4,true);
TL_SetColor(Tl4,GREEN);
TL_SetSize(TL4,2);
TL_SetExtRight(Tl5,true);
TL_SetColor(Tl4,GREEN);
TL_SetSize(TL4,2);
TL_SetColor(TL1,BLACK);
TL_SetSize(TL1,0);
If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then
{
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
}
}
}
mav = ma(C,20);
현재 고점과 저점을 지그재그선 이찍엇을때 20틱마다 수정한상태입니다 이상태에서 고점과저점이 20틱미만까지는 현재수평선이 변하지않게 하고십습니다 지금은 고점이나 저점에서 1`2틱만
움직여도 20틱수평선이 움직인만큼 변하게되어있습니다 다시말씀드리자면 현재의 수평선 20틱까지 상승이나 하락시변하지않게 20틱이상상승이나 하락시 그때수평선이 변하게 ~~`다시한번수정부탁드립니다~~20틱마다수평선에 수치가 나오게 텍스트출력을 원합니다~~항상감사드립니다
2020-11-23
586
글번호 144121
답변완료
검색식 부탁드립니다
사용지표: DMI(14)
검색식 : DMI지표에서 +DI가 40 라인 돌파시 검색식을 부탁드립니다
2020-11-23
594
글번호 144119
답변완료
부탁드립니다
현재가격에서 60 이동평균선과의
틱차이를 알수 있는 지표 부탁드립니다
2020-11-23
680
글번호 144112
답변완료
확인좀 부탁드립니다
답변주신 수식을 사용하였는데 지표값이 맞지 안는듯 합니다 확인좀 부탁드립니다
Plot1(DayHigh(1),"전일고가");
Plot2(DayLow(1),"전일저가");
Plot3(DayClose(1),"전일종가");
Plot4(DayOpen(0),"당일시가");
Plot5((DayHigh(0)+DayLow(0))/2,"당일중심");
Plot6(DayHigh(0),"당일고가");
Plot7(DayLow(0),"당일저가");
2020-11-23
659
글번호 144105
답변완료
안녕하세요?
안녕하세요?
지난번 69936번 수식작성 수정중 수식 문의 드립니다.
지난번에는 value2,3의 첫번째 파동의 가격을 변수에 저장 했는데요.[그림의 노란색 원]
이부분을 value2,3의 최저가,최고가로 수식 수정 부탁드립니다. [그림의 흰색 원]
시간이 오래걸리면 방향제시라도 부탁드립니다.
if a1 == 0 and S == 1 and S != S[1] and 저[1,2] > a2 and 저[1,1] < value2[Index-저[1,2]] and 저[1,1] > value4[Index-저[1,2]] Then
a1 = 저[1,1];
if b1 == 0 and S == -1 and S != S[1] and 고[1,2] > b2 and 고[1,1] > value3[Index-고[1,2]] and 고[1,1] < value1[Index-고[1,2]] Then
b1 = 고[1,1];
if a3 > 0 then
Plot1(a3);
if b3 > 0 then
Plot2(b3);
2020-11-23
819
글번호 144103
답변완료
진입횟수제한 수식한번 봐주세용
count = 0;
For value1 = 0 to 10
{
if EntryDate( value1 ) == sdate then
Count = Count + 1;
}
현재 이 식으로 진입횟수를 제한하려고 해보았는데요 제가 원하는 방식이 아닌것같아요
진입식을 A 라고 하고 A 로 인한 매수신호가 하루에 총 15회 발생했다고 하면 10개까지만
진입하고 이후 5개는 무시하는것을 만들고싶었는데요
위에 식은 (진입 and 모든포지션청산) 이 되는 시점을 count 하는것같아요 저는 청산은 신경안쓰고 오로지 진입식을 하루 총 10회 하도록 하고싶어요
2020-11-22
661
글번호 144102
답변완료
자동정정 분할주문의 YL화
YL 시스템 식만 사용하다가,
'[2106]자동정정 분할주문' 이라는 주문으로 청산을 했는데, 이 기능이 마음에 들어서
사용해보려고 합니다.
Q1.'자동정정 분할주문' 의 기능중
<청산조건 만족시,100주를 1분간격으로 10주씩 분할청산> 기능과 같은
수식을 작성하고자 합니다. 저는 시스템식을 주로 30분봉을 사용합니다. 아래와 같은 수식을 활용시, 30분간격으로만 청산이 진행될 것 같네요..
(아니면, 혹시 시스템식과 "자동정정 분할주문"과 연계해서 청산 방법은 없을지요?)
if TimeToMinutes(stime) >= TimeToMinutes(ExitTime(1))+1 Then
exitlong()
Q2. 차트에서 매매 tab에 [2105]예스자동정정 원샷주문과 연계해서 주문이 가능한데,
어떨땐 이설정이 보이다가 안보이가 하는 것 같네요.
자동주문과, 경보후 주문에서만 보이고, 시험적용시에는 사라지는 것 같은데, 맞나요?
2020-11-22
665
글번호 144101