커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4718
글번호 230811
답변완료
데이터 저장 문의드립니다.
해외선물 프로그램에서....최대 10,000개 봉까지만 csv파일로 내보낼 수 있는 걸로 아는데..해당 수식 좀 부탁드립니다.
그리고 원하는 기간의 데이터를 내보낼 수도 있으면 해당 수식 부탁드립니다.
2015-12-07
139
글번호 93134
답변완료
문의 드립니다.
230.00이라는 가격에 수치전환 수평선을 그어놓고 호가가 수치전환 수평선을 돌파해서 종가에 거래하는게 아니라 230.00에 그어진 수치전환 수평선에 가격이 닿으면 시장가 진입하는 수식을 알고 싶습니다.
예) 시가 200.00에 시가에서 위, 아래 0.5 포인트씩 수치전환 수평선을 그어놓아서 위에서 0.5포트 위로 닿으면 매수 아래로 0.5에 닿으면 매도 이런식의 수식을 알고 싶습니다. 아래 주석도 달아주시면 감사하겠습니다.
2015-12-07
107
글번호 93133
답변완료
지표와 시스템 문의
30일간의 신고가 돌파 종목을 넣어서 시스템 테스트를 하고 자 합니다.
적용 일봉
지표
기간고가
기간저가
var1 = highest(h,period);
 var2 = lowest(L,Period);
기준선=(고가+저가)/2
if var1[1] < var1 Then
       SS = (var1+var2)/2;
s4 매도기준 저가 =고가 돌파후 저가(만들어지는 당일봉이 아니라 다음날 부터)
s5 자율반등폭= (고가-기준선)/2
s6 매수타점1=(s1-s5)+2틱
s7 매수타점2=(s3-s5)+2틱
s8 매도타점1= (s4+s5)-2틱
s9 매도타점2=(s4+s5)+2틱
시스템 문의
1. 기본사항
 1) 위 지표식을 일봉 현물에 적용하여 시스템 매매를 할려고 합니다.
 2) 기본 외부변수 할당은 다음과 같습니다.
   input : 전략식시작일자(20151101), 전략식시작시간(090000), 전략총매수금액(1000000)
   input : 1차매수비중(50), 2차매수비중(50) ; 
            ##괄호안의 숫자는 총매수금액의 각 분할매수할 퍼센티지입니다.
   input : 1차매도비중(70), 2차매도비중(30),
            ##괄호안의 숫자는 매수된 금액의 각 분할매도할 퍼센티지입니다.
 
   그외 외부변수는 추가해 주시기 바랍니다.
2. 매수기준
 1) 2분할 매수
 2) 강 1차매수에서 1차매수비중 만큼 매수
 3) 강 2차매수에서 2차매수비중 만큼 매수
 4) 시가가 -5%이상 갭하락하면 1차매수를 하지 않음. (2차 매수시에는 상관없음.)
 5) 매수되었을때 각매수차수에서 매수된 상태를 차트에 표시 ("강 1차매수", "강 2차매수")
3. 매도기준
 1) 2분할 매도입니다.
 2) S8상황시 1차매도 비중 만큼 매도
 3) S9상황시 2차매도 비중 만큼 매도
 4) 2분할매수가 모두 안이루어졌어도 매도조건만 만족하면 1차, 2차매수상태에서도 매도
 5) 매도되었을때 각매도차수에서 매도된 상태를 차트에 표시 ("1차매도", "2차매도")
답변주신거 바탕으로 정리해서 다음 질문드리겠습니다!
2015-12-07
134
글번호 93132
답변완료
옵션교차차트관련 45226번 재문의
45226번 관련해서 수식을 참고해 다음과 같은 수식을 작성한후, 양옵션들이 교차할경우
차트에 각각 표시하여야하나, 첨부파일처럼 분명 c242와 p242가 교차하고, c245와 p240이 교차하는데도, 차트에는 c242와 p242에만 2개의 교차가 표시됩니다...
c242와p242, c245와p240 각각 표시되는 방법을 부탁드립니다.
data1=c242
data2=p242
data3=c245
data4=p240 일 경우 아래와 같이 수식을 작성, 적용하였습니다.
if crossup(data1(c),data2(C)) or crossup(data1(c),data4(C)) Then
var1 = C;
if CrossDown(data1(c),data2(C)) or CrossDown(data1(c),data4(C)) Then
var1 = C;
if crossup(data3(c),data2(C)) or crossup(data3(c),data4(C)) Then
var3 = C;
if CrossDown(data3(c),data2(C)) or CrossDown(data3(c),data4(C)) Then
var3 = C;
plot1(var1);
plot2(var3);
2015-12-07
256
글번호 93131
답변완료
문의드립니다.
Input : RSIP(9), Period(14),dv(2);
var : RSIV(0),Mid(0),BBup(0),BBdn(0);
RSIV = RSI(RSIP);
Mid = ma(RSIV,Period);
BBup = Mid+STD(MId,Period)*dv;
BBdn = Mid-STD(MId,Period)*dv;
Plot1(RSIV, "RSI");
Plot2(Mid, "BBmid");
Plot3(BBup, "BBup");
Plot4(BBdn, "BBdn");
PlotBaseLine1(30, "기준선 30", gray);
PlotBaseLine2(70, "기준선 70", gray);
..........................................................................
상기 지표를 데이타2 참조지표로 가공해 주세요
2.
inputs : ShowAll(true),굵기(0),상승(red),하락(blue);
var : BoxTop(0), BoxBtm(0), Ctr(0), BBD(0), BBT(0), EBD(0), EBT(0), UpBand(0), DnBand(0), CurrState(1),
TextId(-1), TopId(-1), TopIdP(-1), BtmId(-1), BtmIdP(-1), LSId(-1), LSIdP(-1), RSId(-1), RSIdP(-1),
HiFirst(true), LoFirst(false), State1(false), State2(false), State3(false), State4(false), State5(false),
DrawBox(false), ValidBox(false), HadBreak(false), NewBox(false);
if index == 1 then begin
BoxTop = high;
BoxBtm = low;
State1 = true;
BBD = date;
BBT = time;
end;
if NewBox and high > UpBand then begin
BBD = date;
BBT = time;
TL_SetEnd(TopId, BBD, BBT, UpBand);
TL_SetEnd(BtmId, BBD, BBt, DnBand);
RSIdP = RSId ;
RSId = TL_New(BBD, BBT, DnBand, BBD, BBT, UpBand);
if ShowAll == false and RSIdP <> -1 then TL_Delete( RSIdP ) ;
if HiFirst then
TL_SetColor(RSId, 상승);
else
TL_SetColor(RSId, 하락);
NewBox = false;
State1 = true;
LoFirst = false;
HiFirst = true;
end;
if NewBox and low < DnBand then begin
BBD = date;
BBT = time;
TL_SetEnd(TopId, BBD, BBT, UpBand);
TL_SetEnd(BtmId, BBD, BBt, DnBand);
RSIdP = RSId;
RSId = TL_New(BBD, BBT, DnBand, BBD, BBT, UpBand);
if ShowAll == false and RSIdP <> -1 then TL_Delete(RSIdP);
if HiFirst then
TL_SetColor(RSId, 상승) ;
else
TL_SetColor(RSId, 하락);
NewBox = false;
State1 = true;
HiFirst = false;
LoFirst = true;
end;
if HiFirst then begin
if State4 then begin
if high > BoxTop then begin
BoxTop = high;
State1 = true;
State4 = false;
CurrState = 1;
end
else begin
if low < BoxBtm then begin
State4 = false;
State3 = true;
BoxBtm = low;
CurrState = 3;
end
else begin
State4 = false;
State5 = true;
CurrState = 5;
end;
end;
end;
if State3 then begin
if high > BoxTop then begin
BoxTop = high;
State1 = true;
State3 = false;
CurrState = 1;
end
else begin
if low < BoxBtm then begin
State3 = true;
BoxBtm = low;
CurrState = 3;
end
else begin
State3 = false;
State4 = true;
CurrState = 4;
end;
end;
end;
if State2 then begin
if high > BoxTop then begin
BoxTop = high;
State1 = true;
State2 = false;
CurrState = 1;
end
else begin
State2 = false;
State3 = true;
BoxBtm = low;
CurrState = 3;
end;
end;
if State1 then begin
if high > BoxTop then begin
BoxTop = high;
State1 = true;
CurrState = 1;
end
else begin
State1 = false;
State2 = true;
CurrState = 2;
end;
end;
end
else begin #{ Using LoFirst }
if State4 then begin
if low < BoxBtm then begin
BoxBtm = low;
State1 = true;
State4 = false;
CurrState = 1;
end
else begin
if high > BoxTop then begin
State3 = true;
State4 = false;
BoxTop = high;
CurrState = 3;
end
else begin
State4 = false;
State5 = true;
CurrState = 5;
end;
end;
end;
if State3 then begin
if low < BoxBtm then begin
BoxBtm = low;
State1 = true;
State3 = false;
CurrState = 1;
end
else begin
if high > BoxTop then begin
State3 = true;
BoxTop = high;
CurrState = 3;
end
else begin
State3 = false;
State4 = true;
CurrState = 4;
end;
end;
end;
if State2 then begin
if low < BoxBtm then begin
Boxbtm = low;
State1 = true;
State2 = false;
CurrState = 1;
end
else begin
State2 = false;
State3 = true;
BoxTop = high;
CurrState = 3;
end;
end;
if State1 then begin
if low < BoxBtm then begin
BoxBtm = low;
State1 = true;
CurrState = 1;
end
else begin
State1 = false;
State2 = true;
CurrState = 2;
end;
end;
end; #{ END IF HIFIRST OR LOFIRST }
if State5 then begin
DrawBox = true;
EBD = date;
EBT = time;
end;
if DrawBox then begin
TopIdP = TopId;
BtmIdP = BtmId;
LSIdP = LSId;
TopId = TL_New(BBD, BBT, BoxTop, EBD, EBT, BoxTop);
BtmId = TL_New(BBD, BBT, BoxBtm, EBD, EBT, BoxBtm);
LSId = TL_New(BBD, BBT, BoxBtm, BBD, BBT, BoxTop);
TL_SetSize(TopId,굵기);
TL_SetSize(BtmId,굵기);
TL_SetSize(LSId,굵기);
TL_SetSize(RSId,굵기);
if ShowAll == false then begin
if TopIdP <> -1 then TL_Delete(TopIdP);
if BtmIdP <> -1 then TL_Delete(BtmIdP);
if LSIdP <> -1 then TL_Delete(LSidP);
end;
if HiFirst then begin
TL_SetColor(TopId, 상승);
TL_SetColor(BtmId, 상승);
TL_SetColor(LSId, 상승);
end
else begin
TL_SetColor(TopId, 하락);
TL_SetColor(BtmId, 하락);
TL_SetColor(LSId, 하락);
end;
State1 = false;
State2 = false;
State3 = false;
State4 = false;
State5 = false;
DrawBox = false;
ValidBox = true;
end;
if ValidBox then begin
UpBand = BoxTop;
DnBand = BoxBtm;
ValidBox = false;
NewBox = true;
BoxTop = high;
BoxBtm = low;
end;
if HiFirst then
TextId = Text_New(date, time, high * 1.0005, NumToStr(CurrState, 0));
else
TextId = Text_New(date, time, low * 0.9995, NumToStr(CurrState, 0));
..............................................................................
2번 지표를 실행하다 보면 화면에 1,2,3,4,5 라고 나타나는데 보기 너무 불편하더라구요.
숫자들 안보이게 해주세요
그리고 박스 상단 가격과 하단 가격이 챠트상에 나타날수 있게 해주세요 (박스 상하단 주위에 자동적으로 뜰수 있게) 부탁 드립니다
3.
input : MACDP1(12),MACDP2(26),MACDP3(9),WmaP1(10),WMAP2(20),STo1(10),Sto2(5);
var1 = macd(MACDP1,MACDP2);
var2 = ema(var1,MACDP3);
var3 = Wma(C,wmaP1);
var4 = wma(c,wmaP2);
var5 = StochasticsK(sto1,sto2);
if var1 > var2 and var3 > var4 and var5 > 50 And
(crossup(var1,var2) or crossup(var3,var4) or crossup(var5,0)) Then
buy();
if var1 < var2 and var3 < var4 and var5 < 50 And
(CrossDown(var1,var2) or CrossDown(var3,var4) or CrossDown(var5,0)) Then
sell();
상기 시스템식에 아래 지표를 결합 시키고 싶네요
지표 내용은 rsi 50이상이면 매수 50이하면 매도 입니다.
상기시스템식과 아래 지표를 결합해 주세요
Input : Period(14);
var : RSIV(0);
RSIV = RSI(Period);
if RSIV >= 50 Then
Plot1(RSIV, "RSI",RED);
Else
plot1(RSIV,"RSI",blue);
PlotBaseLine1(50);
너무 많은 질문을 드린것 같아 죄송합니다
감사합니다
2015-12-08
148
글번호 93130
답변완료
지표요청 드립니다
* 월봉,주봉,일봉 직선요청드립니다.(선이 3개가 나와야 합니다. 겹치는선 있을수 있습니다)
월봉: 해당전월의 평균가
주봉: 해당전주의 평균가
일봉: 3일 펑균가
▶ 평균가기준:싯가+종가/2
▶ 2분봉 으로 매매 하는데요.....오늘 실적은 반영 안되고 하고
전일 실적 까지 월봉,주봉,일봉 3개의 평균봉 직선이 필요 합니다
(그래프에 기준선 직선으로 표시)
▶ 변수는 3개다 만들어주세요(월봉(3), 주봉(5), 일봉(5) 조정해가면서 쓰게요...)
→ 월봉(3): 3개월 평균가 모두합 / 3
→ 주봉(5): 5개주 평균가 모두합 / 5
→ 일봉(5): 5일간 평균가 모두합 / 5
* DataCompress
차트에 적용된 데이터의 주기를 반환
(틱봉 :0, 초봉:1, 분봉:2, 일봉:3, 주봉:4, 월봉:5,)
이걸로 써야 하나요? 아니면
* if DayOfWeek(sdate) < DayOfWeek(sdate[1]) Then 이걸로 써야 하나요?
많은 도움 고맙습니다!
2015-12-07
127
글번호 93129
답변완료
문의
plot1(test, "test",darkmagenta,def,2);
로 하면 에러가 납니다
plot1(test, "test",Lmagenta,def,2);
로 하면 에라가 안납니다
yes 도움말 파일에 색상예약어로 darkmagenta가 있는데
에라 나는 이유는 뭔가요??
2015-12-07
105
글번호 93128
오늘도수익 님에 의해서 삭제되었습니다.
2015-12-07
11
글번호 93127
답변완료
급하게 문의 하나 드립니다.
아래와 같은 내용으로 지난 주 문의 드린 적이 있었는데,
약간의 수정이 필요 할 것 같아서 번거롭지만 다시 한번 질문 드립니다.
--------------------------------------------------------------------------------------
해외선물 크루드오일 10분봉 서울시간 기준.
21:00 시가 ~ 22:00종가 까지 움직인 폭을 A라고 하였을 때,
(예> 21:00 시가 -> 40.50, 22:00 종가 -> 41.00이면 움직인 폭은 0.50이므로 A=0.50)
21:00 시가 ~ 22:00종가 기준의 최고점에서 위로 변동폭 A(0.50)만큼 돌파하면 그 지점에서 매수진입
21:00 시가 ~ 22:00종가 기준의 최저점에서 아래로 변동폭 A(0.50)만큼 돌파하면 그 지점에서 매도진입
(예> 21시~22시 사이 최고점이 41.00이고 최저점이 40.00이라고 할 경우, 최고점인 41.00에서 0.50위인 41.50에 매수로 진입.
반대로 매도의 경우 최저점인 40.00에서 0.50 아래인 39.50에 매도로 진입합니다.)
이익실현과 손절은 21시~22시 사이 움직인 폭인 A(0.50P)를 기준으로 잡습니다.
매매는 하루1회. 이익실현, 손절이 되지않은 경우 밤 12시 청산입니다.
복잡하지만 최대한 풀어서 설명드렸으니 정확한 수식 좀 부탁 드리겠습니다.
--------------------------------------------------------------------------------------
아 그리고 수식 밑에 주석도 좀 달아주시면 정말 감사감사 하겠습니다.
2015-12-07
158
글번호 93126