커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8106
글번호 230811
답변완료
검색식 부탁합니다
수고하십니다.
종목검색식 부탁드립니다.
20이동평균을 이용하여
일봉이나 분봉에서 최근 N봉이 20이동평균선 위에 있는
종목을 검색할 수 있는 식을 부탁합니다.
2018-05-17
216
글번호 118971
답변완료
수평선 가격표시
감사합니다
1)
각 분봉 단위 1봉전 고가기준 +가% -가%선을
현재 분봉에 표시
각 분봉 단위 및 고가기준 +-%선은 변수 처리
2)
현재 분봉이 5분봉이라면
이전 15분봉의 고가기준 +가% -가%선을
현재 5분봉에 표시
타주기 분봉 및 고가기준 +-%선은 변수 처리
3)
지정가 기준 +가% -가%선을 추세선 지표로
표시하고 가격값 표시
지정가 변수처리
2018-05-17
239
글번호 118970
답변완료
부탁 드립니다.
항상 만족할 만한 도움 주심에 감사 드립니다.
다음은 57804번에서
"예를들어
지난달 4째주 금요일 0700과 이번달 첫째주 화요일 0700를 연결하는선"을
나타내는 수식으로 작성해주신 것입니다.
잘 가동되고 있습니다.
이것을 임의의 전달, 임의의 주, 임의의 요일을
외부 변수로 입력할수 있도록 부탁 드리고자 합니다.
예를 든다면
2달전 3번째 화요일의 07:00에 시작점과
1달전 4번째 목요일의 07:00에 종료점을 연결하는선
또 다른예를 든다면
3달전 1번째 수요일의 07:00에 시작점과
현재달 2번째 월요일 07:00에 종료점을 연결하는 선 등 입니다.
미리 경배로 감사 인사 올립니다.
var : cnt(0),TL(0);
Array : D1[10](0),T1[10](0),C1[10](0);
Array : D11[10](0),T11[10](0),C11[10](0);
Array : D2[10](0),T2[10](0),C2[10](0);
Array : D21[10](0),T21[10](0),C21[10](0);
#영업일 기준 월변경
if bdate > bdate[1]+30 Then{
#횟수 카운트 하는 변수는 0으로 초기화
var1 = 0;
var2 = 0;
#전달 카운트 값 다른변수에 저장
var11 = var1[1];
var21 = var2[1];
#기존저장된 값을 전월값을 알기 위해 다른변수에 옮김
for cnt = 1 to 9{
D11[cnt] = D1[cnt];
T11[cnt] = T1[cnt];
C11[cnt] = C1[cnt];
D21[cnt] = D2[cnt];
T21[cnt] = T2[cnt];
C21[cnt] = C2[cnt];
}
#날짜/시간/종가 저장하는 배열들은 0으로 초기화
for cnt = 0 to 9{
D1[cnt] = 0;
T1[cnt] = 0;
C1[cnt] = 0;
D2[cnt] = 0;
T2[cnt] = 0;
C2[cnt] = 0;
}
}
#영업일 변경되고 화요일이면
if bdate != bdate[1] and DayOfWeek(bdate) == 2 Then
{
#카운트 1씩 증가
var1 = var1+1;
#카운트에 해당하는 배열방에 날짜 시간 종가 저장
D1[var1] = sdate;
T1[var1] = stime;
C1[var1] = C;
//첫번째 화요일이고 지날달 금요일 카운트가 4회이상
if var1 == 1 and var21 >= 4 then
{
TL_Delete(TL);
TL = TL_new(D21[4],T21[4],C21[4],D1[1],T1[1],C1[1]);
}
}
#영업이 변경되고 금요일이면
if bdate != bdate[1] and DayOfWeek(bdate) == 5 Then
{
#카운트 1씩 증가
var2 = var2+1;
#카운트에 해당하는 배열방에 날짜 시간 종가 저장
D2[var2] = sdate;
T2[var2] = stime;
C2[var2] = C;
}
2018-05-17
225
글번호 118969
답변완료
문의드립니다.
아래식에서 *** 부분을 추가하고 싶습니다. 부탁드립니다.
일부 작성을 해 보았습니다. ***에 맞게 수식 수정하시어 아래식에 추가 부탁 드립니다.
감사합니다.
*** 수식추가 요청사항
crossup(mav2,mav3) 매수되면 crossdown(mav2,mav3) 전에 아래 1,2번을 한번만 실행하고 싶습니다.
1번) 기준(10틱) 이상 이익이면, 하락(50틱)만큼 하락하면 매수 포지션 청산
2번) 청산 후 다시 mav2(10일선)이 상승하면 매수 재 진입
만약, 1번)에 의한 청산후 crossdown(mav2,mav3) 되면 2번) 실행 없이 매도 진입 하여
1번),2번)을 한번만 실행
매도, 반대
***작성해본 수식
# 1. 기준(10틱) 이상 수익이면 하락(50틱)하면 매수 청산 (10틱수익/-40틱청산, 70틱수익/20틱청산)
if MarketPosition == 1 Then{
BH = highest(H,BarsSinceEntry);
if BH >= EntryPrice+PriceScale*기준 Then{
ExitLong("B익절1",AtStop,BH-PriceScale*하락);
}
# 2. 다시 10일선이 상승하면 재 진입
if mav2 > mav2[1] Then buy("Buy2");
# 1. 기준(10틱) 이상 수익이면 하락(50틱)하면 매수 청산 (10틱수익/-40틱청산, 70틱수익/20틱청산)
if MarketPosition == -1 Then{
SL = Lowest(L,BarsSinceEntry);
if SL <= EntryPrice-PriceScale*기준 Then{
ExitShort("S익절1",AtStop,SL+PriceScale*하락);
}
# 2. 다시 10일선이 하락하면 재 진입
if mav2 < mav2[1] Then sell("Sell2");
아래식
--------------------------------------------------------------
input : P1(3),P2(10),P3(280),기준(10), 하락(50), 손절(150);
var : mav2(0),mav3(0);
var : BH(0),SL(0);
mav2 = ma(c,P2);
mav3 = ma(c,P3);
#ATR
Input : ATR추적(20), ATR손절(20); #ATR 청산
Var : PosHigh(0), PosLow(0); #ATR 청산
//진입
if crossup(mav2,mav3) Then buy("Buy");
if CrossDown(mav2,mav3) Then sell("Sell");
# ATR 추적 청산
PosHigh = Highest(H, BarsSinceEntry+1);
PosLow = Lowest(L,BarsSinceEntry+1);
If MarketPosition <> 0 Then {
ExitLong("EL_추적ATR", AtStop,PosHigh-ATR(20)*ATR추적);
Exitshort("ES_추적ATR", AtStop,PosLow+ATR(20)*ATR추적);
}
# ATR 손절 청산
If MarketPosition <> 0 Then {
ExitLong("EL_손절ATR", AtStop,EntryPrice-ATR(20)*ATR손절);
Exitshort("ES_손절ATR", AtStop,EntryPrice+ATR(20)*ATR손절);
}
# 최대손절 청산
if MarketPosition == 1 Then{
BH = highest(H,BarsSinceEntry);
ExitLong("B손절",AtStop,EntryPrice-PriceScale*손절);
}
if MarketPosition == -1 Then{
SL = Lowest(L,BarsSinceEntry);
ExitShort("S손절",AtStop,EntryPrice+PriceScale*손절);
}
2018-05-17
208
글번호 118968
답변완료
시스템 수식 문의드립니다....
수고가 많으시죠
시스템식 문의 드립니다...
bollinger bands (40 , 2) 이평선 5일 20일
문의 내용은 다음과 같읍니다...
1 볼린저밴드 상단보다 고가가 큰 봉이 20봉 이내에 있고
5일 20일 데드크로스에 매도
2 볼린저밴드 하단보다 저가가 적은 봉이 20봉 이내에 있고
5일 20일 골든크로스에 매수
이상입니다...수고하세요
2018-05-16
196
글번호 118967
답변완료
수식 작성 부탁드립니다.
예스트레이더에 월, 일, 분, 틱 단위는 있는데,
연 단위는 없더라구요. 그래서 지표로 만들고 싶은데,
연 시가, 고가, 저가 라인 작성 부탁 좀 드리겠습니다.
2018-05-16
209
글번호 118966
요타 님에 의해서 삭제되었습니다.
2018-05-16
0
글번호 118965
답변완료
부탁드립니다
월봉시가 돌파종목을 검색하고 싶습니다
감사합니다
2018-05-16
199
글번호 118964
답변완료
수식첨가부탁드립니다
#,아래수식에서 파동의 1/2일선을 우측 그리기수식을 추가 삽입하려고, var;TL2 추가하고
TL2 = TL_new(HD[1],HT[1],(HH[1]+LL)/2,sdate,stime,(HH[1]+LL)/2); 수식을 추가하니까
배열요소값이 와야한다는 오류가 뜨내요.. 도움부탁드립니다.
#,제가 원하는식은 현재 수식 조건에다가 파동의 중심값을 추가로 오른쪽 그리기로 하는
식입니다.
Input : af(0.02), maxAF(0.2),n(5);
var : T(0),TL1(0),cnt(0);
Array : HH[10](0),HD[10](0),HT[10](0);
Array : LL[10](0),LD[10](0),LT[10](0);
Array : upv[10](0),dnv[10](0);
var1 = CSar(af,maxAF);
if crossup(c,var1) Then
{
T = 1;
HD[0] = sdate;
HT[0] = stime;
HH[0] = H;
for cnt = 1 to 9
{
HD[cnt] = HD[cnt-1][1];
HT[cnt] = HT[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
TL_Delete(upv[cnt]);
if HH[cnt] > 0 and cnt < N Then
{
upv[cnt] = TL_New(HD[cnt],HT[cnt],HH[cnt],sdate,stime,HH[cnt]);
TL_SetExtRight(upv[cnt],true);
TL_SetColor(tl1,GRAY);
TL_SetColor(upv[cnt],RED);
TL_SetStyle(upv[cnt],3);
}
}
if LL[0] > 0 Then
{
TL1 = TL_new(LD[0],LT[0],LL[0],HD[0],HT[0],HH[0]);
}
TL_Delete(upv[0]);
upv[0] = TL_New(sdate[1],stime[1],HH[0],HD[0],HT[0],HH[0]);
TL_SetExtRight(upv[0],true);
}
if CrossDown(c,var1) Then
{
T = -1;
LD[0] = sdate;
LT[0] = stime;
LL[0] = L;
for cnt = 1 to 9
{
LD[cnt] = LD[cnt-1][1];
LT[cnt] = LT[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
TL_Delete(dnv[cnt]);
if LL[cnt] > 0 and cnt < N Then
{
dnv[cnt] = TL_New(LD[cnt],LT[cnt],LL[cnt],sdate,stime,LL[cnt]);
TL_SetExtRight(dnv[cnt],true);
TL_SetColor(tl1,GRAY);
TL_SetColor(dnv[cnt],BLACK);
TL_SetStyle(dnv[cnt],3);
}
}
if HH[0] > 0 Then
{
TL1 = TL_new(HD[0],HT[0],HH[0],LD[0],LT[0],LL[0]);
}
TL_Delete(dnv[0]);
dnv[0] = TL_New(sdate[1],stime[1],LL[0],LD[0],LT[0],LL[0]);
TL_SetExtRight(dnv[0],true);
}
if T == 1 then
{
if H > HH[0] Then
{
HH[0] = H;
HD[0] = sdate;
HT[0] = stime;
TL_SetEnd(TL1,HD[0],HT[0],HH[0]);
}
TL_Delete(upv[0]);
upv[0] = TL_New(HD[0],HT[0],HH[0],sdate,stime,HH[0]);
TL_SetExtRight(upv[0],true);
TL_SetColor(tl1,YELLOW);
TL_SetColor(upv[0],MAGENTA);
}
if T == -1 then
{
if L < LL[0] Then
{
LL[0] = L;
LD[0] = sdate;
LT[0] = stime;
TL_SetEnd(TL1,LD[0],LT[0],LL[0]);
}
TL_Delete(dnv[0]);
dnv[0] = TL_New(LD[0],LT[0],LL[0],sdate,stime,LL[0]);
TL_SetExtRight(dnv[0],true);
TL_SetColor(tl1,CYAN);
TL_SetColor(dnv[0],BLUE);
}
$$$,언제나 늘 고맙습니다.
2018-05-16
221
글번호 118963