커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8049
글번호 230811
답변완료
수식도움 부탁드립니다.
아래의 참조수식에서
상단,하단 값을 아래 내용대로 수정부탁드립니다
상단값 =
파동선이 붉은색일 때
(직전고점을 상향돌파하면 붉은색으로 바뀜 : 수식에서 방향 == 1 , 저항 상향돌파시)
최고가
하단값 =
파동선이 파란색일 때
(직전저점을 하향돌파하면 파란색으로 바뀜 : 수식에서 방향 = -1 , 지지 하향돌파시)
최저가
((그림에서 노란색 표시한 부분.....))
붉은색파동구간에서의 최고가는 갱신될 수 있으며, 갱신된 값을 최고가로 함
파란색파동구간에서의 최저가는 갱신될 수 있으며, 갱신된 값을 최저가로 함
붉은색구간(직전고점을 갱신한 후)에서는 직전파란색구간 최저값과 계속 갱신되는 최고값을 사용
파란색구간(직전저점을 갱신한 후)에서는 직전붉은색구간의 최고값과 계속 갱신되는 최저값을 사용
지표식에서 파동선은 추세선으로 출력되지 않아도 됩니다. 조정대채널만 plot함수로 출력되도록하였습니다.
추가문의)
붉은색구간( 방향 == 1 ) 일 때, 첫번째 var3 에 닿을 때 매수
고점이 갱신된 이후 첫번째 var3에 닿을 때 매수
파란색구간(방향 == -1 ) 일 때, 첫번째 var3 에 닿을 때 매도
저점이 갱신된 이후 첫번째 var3에 닿을 때 매도
감사합니다.
=
참조수식
==
Input:전환비율(0.382);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),T(0),지지(0),저항(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
저[1,1] = LL;
저[1,2] = 0;
}
If Index > 0 Then // Index가 0일때는 이전 봉이 없으므로 Index가 1일때부터 1씩 증가
{
hiBar = hiBar + 1; // 최고점을 찍은 고[저]가의 위치를 저장 해놓기 위해 봉번호를 카운트한다.
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0; // 현재 봉이 최고가이면 봉번호를 0으로 초기화
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1] * (1 + (전환비율/100)) < HH and hiBar == 0;
// 전저점에서 최소변동률만큼 더한 값보다 고가가 크다면 추세가 변한 것으로 보고 신규 고점으로 인식
Condition2 = 고[1,1] * (1 - (전환비율/100)) > LL and loBar == 0;
// 전고점에서 최소변동률만큼 뺀 값보다 저가가 작다면 추세가 변한 것으로 보고 신규 저점으로 인식
처리구분 = "";
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
{
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
hiBar = -1;
// 다음 봉의 고가가 기준 고가로 인식되려면 hiBar 값이 0이 되어야 한다.
// 봉이 바뀔 때마다 hiBar의 값을 1씩 증가시키므로 다음 봉의 hiBar 값은 0이 된다.
loBar = -1;
}
Else If 고[1,1] < HH[hiBar] Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH[hiBar];
hiBar = -1;
loBar = -1;
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
}
최종꼭지점 = "고점";
T = 1;
if T == 1 and T != T[1] then
지지 = 저[1,1] ;
}
#==========================================#
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
hiBar = -1;
loBar = -1;
}
Else If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
hiBar = -1;
loBar = -1;
}
최종꼭지점 = "저점";
T = -1;
if T == -1 and T != T[1] then
저항 = 고[1,1] ;
}
//========================================//
//
//
//
var : 방향(0);
if crossdown(c,지지) then 방향 = -1;
if crossup(c,저항) then 방향 = 1 ;
//
var : 상단(0), 하단(0);
input : Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8),Per5(76.4),Per6(123.6),Per7(161.8),Per8(200);
상단 = 저항;
하단 = 지지;
//
var1 = 상단 - (상단 - 하단)*Per1/100 ;
var2 = 상단 - (상단 - 하단)*Per2/100 ;
var3 = 상단 - (상단 - 하단)*Per3/100 ;
var4 = 상단 - (상단 - 하단)*Per4/100 ;
var5 = 상단 - (상단 - 하단)*Per5/100 ;
plot1(하단,"저");
plot2(상단,"고");
plot5(var1,"23.6");
plot6(var2,"38.2");
plot7(var3,"50.0");
plot8(var4,"61.8");
plot9(var5,"76.4");
if 방향 == 1 Then
{
plot10(99999,"라인1");
plot11(0,"라인2");
}
Else{
if 방향 == -1 then
{
plot10(0,"라인1");
plot11(99999,"라인2");
}
}
2019-03-06
485
글번호 126710
답변완료
시스템식좀 부탁드리겠습니다
1.상하한가 30%이후 기준으로
(일봉상)
거래대금 500억 이상의 상한가 출현시
상한가 당일과 그이후 n 일간의
날짜, 종목명,시,고,저,종,거래대금,5이평,10이평,20이평,60이평,120이평,시가비,고가비,저가비,종가비,5이평이격,10이평이격,20이평이격,60이평이격,120이평이격값
을 엑셀로출력하고싶습니다
상한가이후의 N일까지 (N은 외부변수로 빼주세요)
그리고 중요한건, 상한가날은 상한가라는 엑셀파일로 따로, 상한가 다음날은 상한가1, 그다음날은 상한가2 이런식으로 자료가 따로 엑셀파일로 생성되게 부탁드리겠습니다
2.전일종가대비 당일 고가가 15%이상, 거래대금이 500억이상인 종목의
날짜, 종목명, 시.고.저.종.거래대금.5이평.10이평.20이평.60이평.120이평시가비.고가비.저가비.종가비.5이평이격.10이평이격.20이평이격.60이평이격.120이평이격값을 엑셀로 출력하고싶습니다
여기에서 고가와 거래대금의 기준은 외부변수로 빼서 조정가능하게 부탁드리겠습니다
항상고맙습니다 수고하세요^^
2019-03-05
327
글번호 126703
터닝 님에 의해서 삭제되었습니다.
2019-03-05
0
글번호 126702
답변완료
부탁드립니다.
. 주가가 Envelope 하한밴드를 하향돌파하면 매도
. 주가가 Envelope 상한밴드를 상향돌파하면 매수
손절 : -15
익절 : +30
2019-03-05
243
글번호 126701
답변완료
늘 도움을 주셔서 고맙습니다. 다음 종목검색식이 가능할까요?
[주봉]
A) 오늘 주봉의 종가가 최근 5개의 주봉의 최저가 대비 20% ~ 30% 상승
[일봉]
B) 60일선이 연속 5일 이상 하향 중이고
C) 40일선이 60일선 아래에 있고
D) 상장주식 수 대비 0일전 기관 순매수수량 0.2% 이상 10% 이하
E) 상장주식 수 대비 1일전 기관 순매수수량 0.2% 이상 10% 이하
F) 상장주식 수 대비 2일전 기관 순매수수량 0.2% 이상 10% 이하
...
[전략식]
A and B and C and (D or E or F)
2019-03-05
284
글번호 126700
답변완료
차트에 자동으로 선긋기
나스닥1분차트에서 거래량이 3000계약 이상나온 봉의 저점에서 선을 하나 자동으로 그어주고, 그 봉의 저점에서 첫번째 +0.20%상승할때 값 ,-0.20%하락할때의 값
둘째 +0.30%상승할때 값 ,-0.30%하락할때의 값
셋째 +0.40%상승값, -0.40%하락값
넷째 +0.50%상승값,-0.50%하락값
다섯째 +0.60%상승값,-0.60%하락값
위의 조건값을 차트에 자동으로 선을 그을수 있을까요??
2019-03-05
259
글번호 126699
답변완료
시스템 수식 문의 드려요
안녕하세요~다음과 같이 수식 작성 부탁드립니다~~
매수조건
-. 20일선이 우상향 중이고, 현재 봉이 5일선 가격보다 밑에서 종가가 형성될때
(즉, 음봉이 5일선 밑으로 뚤었을때...)
매도조건
-. 20일선이 우하향 중이고, 현재 봉이 5일선 가격보다 위에서 종가가 형성될때
(즉, 양봉이 5일선 위로 뚤었을때...)
청산조건
-. 이익청산은 10틱 자동청산
-. 이익청산 되지 않고 반대 신호 시 스위칭 매매
두가지 이동평균선과 이익청산 10틱은 input으로 넣어 주시면 더더욱 감사하겠습니다~~
2019-03-05
251
글번호 126698
답변완료
문의 드립니다
안녕하세요?
일전에 알려주신 별첨 수식을 혼자서 변형해보려고 하루종일 눈이 아프도록 컴퓨터와 씨름하다 도저히 할수가 없어서 다시한번 부탁드립니다
괸리자님의 노고가 새삼스럽게 다시 한번더 절실히 느껴지는 하루였습니다 ^^*
1, "별첨수식"을 다음과같이 수정해주시면 감사하겠습니다
(1), 행사가는 콜,풋 각각 3개씩(내가,등가,외가)해서 총 6개 행사가로 하고
* 가격대는 대략 20만원에서 40만원대가 되네요
(2), 그리고 각각의 행사가에서는 한개의 가로선(가격)만 나타나면 됩니다
(3), 혹시 수식을 일괄적으로 적용하지않고 각 행사가마다 각각의 수식을 별도로 적용하는
방법도 있을까요?
즉, 이렇게하면 수식이 6개가 필요하겠지만 챠트에 설치시 간편할수도있겠다는 생각이
들어서요
* 수식을 챠트에 설치할때 특별히 중요한 부분에 대해서는 자세한 설명도 부탁드립니다
<*** 결국 제가 원하는것은 옵션 특정행사가의 특정가격 6개를 선물차트에 정확히 선으로
구현하고자하는것입니다>
2, 아래수식도 다음과같이 수정바랍니다
input : 지정값(1000);
if CrossUp(c,지정값) Then
playsound("C:예스트레이더dataSound1point.wav");
if CrossDown(c,지정값) Then
playsound("C:예스트레이더dataSound1point.wav");
plot1(0);
(1) 이수식에의거 옵션차트에 "특정 행사가"의 "특정가격"을 나타내는 가로선이 발생되는데...
* 저는 주로 옵션차트에서 사용합니다
(2) 이 발생된 선의 오른쪽 끝부분에 현재 이 "가로선 행사가"의 "가격" 이 "실시간"으로
동시에 표시되었으면 좋겠습니다
(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개의 가격선을 국선챠트에 미리 표시를하고자함입니다
감사합니다 ^^
2019-03-05
452
글번호 126697
답변완료
변환해서 질문이요
키움 수식인데 변환좀요 두가지의 선이 나와야하는데 안되네요
1.
A = (C + nPreDayClose(1) + nPreDayClose(2) + nPreDayClose(3) +
nPreDayClose(4) + nPreDayClose(5) + nPreDayClose(6) + nPreDayClose(7) +
nPreDayClose(8) + nPreDayClose(9))/10;
B = (DayClose() + nPreDayClose(1) + nPreDayClose(2) + nPreDayClose(3) +
nPreDayClose(4) + nPreDayClose(5) + nPreDayClose(6) + nPreDayClose(7) +
nPreDayClose(8) + nPreDayClose(9) + nPreDayClose(10) + nPreDayClose(11) +
nPreDayClose(12) + nPreDayClose(13) + nPreDayClose(14) + nPreDayClose(15) +
nPreDayClose(16) + nPreDayClose(17) + nPreDayClose(18) + nPreDayClose(19)
)/20;
(A+B)/2
2. a1 = (A+B)/2;
(a1+ B) /2
ㅡㅡㅡㅡㅡㅡ
추가적으로 질문드립니다 이것두 계속 오류가 나서 변환좀요
[문법에러, 잘못된토큰 var number, 올 수 있는 것 뜨네요]
1.
( ((DayHigh()+Daylow())/2)+((predayhigh()+predaylow())/2)+((npredayhigh(2)+npredaylow(2))/2)+((npredayhigh(3)+npredaylow(3))/2)+((npredayhigh(4)+npredaylow(4))/2)
+((npredayhigh(5)+npredaylow(5))/2)+((npredayhigh(6)+npredaylow(6))/2)+((npredayhigh(7)+npredaylow(7))/2)+((npredayhigh(8)+npredaylow(8))/2) )/9
2. (Daylow()+predaylow()+npredaylow(2)+npredaylow(3)+npredaylow(4)+npredaylow(5))/6
2019-03-04
311
글번호 126696