커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3550
글번호 230811
답변완료
미니코스피선물200 지수도 가능한가요
제가 수동으로 매매하는 종목이 미니코스피200 선물입니다.
틱단위도 낮고 실전으로 돌려보기에 좋을것 같은데
이것도 적용 가능한가요??
2021-01-09
949
글번호 145298
답변완료
시스템트레이딩 조건 문의
사용하는 지표에 진입에 특정 주식의 호가창의 매도, 매수 수량을 참고하여
매도량 > 매수량 이면 지표상 진입자리라도 진입
매도량 < 매수량 이면 지표상 진입자리라도 진입안함
이렇게 세팅할 수가 있나요??
2021-01-09
1026
글번호 145297
답변완료
여러 이평선이 모여서 N일 이상 지속된 종목 검색
안녕하세요~^^
5일 이평선, 10일 이평선, 20일 이평선, 60일 이평선 중 3개 이상의 선이
전일 종가 대비 +,- 0.9% 이내에 모여 있는 경우를 검색하고자 합니다.
추가조건
1. 5일 이평선 >= 10일 이평선 >= 20일 이평선 >= 60일 이평선
2. 이러한 상태가 N일 이상 지속된 경우
감사합니다.
2021-01-09
1212
글번호 145296
답변완료
70501글 시스템 확인 좀 부탁 드립니다.
* 좋은 하루 되십시요.
* 아래수식에서
1.손실 커지면 계속 추가 매수 되야 하는데 추가 진입 안되는 부분 수정 요청 드립니다.
→ 첨부사진 참고
2.매수든 매도든 한번 진입 하면 손실 청산 없이 끝까지 수익 5포인트 까지 청산 안되도록
부탁 좀 드리겠습니다.
## <아래수식>
var1 = ma(c,5) ;
var2 = ma(c,20) ;
if MarketPosition <= 0 and crossup(var1,var2) then buy("SS1",OnClose,DEF,1);
if MarketPosition >= 0 and crossdown(var1,var2) then sell("DD1",OnClose,DEF,1);
if MarketPosition == -1 Then
{
if MaxEntries == 1 Then
Sell("s1",AtLimit,EntryPrice+2,2);
if MaxEntries == 2 Then
Sell("s2",AtLimit,AvgEntryPrice+4,4);
if MaxEntries >= 3 Then
Sell("s3",AtLimit,LatestEntryPrice(0)+3,1);
ExitShort("sx",AtLimit,AvgEntryPrice-5);
}
if MarketPosition == 1 Then
{
if MaxEntries == 1 Then
Buy("b1",AtLimit,EntryPrice-2,2);
if MaxEntries == 2 Then
Buy("b2",AtLimit,AvgEntryPrice-4,4);
if MaxEntries >= 3 Then
Buy("b3",AtLimit,LatestEntryPrice(0)-3,1);
ExitLong("bx",AtLimit,AvgEntryPrice+5);
}
2021-01-11
1093
글번호 145295
답변완료
수식 부탁드려요
매도: RSI 70상향 돌파 30% 매도 OR RSI 70이상유지 30% 매도 OR 볼린저밴드 상한선 돌파시 전량 매도
매수: RSI 30하향돌파 OR 30이하유지시 OR RSI 20이하 매수
주봉차트에서 사용할 것입니다! 고맙습니다
2021-01-08
1335
글번호 145294
이현준 님에 의해서 삭제되었습니다.
2021-01-08
4
글번호 145293
답변완료
추세
아래 수식으로 시스템 부탁 합니다.
Input : length(12),종가사용여부(0),수치표시(1),표시(0);
input : 추세두께(1),추세상승색(red),추세하락색(blue);
input : 고점연결두께(3),고점연결색상(red);
input : 저점연결두께(3),저점연결색상(blue);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),TL11(0),TL12(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부==1,C,H);
LL = IFF(종가사용여부==1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,추세두께);
TL_SetColor(TL1,추세상승색);
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)+NewLine+"+"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱");
Text_SetStyle(Text1, 2, 1);
}
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,NumToStr(고[1,1],2)+NewLine+"+"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱");
}
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,추세두께);
TL_SetColor(TL1,추세하락색);
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)+NewLine+"-"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱");
Text_SetStyle(Text1, 2, 0);
}
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,NumToStr(저[1,1],2)+NewLine+"-"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱");
}
}
최종꼭지점 = "저점";
}
var : S(0),T(0),hl(0),lh(0),hi(0),li(0),BD(0);
var : hltl(0),lhtl(0);
S = IFf(최종꼭지점 == "고점",1,iff(최종꼭지점 == "저점",-1,0));
if Bdate != Bdate[1] Then
{
hl = 0;
lh = 0;
hi = index;
Li = index;
}
if H == DayHigh Then
{
hl = 0;
hi = index;
}
if L == DayLow Then
{
lh = 0;
Li = index;
}
if S == 1 and S != S[1] and 저[1,2] >= hi Then
{
if hl == 0 or (hl > 0 and 저[1,1] < hl) Then
{
hl = 저[1,1];
hltl = TL_New(저[1,3],저[1,4],hl,sdate,stime,hl);
TL_SetColor(hltl,BLUE);
}
}
Else
{
if hl > 0 Then
TL_SetEnd(hltl,sdate,stime,hl);
}
if S == -1 and S != S[1] and 고[1,2] >= li Then
{
if lh == 0 or (lh > 0 and 고[1,1] > lh) Then
{
lh = 고[1,1];
lhtl = TL_New(고[1,3],고[1,4],lh,sdate,stime,lh);
TL_SetColor(lhtl,RED);
}
}
else
{
if lh > 0 Then
TL_SetEnd(lhtl,sdate,stime,lh);
}
var : TL9(0),st(0),value(0);
if Bdate != Bdate[1] Then
st = 0;
if st == 0 and S == -1 and S != S[1] Then
st = 1;
if st == 1 and S == -1 and 저[1,1] < 저[1,2] and Bdate == Bdate[index-고[1,2]] and 고[1,1] >= ((Daylow+((dayhigh-daylow)*0.382))) Then
{
st = 2;
value = 고[1,1];
TL9 = TL_New(고[1,3],고[1,4],value,sdate,sTime,value);
TL_SetColor(TL9,GREEN);
}
if st >= 1 and DayHigh(0) > DayHigh(0)[1] Then
st = 0;
if st == 2 Then
TL_SetEnd(TL9,sDate,sTime,value);
2021-01-08
1253
글번호 145292
답변완료
부탁드립니다.
아래일간지표수치를 분차트에서도 동일 수치로 볼수있도록 부탁드립니다.
Inputs: Length(14);
Variables : ABull(0), ABear(0), BBull(0), BBear(0),ARatio(0), BRatio(0);
ABull = accumn(High - Open, Length);
ABear = Accumn(Open - Low, Length);
BBull = Accumn(High - Close[1], Length);
BBear = Accumn(Close[1] - Low, Length);
ARatio = ABull / ABear * 100;
BRatio = BBull / BBear * 100;
var1 = (ARatio+BRatio)/2;
Var2 = ma(var1,5);
Plot1(ARatio, "A-ratio",BLUE);
Plot2(BRatio, "B-ratio",RED);
Plot3(var1, "평균");
Plot4(var2, "이평");
2021-01-08
1173
글번호 145287
답변완료
문의드립니다.
안녕하세요.
최근 250봉 중 최저점(LL) 찍고 상승하여
고점(hh) 찍고 -2% 이상 하락하여
저점(HL) 찍고 상승하면
폭 maxHL = hh-HL;
상승 중 발생한 폭 중 가장 큰 폭만 maxHL 이다.
한가지 더 추가 부탁드리는 것은
고점봉의 폭이 크면 고점봉의 저점과 고점이 폭 maxHL로 잡힙니다.
저점(HL)은 고점봉 다음봉부터 적용되도록 부탁드립니다.
수고하세요 꾸벅~
===============
이전에 알려주신 수식입니다.
input : Period(250);
var : hh(0),hi(0),HL(0),maxHL(0),cnt(0);
hh = h;
For cnt = 0 to Period-1
{
if h[cnt] > hh Then
{
hh = h[cnt];
hi = cnt;
}
}
hl = L;
For cnt = 0 to hi
{
if l[cnt] < hl Then
{
hl = l[cnt];
}
}
if H == hh Then
HL = L;
if L < HL Then
HL = L;
maxHL = hh-HL;
Plot1(maxHL,"최대낙폭");
Plot2(hh,"당일최고가");
Plot3(HL,"당일최고가이후최저가");
2021-01-08
1251
글번호 145283