커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

stop loss 코드

수고 많으십니다. stop loss 코드 문의 드립니다. 매수 stop loss 조건: - 현재 봉의 종가가 진입 시점부터 과거 5봉 중의 최저점을 하회 할 경우 매도 stop loss - 현재 봉의 종가가 진입 시점부터 과거 5봉 중의 최고점을 상화 할 경우 감사합니다.
프로필 이미지
구천룡
2023-01-06
929
글번호 165157
시스템
답변완료

문의 드립니다.

안녕하세요 설명을 글로 하기 어려워 통화와 원격 부탁드립니다.
프로필 이미지
라몬
2023-01-06
868
글번호 165156
지표
답변완료

문의드립니다

안녕하세요? 아래수식은 margenta 색상만 표현되는데 첨부사진에 그려본것처럼 cyan 색상도 더러 표현되는 수식이 가능하다면 구합니다 감사합니다 input:length(6); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL12(0),TL13(0),TL14(0),TL15(0),T(0),고점변곡(""),저점변곡(""); var : clr1(0),clr2(0),BE(0),SE(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(0==1,data2(C),data2(H)); LL = IFF(0==1,data2(C),data2(L)); If data2(Index) == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = data2(Highest(HH,length)) == HH and 최종고가 <> HH; Condition2 = data2(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 { T = 1; 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = data2(Index); 고[1,3] = data2(sDate); 고[1,4] = data2(sTime); TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); If 1 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 0, 1); Text_SetColor(Text1,Red); } TL_SetSize(TL1,1); TL_SetColor(TL1,Gray); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = data2(Index); 고[1,3] = data2(sDate); 고[1,4] = data2(sTime); TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 1 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { T = -1; 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = data2(Index); 저[1,3] = data2(sDate); 저[1,4] = data2(sTime); TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); If 1 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 0, -1); Text_SetColor(Text1,Blue); } TL_SetSize(TL1,1); TL_SetColor(TL1,Gray); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = data2(Index); 저[1,3] = data2(sDate); 저[1,4] = data2(sTime); TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); If 1 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; } if T == -1 and T[1] != -1 Then { TL12 = TL_New(고[2,3],고[2,4],고[2,1],data2(sdate),data2(stime),고[2,1]); TL_Delete(TL13); TL13 = TL_New(고[1,3],고[1,4],고[1,1],data2(Sdate),data2(Stime),고[1,1]); TL_SetExtRight(TL13,true); TL_SetSize(TL13,2); TL_SetColor(TL12,clr1); TL_SetSize(TL12,2); clr1 = Pink; TL_SetColor(TL13,Pink); } if T == 1 and T[1] != 1 Then { TL14= TL_New(저[2,3],저[2,4],저[2,1],data2(sdate),data2(stime),저[2,1]); TL_Delete(TL15); TL15= TL_New(저[1,3],저[1,4],저[1,1],data2(sdate),data2(stime),저[1,1]); TL_SetExtRight(TL15,true); TL_SetColor(TL14,clr2); TL_SetSize(TL14,2); clr2 = LightBlue; TL_SetColor(TL15,clr2); TL_SetSize(TL15,2); } #================================================================# VAR:mav5(0),mav10(0),mav20(0),mav40(0),mav60(0),mav120(0),aa(0); mav5=ma(c,5); mav10=ma(c,10); mav20=ma(c,20); mav40=ma(c,40); mav60=ma(c,60); mav120=ma(c,120); condition11=CountIf(mav10<mav20,20) >= 10 and t==1 and 저[1,1] <mav20[Index-저[1,2]] and 고[1,1]>mav20[Index-고[1,2]]; var:box1(0); if t == 1 Then { if t != t[1] Then Condition12 = false; if condition11 == true and Condition12 == False Then { Condition12 = true; Box1 = Box_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); Box_Setcolor(box1,MAGENTA); Box_Setfill(box1,true,100,true); } if Condition12 == true Then Box_SetEnd(box1,고[1,3],고[1,4],고[1,1]); }
프로필 이미지
새벽에
2023-01-06
924
글번호 165154
지표
답변완료

수식 문의

ㄱ. 현재시간 미결제약정과 현재가를 곱합니다. ㄴ. n봉 기간의 누적 거래대금을 n봉 기간의 누적 거래량으로 나눕니다. 이 값을 현재시간 미결제약정과 곱합니다. ㄱ ÷ ㄴ ㄱ을 ㄴ으로 나누어 그 값을 plot로 뿌려줍니다. n봉 기간은 설정 가능하도록 부탁드립니다. 항상 친절한 답변 감사드립니다.
프로필 이미지
부똘이
2023-01-06
892
글번호 165152
지표

아트정 님에 의해서 삭제되었습니다.

프로필 이미지
아트정
2023-01-06
80
글번호 165151
시스템
답변완료

지표 질문입니다

D-2캔들이 음봉이고 D-1캔들이 양봉이고 D-1고가가 D-2고가보다 높고 현재 캔들 고가가 D-1캔들 고가보다 높을때 D-2캔들 시가를 표시한다 D-1캔들 저가를 표시한다 현재 캔들 저가를 표시한다 D-2캔들이 양봉이고 D-1캔들이 음봉이고 D-1저가가 D-2저가보다 낮고 현재 캔들 저가가 D-1캔들 저가보다 낮을때 D-2캔들 시가를 표시한다 D-1캔들 고가를 표시한다 현재 캔들 고가를 표시한다 감사합니다
프로필 이미지
para
2023-01-06
459
글번호 165150
지표
답변완료

수정 부탁드립니다

안녕하세요! 매매시 불편한 부분이 있어서 수정을 좀 부탁드립니다! 첨부파일 (A)는 지난번에 만들어주신 수식을 현재 잘 사용하고 있습니다! 다름이 아니라 매매를 하면서 챠트상의 다른 텍스트 출력 부분과 겹쳐서 매매시 불편함이 있어서 첨부파일 (B)처럼 텍스트 부분을 우측으로 이동하여 출력이 될 수 있도록 수정을 부탁드립니다! 항상 노고에 감사드립니다! -------------------------------------------------------------- (A) input : AA(100),BB(200),CC(160),소숫점자리(5); var1 = AA; var2 = BB; var3 = CC; var4 = BB+(BB-AA); var5 = BB+(BB-AA)/2; var6 = CC+(BB-AA); plot1(var1,"A값"); plot2(var2,"B값"); plot3(var3,"C값"); plot4(var4,"E값"); plot5(var5,"평균값"); plot6(var6,"N값"); if index == 1 then { value1 = Text_New_self(sdate,stime,var1,"A값 : "+NumToStr(var1,소숫점자리)); value2 = Text_New_self(sdate,stime,var2,"B값 : "+NumToStr(var2,소숫점자리)); value3 = Text_New_self(sdate,stime,var3,"C값 : "+NumToStr(var3,소숫점자리)); value4 = Text_New_self(sdate,stime,var4,"E값 : "+NumToStr(var4,소숫점자리)); value5 = Text_New_self(sdate,stime,var5,"평균값 : "+NumToStr(var5,소숫점자리)); value6 = Text_New_self(sdate,stime,var6,"N값 : "+NumToStr(var6,소숫점자리)); Text_SetStyle(value1,2,1); Text_SetStyle(value2,2,1); Text_SetStyle(value3,2,1); Text_SetStyle(value4,2,1); Text_SetStyle(value5,2,1); Text_SetStyle(value6,2,1); } Else { Text_SetLocation(value1,sdate,stime,var1); Text_SetLocation(value2,sdate,stime,var2); Text_SetLocation(value3,sdate,stime,var3); Text_SetLocation(value4,sdate,stime,var4); Text_SetLocation(value5,sdate,stime,var5); Text_SetLocation(value6,sdate,stime,var6); } ------------------------------------------- (B) input : 날짜변경시간(240000); var : date0(0), date1(0), time0(0), time1(0); var : HH(0),HH1(0), Hdate(0),Htime(0),Hdate1(0), Htime1(0), TX11(0), TX1(0); var : LL(0),LL1(0), Ldate(0),Ltime(0),Ldate1(0), Ltime1(0), TX12(0), TX2(0); var : OO(0),OO1(0), Odate(0),Otime(0),Odate1(0), Otime1(0), TX13(0), TX3(0); var : MM(0),MM1(0), Mdate(0),Mtime(0),Mdate1(0), Mtime1(0), TX14(0), TX4(0); if stime == 날짜변경시간 then { date0 = sdate; date1 = date0[1]; time0 = stime; time1 = time0[1]; #전일고가 HH = H; HH1 = HH[1]; TL_Delete(var11); var11 = TL_New(date1, time1, HH1, date0, time0, HH1); TL_SetExtRight(var11,true); TL_SetColor(var11, black); #전일저가 LL = L; LL1 = LL[1]; TL_Delete(var12); var12 = TL_New(date1, time1, LL1, date0, time0, LL1); TL_SetExtRight(var12,true); TL_SetColor(var12, blue); #전일중심선 MM1 = (HH1+LL1)/2; Mdate1 = Mdate[1]; Mtime1 = Mtime[1]; TL_Delete(var14); var14 = TL_New(date1, time1, MM1, date0, time0, MM1); TL_SetExtRight(var14,true); TL_SetColor(var14, black); #전일시가 OO = O; OO1 = OO[1]; Odate1 = Odate[1]; Otime1 = Otime[1]; TL_Delete(var13); var13 = TL_New(date1, time1, OO1, date0, time0, OO1); TL_SetExtRight(var13,true); TL_SetColor(var13, black); #당일시가 TL_Delete(var3); var3 = TL_New(sdate[1], stime[1], OO, date0, time0, OO); TL_SetExtRight(var3,true); TL_SetColor(var3, black); Text_delete(TX11); TX11 = Text_New(sdate, stime, HH1, " ▶전일고가 : "+Numtostr(HH1,2)); Text_SetStyle(TX11, 0, 1); Text_setColor(TX11, black); Text_delete(TX12); TX12 = Text_New(sdate, stime, LL1, " ▶전일저가 : "+Numtostr(LL1,2)); Text_SetStyle(TX12, 0, 0); Text_setColor(TX12, black); Text_delete(TX13); TX13 = Text_New(sdate, stime, OO1, " ▶전일시가 : "+Numtostr(OO1,2)); Text_SetStyle(TX13, 0, 0); Text_setColor(TX13, black); Text_delete(TX3); TX3 = Text_New(sdate, stime, OO, " ▶당일시가 : "+Numtostr(OO,2)); Text_SetStyle(TX3, 0, 0); Text_setColor(TX3, black); Text_delete(TX14); TX14 = Text_New(sdate, stime, MM1, " ▶전일중심 : "+Numtostr(MM1,2)); Text_SetStyle(TX14, 0, 0); Text_setColor(TX14, black); } #당일고가 if stime <> 날짜변경시간 and H[1] >= HH then { HH = H[1]; Hdate = sdate[1]; Htime = stime[1]; TL_Delete(var1); var1 = TL_New(date0, time0, HH, sdate, stime, HH); TL_SetExtRight(var1,true); TL_SetColor(var1, black); } #당일저가 if stime <> 날짜변경시간 and L[1] <= LL then { LL = L[1]; Ldate = sdate[1]; Ltime = stime[1]; TL_Delete(var2); var2 = TL_New(date0, time0, LL, sdate, stime, LL); TL_SetExtRight(var2,true); TL_SetColor(var2, black); } #당일중심 if stime <> 날짜변경시간 then { MM = (HH+LL)/2; TL_Delete(var4); var4 = TL_New(date0, time0, MM, sdate, stime, MM); TL_SetExtRight(var4,true); TL_SetColor(var4, black); } if stime == 날짜변경시간 then { var8 = TL_New(sdate, stime, H, sdate, stime, 999999999); var9 = TL_New(sdate, stime, L, sdate, stime, 0); TL_setColor(var8, black); TL_setColor(var9, black); } Text_delete(TX1); TX1 = Text_New(NextBarSdate,NextBarStime, HH, " ▶당일고가 : "+Numtostr(HH,2)); Text_SetStyle(TX1, 0, 1); Text_setColor(TX1, black); Text_delete(TX2); TX2 = Text_New(NextBarSdate, NextBarStime, LL, " ▶당일저가 : "+Numtostr(LL,2)); Text_SetStyle(TX2, 0,0); Text_setColor(TX2, black); Text_delete(TX4); TX4 = Text_New(NextBarSdate, NextBarStime, MM, " ▶당일중심 : "+Numtostr(MM,2)); Text_SetStyle(TX4, 0,0); Text_setColor(TX4, black); Text_SetLocation(TX11,NextBarSdate,NextBarStime,HH1); Text_SetLocation(TX12,NextBarSdate,NextBarStime,LL1); Text_SetLocation(TX13,NextBarSdate,NextBarStime,OO1); Text_SetLocation(TX3,NextBarSdate,NextBarStime,OO); Text_SetLocation(TX14,NextBarSdate,NextBarStime,MM1);
프로필 이미지
qha71
2023-01-06
409
글번호 165148
지표
답변완료

지표

항상 감사합니다 지정가를 시간값으로 수식부탁드립니다 예]10시30분의 [시가] [종가] [고가] [저가] [고가+저가}/2 [주셨던수식] input : 지정가(292.95),진동폭(3.5); var1 = 지정가; value1 = 진동폭/5; Plot1(var1); plot10(var1+value1*1); plot11(var1+value1*2);
프로필 이미지
호정0688
2023-01-05
410
글번호 165147
지표
답변완료

추세선 세로선

input : Period(20); Var:j(0),T(0); Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0); Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0); Plot1 (0); For j = 0 To 19 { HiBar[j] = HiBar[j] + 1; LoBar[j] = LoBar[j] + 1; } if crossup(c,highest(H,Period)[1]) Then T = 1; if CrossDown(c,Lowest(L,Period)[1]) Then T = -1; If T == -1 Then { If T[1] != -1 Then { For j = 18 DownTo 0 { LoVal[j+1] = LoVal[j]; LoBar[j+1] = LoBar[j]; } LoVal[0] = L; LoBar[0] = 0; date11 = date[HiBar[0]]; time11 = stime[HiBar[0]]; Value11 = HiVal[0]; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; Text_Delete(tx); Tx = Text_New(sDate,sTime,value12+PriceScale*2,"●"); Text_SetColor(Tx,Cyan); Text_SetStyle(Tx,2,2); Text_SetSize(Tx,30); date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; for j = 0 to 6 { fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]); } } If LoVal[0] > L Then { LoVal[0] = L; LoBar[0] = 0; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date22 = date[0]; time22 = stime[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; } HiVal[0] = H; HiBar[0] = 0; date11 = date[LoBar[0]]; time11 = stime[LoBar[0]]; Value11 = LoVal[0]; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; Text_Delete(tx); Tx = Text_New(sDate,sTime,value12-PriceScale*2,"●"); Text_SetColor(Tx,Lime); Text_SetStyle(Tx,2,2); Text_SetSize(Tx,30); date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; for j = 0 to 5 { fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]); } } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date32 = date[0]; time32 = stime[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); } } 지난것은 모두 지우고 마지막 추세선에서만 시작점에 동그라미가 표시되는데, 여기에 같은 방식으로 세로선도 추가하여, 이전 세로선은 지우고 마지막 세로선만 마지막 동그라미와 같이 표시되게 부탁합니다.
프로필 이미지
고성
2023-01-05
567
글번호 165145
지표