커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

복합 분봉에서 일봉 ADX 지표 계산

복합 분봉에 일봉의 ADX를 표시하기 위해 다음과 같이 식을 짜 보았으나 첨부파일과 같이 매우 다른 결과를 얻게 되었습니다. 문제점이 무엇인지 수정 부탁드립니다. 감사합니다. # ===<<< 분봉 차트에서 일봉 시고저종 계산 >>>=========================================== Arrays : 일봉_시가[20](0), 일봉_고가[20](0), 일봉_저가[20](0), 일봉_종가[20](0); Variable : cnt(0); If sTime[1] < 080000 And 080000 <= sTime Then Begin 일봉_시가[0] = Open; 일봉_고가[0] = High; 일봉_저가[0] = Low; 일봉_종가[0] = Close; End; If sTime[1] < 170000 And 170000 <= sTime Then Begin For cnt = 19 DownTo 1 Begin 일봉_시가[cnt] = 일봉_시가[cnt-1]; 일봉_고가[cnt] = 일봉_고가[cnt-1]; 일봉_저가[cnt] = 일봉_저가[cnt-1]; 일봉_종가[cnt] = 일봉_종가[cnt-1]; End; 일봉_시가[0] = Open; 일봉_고가[0] = High; 일봉_저가[0] = Low; 일봉_종가[0] = Close; End; If 일봉_고가[0] < High Then 일봉_고가[0] = High; If 일봉_저가[0] > Low Then 일봉_저가[0] = Low; 일봉_종가[0] = Close; # ===<<< 분봉 차트에서 일봉 DMI와 ADX 계산 >>>=========================================== Arrays : Positive_DM[14](0), Negative_DM[14](0), True_Range[14](0); Arrays : Positive_DI[14](0), Negative_DI[14](0), DX[14](0), Average_DX[14](0); Variables : Positive_DM14(0), Negative_DM14(0), True_Range14(0); Arrays : Positive_DI14[14](0), Negative_DI14[14](0); Variables : ADX_var1(0), ADX_var2(0), ADX_var3(0); Variables : sum1(0), sum2(0), sum3(0), sum4(0), len(14); If 일봉_고가[1] > 일봉_고가[0] Then Positive_DM[0] = 0; Else Positive_DM[0] = 일봉_고가[0] - 일봉_저가[1]; If 일봉_저가[1] < 일봉_저가[0] Then Positive_DM[0] = 0; Else Positive_DM[0] = 일봉_저가[1] - 일봉_저가[0]; ADX_var1 = Abs(일봉_고가[0]-일봉_저가[0]); ADX_var2 = Abs(일봉_고가[0]-일봉_종가[1]); ADX_var3 = Abs(일봉_저가[0]-일봉_종가[1]); True_Range[0] = Max(ADX_var1, ADX_var2, ADX_var3); Positive_DI[0] = Positive_DM[0] / True_Range[0]; Negative_DI[0] = Negative_DM[0] / True_Range[0]; sum1 = 0; # 단순이동평균 sum2 = 0; sum3 = 0; For cnt = 0 to len-1 Begin sum1 = sum1 + Positive_DM[cnt]; sum2 = sum2 + Negative_DM[cnt]; sum3 = sum3 + True_Range[cnt]; End; Positive_DM14 = sum1 / len; Negative_DM14 = sum2 / len; True_Range14 = sum3 / len; Positive_DI14[0] = Positive_DM14 / True_Range14; Negative_DI14[0] = Negative_DM14 / True_Range14; DX[0] = Abs(Positive_DI[0]-Negative_DI[0]) / (Positive_DI[0]+Negative_DI[0]) * 100; sum4 = 0; # 단순이동평균 For cnt = 0 to len-1 Begin sum4 = sum4 + DX[cnt]; End; Average_DX[0] = sum4 /len; If sTime[1] < 170000 And 170000 <= sTime Then Begin For cnt = 14 DownTo 1 Begin # 배열 이동 Positive_DM[cnt] = Positive_DM[cnt-1]; Negative_DM[cnt] = Negative_DM[cnt-1]; True_Range[cnt] = True_Range[cnt-1]; Positive_DI[cnt] = Positive_DI[cnt-1]; Negative_DI[cnt] = Negative_DI[cnt-1]; Positive_DI14[cnt] = Positive_DI14[cnt-1]; Negative_DI14[cnt] = Negative_DI14[cnt-1]; DX[cnt] = DX[cnt-1]; Average_DX[cnt] = Average_DX[cnt-1]; End; End; # ===<<< 분봉 차트에서 화면 출력 >>>======================================== If Positive_DI[1] < Positive_DI[0] Then Plot1(Positive_DI[0],"Positive_DI", RED); Else If Positive_DI[1] > Positive_DI[0] Then Plot1(Positive_DI[0],"Positive_DI", BLUE); If Negative_DI[1] < Negative_DI[0] Then Plot2(Negative_DI[0],"Negative_DI", RED); Else If Negative_DI[1] > Negative_DI[0] Then Plot2(Negative_DI[0],"Negative_DI", BLUE); If Average_DX[1] < Average_DX[0] Then Plot3(Average_DX[0],"Average_DX", RED); Else If Average_DX[1] > Average_DX[0] Then Plot3(Average_DX[0],"Average_DX", BLUE); # ===<<< 기준선 화면 출력 >>>======================================== PlotBaseLine1(20,"20",Gray);
프로필 이미지
다니엘87
2019-12-08
464
글번호 134217
지표
답변완료

선물신호를 옵션 신호로 부탁드립니다.

안녕하세요. 항상 수고가 많으십니다. 질문드립니다 ----------------------------------------------------------------------- (예제 전략식은 c > 20이평 : 매수, c < 20이평 : 매도) 이해를 돕기위해 선물신호에서 보통 5번의 매수신호와 5번의 매도신호가 발생한다고 가정하겠습니다. 신호발생시 진입수량은 1개씩입니다. 이것을 옵션신호로 바꾸려고합니다. 즉, 매수신호 발생시 -> 콜매수 1개 매도신호 발생시 -> 풋매수 1개 나중에는 결국, 콜매수 5개 풋매수 5개 양매수 상태가 되겠지요. 이 상태에서 장종료 무렵 콜과 풋을 동시에 전부 청산하려합니다. 참조데이타를 이용해서 해보려는데 잘 되지를 않는군요. 도움 부탁드립니다. ------------------------------------------------------------------------------------- 항상 감사드립니다. 좋은 일만 많이 생기시기를 ......
프로필 이미지
샐리짱
2019-12-09
267
글번호 134216
시스템
답변완료

부탁드리겠습니다

다른 분봉의 볼린저를 넣을 수 있게 만들수 있는지요 만들 수 있음 고맙겠습니다
프로필 이미지
김원식
2019-12-08
216
글번호 134215
지표
답변완료

문의 드립니다.

변환좀 부탁드립니다. (log(sum(c,m)/m)-log(sum(c,m,22*n)/m))*1000/n 지표조건 m 15 n 1
프로필 이미지
로꼬로꼬
2019-12-08
208
글번호 134214
지표

용인테니스왕자 님에 의해서 삭제되었습니다.

프로필 이미지
용인테니스왕자
2019-12-07
0
글번호 134213
시스템
답변완료

안녕하세요.

안녕하세요. input : N(1); Plot1(((dayHigh(N)-dayLow(N))*0.618)+dayHigh(N), "목표1"); Plot2(((dayHigh(N)-dayLow(N))*0.382)+dayHigh(N), "목표2"); Plot3((dayLow(N)-(dayHigh(N)-dayLow(N))*0.618), "-목표1"); Plot4((dayLow(N)-(dayHigh(N)-dayLow(N))*0.382), "-목표2"); 지표선 위에 가격수치를 텍스트로 나타내고 싶습니다. 선 윗쪽 중앙에 초록색으로 부탁드립니다. 감사합니다.
프로필 이미지
묵연히
2019-12-07
206
글번호 134212
지표

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

프로필 이미지
hg950265
2019-12-09
8
글번호 134211
종목검색
답변완료

문의 드립니다!

안녕하세요! 아래수식은 일전에 저의 문의에대하여 답변주신 내용인데요... 수고스럽겠지만 이 수식을 다음과같이 수정 부탁드리겠습니다 1, 아래수식은 1개의 콜행사가와 1개의 풋행사가에 각각 5개의 개별가격을 지정하게되어있는데.. ==> 이것을 1개의 특정가격을 지정할때마다 행사가도 같이 각각 따로 지정할수있도록해주세요 즉, 각각의 가격마다 행사가도 같이 따로 지정할수있는 수식이 필요합니다 ==> 그리고 이 가격의 개수는 (하나의 수식에다) 콜풋 각각 최대 8개씩 입력이 가능하도록 부탁드립니다 * 예를들어서... 콜 270.00 의 1.0 풋 275.00 의 1.0 콜 272.50 의 1.5 풋 272.50 의 1.5 콜 275.00 의 2.0 풋 270.00 의 2.0 . . . . . . ( 총 8개 ) ( 총 8개 ) * 이런식으로 콜풋별로 각각의 가격마다 행사가도 같이 별도로 지정할수있도록 부탁드립니다 2, 국선챠트상에 옵션 콜풋 특정행사가의 특정 이평선을 나타나게할수있을까요? 예를들어 콜 275의 20 이평선을 국선챠트에 나타낸다던가하는... ==> 콜,풋을 각각 별도의 수식으로해주시구요 ==> 쿨,풋 각각 1개의 행사가에 3개의 이평선을 입력할수있도록 부탁드리겠습니다 매서운 추위에 건강에 유의하시구요 매번 너무너무 감사드리고있습니다 ^^* --------------------------------------------------------------------------------------- 안녕하세요 예스스탁입니다. data2는 콜, data3은 풋으로 지정하시고 적용하시면 됩니다. input : CallPrice1(1.0),CallPrice2(1.5),CallPrice3(2.0),CallPrice4(2.5),CallPrice5(3.0); input : PutPrice1(1.0),PutPrice2(1.5),PutPrice3(2.0),PutPrice4(2.5),PutPrice5(3.0); if data2(crossup(c,CallPrice1) or CrossDown(c,CallPrice1)) Then { var21 = c; } if data2(crossup(c,CallPrice2) or CrossDown(c,CallPrice2)) Then { var22 = c; } if data2(crossup(c,CallPrice3) or CrossDown(c,CallPrice3)) Then { var23 = c; } if data2(crossup(c,CallPrice4) or CrossDown(c,CallPrice4)) Then { var24 = c; } if data2(crossup(c,CallPrice5) or CrossDown(c,CallPrice5)) Then { var25 = c; } if var21 > 0 then plot1(var21,"data2 CallPrice1교차"); if var22 > 0 then plot2(var22,"data2 CallPrice2교차"); if var23 > 0 then plot3(var23,"data2 CallPrice3교차"); if var24 > 0 then plot4(var24,"data2 CallPrice4교차"); if var25 > 0 then plot5(var25,"data2 CallPrice5교차"); if data3(crossup(c,PutPrice1) or CrossDown(c,PutPrice1)) Then { var31 = c; } if data3(crossup(c,PutPrice2) or CrossDown(c,PutPrice2)) Then { var32 = c; } if data3(crossup(c,PutPrice3) or CrossDown(c,PutPrice3)) Then { var33 = c; } if data3(crossup(c,PutPrice4) or CrossDown(c,PutPrice4)) Then { var34 = c; } if data3(crossup(c,PutPrice5) or CrossDown(c,PutPrice5)) Then { var35 = c; } if var31 > 0 then plot6(var31,"data3 PutPrice1교차"); if var32 > 0 then plot7(var32,"data3 PutPrice2교차"); if var33 > 0 then plot8(var33,"data3 PutPrice3교차"); if var34 > 0 then plot9(var34,"data3 PutPrice4교차"); if var35 > 0 then plot10(var35,"data3 PutPrice5교차"); 즐거운 하루되세요 > 유로파54 님이 쓴 글입니다. > 제목 : 문의 드립니다 > 안녕하세요! 일전에 만들어주신 옵션관련 지표 매우 잘 활용하고있습니다 ^^ 아래내용으로 한가지만 더 부탁드리겠습니다 옵션의 특정한 지정가격이 국선차트에서 가로선으로 표시될수있으면 좋겠습니다 이 지정가격은 필요에따라 수시로 바꿀수있고 콜 풋을 별도로 표시했으면 합니다 그리고 콜 풋별로 각각 5개정도의 가로선을 표시할수있으면 좋겠습니다 예를들어 콜 행사가 287.50에서 2.5의 자리, 그리고 풋행사가 285.00에서 2.5의 자리등 각각 최대 5개의 가격선을 국선챠트에 미리 표시를하고자함입니다 감사합니다 ^^
프로필 이미지
유로파54
2019-12-07
149
글번호 134210
지표
답변완료

부탁드립니다

수고하십니다 이수식에서 Var1 < Var1[1] 이면 시가에 plot1을 청색선으로 Var1 > Var1[1] 이면 종가에 plot1을 빨간색선으로 부탁드립니다 input : Period(10),Period1(0); Var : value(0),tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0); value = RSI(Period); If CrossDown(value, 50) or CrossDown(value, 43) or CrossDown(value, 39) #청 or CrossDown(value, 35) or CrossDown(value, 30) Then
프로필 이미지
파생돌이
2019-12-07
201
글번호 134209
지표