커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8106
글번호 230811
답변완료
수식 요청드립니다.
감사합니다. 수식 요청드립니다.
아래식에서 1,2번 추가요청드립니다
1.
★이후 20일선 Crossup에 의한 매수 진입 전에
캔들의 가격이 200선 아래로 내려가는 조건의
■(파랑)이 생기더라도 지정한 1~2 (M)개의 ■(파랑)은 무시하고
20일선 Crossup에 의한 매수 진입
그림참조, (매도:반대)
진입조건에서만 ■을 무시하고 나머지 조건은 ■가 작용될수 있도록 요청드립니다.
부탁드립니다.
input : n(20);
var : t(0),t1(0),tx(0),tl(0);
var1 = ma(c,20);
var2 = ma(C,200);
#200선 상향돌파
if Crossup(C,var2) Then
{
#t는 1
t = 1;
#이전구간(하향이탈구간) t값은 t1에 저장
t1 = t[1];
#■출력
tx = Text_New(sdate,stime,H+PriceScale,"■");
Text_SetStyle(tx,2,2);
Text_SetColor(tx,RED);
#매수주문을 구간에 한번하기 위한 변수
Condition1 = false;
}
#200선 하향이탈
if CrossDown(C,var2) Then
{
#t는 -1
t = -1;
#이전구간(상향돌파구간) t값은 t1에 저장
t1 = t[1];
#■출력
tx = Text_New(sdate,stime,L-PriceScale,"■");
Text_SetStyle(tx,2,2);
Text_SetColor(tx,BLUE);
#매도주문을 구간에 한번하기 위한 변수
Condition2 = false;
}
#t가 1일때 종가가 200선대비 n틱이상 크게되면
if t == 1 and c > var2+PriceScale*n Then
{
#t는 2로 변경
t = 2;
#●출력
tx = Text_New(sdate,stime,H+PriceScale,"●"+NumToStr(C,2));
Text_SetStyle(tx,2,2);
Text_SetColor(tx,RED);
}
#t가 -1일때 종가가 200선대비 n틱이상 작게되면
if t == -1 and c < var2-PriceScale*n Then{
#t는 -2로 변경
t = -2;
#●출력
tx = Text_New(sdate,stime,L-PriceScale,"●"+NumToStr(C,2));
Text_SetStyle(tx,2,2);
Text_SetColor(tx,BLUE);
}
# 200선 상향돌파하고 직전구간(하향이탈구간) t가 -2까지 기록했으면
if crossup(t,0) and t1 <= -2 Then
{
#★출력
tx = Text_New(sdate,stime,H+PriceScale*3,"★");
Text_SetStyle(tx,2,2);
Text_SetColor(tx,RED);
}
# 200선 하향이탈하고 직전구간(상향돌파구간) t가 2까지 기록했으면
if CrossDown(t,0) and t1 >= 2 Then
{
#★출력
tx = Text_New(sdate,stime,L-PriceScale*3,"★");
Text_SetStyle(tx,2,2);
Text_SetColor(tx,BLUE);
}
#200선 상향돌파한 구간이고
#직전 햐향이탈한 구간은 t는 -2까지 기록했고
#현재10선이 200선보다 크면 매수
if Condition1 == false and t > 0 and t1 <= -2 and var1 > var2 Then{
Condition1 = true;
buy();
}
#200선 하향이탈한 구간이고
#직전구간(상향돌파구간)애서 t는 2까지 기록했고
#현재10선이 200선보다 작으면 매도
if Condition2 == false and t < 0 and t1 >= 2 and var1 < var2 Then{
Condition2 = true;
sell();
}
2018-05-10
303
글번호 118763
답변완료
익절수식 추가
아래는 buy와 sell 2가지 수식이며 손절과 trailing stop을 사용합니다.
input에서 익절 수식을 추가바랍니다.
항상 고맙습니다.
***************************************
1)buy 수식
input : b1(11),b2(13),진입시간(090000);
input : 손절1(20),TR1(20);
input : 손절2(20),TR2(20);
var : T1(0),entry(0),HH(0),EL(0);
if Bdate != Bdate[1] Then
T1 = TotalTrades;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 and stime >= 진입시간 and
C <= DayHigh-PriceScale*b1 and C[1] > DayHigh-PriceScale*b1 Then
buy("b1");
if TotalTrades > TotalTrades[1] Then
HH = H;
if H > HH Then
HH = H;
if MarketPosition == 0 and entry == 1 and stime >= 진입시간 and C <= HH-PriceScale*b2 and C[1] > HH-PriceScale*b2 Then
buy("b2");
if MarketPosition == 1 then
{
if IsEntryName("b1") == true then
{
ExitLong("bl1",AtStop,EntryPrice-PriceScale*손절1);
ExitLong("btr1",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR1);
}
if IsEntryName("b2") == true then
{
ExitLong("bl2",AtStop,EntryPrice-PriceScale*손절2);
ExitLong("btr2",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR2);
}
}
2) sell 수식
input : s1(20),s2(20),진입시간(090000);
input : 손절1(20),TR1(20);
input : 손절2(20),TR2(20);
var : T1(0),entry(0),LL(0),EH(0);
if Bdate != Bdate[1] Then
T1 = TotalTrades;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 and stime >= 진입시간 and C >= daylow+PriceScale*s1 and C[1] < daylow+PriceScale*s1 Then
sell("s1");
if TotalTrades > TotalTrades[1] Then
LL = L;
if L < LL Then
LL = L;
if MarketPosition == 0 and entry == 1 and stime >= 진입시간 and C >= LL+PriceScale*s2 and C[1] < LL+PriceScale*s2 Then
sell("s2");
if MarketPosition == -1 then
{
if IsEntryName("s1") == true then
{
ExitShort("sl1",AtStop,EntryPrice+PriceScale*손절1);
ExitShort("str1",AtStop,Lowest(l,BarsSinceEntry)+PriceScale*TR1);
}
if IsEntryName("s2") == true then
{
ExitShort("sl2",AtStop,EntryPrice+PriceScale*손절2);
ExitShort("str2",AtStop,Lowest(l,BarsSinceEntry)+PriceScale*TR2);
}
}
2018-05-09
271
글번호 118754
답변완료
문의 드립니다
틱차틱에서
1
최근 90분 사이의 최고값과 최저값
2
최근 70봉 사이의 최고값과 최저값
감사합니다
2018-05-09
270
글번호 118752
답변완료
수식문의
1. upvol, downvol
- 업틱 거래량과 다운틱 거래량을 말하는 건가요?
2. uptick, downtick
- 거래량을 제외하고 업틱과 다운틱의 숫자를 말하는 것인가요?
3. 예시가 맞는지요?
체결량: +1, +1, +98, -10, -20, -20 이렇게 되어 있다고 하면
upvol : +100, downvol : -50
uptick : 3, downtick : -3
4. 아침 동시호가의 체결량은 어디에 포함이 되는지요?
2018-05-09
332
글번호 118751
답변완료
에라.
건의 한다고 하셨는데,, 진행상황 부탁드립니다.
용량 늘리는거라 큰문제는 아닐거 같은데..
신경좀 써주세요.
아래 내용으로 요청을 드렸고 진행상황 부탁드립니다.
********
네 고맙슴니다.
꼭 느릴수 있도록 부탁드링니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 에라
>
안녕하세요
예스스탁입니다.
문의하신 내용은 건의하도록 하겠습니다.
즐거운 하루되세요
> geylang 님이 쓴 글입니다.
> 제목 : 에라
> 아래와 같이 회신을 잘 받았읍니다만
텍스트를 최대한 줄여도 같은 에라 메세지가 뜨네요.
귀사에서 텍스트 메모리를 조금더 늘려주시기를 부탁드립니다
******************************************************
안녕하세요
예스스탁입니다.
수식에서 사용된 텍스트가 제한된 메모리를 넘어서면 발생하는 내용입니다.
수식에서 지정된 텍스트부분을 줄여주셔야 합니다.
Buy("매수진입"), isentryname("매수진입")
위와 같이 수식 전반에 ""안에 텍스트를 사용한 부분의
텍스트의 내용을 최대한 줄여주셔야 합니다.
즐거운 하루되세요
> geylang 님이 쓴 글입니다.
> 제목 : 에라
> 시물레이션 돌리니까 아래 메세지가 뜹니다.
" 시스템오류 not enough space (12) "
해결 방법 부탁드립니다
******
2018-05-08
330
글번호 118750
답변완료
수식 부탁드립니다.
평소 감사드립니다.
아래 키움 수식을 종목검색식으로 변환 부탁드립니다.
조건: 현재봉에서 과거10일까지 아래 키움 조건이 1회이상 검출되는 종목
A = crossup(CCI(20), 0);
BB= CrossUp(Trix(10),0);
D = Stochasticsslow(30,10);
E = eavg(D,10);
F = If(MACD(12,26)>eavg(MACD(12,26),9),
If(sar(0.01, 0.1 )<C,2,1),
If(sar(0.01, 0.1)>C,-2,-1));
( A == 1 and BB== 1 and D> E and E >E(1) and F(1) < 0 and F >= 1 ) or
(A(1) == 1 and BB== 1 and D> E and E >E(1) and F(1) <0 and F >= 1) or
( A == 1 and BB(1)== 1 and D> E and E >E(1) and F(1) <0 and F >= 1)
감사합니다.
2018-05-08
285
글번호 118749
답변완료
문위드립니다
macd 지표입니다
1,macd가 기준선+0선돌파시에 매수신호,,,반대면 매도신호
2,macdsignal 이 0선 기준선 위로 돌파시에 매수신호,,,,반대면 매도신호
감사합니다
2018-05-08
265
글번호 118748
답변완료
함수요청
안녕하세요?
함수요청드립니다.
변동성 확대 시스템으로 60분봉으로 매매하고자 합니다.
- 매수 : 3일 이동평균선이 6일 이동평균선 값보다 크고
당일 시가 갭이 직전 3개 일봉의 고가보다 크고
현재 일봉의 고가-저가의 변동폭이 이전 3개 봉의 변동폭의 평균보다 크고
현재 일봉 기준 5ma와 20ma의 차가 10개봉 이전의 5ma와 20ma의 차가 클 때
- 매도 : 3일 이동평균선이 6일 이동평균선 값보다 작고
당일 시가 갭이 직전 3개 일봉의 저가보다 작고
현재 일봉의 고가-저가의 변동폭이 이전 3개 봉의 변동폭의 평균보다 작고
현재 일봉 기준 5ma와 20ma의 차가 10개봉 이전의 5ma와 20ma의 차가 작을 때
2018-05-09
326
글번호 118747
답변완료
부탁합니다
전일비교 거래량지표에
거래량 수평선을 구합니다.
1.과거 60(외부변수)일간 평균거래수량 수평선
2.과거 60일평수량 * 3배(외부변수) 수평선
3.과거 60일평수량 * 7배(외부변수) 수평선
부탁합니다
2018-05-08
270
글번호 118746