커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7294
글번호 230811
답변완료
문의드립니다
안녕하세요
예스글로벌 해선 분봉에서
거래시간을 당일 0800 에서 익일 0800 까지의 24시간으로 지정하여
이시간동안 형성된 가격에 대하여
시가,고가,저가,종가를 나타내는 지표식과
피봇지표식을 부탁드립니다.
2017-10-17
163
글번호 113403
답변완료
시스템 수식 점검 부탁드립니다.
말씀하신대로 피라미딩 적용해 보았으나 되질 않네요 ㅠ.ㅠ
첨부드리는 사진상의 검은색 화살표 구간에서 추가 매수가 이루어 지길 희망하는대요.
잘 되지 않네요.
죄송하지만 한번만 더 점검해 주시면 감사하겠습니다.
안녕하세요
예스스탁입니다.
추가진입을 하시려면 사용자분이
식을 적용하실때 피라미딩을 설정하셔야 합니다.
시스템 트레이딩 설정창의 피라미딩탭에서 모든진입신호허용으로 설정하고 적용하시면 됩니다.
즐거운 하루되세요
> 승부사1 님이 쓴 글입니다.
> 제목 : 수식 점검 부탁드립니다.
> if sdate >= 지정일 and
MarketPosition == 0 and
C > HH and
(V1 == 0 or V1 >= 150000) and
stime == 150000 and C < DayClose(1) and C < O then
Buy("매수",OnClose,def,Floor(매수금액/C));
if MarketPosition == 1 Then
{
if MaxEntries == 5 and C <= AvgEntryPrice*0.75 Then
cond = true;
if stime == 150000 and C < DayClose(1) and C < O and C < AvgEntryPrice then
{
if ((cond == false and MaxEntries > 1 and MaxEntries < 5) or
(cond == true and MaxEntries > 5 and MaxEntries < 10)) then
{
Buy("매수1",OnClose,def,Floor(매수금액/C));
}
}
위 수식을 적용해 본 결과
음봉이 발생하는 3시에 정상적으로 매수가 되는 것을 확인하였는데요.
문제는 5회까지 분할 매수가 안되고 첫 매수 이후 매수에 대한 매도가 완료되어야 다음 매수 진입을 하네요.
제가 구상한 로직은 아래와 같습니다.
- 아 래 -
- 매수 시작일 설정
- 1회 매수 금액 500,000원
- 분할 매수 5회(총 2,500,000원)까지 제한 (단, 5회 매수후 주가 지속하락하여 평단가대비 -25% 발생시 재작동하여 다시 5회(총 2,500,000원 + 2,500,000원 = 5,000,000원)까지 분할 매수)
** 코스피(코스닥) 지수가 일봉상 스토캐스틱(20,12,12) 과열권 진입시 신규 매수 제한 (기 보유종목에 대한 매수는 진행)
- 30분봉 챠트에 적용하며 전일종가(직전봉이 아닌 날짜상의 전일 종가)보다 낮은 음봉이며 평단가보다 낮은 경우 150000에 매수
끝.
위와 같이 만들어보려 했는데 수정에 수정을 거듭해도 성과가 나질 않아서 부득이 요청드립니다.
고견을 좀 주시면 많은 도움이 되리라 사료되면 늘 감사한 마음 전합니다.
2017-10-17
219
글번호 113402
답변완료
조건식에 당일 거래1회 추가 부탁합니다.
input : P1(5),P2(7),P3(10);
var : count(0),sumV1(0),sumV2(0),sumV3(0);
var : mav1(0),mav2(0),mav3(0),aa(0),bb(0);
sumV1 = 0;
sumV2 = 0;
sumV3 = 0;
for count = 0 to P3{
if count < P1 Then
sumV1 = sumV1+DayClose(count);
if count < P2 Then
sumV2 = sumV2+DayClose(count);
if count < P3 Then
sumV3 = sumV3+DayClose(count);
}
maV1 = sumV1 / P1;
maV2 = sumV2 / P2;
maV3 = sumV3 / P3;
AA = (mav1+mav3)/2;
BB = (AA+mav3)/2;
if maV1 > maV2 and maV2 > maV3 and
C < mav2 and AA > mav2 and CrossDown(c,BB) Then
buy();
if maV1 > maV2 and maV2 > maV3 and
C < mav2 and max(AA,BB) < mav2 and CrossDown(c,AA) Then
buy();
위 조건식에서 당일 1회 거래만 되게 부탁합니다.
2017-10-16
156
글번호 113401
답변완료
주식 종목 검색 관련 질문드립니다.
항상 고생 많으십니다.
주식 종목 검색 관련 수식 질문드립니다.
====================================================
1. 1/2/3/4/5분봉에서 같은 시간에 이동평균선 150선을 13틱 이상 장대양봉으로
통과할때의 검색식
2. 1/2/3/4/5/8/10/15/20/25/30/60/120/240/480분봉에서 볼린져밴드(20.2)의 간격이 20틱 이내일때 볼린져밴드 상단을 통과하면서 13틱 이상의 장대양봉 출현시에 검색식
3. 월봉상 캔들이 볼벤 하단에 위치해있고, 스토캐스틱 슬로우(Slow %K 12.5 / Slow %D 5)가 20이하로 하향돌파할때 검색식
=====================================================
항상 감사합니다 검색식 부탁드립니다.
2017-10-16
178
글번호 113400
답변완료
이것저것 문의드립니다.
매번 감사합니다. 어제 답변 주신 것이 잘 이해 안 가서 멘붕에 빠졌다가 다시 마음 추스리고 해보고 있습니다. 하이투자증권에서 뵈었던 강사님은 2개월 정도면 랭귀지에도 익숙해지고 프로그램에도 익숙해질 거라고 하셨었는데, 저에게는 매우 버겁네요. 처음 코딩 배울 때의 괴로움을 다시금 느끼고 있습니다.
도움말 주신 것을 응용못해서 다시 질문드립니다.
1. 시스템
진입
시초가대비 1%(변수a) 올랐을 때 매수
청산
진입가격에서 n%(변수b) 이상 오른 뒤 n%(변수c) 떨어졌을 때 청산(setstop함수 말고 가장 리포트와 비슷한 방법으로)
2. 과거 데이터 움직임 가설이라는 제목의 링크입니다. 어제 링크해주셨는데요. 보고서도 궁금증이 풀리지 않았습니다.
가. 시가와 고가 시가와 저가의 가격폭이 같을 경우 봉 데이터의 움직임
시가 → 저가 → 고가 → 종가의 데이터 흐름으로 한다.
예) 진입신호가 다음과 같을 경우
Buy("Buy1", AtLimit, C-0.01);
Sell("Sell1", AtLimit, C+0.01);
위와 같은 두개의 진입 신호가 동시에 만족하고 현재의 봉의 시가와 고가, 시가와 저가의
가격폭이 같을 경우 다음과 같은 신호 결과를 나타낸다.
고가와 저가의 움직임은 시가와 종가 사이 시간의 데이터에 대한 움직임을 알 수 있는 데이터를 가지고 있지 않으므로 알 수 없다.
-> 저는 설명을 보고 틱 데이터를 다 받을 수 없는 제약때문에 시가와 고가를 알 수 없다고 이해했습니다. 그런데 위의 설명은 시가와 고가라는 게 있긴 있다는 가정 하에 설명을 하고 있는 것 아닌가요? 고가와 저가의 움직임을 알 수 없다는 말과 봉이 완성 안됐을 때 시가와 고가 데이터를 알 수 없다는 말과 동의어가 아닌가요? 헷갈립니다.
->->답변 안주셔도 됩니다.
3. 조건검색
전일 거래대금이 300억 이상인 종목
4. atstop과 atlimit에 대한 궁금증
주문함수가 이렇게 중요한 것인 지 몰랐네요. 제가 이해하는 것이 맞나해서 여쭤 봅니다. 아래 말들이 다 맞나요?
4-1 onclose와 atmarket은 30분봉으로 매매할 경우 조건이 완성된 후에 조건이 완성된 봉에 buy시그널을 입힌다.
4-2 위 두 매매법은 30분봉이 완성되지 않는 이상 실제 매매는 하지 않는다. 실제 매매는 봉이 완성되거나 다음 봉이 시작될 때 매매한다.
4-3. 만약 조금이라도 빠르게 매매를 하고 싶다면 1분봉에서 30분봉 기준을 적용한다거나 해야 한다. (답변해주신대로 이것도 계산이 아예 안되는 범위면 당연히 안되겠죠?)
4-4 atstop이나 atlimit는 조건이 나온 봉에서 바로 청산할 수 있다. 그러나 이것은 전봉과 비교하는 조건만 거는 것이 가능하다. 현재봉이 이평선을 돌파했다거나 기술적지표들이 특정값을 돌파했다고 atstop을 걸 순 없다.
5. 공부하다보니 궁금증인데요. onclose나 atmarket은 트레이딩에서 말하는 예비신호와 같은 개념이라고 보면 될까요? 처음에는 당연히 신호가 나오는 즉시 매매를 해야 머릿속에서 생각한 트레이딩 아이디어와 같을 거라고 생각했는데 예비신호(실제 매매 전에 진입을 결정하기 위해 보는 신호) 개념을 생각 안해봤었네요.
--> 답변 안주셔도 됩니다.
6. 아래 답변을 보면 다 다음봉 지정가격에 진입이 이루어진다고 쓰여 있는데요. 그럼 조건 만족 시 바로 매수 혹은 매도한다는 개념은 시스템트레이딩에선 없다고 보면 되는 건가요?
atmarket의 경우 조건 만족 후 다음봉 시가에 주문이 발생하게 되며
atstop의 경우도 조건 만족 후 다음봉 지정 가격에 주문이 발생하게 됩니다.
두 함수의 표현 형식은 다음과 같습니다.
if 조건식 then
buy("매수", atmarket);
if 조건식 then
buy("매수", atstop, C);
여기서 주의하실 점은 두번째 "atstop"을 이용한 식에서 만약 지정가(C)를 지정해 주지 않게 된다면 조건이 만족한 이후 다음봉에서 조건 만족봉의 종가에 주문이 나가게 됩니다.
따라서 사용자님께서 문의하신 내용은 첫번째 식의 경우는 조건 만족 후 다음봉 시가에 주문이 들어가게 되며 두번째 식의 경우는 조건 만족 후 다음봉에서 이전 봉의 종가 가격으로 주문이 들어가게 되는 것입니다.
감사합니다...
2017-10-17
250
글번호 113399
답변완료
과거 변수 사용 법에 대한 질문
0.1의 가중치로 변경되는 값을 위하여 다음과 같은 수식을 만들었습니다.
var History(0);
History = History[1]*0.9 + C*0.1;
Plot1(History, "히스토리이동");
원하는 그래프가 나오지 않고 아무것도 표시가 되지 않는데요.
어떤부분이 잘못되었는지 교정 부탁드립니다.
감사합니다.
2017-10-16
220
글번호 113396
답변완료
dayclose, demark, nextbaropen에 대한 궁금증.
1. 가령 어제 장을 보고 오늘 진입하는 경우 dayclose[1], dayopen[1] 이렇게 쓸 수 있잖습니까?
그럼 오늘 장을 보고 내일 진입할 준비를 하는 경우엔 dayclose, dayopen이랑 함께 nextbaropen을 쓰면 되려나요?
2. 10분, 30분봉으로 보는 편인데 dayclose 함수 같은 경우 예스랭기지 메뉴얼에 보면, 당일값은 차트에서 계산하고 과거일의 경우는 일봉데이터에서 가지고 온다고 했습니다. 그럼, dayclose를 실거래에서 쓰는 경우 차트에서 어떻게 당일 종가의 데이터를 불러오는지 궁금합니다.
3. 위의 두가지 질문과 답을 기준으로 다음 식이 제가 구현하고자 하는 조건에 맞는건지 알고 싶습니다.
Input : mid(3), long(10), macdrange(0.001);
var : macdval(0);
#횡보장 필터
macdval = macd(mid, long);
# 전일시종가기준 demark
if DayClose(1) > DayOpen(1) Then
Value1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/4;
Else If DayClose(1) < DayOpen(1) Then
Value1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayLow(1))/4;
Else
Value1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayClose(1))/4;
# 당일시종가기준 demark
if DayClose > DayOpen Then
Value2 = (DayHigh+DayLow+DayClose+DayHigh)/4;
Else If DayClose < DayOpen Then
Value2 = (DayHigh+DayLow+DayClose+DayLow)/4;
Else
Value2 = (DayHigh+DayLow+DayClose+DayClose)/4;
#진입
if macdval <= -macdrange or macdval >= macdrange then
{
#A조건 : 전날보다 갭상승 매수 하락시 매도 진입
if MarketPosition == 0 Then
{
if Value1+0.0015 <= dayopen Then
buy("B",AtMarket);
if Value1-0.0015 >= dayopen Then
sell("s",AtMarket);}
#B조건 : 오늘하루 움직임 demark 값보다 0.0015포인트 높은 경우 다음봉 시가에 매수 / 낮은 경우 매도
{ if Value2+0.0015 <= NextBarOpen Then
Buy("b1",AtMarket);
if Value2-0.0015 >= NextBarOpen Then
Sell("s1",AtMarket);}
}
SetStopLoss(0.005,PointStop);
SetStopProfittarget(0.0075,PointStop);
청산.
그리고 제가 유로fx같은 해외시장을 주로 보는 편인데, dayopen, dayclose의 경우 자동으로 장 시작시간인 17시, 마감시간인 16시의 가격을 받아오는지 궁금합니다.
2017-10-16
248
글번호 113392
꽃보다순대 님에 의해서 삭제되었습니다.
2017-10-16
0
글번호 113381
답변완료
문의 드립니다.
안녕하세요?
1번질문
손매매로 진입한 매도 포지션이 있는데, 이후 시스템 매매를 운용해서
매수 포지션이 발생한다면 손매매로 진입한 매도 포지션은 청산되고, 매수포지션만 유지 되는 건가요?
** 시스템 시작시 실계좌에는 잔고는 없으나 신호에서 포지션이 이미 매수로 잡혀 있을경우
매도 신호 발생시 설정창에는 1계약 고정인대도 2계약 매도 진입하는건 정상인가요?
2번질문
매수/ 매도 진입후 특정일자/ 시간에 청산 되도록 수식부탁드립니다.
3번질문
2번에 이어서 특정일자/ 시간에 증권사에 의해 만기일 강제 청산이 이루어진 포지션은 다음날 시스템 가동시 기존 포지션으로
진입하는 수식이 가능하시면 부탁드립니다.
감사합니다.
2017-10-17
177
글번호 113378