커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7632
글번호 230811
답변완료
수식 수정 부탁드립니다.
요청한 수식작성에 감사드립니다.
수식을 적용해 보니 매일 2번 밖에 진입을 하지 않는 것 같습니다. 제가 의도했던 식은 최저가 대비 15%이상 상승하면 계속해서 진입하는 식인데 어찌된 일인지 2번만 진입하고나서 그 다음 부터는 진입을 하지 않습니다.
원하는 조건을 충족하도록 수식작성 부탁드립니다.
조건은 아래와 같습니다.
<조건>
1. 당일 최저가 기준으로 15% 이상 상승시 매수. 한 번 매수 후에도 다시 매수하지 않음(예를 들어 최저가가 1.0 일 때 1.1이 됐을 때 한 번 매수한 이후로는 1.11 이나 1.12가 돼도 다시 매수진입 하지 않습니다)
2. 한 번 매수 진입 후에는 당일 최저점을 매수 이후 시점 부터 다시 계산하여 당일 최저가 대비 15%이상 상승시 다시 매수진입. 이때도 역시 한 번만 매수진입 함. (즉, 9시 20분에 당일 최저가가 1.0 이었고, 9시 50분에 1.1이 되어서 최초 매수진입을 했다면 그 이전의 데이터는 무시하고 9시 50분 부터 다시금 최저가를 파악합니다. 따라서 9시 50분 이후의 당일 최저가가 0.8 이라면 0.88에 다시금 매수진입합니다. 이처럼 한 번 진입이 일어나면 진입이전의 데이터는 무시하고, 진입 이후부터 다시금 계산하여 최저가 대비 15% 상승시 매수합니다)
3. 위와 같이 진입 이후에는 그 때 부터 다시 최저가 대비 15% 상승할 때마다 한 번 씩 계속 매수진입합니다. 즉, 2시 30분 까지 위와 같은 방식으로 최저가 대비 15% 상승할 때마다 계속해서 매수진입합니다.
4. 진입 이후의 최고점 대비 50% 이상 하락시 매수청산합니다.
5. 거래시간은 9:00 부터 14:30 까지로 합니다.
6. 1회 매수 금액은 2000000(이백만원)으로 합니다.
감사합니다.
<지난 답변>
안녕하세요? 예스스탁입니다.
문의하신 내용 답변드립니다.
적용하실때 피라미딩 탭에서 '다른진입신호만허용'을 선택하셔야 합니다.
input : per(15), stopPer(0.5);
var : LowVal(0), count(0);
if date <> date[1] Then {
LowVal = 99999;
count = 0;
}
if stime < 143000 and count < 1 and C > dayLow*(1+per/100) Then {
buy("b1", onclose, def, int(2000000/(c*500000)));
count = count + 1;
}
if MarketPosition == 1 and L < LowVal Then
LowVal = L;
if stime < 143000 and CurrentEntries == 1 and C > LowVal*(1+per/100) Then
buy("b2", onclose, def, int(2000000/(c*500000)));
if MarketPosition == 1 Then
exitlong("EL", atstop, highest(H, BarsSinceEntry+1)*stopPer);
즐거운 날 되세요..
> 은색 님이 쓴 글입니다.
> 제목 : 수식작성 부탁드립니다.
> 다음 조건에 따른 수식작성 부탁드립니다.
1. 당일 최저가 기준으로 15% 이상 상승시 매수. 한 번 매수 후에도 다시 매수하지 않음(예를 들어 최저가가 1.0 일 때 1.1이 됐을 때 한 번 매수한 이후로는 1.11 이나 1.12가 돼도 다시 매수진입 하지 않습니다)
2. 한 번 매수 진입 후에는 당일 최저점을 매수 이후 시점 부터 다시 계산하여 당일 최저가 대비 15%이상 상승시 다시 매수진입. 이때도 역시 한 번만 매수진입 함. (즉, 9시 20분에 당일 최저가가 1.0 이었고, 9시 50분에 1.1이 되어서 최초 매수진입을 했다면 그 이전의 데이터는 무시하고 9시 50분 부터 다시금 최저가를 파악합니다. 따라서 9시 50분 이후의 당일 최저가가 0.8 이라면 0.88에 다시금 매수진입합니다. 이처럼 한 번 진입이 일어나면 진입이전의 데이터는 무시하고, 진입 이후부터 다시금 계산하여 최저가 대비 15% 상승시 매수합니다)
3. 진입 이후의 최고점 대비 50% 이상 하락시 매수청산합니다.
4. 거래시간은 9:00 부터 14:30 까지로 합니다.
5. 1회 매수 금액은 2000000(이백만원)으로 합니다.
감사합니다.
2012-09-14
429
글번호 54732
만평 님에 의해서 삭제되었습니다.
2012-09-14
5
글번호 54731
답변완료
분봉에서 일봉macd오실레이터 보기 지표식
분봉에서 일봉macd오실레이터(막대와 선이 있는것)을 볼수있는 지표식을
가르쳐 주시고 정말 고맙겠습니다.
2012-09-14
539
글번호 54725
답변완료
0을 기준으로 위는 총매도잔량 아래는 총매수잔량을 표시하는
0을 기준으로 위는 총매도잔량으로
아래는 총매수잔량을 표시하는 지표식을 가르쳐주시면 고맙겠습니다
2012-09-14
494
글번호 54722
답변완료
시초가매매 수식작성에 대한 질문입니다.
당일 강제청산을 하고 다음날 첫봉에서 매매를 하려고 합니다.
다음과 같은 수식을 작성하여 모의투자를 실시한 결과 신호는 발생이 되나
주문창을 호출하지는 않습니다.
원래 안되는 것인지 궁금해서 글을 올립니다.
다른 일반 주문은 신호와 주문창이 잘 연동되어 자동매매가 이루어지는 것을 확인했습니다.
봉은 5분봉을 적용했습니다.
SetStopEndOfDay(1501); //이 부분은 강제청산이 잘 됩니다.
If sTime == 151500 Then {
Sell("S1",AtMarket);
}
다음날 아침 9시 이전에 모의투자를 실행시키면 정상적으로 전일 청산신호가 발생되고, 또한 9시 개장과 동시에 매도신호 "S1" 이 정상적으로 발생되지만 실제 주문창과 연동되지 않으므로 매매가 이루어지지 못합니다.
장중에 발생되는 매매신호는 주문창을 자동호출하면서 매도 혹은 매수에 자동으로 이루어지는 것을 확인했습니다. 강제청산도 잘 되구요.
질문에 대한 충분한 설명이 되었는지 모르겠습니다만 힌트라도 주시면
감사하겠습니다.
수고하세요.
2012-09-14
607
글번호 54718
답변완료
일봉이나 분봉에서 주봉의 시가 전고가 전저가를 나타내는식요
일봉이나 분봉에서 주봉의 시가, 전고가, 전저가를 나타내는지표식요 부탁드립니다
2012-09-14
601
글번호 54717
답변완료
수식작성 부탁드립니다.
다음 조건에 따른 수식작성 부탁드립니다.
1. 당일 최저가 기준으로 15% 이상 상승시 매수. 한 번 매수 후에도 다시 매수하지 않음(예를 들어 최저가가 1.0 일 때 1.1이 됐을 때 한 번 매수한 이후로는 1.11 이나 1.12가 돼도 다시 매수진입 하지 않습니다)
2. 한 번 매수 진입 후에는 당일 최저점을 매수 이후 시점 부터 다시 계산하여 당일 최저가 대비 15%이상 상승시 다시 매수진입. 이때도 역시 한 번만 매수진입 함. (즉, 9시 20분에 당일 최저가가 1.0 이었고, 9시 50분에 1.1이 되어서 최초 매수진입을 했다면 그 이전의 데이터는 무시하고 9시 50분 부터 다시금 최저가를 파악합니다. 따라서 9시 50분 이후의 당일 최저가가 0.8 이라면 0.88에 다시금 매수진입합니다. 이처럼 한 번 진입이 일어나면 진입이전의 데이터는 무시하고, 진입 이후부터 다시금 계산하여 최저가 대비 15% 상승시 매수합니다)
3. 진입 이후의 최고점 대비 50% 이상 하락시 매수청산합니다.
4. 거래시간은 9:00 부터 14:30 까지로 합니다.
5. 1회 매수 금액은 2000000(이백만원)으로 합니다.
감사합니다.
2012-09-14
548
글번호 54716
답변완료
분봉차트에서 일봉차트상의 5개의 지수이동평균선을 그리는지표식요
아래는 분봉차트에서 일봉차트상의 1개의 지수이동평균선을 그리는지표식인데요
저는요 5개의 지수이동평균선을 그리는 지표식을 구함니다 가르쳐주시면 고맙겠습니다.
[지표식]
Input : Period(5);
Var : Ep(0), JISU(0), DINDEX(0), PreJISU(0);
Ep = 2/(Period+1); //평활계수
if date != date[1] then { //날짜가 변경될 경우에(매일의 첫번째 봉)
DINDEX = DINDEX + 1; //일봉상의 index를 구한다
PreJISU = JISU[1]; //전봉(전일 마지막 봉)의 JISU값을 preJISU에 저장한다.
}
if DINDEX <= 1 then //일봉상의 인덱스가 1이하이면(차트 맨 앞 첫구간을 의미)
JISU = C; //종가를 지수이동평균값으로 저장한다.
else //이외의 경우에는 (두번째 구간 부터는)
JISU = C * EP + PreJISU * (1-EP); //위 지수이평 계산식에 의해 계산된 값을 지수이평값으로 저장한다.
plot1(JISU,"지수이동평균"); //지수이동평균을 출력한다.
2012-09-14
782
글번호 54715
답변완료
궁금합니다.ㅎㅎ
아래에서 코딩을 선물5분봉에서 실험해 보면
"매수시 전고점 돌파시 추가 매수
매도시 전저점 돌파시 추가 매도" 인데
동일한 봉에 거래가 2번씩 발생하는 경우가 많아요
어떤 부분이 문제가 되는 건가요??
input : P(1.4), Len(20);
var1 = highest(H,70);
var2 = Lowest(L,70);
var3 = (var1+var2)/2;
var4 = Highest(H,Len)[1];
var5 = Lowest(L,Len)[1];
if var1 <= var2*(1+P/100) Then{
buy("b",AtStop,var1+PriceScale);
sell("s",AtStop,var2-PriceScale);
}
if MarketPosition == 1 and CrossUp(C, var4) Then
buy("b1");
if MarketPosition == -1 and CrossDown(C, var5) Then
sell("s1");
if MarketPosition == 1 Then{
ExitLong("bx",AtStop,var3);
if CrossDown(c,ma(c,30)) Then
ExitLong();
}
if MarketPosition == -1 Then{
ExitShort("sx",AtStop,var3);
if CrossUp(c,ma(c,30)) Then
ExitShort();
}
2012-09-14
464
글번호 54706