커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3760
글번호 230811
답변완료
수식부탁드립니다
국내선물 KP선물 매수호가 총건수20선 // KP선물 매도호가 총건수 20선
두선이 교차할때 신호가 나오게 부탁드립니다.
매수선이 매도선을 crossup 하면 매수
매도선이 매수선을 crossup 하면 매도
2019-05-10
163
글번호 128572
답변완료
수정부탁드립니다
아래수식은 항생 10시오픈 기준 전일장 고점위로 123.6 138.2
전일장 저점아래로 123.6 138.2%로 부탁드린 수식입니다
그런데 전일 시고저중심은 나오는데 전일장 123.6,138.2는 표현이 안되고 오늘장으로 표현이
됩니다.
아래수식에 전일장 236,382,618,764,+123.6,+138.2,-123.6,-138.2가 나오게 부탁드립니다.
수고하세요
input : Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8),Per5(76.4),per6(123.6),per7(138.2);
var : cnt(0);
Array : DO[10](0),DH[10](0),DL[10](0),DC[10](0);
if (sdate != sdate[1] and stime >= 100000) or
(sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{
DO[0] = O;
DH[0] = H;
DL[0] = L;
for cnt = 1 to 9{
DO[cnt] = DO[cnt-1][1];
DH[cnt] = DH[cnt-1][1];
DL[cnt] = DL[cnt-1][1];
DC[cnt] = DC[cnt-1][1];
}
}
if H > DH[0] Then
DH[0] = H;
if L < DL[0] Then
DL[0] = L;
DC[0] = C;
plot1(DO[0],"당일시가");
plot2(DH[0],"당일고가");
plot3(DL[0],"당일저가");
plot4((DH[0]+DL[0])/2,"당일중심");
plot5(DH[0]-(DH[0]-DL[0])*(Per1/100),"23.6%");
plot6(DH[0]-(DH[0]-DL[0])*(Per2/100),"38.2%");
plot7(DH[0]-(DH[0]-DL[0])*(Per3/100),"50.0%");
plot8(DH[0]-(DH[0]-DL[0])*(Per4/100),"61.8%");
plot9(DH[0]-(DH[0]-DL[0])*(Per5/100),"76.4%");
plot10(DH[0]-(DH[0]-DL[0])*(Per6/100),"-123.6%");
plot11(DH[0]-(DH[0]-DL[0])*(Per7/100),"-138.2%");
plot12(DL[0]+(DH[0]-DL[0])*(Per6/100),"+123.6%");
plot13(DL[0]+(DH[0]-DL[0])*(Per7/100),"+138.2%");
if DO[1] > 0 then{
plot14(DO[1],"전일시가");
plot15(DH[1],"전일고가");
plot16(DL[1],"전일저가");
plot17((DH[1]+DL[1])/2,"전일중심");
}
2019-05-10
166
글번호 128570
답변완료
부탁합니다
최고거래량 숫자표기
과거 120개거래봉중 최고거래량봉
최고거래량 봉에 숫자표기
최고거래량 봉조건
과거120개봉 평균대비 * ( )배 표기
최고 거래봉 이후는 평균값 계산에서 제외
현재 최고봉까지만 계산해서 숫자로표기
과거자료도 표기가 되는지요
예) 300봉이전 이나 500봉이전에도
2019-05-10
166
글번호 128569
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
원수식
input: ATR기간(3),ATR곱셈(3),n(5),당일진입횟수(2);
var : 매수단위(0),투입금액(0),ATRV(0),count(0),HH(0);
ATRV = atr(ATR기간);
매수단위 = 1;
#진입회수제한
Count = 0 ;
for Value1 = 0 to 10
{
if EntryDate( Value1 ) == sdate then
Count = Count + 1;
}
#당일첫번째 진입(기존조건으로 진입)
if MarketPosition <= 0 and Count == 0 and NextBarSdate == sdate then
buy("b1",AtStop,dayopen + n * PriceScale, 매수단위);
#당일 두번째 진입부터 당일 N번째 진입까지
#직전 매수거래의 최고가 아래에서 가격이 상승해 최고가 이상의 시세 발생시 매수진입
if MarketPosition <= 0 and Count >= 1 and Count < 당일진입횟수
and stime > 100000 and H < HH + n * PriceScale and PositionProfit(1) >= 0 and NextBarSdate == sdate then
buy("b2",AtStop, HH + n * PriceScale, 매수단위);
if MarketPosition == 1 Then
{
//진입이후 최고가
HH = highest(H,BarsSinceEntry);
if NextBarSdate == sdate Then
buy("bb",AtStop,LatestEntryPrice(0)+ATR곱셈*ATRV*2 ,매수단위);
ExitLong("bx2",AtStop,LatestEntryPrice(0)-ATR곱셈*ATRV );
}
1. 시스템
원수식에서
3번째 추가 진입부터는 수량을 '매수단위'의 2배로 하게 부탁드립니다. (이후에는 2배한 걸로 고정)
2. 시스템
원수식에서 n번째 추가진입부터는 진입수량을 '매수단위'의 n2배로 하게 부탁드립니다. (n번째 이후에는 n2배로 고정)
3. 시스템
1번 완성 수식에서 4번째 수식부터는 추가진입수량에서 수량을 1개씩 추가하게 부탁드립니다.
가령 3번째에 수량 2개이면 4번째는 수량 3개, 5번째는 수량 4개.
4. 시스템
2번 완성 수식에서 n번째 다음부터는 진입수량을 1개씩 추가하게 부탁드립니다.
가령 n번째가 수량 2개이면 n번째 다음에는 수량 3개, n번째 다다음에는 수량 4개.
2019-05-10
161
글번호 128566
회원 님에 의해서 삭제되었습니다.
2019-05-10
52
글번호 128564
답변완료
메모리 효율적 활용
※ 프로그램 사용법 Q&A에도 동일한 질의를 드렸습니다.
해당되지 않으면 무시바랍니다.
어제(옵션만기일) 전략차트의 일부가 작동하지 않아서
헤매다가 원격써비스로 도움을 받았고 잘 해결되었습니다.
감사합니다.
원인은
옵션차트를 너무 많이 띠워서
메모리에 부담이 되었던 것으로 파악되었습니다.
어제는 만기일이라 당월물과 차월물을 합하여
80개 넘는 종목을 동시에 띠웠는데
차월물을 지우고 나니 해결되었습니다.
차제에
메모리를 효율적으로 사용하기 위하여 문의드립니다.
주문창, 차트, 시세표 등의 화면을 아래와 같이 배치하였을때
메모리에 어떤 영향을 미치는지 궁금합니다.
1. 가상화면에 배치할 경우
2. 1번 화면(보는화면)에 배치된 것 중 [화면닫기]로 보이지 않을 경우
(화면 우측 상단의 [-]를 눌렀을 경우)
3. 1번 화면에 배치되어 있지만 다른 화면 뒤에 있어서 보이지 않을 경우
4. 전략차트 내의 여러차트(에를들면 1개 차트에 40개 종목 포함) 중
일부 종목을 [화면닫기] 했을 경우
(차트화면 해당 종목 우측 상단의 [-]를 눌렀을 경우)
5. 전략차트내의 여러차트(에를들면 1개 차트에 40개 종목 포함) 중
차트 속성을 사용자정의로 최대와 최소의 범위를 정하여
해당 범위에 해당하는 일부 차트만 보이게했을 경우
보이지 않는 차트
그 외에도 메모리를 절약할 아이디어가 있으면 조언 부탁드립니다.
미리 갑사드립니다.
2019-05-10
160
글번호 128563
답변완료
작은 파동선을 이용한 큰 추세대 만들수 있을까요?
고저라인 지그재그 파동선 수식입니다.
Input:length(10),종가사용여부(0),파동선두께(2),수치표시(1);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부==1,C,H);
LL = IFF(종가사용여부==1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2));
Text_SetStyle(Text1, 2, 1);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,RED);
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,NumToStr(고[1,1],2));
}
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2));
Text_SetStyle(Text1, 2, 0);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,BLUE);
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,NumToStr(저[1,1],2));
}
}
최종꼭지점 = "저점";
}
p.s: 사진의 얇은 색상구분된 선은 위의 수식을 적용한 파동선입니다. 두꺼운 빨강과 파랑선은 제가 임의로 파동선 꼭지를 보고 그은 추세선입니다. 이 파동선의 고점꼭지와 저점꼭지를 이용한 큰 추세대 즉 상승추세선 하락추세선을 색상 구분해서 만들고 싶은데 작은 파동을 이용해서 사진 이미지의 두꺼운 큰 추세대를 만들고 싶은데요.
보통 제가 지수 30일선으로 추세대를 긋는데 지금 이 파동선 수식의 꼭지점들이 그어보니 지수 30일선의 상승하락과 잘 맞는것 같습니다. 이 수식은 작은 파동선이라 이 파동선을 이용한 추세선을 만들수 있다면 수식 좀 만들어주십시요. 오른쪽연장도 같이 되게끔 해주시면 더 좋을거 같습니다.
2019-05-10
377
글번호 128562
답변완료
종목검색식부탁드립니다
안녕하세요. 오랜만에 해볼랬더니 잘 안되서요.
주요변수의 자세한 값은 제가 보정할테니 전체적인 종목검색식 틀좀 부탁드려요,
변수1은, 5일간 종가로 최대값
변수2는, 종가 > 시가를 만족하면 변수 1이고,
종가가 시가보다 작거나 같으면 0임.
변수3은, 5일간 지수이동평균값,, 일때
변수 3의 0봉전 값이 변수 3의 1봉전 값보다 같거나 크고,
변수 3이 목표값(기본값은 1)보다 같거나 크고,
종가가 주기(기본값은 30)의 가장 큰 값보다는 작음...을 만족하는 종목검색식 부탁드립니다.
2019-05-09
146
글번호 128561
스리핏업 님에 의해서 삭제되었습니다.
2019-05-09
11
글번호 128560