커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
7469
글번호 230811
지표
답변완료

수식 문의합니다

수식문의 합니다 1) 5일선이 20일선 골드크로스 되면 5일선 -1틱에서 매수 진입 신호 익절 청산 10틱 손절 청산 6틱 본절 청산 4틱 수익 후 매수가 까지 내려 오면 자동청산 2) 5일선이 20일선 데드크로스 되면 5일선 +1틱에서 매도 진입 신호 익절 청산 10틱 손절 청산 6틱 본절 청산 4틱 수익 후 매도가 까지 올라 오면 자동청산 3) 현재가 기준으로, price channel의 TOP선이 우상향 했고, BOP 선이 우상향하면 현재가가 BOP선 가격까지 내려오면 매수 진입 신호 익절 청산 25틱 손절 청산 15틱 본절 청산 매수진입 후 12틱 수익 발생 후 다시 본절가까지 내려오면 자동청산 4) 현재가 기준으로, price channel의 TOP선이 우하향 했고, BOP 선이 우하향하면 현재가가 TOP선 가격까지 올라오면 매도 진입 신호 익절 청산 25틱 손절 청산 15틱 본절 청산 매수진입 후 12틱 수익 발생 후 다시 본절가까지 내려오면 자동청산 총4개의 수식 부탁드립니다 수고하세요
프로필 이미지
회원
2015-04-17
168
글번호 85150
시스템
답변완료

재질문입니다.

안녕하세요. 질문에 답변이 달렷으나 종가 부분이 빠져있네요. 1.질문내용과 답변 아래에 다시올립니다.종가도 넣어주십시요. 제가 수식을 넣어보니 33분봉종가에 표시가 되네요. 번거롭더라도 이프랜드 글로벌에서 종가가 바르게 표시되는지 확인좀 부탁합니다. 2. 확인해보니 해외선물 자정전후 30분봉값이 맞지가 않더군요 날이 바뀌면서 그런건진 몰라도 이것도 수정좀 부탁합니다. 3. 30분과 60분 두가지를 3분에서 볼수있는것도 부탁합니다. 4.바로아래는 수식지왕님의 수식인데 해선에 적용하면 해선 시작시간이 7시15분 때문인지 7시30분 8시 등 지난30분에 고저가를 지난자리에 추세선으로 표시가 되야하는데 7시45분 8시15분 이런식으로 아침에 시작할때부터 자정까지 맞지가 않네요 수정좀 부탁합니다. 가능하다면 추세선말고 표시할수있다면 그것도 좋고요, 시작시간을 입력하거나 하는걸로 해주시면 좋겟읍니다.(종목이 많아서요) Input:분봉(30); Var:HH(0),LL(0),TL1(0),TL2(0),TL3(0),TL4(0); Value1 = 분봉/BarInterval; Value2 = DayIndex()%Value1; If Value2 == 0 Then { HH = H; LL = L; } Else { HH = Max(HH,H); LL = Min(LL,L); } If Value2 == Value1 - 1 or time == iff(CodeCategory()<3,150000,151500) then { TL1 = TL_New(Date[Value2],sTime[Value2],LL,Date[Value2],sTime[Value2],HH); TL2 = TL_New(Date[Value2],sTime[Value2],HH,Date,sTime,HH); TL3 = TL_New(Date[Value2],sTime[Value2],LL,Date,sTime,LL); TL4 = TL_New(Date,sTime,LL,Date,sTime,HH); } 수고하십시요. 안녕하세요 예스스탁입니다. 1. input : Atime(30); var : TF(0),HH(0),HH1(0),LL(0),LL1(0); TF = TimeToMinutes(stime)%Atime; if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) Then{ HH = H; LL = L; HH1 = HH[1]; LL1 = LL[1]; } if H > HH Then HH = H; if L < LL Then LL = L; plot1(HH1); plot2(LL1); 2. 해당 부분은 해당 선물사의 체계이므로 따로 조정이 되지 않습니다. 도움을 드리지 못해죄송합니다. 즐거운 하루되세요 > 바닥차기 님이 쓴 글입니다. > 제목 : 30분봉차트 > 안녕하세요 해외선물 3분차트에서 직전30분봉의 고가 저가 종가의 가격을 현재진행중인 30분동안 3분차트에 선으로 표시되게 부탁합니다. 현재시간이 23시6분이라면 직전30분봉의(22시30분부터 23시까지) 고저종가를 현채 3분차트에(30분간) 표시하게 바랍니다. 이런식으로 해외선물에서 장시작후 매30분간격으로 장마감까지 수식부탁합니다. 한가지 질문이 있는데요 한국투자증권의 이프랜드 글로벌 쓰고있는데 이건 봉의 시간을 찍어보면 완성시간이던데 예스트레이더는 봉시간이 시작시간입니다.이프랜드 봉의 시간을 예트처럼 시작시간으로 바꿀순 없나요? 수고하세요
프로필 이미지
바닥차기
2015-04-19
211
글번호 85149
지표
답변완료

시스템식 문의두립니다.

안녕하세요.. 다음과 같은 수식을 문의드립니다.. 1.highest, losest 함수를 이용하여 현재값이 전 10봉의 고가값[highest(h,10)]을 돌파하면 매수하고, 매수후 1포인트 상승하면 매수청산 2. 현재값이 전 10봉의 저가값[lowhest(L,10)]을 붕괴하면 매도 매도후에 1포인트 하락하면 매도청산 위 조건을 만족하는 수식좀 부탁드립니다.. 수고하세요...
프로필 이미지
bigdeal
2015-04-17
165
글번호 85148
시스템
답변완료

수식문의

늘 감사합니다 아래의 수식이 특정시간대부터 시작하는 시간설정 수식을 부탁합니다. 예를들어 03시30분부터 설정 시작합니다. Plot1(data1(highD(0)-data1(lowD(0))), "고-저"); Plot2(data1(highD(0)-data1(OpenD(0))), "고-시"); Plot3(data1(lowD(0)-data1(OpenD(0))), "저-시"); Plot4(data1(CloseD(0)-data1(OpenD(0))), "저-시"); Plot5(data1(CloseD(0)-data1(highD(0))), "1저"); Plot6(data1(highD(0)-data1(CloseD(0))), "11저"); Plot7(data1(CloseD(0)-data1(lowD(0))), "1고"); Plot8(data1(lowD(0)-data1(CloseD(0))), "11고"); 감사합니다.
프로필 이미지
상암동
2015-04-17
197
글번호 85147
지표
답변완료

검색식 매도식 부탁합니다.

아래에 질문을 올렸는데 제가 질문을 정확하게 하지 못했습니다. 제가 알고싶은 것은 매도식과 검색식 2개인데 20이평이 60이평을 데드하고 난후에 현재 가격이 데드난 자리에서 -50%가 되면 매도신호가 발생하고 예를 들면 20이평이 60이평을 데드크로서한 자리의 가격이50000원 이었는데 여러날이 지나서 데드가격 50000원에서 -50%인 25000원이 되면 매도신호가 발생하는 매도식입니다. 검색식은 위의 매도신호가 발생하는 주식을 찾는 검색식입니다. 종목 검색에서 찾고 싶습니다. 미리 감사드립니다.
프로필 이미지
주식마귀
2015-04-17
199
글번호 85141
검색
답변완료

바차트 수식 좀 알고 싶어요

바차트 수식 좀 알려주세요 고저종은 나오지 않게 일자만 나오게 표시할수 있을까요 상승은 빨강 하락은 파랑으로 할수 있나요? 감사합니다
프로필 이미지
장군777
2015-04-17
164
글번호 85140
지표
답변완료

41386관련입니다.

1. 답변 감사합니다. 2. 이 지표를 장기분봉 (예 180분봉)에 적용하니 참조항목의 분봉 증감분이 누적 되지 않고 분봉수치 자체가 누적되네요. 분봉 차트에서는 참조항목의 분봉 증감분만 누적 되게 수정 부탁 드립니다.
프로필 이미지
예시
2015-04-17
163
글번호 85139
지표
답변완료

MACD를 거꾸로 표현

안녕하세요. MACD 지표를 거꾸로 표현하고 싶습니다. 차트 속성창에 있는 Y축 거꾸로 보기를 했더니, 전 차트와 지표들이 거꾸로 되더라고요. MACD 지표만 거꾸로 볼 수 있게 수식 부탁 드립니다. 감사합니다.
프로필 이미지
회원
2015-04-17
200
글번호 85138
지표
답변완료

지표문의

1.추가문의 RSI다이버전스 주가파동선 고점저점을 이용하여 아래2번 당일파동선처럼으로 변경 할수 없나요 (1)번 지표의 추세선이 잘 표시 안되서요.종목 만 바뀌면... (1). # 지표명 : RSI다이버전스 주가파동선 # 작성자 : 수식지왕 # 블로그 : http://yahoosir.blog.me #==========================================# Input:Period(14),Rsi변동폭(5); Var:j(0),상승(100),하락(-100),양방향(2),추세(0), 파동선(0),Rsi파동선(0),방향(0),RsiV(0),추세선(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0), Rsi고[20](0),Rsi저[20](0),Rsi고Bar[20](0),Rsi저Bar[20](0); RsiV = RSI(Period); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { Rsi고Bar[j] = Rsi고Bar[j] + 1; Rsi저Bar[j] = Rsi저Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 최근 고,저 갱신 #==========================================# If Rsi고[0] <= RsiV || Rsi고[0] == 0 || IsNaN(Rsi고[0]) == True Then { Rsi고[0] = RsiV; Rsi고Bar[0] = 0; } Else Rsi고Bar[0] = Rsi고Bar[0] + 1; If Rsi저[0] >= RsiV || Rsi저[0] == 0 || IsNaN(Rsi저[0]) == True Then { Rsi저[0] = RsiV; Rsi저Bar[0] = 0; } Else Rsi저Bar[0] = Rsi저Bar[0] + 1; If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then { 고[0] = H; 고Bar[0] = 0; } Else 고Bar[0] = 고Bar[0] + 1; If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then { 저[0] = L; 저Bar[0] = 0; } Else 저Bar[0] = 저Bar[0] + 1; #==========================================# # 추세방향 결정 #==========================================# If Rsi저[0][1] + Rsi변동폭 > RsiV[1] && Rsi저[0][1] + Rsi변동폭 <= RsiV Then 방향 = 상승; If Rsi고[0][1] - Rsi변동폭 < RsiV[1] && Rsi고[0][1] - Rsi변동폭 >= RsiV Then 방향 = 하락; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 방향[1] == 하락 && 방향 == 상승 Then { For j = 18 DownTo 1 { Rsi저[j+1] = Rsi저[j]; Rsi저Bar[j+1] = Rsi저Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RsiV; Rsi저Bar[0] = 0; Rsi고[0] = RsiV; Rsi고Bar[0] = 0; 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; 고[0] = H; 고Bar[0] = 0; } Else If 방향[1] == 상승 && 방향 == 하락 Then { For j = 18 DownTo 1 { Rsi고[j+1] = Rsi고[j]; Rsi고Bar[j+1] = Rsi고Bar[j]; 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RsiV; Rsi고Bar[0] = 0; Rsi저[0] = RsiV; Rsi저Bar[0] = 0; 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; 저[0] = L; 저Bar[0] = 0; } Else If 방향[1] == 하락 && 방향 == 하락 Then { If Rsi고[1] < Rsi고[0] && Rsi고[0][1] - Rsi변동폭 <= RsiV[1] && Rsi고[0][1] - Rsi변동폭 > RsiV Then { Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RsiV; Rsi고Bar[0] = 0; } If 고[1] < 고[0] && 고[0] > H Then { 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; } } Else If 방향[1] == 상승 && 방향 == 상승 Then { If Rsi저[1] > Rsi저[0] && Rsi저[0][1] + Rsi변동폭 >= RsiV[1] && Rsi저[0][1] + Rsi변동폭 < RsiV Then { Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RsiV; Rsi저Bar[0] = 0; } If 저[1] > 저[0] && 저[0] < L Then { 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; } } #==========================================# # 지표식 출력 #==========================================# If Rsi파동선[1] != Rsi파동선 Then Plot1(파동선); //적당껏 수평이동 Else If LastBarOnChart == 1 Then plot1(Iff(방향 == 상승,고[0],저[0])); #상승 다이버전스 : 주가의 저점 하락 + 지표의 저점 상승 If 저[2] > 저[1] && Rsi저[2] < Rsi저[1] Then { 추세선 = (저[1]-저[2])/(저Bar[2]-저Bar[1])*저Bar[2] + 저[2]; Plot2(추세선); } #하락 다이버전스 : 주가의 고점 상승 + 지표의 고점 하락 if 고[2] < 고[1] && Rsi고[2] > Rsi고[1] Then { 추세선 = (고[1]-고[2])/(고Bar[2]-고Bar[1])*고Bar[2] + 고[2]; Plot3(추세선); } (2).//당일파동선// Input:전환율(0.5),선두께(4),선색(green); //전환율 또는 변동률 Var:j(0),upTr(100),dnTr(-100),upRate(0),dnRate(0),trnd(0), date11(0),date12(0),time11(0),time12(0),TL1(0), date21(0),date22(0),time21(0),time22(0),TL2(0); Array:hiVal[2](0),loVal[2](0),hiBar[2](0),loBar[2](0); upRate = 1 + (전환율/100); //상승률 dnRate = 1 - (전환율/100); //하락률 loBar[1] = loBar[1] + 1; //전저점의 위치. 현재 봉으로부터 떨어져 있는 거리 hiBar[1] = hiBar[1] + 1; //전고점의 위치 if DayIndex == 0 then { if trnd == upTr then { date11 = date[loBar[1]]; //추세선 시작일 time11 = stime[loBar[1]]; //추세선 시작시간 Value11 = loVal[1]; //추세선 시작가격 } else { date11 = date[hiBar[1]]; //추세선 시작일 time11 = stime[hiBar[1]]; //추세선 시작시간 Value11 = hiVal[1]; //추세선 시작가격 } date12 = date[1]; //추세선 종료일 time12 = stime[1]; //추세선 종료시간 Value12 = C[1]; //추세선 종료가격 TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); //TL_New는 신규 추세선을 그려주는 함수 TL_SetSize(TL1,선두께); TL_SetColor(TL1,선색); hiVal[1] = O; hiBar[1] = 0; loVal[1] = O; loBar[1] = 0; hiVal[0] = C; hiBar[0] = 0; loVal[0] = C; loBar[0] = 0; trnd = 0; if hiVal[1] * dnRate > C then trnd = dnTr; else if loVal[1] * upRate < C then trnd = upTr; } if hiVal[0] <= C then { hiVal[0] = C; hiBar[0] = 0; } else { hiBar[0] = hiBar[0] + 1; } if loVal[0] >= C then { loVal[0] = C; loBar[0] = 0; } else { loBar[0] = loBar[0] + 1; } if trnd != dnTr && hiVal[0] * dnRate > C then trnd = dnTr; else if trnd != upTr && loVal[0] * upRate < C then trnd = upTr; if trnd[1] != dnTr and trnd == dnTr then { //상승추세였다가 하락추세로 바뀌었다면 hiVal[1] = hiVal[0]; //새로운 전고점에 현재 고점을 대입 hiBar[1] = hiBar[0]; hiVal[0] = C; //전고점이 확정되었으므로 전고점 이후 최고가는 현재봉의 고가 hiBar[0] = 0; loVal[0] = C; loBar[0] = 0; //전고점이 새로 생긴 것이니까 전저점에서 전고점까지 추세선을 긋는다. date11 = date[loBar[1]]; //추세선 시작일. 전저점의 날짜 time11 = stime[loBar[1]]; //추세선 시작시간 Value11 = loVal[1]; //추세선 시작가격 date12 = date[hiBar[1]]; //추세선 종료일. 전고점의 날짜 time12 = stime[hiBar[1]]; //추세선 종료시간 Value12 = hiVal[1]; //추세선 종료가격 TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); //TL_New는 신규 추세선을 그려주는 함수 } if trnd[1] == dnTr and trnd == dnTr and //추세는 하락 상태에서 바뀌지 않았는데 hiVal[1] < hiVal[0] and //전고점보다 더 높은 고점이 출현했다면 hiVal[0] * dnRate > C then { hiVal[1] = hiVal[0]; //전고점을 현재의 고점으로 바꿔준다. hiBar[1] = hiBar[0]; hiVal[0] = C; hiBar[0] = 0; loVal[0] = C; loBar[0] = 0; //전고점이 추가된 게 아니고 바뀐 것이므로 종료일,종료시간,종료가격만 바꿔준다. date12 = date[hiBar[1]]; //추세선 종료일 time12 = stime[hiBar[1]]; Value12 = hiVal[1]; TL_SetEnd(TL1, date12,time12,Value12); //TL_SetEnd는 기존추세선의 종료지점을 변경해주는 추세선 함수이다. //TL_Delete 함수를 써서 직전의 추세선을 지우고 다시 TL_New로 추세선을 추가해도 된다. } if trnd[1] != upTr and trnd == upTr then { //추세가 하락에서 상승으로 바뀌었을 경우 loVal[1] = loVal[0]; loBar[1] = loBar[0]; loVal[0] = C; loBar[0] = 0; hiVal[0] = C; hiBar[0] = 0; date11 = date[hiBar[1]]; time11 = stime[hiBar[1]]; Value11 = hiVal[1]; date12 = date[loBar[1]]; time12 = stime[loBar[1]]; Value12 = loVal[1]; TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); } if trnd[1] == upTr and trnd == upTr and //추세는 상승을 유지하고 있는데 loVal[1] > loVal[0] and //전저점보다 낮은 저가가 출현했다면 loVal[0] * upRate < C then { loVal[1] = loVal[0]; //직전의 전저점만 바꿔준다. loBar[1] = loBar[0]; loVal[0] = C; loBar[0] = 0; hiVal[0] = C; hiBar[0] = 0; date12 = date[loBar[1]]; time12 = stime[loBar[1]]; Value12 = loVal[1]; TL_SetEnd(TL1, date12,time12,Value12); } TL_SetSize(TL1,선두께); TL_SetColor(TL1,선색); if trnd == upTr then { date21 = date[loBar[1]]; //추세선 시작일 time21 = stime[loBar[1]]; //추세선 시작시간 Value21 = loVal[1]; //추세선 시작가격 } else { date21 = date[hiBar[1]]; //추세선 시작일 time21 = stime[hiBar[1]]; //추세선 시작시간 Value21 = hiVal[1]; //추세선 시작가격 } date22 = date; //추세선 종료일 time22 = stime; //추세선 종료시간 Value22 = C; //추세선 종료가격 TL_Delete(TL2); TL2 = TL_New(date21,time21,Value21,date22,time22,Value22); TL_SetSize(TL2,선두께); TL_SetColor(TL2,선색); 2.그럼 수고하세요
프로필 이미지
성공예견
2015-04-17
294
글번호 85137
지표