커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

중심선지표식2 수정

항상 감사드립니다 아래의 지표식을 전일종가,전일고가,전일저가의 데이타를 일부구간에서 산출하여(5분봉에서 전일종가근처의 데이타) 입력하여 당일치의 지표식만 표현하고자 합니다.. input : 전일고가(100),전일저가(90),전일종가(95); var : 중심선(0),aa(0),상단선(0),하단선(0); if bdate != bdate[1] then { 중심선 = (전일고가+전일저가)/2; aa = max(abs(전일종가-전일저가),abs(전일고가-전일종가)); 상단선 = 중심선+aa; 하단선 = 중심선-aa; } Else { if H >= 상단선+aa then { 중심선 = (h+하단선)/2; aa = max(abs(h-중심선),abs(중심선-하단선)); 상단선 = 중심선+aa; 하단선 = 중심선-aa1; } if L <= 상단선-aa then { 중심선 = (상단선+l)/2; aa = max(abs(상단선-중심선),abs(중심선-l)); 상단선 = 중심선+aa; 하단선 = 중심선-aa; } } plot1(중심선); plot2(상단선); plot3(하단선); 감사합니다
프로필 이미지
조민철
2018-06-08
208
글번호 119575
지표

비슬짱 님에 의해서 삭제되었습니다.

프로필 이미지
비슬짱
2018-06-07
4
글번호 119574
시스템
답변완료

문위드립니다

양봉종가에 매수신호,,음봉종가에 매도신호 부탁드립니다
프로필 이미지
이공주7
2018-06-07
221
글번호 119571
시스템

엘라 님에 의해서 삭제되었습니다.

프로필 이미지
엘라
2018-06-07
1
글번호 119570
지표
답변완료

수식수정부탁드립니다.

아래는 이미 답변받은 수식인데 설명이 부족하여 원하는수식의 작성이 안됐습니다. if dayopen >= value1 and idx <= ndate+5 Then 여기서 아마도 시초가가 value1 이상인 경우에만 동작해서 그런것 같은데 1차매수가 진행된 날에 한해서만 2차매수가 진행되며 1차매수 후 그다음날 시초가가 value1이하이면서 2차매수 가격대가 오면 매수주문이 안됩니다. 설명이 미흡해서 그런것 같습니다. 죄송합니다. 다시 조건을 적어보면... ================================================================================== 5거래일이내에 가장 최근의 전일종가대비 10%이상 상승마감한 캔들에서 전일종가 < 당일저가 인경우 전일종가~당일종가까지 4등분선 전일종가 > 당일저가 인경우 당일저가~당일종가까지 4등분선을 기준으로 시초가가 1번선 이상일경우 2번선에서 매수, 3%수익실현 2번선에서 매수 후 하락시 3번선에서 추가매수, 1.5% 수익실현 (당일에만 추가매수가 아닌 거래일이 지나더라도 5거래일 이내라면 추가매수) 2차매수까지 진행된경우 4번선에서 손절 시초가가 1번선 아래, 2번선 이상인경우는 3번선에서 매수 ,3%수익실현 3번선에서 매수후 하락시 4번선에서 추가매수, 1.5% 수익실현 (당일에만 추가매수가 아닌 거래일이 지나더라도 5거래일 이내라면 추가매수) 2차매수까지 진행된경우 5번선에서 손절 2번선에서 한번이라도 매수진행된 경우 2번선은 재진입 금지 3번선에서 한번이라도 매수진행된 경우 3번선은 재진입 금지 ============================================================================== var : idx(0),ndate(0),maxv(0),minv(0),midv(0); if bdate != bdate[1] Then{ idx = idx+1; if DayClose(1) >= DayClose(2)*1.10 Then { ndate = idx; var1 = min(DayLow(1),DayClose(2)); maxv = max(DayClose(1),var1); minv = min(DayClose(1),var1); midv = (maxv+minv)/2; value1 = maxv; value2 = (maxv+midv)/2; value3 = midv; value4 = (midv+minv)/2; value5 = minv; } } if dayopen >= value1 and idx <= ndate+5 Then { if MarketPosition == 0 then buy("b11",atlimit,value2); if MarketPosition == 1 and MaxEntries == 1 Then buy("b12",atlimit,value3); if MarketPosition == 1 and MaxEntries == 2 Then ExitLong("bl1",AtStop,value4); } if dayopen < value1 and dayopen >= value2 and idx <= ndate+5 Then { if MarketPosition == 0 then buy("b21",atlimit,value3); if MarketPosition == 1 and MaxEntries == 1 Then buy("b22",atlimit,value4); if MarketPosition == 1 and MaxEntries == 2 Then ExitLong("bl2",AtStop,value5); } if MarketPosition == 1 Then { if MaxEntries == 1 Then ExitLong("bp1",atlimit,avgEntryPrice*1.03); if MaxEntries == 2 Then ExitLong("bp2",atlimit,avgEntryPrice*1.015); } > 5거래일이내에 가장 최근의 전일종가대비 10%이상 상승마감한 캔들에서 전일종가 < 당일저가 인경우 전일종가~당일종가까지 4등분선 전일종가 > 당일저가 인경우 당일저가~당일종가까지 4등분선을 기준으로 시초가가 1번선 이상일경우 2번선에서 매수, 3%수익실현 2번선에서 매수 후 하락시 3번선에서 추가매수, 1.5% 수익실현 2차매수까지 진행된경우 4번선에서 손절 시초가가 1번선 아래, 2번선 이상인경우는 3번선에서 매수 ,3%수익실현 3번선에서 매수후 하락시 4번선에서 추가매수, 1.5% 수익실현 2차매수까진 진행된 경우 5번선에서 손절하는 수식 부탁드립니다.
프로필 이미지
jba
2018-06-07
268
글번호 119569
시스템
답변완료

부탁드립니다.

1. 58116호와 관련하여, 1분챠트에서 종가가 highest(h,20)[5]를 올라서면 바로 매수하지 말고 이를 기준봉 삼아서 그 이후 종가가 기준봉 삼은 봉의 고가를 넘어서면 매수하고, 종가가 lowest(l,20)[5]를 내려서면 바로 매도하지 말고 이를 기준봉 삼아서 그 이후 종가가 기준봉 삼은 봉의 저가를 내려가면 매도하라는 시스템식을 만드는데 있어서, 예를들면 08시02분에 매수신호가가 먼저 나와 진입하였으면 그 이후 08시 59분까지는 설사 매도 신호가 나와도 진입하지 않고, 다음 09시간대 이후로 넘어가 조건 만족할 때 매도신호가 나올 수 있도록 구현해 주세요, 한마디로 매 시간대마다 매수든 매도든 먼저 진입한 신호가 있을 때에는 그 반대 포지션 신호가 나오더라도 똑 같은 시간대만큼은 신호가 나오지 않도록 해 주세요, 감사합니다.
프로필 이미지
서태공
2018-06-07
215
글번호 119568
시스템
답변완료

시스템식 여쭤봅니다~

수식 여쭤봅니다. 개별종목 1분봉에 적용할려고 합니다. 금액설정하고 싶습니다. 1차 매수는 전일종가에서 -2% ( 설정금액의 50%) 2차 매수는 전일종가에서 -5% ( 설정금액 나머지 50%) 매수가 된 시간 이후부터 이런패턴으로 매도를 하고 싶습니다 매수가1차든 2차까지든 9시20분 전에 일어나면 매도는 당일 오전 9시20분에 전체물량 20% 당일 오전11시20분에 전체물량 25% 당일 오후14시50분에 전체물량 33% 다음날 오전 9시20분에 전체물량 50% 다음날 오전 11시20분에 남은물량 전부 매수가 1차든 2차까지든 11시20분전에 일어나면 당일 오전11시20분에 전체물량 20% 당일 오후14시50분에 전체물량 25% 다음날 오전 9시20분에 전체물량 33% 다음날 오전 11시20분에 남은물량 50% 다음날 오후 14시40분에 남은물량 전부 매수가 1차든 2차까지든 14시40분전에 일어나면 오후 14시40분에 전체물량 20% 다음날 오전 9시20분에 전체물량 25% 다음날 오전 11시20분에 전체물량 33% 다음날 오후 14시40분에 전체물량 50% 다다음날 오전 9시20분에 남은 물량 전부 매수가 1차든 2차까지든 14시40분 이후에 일어나면 다음날 오전 9시20분 전체물량 20% 다음날 오전 11시20분 전체물량 25% 다음날 오후 14시40분 전체물량 33% 다다음날 오전 9시20분 남은 물량 전부 * 당일 시가 또는 당일 고가가 전일종가보다 10% 이상되었다가 흘러내리는 종목은 제외 * 매수는 주가가 전일종가보다 하락할시 1차 매수 2차매수로 두번정도 분할매수를 하고 싶고 * 1차든 2차든 매수가 일어나서 물량이 있으면 시간에 따라 분할매도가 되어 물량이 전부 매도되는 그때까지 재매수가 없었으면 합니다.( 하루 또는 이틀이 될수도 있죠) 그러니까 1차매수 또는 2차매수까지는 한종목당 한번만 허용. * 모든 물량이 매도되는 날에는 그당일에는 다시 매수가에 닿아도 매수가 안일어나게 하고 싶습니다. 감사합니다.
프로필 이미지
부자청년28
2018-06-08
233
글번호 119566
시스템
답변완료

안녕하세요?

안녕하세요? 아래수식에서 고점과 저점의 가격은 숫치로 표시가 되는데요 피보나치 가격도 고저점 처럼 표시하고 싶습니다. 피보나치 38.2 , 50 , 61.8%의 가격을 수치로 표시. 고가,저가가 표시되는 그라인으로 표시되면 좋겠습니다. 고가 1200 ----------------------------------------------- 61.8% 1000 ----------------------------------------------- 50% 800 ----------------------------------------------- 38.2% 저가 바쁘시겠지만 부탁드립니다.(지그재그파동은 수식지왕님 홈피에서 참고했습니다.) 항상 수식지원에 감사드립니다. Input:length(30),줄간격(3),종목자릿수(0); input :BOT(0),t382(38.2),t500(50),t618(61.8),TOP(100); var: T(0),TL31(0),TL32(0),TL33(0),TL34(0),TL35(0); Var:j(0),TL1(0),Text1(0),Text2(0),Text3(0),TL11(0),TL12(0),TL13(0),TL14(0),TL15(0), TL_NewBit(0); // 1:NewLine 2:SetEndLine Array:고[5,4](0),저[5,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# Value1 = HiLoLineZigZag(length,0,고,저,TL_NewBit); If Value1 == 1 Then { // 고점 T = 1; If TL_NewBit == 1 Then { // 신규 TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetColor(TL1,WHITE); TL_SetSize(TL1,3); var1 = 고[2,1]; var2 = 저[1,1]; VAR3 = 저[2,1]; var4 = abs(var1-var2); var5 = abs(var1-var3); TL11 = TL_New(고[2,3],고[2,4],var1-Var4*(BOT/100),저[1,3],저[1,4],var1-var4*(BOT/100)); TL12 = TL_New(고[2,3],고[2,4],var1-var4*(t382/100),저[1,3],저[1,4],var1-var4*(t382/100)); TL13 = TL_New(고[2,3],고[2,4],var1-var4*(t500/100),저[1,3],저[1,4],var1-var4*(t500/100)); TL14 = TL_New(고[2,3],고[2,4],var1-var4*(t618/100),저[1,3],저[1,4],var1-var4*(t618/100)); TL15 = TL_New(고[2,3],고[2,4],var1-var4*(TOP/100),저[1,3],저[1,4],var1-var4*(TOP/100)); # plot11(var11-var14*(t500/100),"Per1%",RED); TL_SetColor(TL11,RED); TL_SetColor(TL12,black); TL_SetColor(TL13,YELLOW); TL_SetColor(TL14,red); TL_SetColor(TL15,yellow); Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr((고[1,1]),종목자릿수)); Text_SetStyle(Text1, 2, 1); Text2 = Text_New(고[1,3],고[1,4],고[1,1]+줄간격*PriceScale,"+"+NumToStr(abs(고[1,1]-저[1,1])/PriceScale,0)); Text_SetStyle(Text2, 2, 1); } If TL_NewBit == 2 Then { // 연장 TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); TL_SetEnd(TL11,저[1,3],저[1,4],var1-var4*(BOT/100)); TL_SetEnd(TL12,저[1,3],저[1,4],var1-var4*(t382/100)); TL_SetEnd(TL13,저[1,3],저[1,4],var1-var4*(t500/100)); TL_SetEnd(TL14,저[1,3],저[1,4],var1-var4*(t618/100)); TL_SetEnd(TL15,저[1,3],저[1,4],var1-var4*(TOP/100)); TL_SetColor(TL11,RED); TL_SetColor(TL12,white); TL_SetColor(TL13,YELLOW); TL_SetColor(TL14,white); TL_SetColor(TL15,yellow); Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr((고[1,1]),종목자릿수)); Text_SetLocation(Text2,고[1,3],고[1,4],고[1,1]+줄간격*PriceScale); Text_SetString(Text2,"+"+NumToStr(abs(고[1,1]-저[1,1])/PriceScale,0)); Text_SetColor(Text2,RED); } } Else If Value1 == -1 Then { // 저점 T = -1; If TL_NewBit == 1 Then { // 신규 TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetColor(TL1,CYAN); TL_SetSize(TL1,3); var1 = 고[1,1]; var2 = 저[2,1]; var3 = 고[2,1]; var4 = abs(var1-var2); var5 = abs(var2-var3); TL11 = TL_New(저[2,3],저[2,4],var1-Var4*(BOT/100),고[1,3],고[1,4],var1-Var4*(BOT/100)); TL12 = TL_New(저[2,3],저[2,4],var1-var4*(t382/100),고[1,3],고[1,4],var1-var4*(t382/100)); TL13 = TL_New(저[2,3],저[2,4],var1-Var4*(t500/100),고[1,3],고[1,4],var1-Var4*(t500/100)); TL14 = TL_New(저[2,3],저[2,4],var1-var4*(t618/100),고[1,3],고[1,4],var1-var4*(t618/100)); TL15 = TL_New(저[2,3],저[2,4],var1-Var4*(TOP/100),고[1,3],고[1,4],var1-Var4*(TOP/100)); TL_SetColor(TL11,RED); TL_SetColor(TL12,white); TL_SetColor(TL13,YELLOW); TL_SetColor(TL14,white); TL_SetColor(TL15,blue); Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr((저[1,1]),종목자릿수)); Text_SetStyle(Text1, 2, 0); Text2 = Text_New(저[1,3],저[1,4],저[1,1]-줄간격*PriceScale,"-"+NumToStr(abs(저[1,1]-고[1,1])/PriceScale,0)); Text_SetStyle(Text2, 2, 0); Text_SetColor(Text2,BLUE); } If TL_NewBit == 2 Then { // 연장 TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); TL_SetEnd(TL11,고[1,3],고[1,4],var1-Var4*(BOT/100)); TL_SetEnd(TL12,고[1,3],고[1,4],var1-var4*(t382/100)); TL_SetEnd(TL13,고[1,3],고[1,4],var1-var4*(t500/100)); TL_SetEnd(TL14,고[1,3],고[1,4],var1-var4*(t618/100)); TL_SetEnd(TL15,고[1,3],고[1,4],var1-var4*(TOP/100)); Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr((저[1,1]),종목자릿수)); Text_SetLocation(Text2,저[1,3],저[1,4],저[1,1]-줄간격*PriceScale); Text_SetString(Text2,"-"+NumToStr(abs(저[1,1]-고[1,1])/PriceScale,0)); Text_SetColor(Text2,BLUE); } } if T == 1 Then{ TL_Delete(TL31); TL_Delete(TL32); TL_Delete(TL33); TL_Delete(TL34); TL_Delete(TL35); var11 = 고[1,1]; var12 = 저[1,1]; VAR13 = 고[2,1]; var14 = abs(var11-var12); var15 = abs(var12-var13); TL31 = TL_New(sdate[index-고[1,2]],stime[index-고[1,2]],var11-Var14*(BOT/100),sdate,stime,var11-Var14*(BOT/100)); TL32 = TL_New(sdate[index-고[1,2]],stime[index-고[1,2]],var11-var14*(t382/100),sdate,stime,var11-var14*(t382/100)); TL33 = TL_New(sdate[index-고[1,2]],stime[index-고[1,2]],var11-var14*(t500/100),sdate,stime,var11-var14*(t500/100)); TL34 = TL_New(sdate[index-고[1,2]],stime[index-고[1,2]],var11-var14*(t618/100),sdate,stime,var11-var14*(t618/100)); TL35 = TL_New(sdate[index-고[1,2]],stime[index-고[1,2]],var11-var14*(TOP/100),sdate,stime,var11-var14*(TOP/100)); plot1(var11-var14*(t500/100),"Per1%",RED); } TL_SetColor(TL31,RED); TL_SetColor(TL32,white); TL_SetColor(TL33,YELLOW); TL_SetColor(TL34,white); TL_SetColor(TL35,yellow); if T == -1 Then{ TL_Delete(TL31); TL_Delete(TL32); TL_Delete(TL33); TL_Delete(TL34); TL_Delete(TL35); var11 = 고[1,1]; var12 = 저[1,1]; VAR13 = 저[2,1]; var14 = abs(var11-var12); var15 = abs(var11-var13); TL31 = TL_New(sdate[index-저[1,2]],stime[index-저[1,2]],var11-Var14*(BOT/100),sdate,stime,var11-Var14*(BOT/100)); TL32 = TL_New(sdate[index-저[1,2]],stime[index-저[1,2]],var11-var14*(t382/100),sdate,stime,var11-var14*(t382/100)); TL33 = TL_New(sdate[index-저[1,2]],stime[index-저[1,2]],var11-var14*(t500/100),sdate,stime,var11-var14*(t500/100)); TL34 = TL_New(sdate[index-저[1,2]],stime[index-저[1,2]],var11-var14*(t618/100),sdate,stime,var11-var14*(t618/100)); TL35 = TL_New(sdate[index-저[1,2]],stime[index-저[1,2]],var11-var14*(TOP/100),sdate,stime,var11-var14*(TOP/100)); TL_SetColor(TL31,RED); TL_SetColor(TL32,white); TL_SetColor(TL33,YELLOW); TL_SetColor(TL34,white); TL_SetColor(TL35,yellow); }
프로필 이미지
상중하
2018-06-07
278
글번호 119559
지표
답변완료

강제청산

시스템설정창의 최소 가격 변화(강제청산) 수식을 아래에 추가해주십시요. 시뮬레이션을 위해 input에도 반영바랍니다. input:최소가격변화포인트(0.5), 봉갯수(50) ****************************************** Inputs: Length(10), Consec(2); If CountIf(Close > Highest(High, Length)[1], Consec) == Consec Then Buy ("CBO_LE"); If CountIf(Close < Lowest(Low, Length)[1], Consec) == Consec Then Sell ("CBO_SE");
프로필 이미지
목마와숙녀
2018-06-07
219
글번호 119552
시스템