커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5553
글번호 230811
답변완료
문의드립니다
변동성돌파매도전략
항상 친절하고 빠른답변 고맙습니다
아래와같은 조건의 일봉기준 변동성돌파전략매도식이 제대로 작성되었는지 검증해 주시면 고맙겠습니다
1.매도진입 ᆢ당일 장중 가격이 기준가격을 하향돌파할 경우 '매도'
기준가격 < 시가 - (range × k)
range = 전일 고가 - 전일 저가
k = 최근 20일간의 노이즈 비율의 평균 값
노이즈 비율 = 1-abs(시가-종가)/(고가-저가)
2.매도청산 ᆢ익일 시가 기준 '매수'
input : n(20);
var : R(0),cnt(0),sum(0),k(0);
R = DayHigh(1)-daylow(1);
sum = 0;
for cnt = 1 to n
{
    sum = sum + (1-abs(dayopen(cnt)-DayClose(cnt))/(DayHigh(cnt)-daylow(cnt)));
}
k = sum/n;
if MarketPosition >= 0 and NextBarSdate == sdate Then // MarketPosition 부분확인 요청드립니다
      Sell("S",AtStop,dayopen(0)-(R*k));
if MarketPosition == -1 and NextBarSdate != sdate Then
      ExitShort("Sx",AtMarket);
수고하세요
2019-04-26
220
글번호 128169
답변완료
수식부탁합니다.
바쁘신데 미안합니다.
수식 부탁합니다.
1.해선용 매매시간 18-02시
2.볼린져 상하단선 종가상 이탈봉이 나온후
다시 상하단선 안으로 들어와서 5이평선
종가상 돌파(양봉) 매수(매도)
3.종가상 이탈봉중 하나 포함해서 5이평선
돌파까지 5봉이내(변수) 즉시매수(매도)
4.지표식 하나 부탁합니다.
볼밴돌파봉중 최고 최저가를 나타내는 가격선
볼밴최저가 나온후 20봉정도내 표시 (변수)
하루 최고최저가가 아닙니다.
2019-04-29
257
글번호 128168
답변완료
거래량 동반 양봉 검색 다시 질문 드립니다.
거래량 동반 양봉 검색에 대하여 아래와 같이 친절하 답변 감사합니다.
몇가지 추가 조건을 설정하고 싶습니다.
1. 아래 조건을 만족하면서, 주가가 60일 이평선 대비 -50~8% 내에 있는 종목을 검색하고 싶습니다.
2. 또한 과거 시점에서도 검색했으면 하는데요, 오늘 대비 20일전을 기준으로 검색하려면 어떻게 하면 좋ㅇ르지요..
3. 마지막으로 수식장성 Q&A 등 게시판에 있어서 본인의 질문 보기 아이콘이 있었으면 합니다.
감사합니다.
-아래-
var1 = ma(v,20);
Condition1 = C >= O*1.04 and V >= var1*2;
if countif(Condition1,40) >= 3 Then
find(1);
2019-04-26
237
글번호 128167
답변완료
질문드립니다.
1. 일봉캔들상 어제음봉이면 진입. 당일 종가청산
일봉캔들상 어제양봉이면 진입. 당일 종가청산
2. 3연속 음봉이거나 양봉이면 진입
매도포지션이고 진입이후 3캔들이 3연속음봉이면 청산이후 재진입
매수포지션이고 진입이후 3캔들이 3연속 양봉이면 청산이후 재진입
아니면 진입X
감사합니다.
2019-04-26
247
글번호 128166
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 지표
외부변수
n시;
틱차트에서
장시작하고 n시까지의 길이가 얼마나 되는지 지표로 만들고 싶습니다.
감사합니다.
2.
1이 안되면 하루의 시간폭이라도 구할 수 있는가요?
3. 1은 전일도 되나요?
2019-04-26
238
글번호 128164
답변완료
이평선지표2
안녕하세요 관리자님
보내주신 수식잘받았습니다.
아래서식을 오늘의 시가를 기준으로 대칭되게 나오도록 수정부탁드립니다.
볼린져밴드처럼 사용가능한지를 파악하려 합니다.
-아 래-
input : P1(5),P2(30);
var : count(0);
var : sumV1(0),sumV2(0),mav1(0),mav2(0);
sumV1 = 0;
sumV2 = 0;
for count = 0 to P2
{
if count < P1 Then
sumV1 = sumV1+DayClose(count);
if count < P2 Then
sumV2 = sumV2+DayClose(count);
}
maV1 = sumV1 / P1;
maV2 = sumV2 / P2;
plot1(mav1);
plot2(mav2);
2019-04-26
247
글번호 128163
답변완료
문의드립니다.
1. 현재가와 삼각가중평균1200선의 중간선을 나타내고자 합니다.
2. 가중이평10선과 삼각가중평균1200선의 중간선을 나타내고자 합니다.
2. 수식을 다음과 같이 작성했습니다.
var : mav(0),Revmav(0);
mav = WMA(c,400);
if bdate != bdate[1] Then
var1 = mav;
Revmav = var1-(mav-var1);
plot1(mav);
plot2(Revmav);
plot3(var1);
위 수식에서 가중이평을 삼각가중평균으로 바꾸려면 어떻게 해야 하는지요?
기간값은 수정가능하게 부탁드립니다.
부탁드립니다. 그리고 항상 감사드립니다. 수고하세요!!!
2019-04-26
240
글번호 128162
답변완료
문의
3분봉에 200 이평을 364틱에서는 어떻게 표현하나요
2019-04-26
252
글번호 128160
답변완료
문의
인터넷에서 퍼온 지료식입니다
swingzigzag 를 정의 하지 않고 했는데 (사용자 함수식이라는데 ????)
이것을 지표식 , 시스템식으로 만들려면 어떻게 하나요 ?
( 설명은 이렇게 하네요
Value1 = SwingZigZag(봉개수, 종가사용여부, 고, 저, 신규구분);
Value1에는 -1, 0, 1의 3가지 값이 반환되는데 마지막 전환점이 고점이면 1, 저점이면 -1입니다. 0은 초기값입니다.
SwingZigZag()에 사용되는 인자는 5개인데 그중 봉개수와 종가사용여부가 입력값이고 고, 저, 신규구분이 반환받는 결과 값입니다.
종가차트에서 사용하고 싶으면 종가사용여부를 1로 주면 됩니다.
고와 저 변수는 2차원 배열로 선언되어 있는데 각각의 고점과 저점에 대해 가격, index, 날짜, 시각 4가지 정보를 담고 있습니다.
고점과 저점의 번호는 최근 발생한 것부터 번호를 매기는데 오른쪽의 끝점부터 왼쪽으로 번호가 증가됩니다.
그래서 가장 최근에 발생한 고점의 가격은 고[1,1]이란 배열변수에 값이 들어 있고 그 고점의 Index는 고[1,2]에 들어 있습니다.
Index는 봉의 번호와 같습니다. Index를 알면 고점에서 현재 봉까지의 거리를 알 수 있습니다.
고점에서 현재봉까지의 거리는 Index - 고[1,2]로 표현됩니다.
그리고, 고점1과 고점2의 거리는 고[1,2] - 고[2,2]가 됩니다. 가장 최근에 발생한 고점1의 봉번호가 고점2의 봉번호보다 큽니다.
고점1의 날짜는 고[1,3]에 시각은 고[1,4]에 들어갑니다.
사실 Index만 알아도 고점1의 날짜와 시각을 알 수 있으며 다음과 같은 관계가 성립됩니다.
고[1,3] == sDate[Index - 고[1,2]]
고[1,4] == sTime[Index - 고[1,2]]
지표식이나 시스템식에서 sDate[Index - 고[1,2]]이라고 쓰는 것보다 고[1,3]이라고 쓰는 것이 더 편하죠.
마지막으로 신규구분은 추세선을 새로 추가할 것인지 기존 추세선을 연장할 것인지를 알려줍니다.
신규는 1, 연장은 2를 반환합니다.
하락하던 가격이 하락을 멈추고 상승하면 저점1에서 새로운 고점1까지 잇는 추세선을 새로 그려 줍니다. (신규)
가격이 계속 상승하면 고점1의 값만 바뀌기 때문에 추세선의 시작점은 변동이 없습니다. (연장)
Input:봉개수(5),종가사용여부(0);
Var:TL1(0),신규구분(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
Value1 = SwingZigZag(봉개수, 종가사용여부, 고, 저, 신규구분);
If Value1 == 1 Then { // 고점
If 신규구분 == 1 Then // 신규
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
Else If 신규구분 == 2 Then // 연장
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
} Else If Value1 == -1 Then { // 저점
If 신규구분 == 1 Then // 신규
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
Else If 신규구분 == 2 Then // 연장
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
TL_SetSize(TL1,2);
2019-04-26
263
글번호 128151