커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1339
글번호 230811
답변완료
문의
아래수식은
data2를 일봉을 사용한 수식입니다.
data2를 data1과 같이 5분봉을 사용하는 수식을 요청 드립니다.
data1 국내 선물 5분봉
data2 외인주식순매수금액 5분봉
내용 : data2 금일시가가 data2 전일 종가보다 1000이 크면 매수
if data2(금일시가) > data2(전일종가) + 1000 then
buy();
위 수식 부탁드립니다.
항상 고맙습니다.
******************************************************************************
data1 국내 선물 5분봉
data2 외인주식순매수금액 일봉
내용 : data2 금일시가가 data2 전일 종가보다 1000이 크면 매수
if data2(openD(0)) > data2(Closed(0)) + 1000 Then
Buy();
2025-02-04
431
글번호 187749
답변완료
종목 검색부탁드립니다.
1. 아래는 화살표 수식입니다. 종목 검색식 부탁드려요
S=sum(1);
M5=ma(C,5);
M20=ma(C,20);
상전=M5>M5(1) && M5(1)<M5(2);
하전=M5<M5(1) && M5(1)>M5(2);
상전S1=ValueWhen(1,상전,S);
상전S1_5=ValueWhen(1,상전,M5);
상전S1_20=ValueWhen(1,상전,M20);
하전S1=ValueWhen(1,하전,S);
하전S1_5=ValueWhen(1,하전,M5);
하전S1_20=ValueWhen(1,하전,M20);
상전S2=ValueWhen(2,상전,S);
상전S2_5=ValueWhen(2,상전,M5);
상전S2_20=ValueWhen(2,상전,M20);
순번조건 = 상전S1 > 하전S1 && 하전S1>상전S2;
전체조건 = 순번조건 &&
상전S2_5 < 상전S2_20 &&
하전S1_5 > 하전S1_20 &&
상전S1_5 > 상전S1_20 &&
하전S1_5 > 상전S1_5;
조건=전체조건 && !전체조건(1);
이격520=M5/M20*100-100;
CrossUp(C,M5) && sum(조건,3)>0 &&//조건 or 조건(1) or 조건(2)
이격520 < 이격기준율
----------------------------------
변수
이격기준율 2.5
2. DMI보조지표에서 (변수 14)
D 플러스가 D 마이너스를 돌파할때 종목 검색식 부탁드려요
(단, 0봉전~20봉전 모든종목)
2025-02-04
476
글번호 187748
답변완료
수식 부탁드립니다.
INPUT : 비차익비중(10), 외인선물비중(20), 외인코스피비중(15);
INPUT : 개인옵션비중(15), 호가잔량비중(40), 미결가중치부여1(1);
INPUT : 원웨이점수(50);
var : 비차익_배점계수(0), 외인선물_배점계수(0), 외인코피_배점계수(0);
var : 개인옵션_배점계수(0), 호가잔량_배점계수(0);
var : 비차익(0), 외인선물(0), 외인코피(0), 개인옵션(0), 호가잔량(0);
var : 미결증감(0), 미결가중치(0);
비차익 = data2(C);
외인선물 = data3(C);
외인코피 = data4(C);
개인옵션 = data5(C);
호가잔량 = (bids-asks);
미결증감 = dayoi-dayOi(1);
비차익_배점계수 = 150000 / 비차익비중; // 억단위로 환산
외인선물_배점계수 = 4000 / 외인선물비중;
외인코피_배점계수 = 2500 / 외인코스피비중;
개인옵션_배점계수 = 40 / 개인옵션비중;
호가잔량_배점계수 = 8000 / 호가잔량비중;
//--미결은 전체 비중에 포함하지 않고 가중치만 부여
If 미결증감 > 0 and 미결가중치부여1 == 1 then
미결가중치 = 1 + ((미결증감 / 400) / 100); // 8000개일 경우 20%
else 미결가중치 = 1;
//*******************************
//--------점수 계산
var : 비차익점수(0), 외인선물점수(0), 외인코피점수(0);
var : 개인옵션점수(0), 호가잔량점수(0), 점수(0);
비차익점수 = 비차익 / 비차익_배점계수;
외인선물점수 = 외인선물 / 외인선물_배점계수;
외인코피점수 = 외인코피 / 외인코피_배점계수;
개인옵션점수 = - 개인옵션 / 개인옵션_배점계수;
호가잔량점수 = 호가잔량 / 호가잔량_배점계수;
//*******************점수의 상하한 제한*******************
//장의 방향을 판단하거나 원웨이 여부를 판단할때
//5개 항목이 골고루 동일 방향일때
//신뢰도가 높다고 할수 있는데
//특정 항목이 예외저으로 과다하게 금등락할 경우
//그 항목 때문에 지표가 왜곡될 수 있다.
//그래서 각항목 점수의 상하한을 제한하는 것이지만
//필요할 경우 여기의 전부 또는 일부항목을 지우거나
//주석처리 할수 있다
//예를들면 호가잔량 만을 중시한다면
//호가잔량만 남기고 나머지 항목은 삭제 또는 주석처리
//input 문으로 전체를 선택 또는 전체를 제외할 수도 있다.
input : 점수상하한제한이면1(0);
if 점수상하한제한이면1 == 1 then {
if 비차익점수 > 비차익비중 then 비차익점수 = 비차익비중;
if 비차익점수 < - 비차익비중 then 비차익점수 = - 비차익비중;
if 외인선물점수 > 외인선물비중 then 외인선물점수 = 외인선물비중;
if 외인선물점수 < - 외인선물비중 then 외인선물점수 = - 외인선물비중;
if 외인코피점수 > 외인코스피비중 then 외인코피점수 = 외인코스피비중;
if 외인코피점수 < - 외인코스피비중 then 외인코피점수 = - 외인코스피비중;
if 개인옵션점수 > 개인옵션비중 then 개인옵션점수 = 개인옵션비중;
if 개인옵션점수 < - 개인옵션비중 then 개인옵션점수 = - 개인옵션비중;
if 호가잔량점수 > 호가잔량비중 then 호가잔량점수 = 호가잔량비중;
if 호가잔량점수 < - 호가잔량비중 then 호가잔량점수 = - 호가잔량비중;
}
//*************************************************
점수 = (비차익점수 + 외인선물점수 + 외인코피점수 +
개인옵션점수 + 호가잔량점수) * 미결가중치;
//**************점수 막대색*************************
var : 점수색(0), 주황색(0), 연주황(0), 연하늘(0), 진하늘(0);
주황색 = RGB(255, 189, 189);
연주황 = RGB(255, 189, 189);
연하늘 = RGB(189, 202, 255);
진하늘 = RGB(189, 202, 255);
//주황색 = RGB(255, 120, 0);
//연주황 = RGB(255, 194, 134);
//연하늘 = RGB(0, 255, 255);
//진하늘 = RGB(0, 176, 176);
if 점수 > 0 AND 점수 [1] < 점수[0] Then 점수색 = 주황색;
if 점수 > 0 AND 점수 [1] > 점수[0] Then 점수색 = 연주황;
if 점수 < 0 AND 점수 [1] < 점수[0] Then 점수색 = 연하늘;
if 점수 < 0 AND 점수 [1] > 점수[0] Then 점수색 = 진하늘;
//**************************************************
//***************이평선****************************
//이평선도 색이나 굵기를 지정할 수 있음
//강도가 변형으로 점차 굵어지거나
//색이 점점 진하게 할수 있지만
//이평선은 지표의 속성에서 수정하는 것을 권장함
//지표내에서 색과 굵기를 지정하게 되면
//지표의 속성에서는 수정이 아니됨
input : 소이평봉수(5), 중이평봉수(20),대이평봉수(60);
var : 소이평값(0), 중이평값(0), 대이평값(0);
var : 소이평(0), 중이평(0), 대이평(0);
if dayindex+1 < 소이평봉수 then 소이평값 = dayindex+1;
if dayindex+1 < 중이평봉수 then 중이평값 = dayindex+1;
if dayindex+1 < 대이평봉수 then 대이평값 = dayindex+1;
대이평 = ma(점수, 대이평값);
중이평 = ma(점수, 중이평값);
소이평 = ma(점수, 소이평값);
//*************************************************
var : c1(0),c2(0),c3(0);
if 소이평 > 소이평[1] Then
c1 = 주황색;
if 소이평 < 소이평[1] Then
c1 = 진하늘;
if 중이평 > 중이평[1] Then
c2 = 주황색;
if 중이평 < 중이평[1] Then
c2 = 진하늘;
if 대이평 > 대이평[1] Then
c3 = 주황색;
if 대이평 < 대이평[1] Then
c3 = 진하늘;
input : 당일분만출력이면1(1), 횡보장표시폭(70);
//===========가두리(횡보)장 라인
Plot11(0, "가두리", RGB(255,255,172), def, 횡보장표시폭); //노란색 일자 그래프
//if 당일분만출력이면1 == 1 then {
// if CurrentDate == sdate then {
// Plot12(점수, "점수막대", c1);
// if 점수 >= 원웨이점수 then Plot21( 원웨이점수, "상방원웨이선");
// if 점수 <= -원웨이점수 then Plot22(-원웨이점수, "하방원웨이선");
// plot41(소이평, "소이평");
// plot42(중이평, "중이평");
// plot43(대이평, "대이평");
// }
//}
//else {
Plot12(점수, "점수막대", c1);
if 점수 >= 원웨이점수 then Plot21( 원웨이점수, "상방원웨이선");
if 점수 <= -원웨이점수 then Plot22(-원웨이점수, "하방원웨이선");
plot41(소이평, "소이평",c1);
plot42(중이평, "중이평",c2);
plot43(대이평, "대이평",c3);
// }
Plot51(0,"0선");
/*
//--- 아래는 검증용
Plot81(비차익점수, "비차익점수");
Plot82(외인선물점수, "외인선물점수");
Plot83(외인코피점수, "외인코피점수");
Plot84(개인옵션점수, "개인옵션점수");
Plot85(호가잔량점수, "호가잔량점수");
Plot86(미결가중치, "미결가중치");
Plot87(점수, "점수");
/*
//★원웨이 예고 신호
var : 비차익(0), 외인선물(0), 외인코피(0), 개인옵션(0), 호가잔량(0);
비차익 = data2(C);
외인선물 = data3(C);
외인코피 = data4(C);
개인옵션 = data5(C);
호가잔량 = (bids-asks);
//--------점수 계산
var : 비차익점수(0), 외인선물점수(0), 외인코피점수(0);
var : 개인옵션점수(0), 호가잔량점수(0), 점수(0);
비차익점수 = 비차익 / 15000; // 백만원 단위를 억으로 환산
외인선물점수 = 외인선물 / 133;
외인코피점수 = 외인코피 / 166;
개인옵션점수 = - 개인옵션 / 2.7;
호가잔량점수 = 호가잔량 / 266;
점수 = 비차익점수 + 외인선물점수 + 외인코피점수 +
개인옵션점수 + 호가잔량점수;
//---지표의 출력
Plot1(점수, "점수막대");
if 점수 >= 45 then Plot21( 45, "점수상단");
if 점수 <= -45 then Plot22(-45, "점수하단");
위 수식을 5분봉에 적용하는데 90틱에서 적용했을때도 5분봉과 같은 챠트가 나오게 수정 부탁 드립니다.
2025-02-04
533
글번호 187747
답변완료
검색식 부탁 드립니다
분봉에서 1분봉 상승률이 5%이상인 종목이 검색되지 않도록 하는 종목 검색식 부탁드립니다
2025-02-04
491
글번호 187745
답변완료
수식 부탁드립니다
1. 과거 20일 고점 돌파후 매수진입
1-1. 1번 매수 진입시 손절을 100포인트 적용
2. 1번 매수후 수익이 200포인트 일때 1계약 매수 추가 진입
2-1. 추가 매수 진입하지만 1번 진입시 적용한 스탑로스 유지(그시점에 잡았던)
3. 1번 매수후 300포인트 일때 1계약 또 추가 매수 진입
3-1. 마찬가지로 1번의 진입시 잡았던 스탑로스 유지(그 시점에 잡았던)
4. 익절은 500포인트
부탁드립니다.
2025-02-04
427
글번호 187737
답변완료
문의 드립니다!
안녕하세요!
아래 수식에서 알람신호 4개를 제가 "상방" "하방"으로 각각 지정해봤는데요
이것이 바르게 나올때도 있고 틀리게 나올때도 있네요
이 상방 하방을 잘못 지정한것같은데 모두 바르게 발생되도록 수정좀 부탁드립니다
감사합니다!!!
------------------------------------------------------------------------
input : 굵기1(3),굵기2(3),굵기3(3),굵기4(3),A(500);
var : cond11(false,data1),cond21(false,data1);
var : cond12(false,data1),cond22(false,data1);
var : TL1(0,Data1),TL2(0,Data1),TL3(0,Data1),TL4(0,Data1);
var : TX1(0,Data1),TX2(0,Data1),TX3(0,Data1),TX4(0,Data1);
plot1(data1(highD(0)),"data1고가");
plot2(data1(LowD(0)),"data1저가");
plot3(data2(highD(0)),"data2고가");
plot4(data2(LowD(0)),"data2저가");
cond11 = data2(highD(0)) >= data1(highD(0)-PriceScale*99);
cond21 = data1(lowD(0)) <= data2(lowD(0)+PriceScale*99);
if sTime >= 90300 and Cond11 == true and cond11[1] == false Then
{
TL1 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL1,blue);
TL_SetSize(TL1,굵기1);
PlaySound("C:₩예스트레이더(x64)₩data₩Sound₩하방.wav");
Tx1 = Text_New(sDate,sTime,H+PriceScale*A,"1, 2");
}
if sTime >= 90300 and Cond21 == true and cond21[1] == false Then
{
TL2 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL2,blue);
TL_SetSize(TL2,굵기2);
PlaySound("C:₩예스트레이더(x64)₩data₩Sound₩하방.wav");
Tx2 = Text_New(sDate,sTime,H+PriceScale*A,"1, 2");
}
cond12 = data2(LowD(0)) <= data1(lowD(0)+PriceScale*99);
cond22 = data1(highD(0)) >= data2(highD(0)-PriceScale*99);
if sTime >= 90300 and Cond12 == true and cond12[1] == false Then
{
TL3 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL3,blue);
TL_SetSize(TL3,굵기3);
PlaySound("C:₩예스트레이더(x64)₩data₩Sound₩상방.wav");
Tx3 = Text_New(sDate,sTime,H+PriceScale*A,"1, 2");
}
if sTime >= 90300 and Cond22 == true and cond22[1] == false Then
{
TL4 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL4,blue);
TL_SetSize(TL4,굵기4);
PlaySound("C:₩예스트레이더(x64)₩data₩Sound₩상방.wav");
Tx4 = Text_New(sDate,sTime,H+PriceScale*A,"1, 2");
}
2025-02-04
501
글번호 187732
답변완료
함수요청
안녕하세요?
아래 전략에 대해 스크립트 작성 부탁드립니다.
나스닥 선물 1분봉으로 포지션거래를 하고자 합니다.
일봉상 월요일(월요일이 휴장이면 화요일) 시가가 하락출발하면 가장 빠른 시간에 매도 진입
화요일(월요일이 휴장이면 수요일) 종가에 매도청산
일봉상 월요일(월요일이 휴장이면 화요일) 시가가 상승출발하면 가장 빠른 시간에 매수 진입
화요일(월요일이 휴장이면 수요일) 종가에 매수청산
참조함수가 아니라 1분봉 차트로만 거래를 하고 싶습니다.
감사합니다.
2025-02-04
462
글번호 187731
답변완료
함수요청
안녕하세요?
나스닥 선물 일봉으로 포지션 거래를 하고자 합니다.
아래 전략에 대해 스크립트 작성 부탁드립니다.
감사합니다.
Band Width가 0.5 이상이고
볼린저밴드 상한선과 하한선이 모두 상승중이면 익봉 시가에 매수 진입
[볼린저밴드 상한선과 하한선이 모두 상승중이고 Band Width가 0.5 이상이면 익봉 시가에 매수 진입. 아래 조건도 같은 논리로써 Band Width와 볼린저밴드 상하한선 달성 순서는 무관]
Band Width가 0.5 이상이고
볼린저밴드 상한선과 하한선이 모두 하락중이면 익봉 시가에 매도 진입
Band Width가 0.5 이하고
볼린저밴드 상한선과 하한선 둘 중 하나의 기울기가 변화하면 익봉 시가에 청산
(Band Width가 0.5 이하고 매수 진입후 상한선 혹은 하한선이 하락하면 익봉시가에 매수 청산.
Band Width가 0.5 이하고 매도 진입후 상한선 혹은 하한선이 상승하면 익봉시가에 매도 청산)
2025-02-04
491
글번호 187730
답변완료
종목검색식 요청드립니다.
아래 키움신호가 발생한 종목을 검색하는 검색식(3분봉)을 만들고 싶습니다. 도움 부탁드립니다.
키움신호 (기간 600, 배수 5)
거래량>avg(거래량, 기간)*배수 &&
거래량>거래량(1)*배수
감사합니다.^^
2025-02-04
520
글번호 187729