커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6174
글번호 230811
답변완료
문의드립니다.
선물차트 기준으로 문의드립니다.
Chaikin's Oscillator 지표에 이동평균선 기간값처럼 5,20,60처럼 기간값을 넣을 수 있는지요?
혹시 가능하다면 기간값을 수정가능하게 부탁드립니다.
항상 감사드립니다. 수고하세요!!!
2018-03-09
239
글번호 117275
답변완료
수식부탁드립니다
*매번 미안합니다* 아래수식에서
파동마다 각각의 TL2,TL4 수평선들이 넘 짧아서요
1.각각의 TL2수평선들을 상승봉이나올때 까지 선연장
2.각각의 TL4수평선들을 하락봉이나올때 까지 선연장
부탁드립니다 (수고하세요)
Input:length(6);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),Text1(0),처리구분("");
var : TL2(0),TL3(0),TL4(0),TL5(0),T(0),B(0),S(0),cnt(0),TL6(0),TL7(0),TL8(0),TL9(0);
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
T = 1;
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
#Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],
#NumToStr(고점[1,1],2));
#Text_SetStyle(Text1, 2, 1);
}
}
If 처리구분 == "저점처리" Then
{
T = -1;
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],
sDate[eBar],sTime[eBar],저점[1,1]);
#Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],
# NumToStr(저점[1,1],2));
#Text_SetStyle(Text1, 2, 0);
}
}
TL_SetSize(TL1,3);
TL_SetColor(TL1,CYAN);
if T == -1 and T[1] != -1 Then{
TL2 = TL_New(sdate[index-고점[2,2]],stime[index-고점[2,2]],고점[2,1],
sdate[index-고점[1,2]],stime[index-고점[1,2]],고점[2,1]);
TL_SetSize(TL2,3);
TL_SetColor(TL2,BLACK);
TL_Delete(TL3);
TL3 = TL_New(sdate[index-고점[1,2]],stime[index-고점[1,2]],고점[1,1],sdate,stime,고점[1,1]);
TL_SetExtRight(TL3,true);
TL_SetSize(TL3,3);
TL_SetColor(TL3,BLACK);
B = 0;
for cnt = index-고점[1,2] downto 0
{
if B == 0 and C[cnt] < O[cnt] Then
{
B = 1;
S = cnt;
if H[cnt] >= 고점[1,1] Then
B = 2;
}
}
TL_Delete(TL8);
TL_Delete(TL9);
if B >= 1 Then{
TL8 = TL_New(sdate[S+1],stime[S+1],O[S],Sdate,stime,O[S]);
TL_SetExtRight(TL8,true);
TL_SetColor(TL8,BLUE);
}
if B == 2 Then{
TL9 = TL_New(sdate[S+1],stime[S+1],O[S],Sdate,stime,O[S]);
TL_SetExtRight(TL9,true);
TL_SetColor(TL9,BLUE);
}
}
if T == 1 and T[1] != 1 Then{
TL4 = TL_New(sdate[index-저점[2,2]],STime[index-저점[2,2]],저점[2,1],
sdate[index-저점[1,2]],stime[index-저점[1,2]],저점[2,1]);
TL_SetSize(TL4,3);
TL_SetColor(TL4,BLACK);
TL_Delete(TL5);
TL5= TL_New(sdate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1],sdate,stime,저점[1,1]);
TL_SetExtRight(TL5,true);
TL_SetSize(TL5,3);
TL_SetColor(TL5,BLACK);
B = 0;
for cnt = index-저점[1,2] downto 0
{
if B == 0 and C[cnt] > O[cnt] Then
{
B = 1;
S = cnt;
if L[cnt] <= 저점[1,1] Then
B = 2;
}
}
TL_Delete(TL6);
TL_Delete(TL7);
if B >= 1 Then{
TL6 = TL_New(sdate[S+1],stime[S+1],O[S],Sdate,stime,O[S]);
TL_SetExtRight(TL6,true);
TL_SetColor(TL6,RED);
}
if B == 2 Then{
TL7 = TL_New(sdate[S+1],stime[S+1],L[S],Sdate,stime,L[S]);
TL_SetExtRight(TL7,true);
TL_SetColor(TL7,RED);
}
}
if T == 1 and B == 0 and C > O Then{
B = 1;
TL6 = TL_New(sdate[1],stime[1],O,Sdate,stime,O);
TL_SetExtRight(TL6,true);
TL_SetColor(TL6,RED);
if L <= 저점[1,1] Then{
TL7 = TL_New(sdate[S+1],stime[S+1],L[S],Sdate,stime,L[S]);
TL_SetExtRight(TL7,true);
TL_SetColor(TL7,RED);
}
}
if T == -1 and B == 0 and C < O Then{
B = 1;
TL8 = TL_New(sdate[1],stime[1],O,Sdate,stime,O);
TL_SetExtRight(TL8,true);
TL_SetColor(TL8,blue);
if H >= 고점[1,1] Then{
TL9 = TL_New(sdate[1],stime[1],H,Sdate,stime,L);
TL_SetExtRight(TL9,true);
TL_SetColor(TL9,RED);
}
}
2018-03-09
255
글번호 117271
답변완료
현재가 - 전일중간값 Text
안녕하세요
text 작성 문의드립니다.
연결선물 분봉에서
다음 수식은 '봉완성기준 당일중간값 - 전일중간값'의 text 수식입니다.
Tx1 = Text_New(D1,T1,(HH1+LL1)/2,NumToStr((HH1+LL1)/2,3)+" /"+" 전일비("+NumToStr(((HH+LL)-(HH1+LL1))/2,3)+")");
이를 '봉완성기준 분봉종가 - 전일중간값'으로 수정하려고 하는데
다음과 같이 수정하니까 이상한 수치가 나옵니다.
어디가 잘못된 것인지 부탁드립니다.
Tx1 = Text_New(D1,T1,(HH1+LL1)/2,NumToStr((HH1+LL1)/2,3)+" /"+" 전일비("+NumToStr((Close-(HH1+LL1))/2,3)+")");
감사합니다 !!
2018-03-09
250
글번호 117270
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
코딩 부탁드립니다.
'장시작후 3개봉까지의 봉 중에 n길이 이상의 봉이 나타났을 때'
2.
코딩 변환 부탁드립니다.
Inputs:
ReferenceAvgLen( 20 ),
TargetAvgLen( 10 ) ;
variables:
Reference_SMA( 0, data2 ),
Reference_Diff( 0, data2 ),
Reference_Vol( 0, data2 ),
Target_SMA( 0 ),
Target_Diff( 0 ),
Target_Vol( 0 ) ;
Reference_SMA= Average(Close data2, ReferenceAvgLen) data2 ;
Reference_Diff = close data2 - Reference_SMA ;
Reference_Vol = Reference_Diff/(2 * StandardDev( Reference_
SMA,ReferenceAvgLen,2));
if Reference_Vol > 1 and close > Average( close, TargetAvgLen)
then
buy next bar at market ;
if Reference_Vol < -1 and (close - Average(Close,TargetAvgLen))
/(2*StdDev( Average(Close, TargetAvgLen),TargetAvgLen)) < 1
then
sell next bar at market ;
Inputs:
ReferenceAvgLen( 20 ),
TargetAvgLen( 10 ) ;
variables:
Reference_SMA( 0, data2 ),
Reference_Diff( 0, data2 ),
Reference_Vol( 0, data2 ) ;
Reference_SMA= Average(Close data2, ReferenceAvgLen) data2 ;
Reference_Diff = close data2 - Reference_SMA ;
Reference_Vol = Reference_Diff/(2 * StandardDev( Reference_
SMA,ReferenceAvgLen,2));
PLOT1(Reference_Vol,”RefVol”);
Plot2(1);
Plot3(-1);
3. 56993 재질문 답변 부탁드립니다.
2018-03-09
249
글번호 117256
답변완료
수식변경
아래의 수식을 변경부탁드립니다.
늘 감사드립니다.
중심=tema(c,중심선);
이평=tema(c,이평선);
중심
중심=tema(c,중심선);
이평=tema(c,이평선);
대칭=중심*2-이평;
이격=이평-중심;
중심+이격*(비율/100)
중심=tema(c,중심선);
이평=tema(c,이평선);
이격=이평-중심;
중심-이격*(비율/100)
2018-03-09
277
글번호 117255
답변완료
전일비 대비 미결증감 수식 문의
input : period1(0);
plot1(period1,"기준선");
if dayoi(0)-dayoi(1) > 0 Then
plot2(dayoi(0)-dayoi(1),">0");
Else
plot3(dayoi(0)-dayoi(1),"<0");
------------------
위의 미결제증감 수식을 사용하고 있습니다.
그런데 오늘 같은 날 "지표"의 미결제증감 수치와 "현재가" 미결제증감 수치가 다르네요
아마도 어제가 만기일이라서 지표상에서 전일미결제를 0으로 처리하고 계산되는 것 같아요
현재가에는 전일미결제가 225,157로 되어있네요
만기일 다음에도 지표값이 현재가창 값과 같게 하고 싶은데 할 수 있을까요?
2018-03-09
244
글번호 117251
답변완료
함수변환 요청
안녕하세요?
함수변환 요청드립니다.
아래는 시그널메이커(한국금융IT社)에서 사용했던 전략입니다.
예스트레이더(한국투자증권)에서 사용할 수 있도록 함수 변환요청드립니다.
-매수: 60분봉 기준으로 60분봉 종가가 볼린저밴드를 하향 돌파하면 익봉 시가에 매수진입
-매수청산: 현재가가 20일이평선 터치시 즉시 매수청산
-매도: 60분봉 기준으로 60분봉 종가가 볼린져밴드를 상향 돌파하면 익봉 시가에 매도진입
-매도청산: 현재가가 20일이평선 터치시 즉시 매도청산
Params : bolPeriod(20), bolSTD(2);
Vars : SP(0);
Vars : SellPrice(0), BuyPrice(0);
Vars : bolMid(0), bolUP(0), bolDN(0);
SP = SignalPosition;
bolMid = AvgFast(C, bolPeriod);
bolUp = bolMid + bolSTD * StandardDev(C, bolPeriod, 1);
bolDn = bolMid - bolSTD * StandardDev(C, bolPeriod, 1);
If CrossUp(C, bolUP) Then SellPrice = C;
If CrossDown(C, bolDN) Then BuyPrice = C;
IF SellPrice > 0 And BuyPrice > 0 Then
Begin
If SP = 0 Then
Begin
If C > bolUP Then Sell("S", Atstop, SellPrice);
If C < bolDN Then Buy("B", Atstop, BuyPrice);
End;
End;
If SP = -1 And C > bolMid Then ExitShort("EXS", Atlimit, bolMid);
If SP = 1 And C < bolMid Then ExitLong("EXL", Atlimit, bolMid);
2018-03-09
270
글번호 117250
답변완료
시스템식 부탁드립니다.
항상 도움 주셔서 감사합니다.
아래조건의 시스템식 부탁드립니다.
-----------------------------------------------------------------------
차트환경 : 틱차트 100
보조지표 : 100일 이동평균선
시스템 매매조건1:
매수 조건 : 1. 틱캔들이 100일 이동평균선을 상향 돌파하면 매수
2. 단, 과거 5분동안 틱캔들이 5개 이상 발생한 경우에만 매수
매도 조건 : 1. 틱캔들이 100일 이동평균선을 하향 돌파하면 매도
2. 단, 과거 5분동안 틱캔들이 5개 이상 발생한 경우에만 매도
-----------------------------------------------------------------------
차트환경 : 틱차트 100
시스템 매매조건2:
매수 조건 : 1. 과거 30분동안의 고점을 틱캔들이 상향 돌파하면 매수
2. 단, 과거 5분동안 틱캔들이 5개 이상 발생한 경우에만 매수
매도 조건 : 1. 과거 30분동안의 저점을 틱캔들이 하향 돌파하면 매도
2. 단, 과거 5분동안 틱캔들이 5개 이상 발생한 경우에만 매도
-----------------------------------------------------------------------
차트환경 : 틱차트 100
지표 : 이동평균선 120, 이동평균선 30
시스템 매매조건3:
매수 조건 : 1. 캔들이 120 이평의 10% 이상 상승돌파 후 120 이평의 5% 이내로 하락 후
캔들이 다시 120 이평 상승 돌파한 이후 최고점을 돌파 할 경우 매수
(캔들이 120 이평 아래로 하락시 매수안함)
매도 조건 : 1. 캔들이 120 이평의 10% 이상 하락돌파 후 120 이평의 5% 이내로 상승 후
캔들이 다시 120 이평 하락 돌파한 이후 최저점을 돌파 할 경우 매도
(캔들이 120 이평 위로 상승시 매도안함)
아래 그림 참조 부탁드립니다.(노란선 돌파시 진입)
도움 부탁드립니다.
2018-03-09
246
글번호 117249
답변완료
문의드립니다
틱차트 에서
아래의 4개의 시간구간마다 매매횟수를 제어하고싶습니다
매시간마다
00분에서 01분 까지의 누적거래량 A이상일때
00분에서 05분 까지 매매횟수 2회 부여
매시간마다
15분에서 16분 까지의 누적거래량 A이상일때
15분에서 20분 까지 매매횟수 2회 부여
매시간마다
30분에서 31분 까지의 누적거래량 A이상일때
30분에서 35분 까지 매매횟수 2회 부여
매시간마다
45분에서 46분 까지의 누적거래량 A이상일때
45분에서 50분 까지 매매횟수 2회 부여
감사합니다
2018-03-09
249
글번호 117248