커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7567
글번호 230811
답변완료
조건검색식 부탁드립니다.
1) 현재 주가와 6개전의 캔들과 종가를 비교해서 위 이면서,
2)현재주가와 6개전 캔들의 평균치
그리고 현재주가와 5개전 캔들의 평균치 를 서로 비교해서
5개전 평균치 보다 6개전 캔들의 평균치가 올라갈 경우
1)번과 2)번이 서로 동시 만족일경우 매수조건식이 되고
두가지가 모두 아래거나 평균이 내려갈경우 매도 조건이 되는
식을 부탁드립니다.
2013-04-25
220
글번호 62488
답변완료
문의드립니다.
리버스 시스템관련 문의드립니다.
하기의 식에서 ExitLong 포지션에서 리버스로 sell을 진행하려면
식구조를 어떻게 만들어야 하는지요??
리버스 시스템에서 다양한 청산식을 만들려면 식 구조를 어떻게 해야하는지좀 부탁드립니다.
IF CrossUp(value1,value2) Then
buy("b",AtStop,C);
if CrossDown(value1,value2) Then
sell("s",AtStop,c);
if MarketPosition == 1 and CrossDown(ma1,ma2) Then
ExitLong();
수고하세요..
2013-04-25
205
글번호 62485
답변완료
수식 부탁합니다.
rsi 과열, 침체 강조식을 하나의 수식으로 만들고 싶습니다.
부탁합니다.
2013-04-25
221
글번호 62477
답변완료
질문
에전에 제가 했던 질문중 오늘 읽어 보고 궁굼해서 질문드립니다.
안녕하세요
예스스탁입니다.
var : cnt(0),mindiff(0),N(0);
Array : diff[31](0);
# 현재가가 이전일 최저가 보다 크면 종가-이전일 최저가 저장
# 아니면 9999999할당
for cnt = 1 to 30 {
if C > daylow(cnt) Then
diff[cnt] = C-daylow(cnt);
Else
diff[cnt] = 9999999;
}
#diff 중 최저값 계산, N일전 저장
mindiff = 9999999;
N = -1; //--------------------------------이부분을 왜 -1 값을 넣은 거지요.
for cnt = 1 to 30 {
if diff[cnt] < mindiff Then{
mindiff = diff[cnt];
N = cnt;
}
}
plot1(daylow(N),"N일전 최저가");
#plot2(N,"N일전");
즐거운 하루되세요
> nadogaja 님이 쓴 글입니다.
> 제목 : 현재가 기준 지난 30 일 일봉저가 중 현재가와 가장 근접한 값
> 안녕하세요.. 항상 많은 도움 받고 있습니다.
선물 챠트 1 분봉 기준입니다.
1. 현재가 기준 지난 30일간(금일 제외) 동안 현재가 보다 작은 daylow 중 현재가 와 가장 가까운 값을 찾아 내는 식 부탁드림니다. .
2.for 구문을 이용해서 표현할수 있다면 좋겠습니다.
2013-04-25
231
글번호 62476
답변완료
문의
다르바스의 박스 지표식이 예스 챠트에서는 구현됩니다.
그런데 yesglobal에서는 선언되지 않은 이름 TL-SETEND 가 사용되었다면 나타나지 않습니다.
yesglobal에서 나타나도록 식을 수정 부탁드립니다.
2013-04-25
221
글번호 62475
답변완료
수정 부탁트립니다
안녕하세요 검증은 되는데 신호가 잡히질않아서 ㅠㅠㅠ
input: 전환가격(300);
var: j(0), 꺾은선(0), 기준고(0), 기준저(0), 방향(0), 상승(100), 하락(-100), 색깔(0), 파랑(-1), 빨강(1), 전환(0),
확인(0), 확인표시(0), 전환표시(0), 천장(-10), 바닥(10), E(0), UB(0), E표시(0), UB표시(0), 대중소(0), 소중대(0),
대중소색깔(0), 진입(0), 청산(0), a25(0), a40(0), a50(0), a60(0), a75(0), b(0), 상상(0), 상(0), 중(0), 하(0), 하하(0), 등락폭(0),
w(0), w표시(0), 주기준고(0), 주기준저(0), 주색깔(0), 매수마크(0), 매도마크(0);
Array: 고[10](0), 저[10](0), wo[10](0), wh[10](0), wl[10](0), wc[10](0), 주방향[2](0), 주고[2](0), 주저[2](0);
E표시 = 0;
UB표시 = 0;
w표시 = 0;
전환표시 = 0;
확인표시 = 0;
대중소 = 0;
소중대 = 0;
진입 = 0;
청산 = 0;
매수마크 = 0;
매도마크 = 0;
if date[1] < date and dayofweek(date[1]) >= dayofweek(date) then {
if 주기준고 <= wc[0] or 주기준고 == 0 then 주기준고 = wc[0];
if 주기준저 >= wc[0] or 주기준저 == 0 then 주기준저 = wc[0];
주방향[1] = 주방향[0];
if 주기준저[1] + 전환가격 > wc[1] and 주기준저[1] + 전환가격 <= wc[0] Then
주방향[0] = 상승;
if 주기준고[1] - 전환가격 < wc[1] and 주기준고[1] - 전환가격 >= wc[0] Then
주방향[0] = 하락;
if 주방향[0] == 상승 and 주고[0] < wc[0] then 주색깔 = 빨강;
if 주방향[0] == 하락 and 주저[0] > wc[0] then 주색깔 = 파랑;
if 주방향[1] == 하락 and 주방향[0] == 상승 then {
주저[1] = 주저[0];
주저[0] = 주기준저;
주기준저 = wc[0];
주기준고 = wc[0];
if 주저[1] > 주저[0] then 주색깔 = 파랑;
}
if 주방향[1] == 상승 and 주방향[0] == 하락 then {
주고[1] = 주고[0];
주고[0] = 주기준고;
주기준저 = wc[0];
주기준고 = wc[0];
if 주고[1] < 주고[0] then 주색깔 = 빨강;
}
w = 주방향[0];
for j = 8 downto 0 {
wo[j+1] = wo[j];
wh[j+1] = wh[j];
wl[j+1] = wl[j];
wc[j+1] = wc[j];
}
wo[0] = o;
wh[0] = h;
wl[0] = l;
}
if wh[0] < h then wh[0] = h;
if wl[0] > L or wl[0] == o then wl[0] = l;
wc[0] = c;
if 기준고 <=C or 기준고 == 0 then 기준고 =c;
if 기준저 >=C or 기준저 == 0 then 기준저 =c;
if C[1] + 전환가격/3 <= C then E = 상승;
if C[1] - 전환가격/3 >= C then E = 하락;
if ma(v,40)/2.5 >= v then ub = 바닥;
if ma(v,40)*2.5 <= v then ub = 천장;
if 기준저[1] + 전환가격 > c[1] and 기준저[1] + 전환가격 <=c then 방향 = 상승;
if 기준고[1] - 전환가격 < c[1] and 기준고[1] - 전환가격 >= c then 방향 = 하락;
if 방향[1] == 하락 and 방향 == 상승 then {
for j = 8 downto 0 {
저[j+1] = 저[j];
}
저[0] = 기준저;
꺾은선 = 기준저;
기준저 = c;
기준고 = c;
if E == 상승 then {E표시 = 꺾은선 - 전환가격;
매수마크 = 매수마크 + 1;
}
if UB == 바닥 then {UB표시 = 꺾은선 - 2*전환가격;
매수마크 = 매수마크 + 1;
}
if w == 상승 then {
w표시 = 꺾은선 - 3*전환가격;
매수마크 = 매수마크 + 1;
}
E = 0;
UB = 0;
w = 0;
if 저[1] > 저[0] then 색깔 = 파랑;
if 색깔[1] !=색깔 and 고[1] < 고[0] and 저[1] > 저[0] then 확인 = 0;
if 저[1] < 저[0] then {
if 저[2] >= 저[1] then 확인 = 바닥;
else 확인 = 0;
}
if 확인 == 바닥 and 확인[1] < 확인 then 확인표시 = 꺾은선 -4*전환가격;
if 색깔[1] !=색깔 then 전환 = 0;
if 저[1] < 저[0] and 고[1] < 고[0] then 전환 = 상승;
if 전환 == 상승 and 전환[1] < 전환 then {
전환표시 = 꺾은선 - 5*전환가격;
진입 = 1;
}
if 고[1]-저[1] > 고[0]-저[1] and 고[0]-저[1] > 고[0]-저[0] then {
대중소 = 꺾은선 - 6*전환가격;
대중소색깔 = 빨강;
}
if 고[1]-저[1] < 고[0]-저[1] and 고[0]-저[1] < 고[0]-저[0] then {
소중대 = 꺾은선 -6*전환가격;
대중소색깔 = 파랑;
}
}
a75 = ((고[0]-저[1])-(고[0]-저[0])*0.25)/((고[0]-저[1])+(고[0]-저[0])*0.25);
a60 = ((고[0]-저[1])-(고[0]-저[0])*0.4)/((고[0]-저[1])+(고[0]-저[0])*0.4);
a50 = ((고[0]-저[1])-(고[0]-저[0])*0.5)/((고[0]-저[1])+(고[0]-저[0])*0.5);
a40 = ((고[0]-저[1])-(고[0]-저[0])*0.6)/((고[0]-저[1])+(고[0]-저[0])*0.6);
a25 = ((고[0]-저[1])-(고[0]-저[0])*0.75)/((고[0]-저[1])+(고[0]-저[0])*0.75);
b = 저[1]-(고[0]-저[0])*2;
상상 = (저[1]-a75+b)/(1-a75);
상 = (저[1]-a60+b)/(1-a60);
중 = (저[1]-a50+b)/(1-a50);
하 = (저[1]-a40+b)/(1-a40);
하하 = (저[1]-a25+b)/(1-a25);
if 등락폭[1] == -1 or 등락폭[1] == -2 Then
매수마크 = 매수마크 + 1;
if 방향[1] == 상승 and 방향 == 하락 then {
for j = 8 downto 0 {
고[j+1] = 고[j];
}
고[0] = 기준고;
꺾은선 = 기준고;
기준고 = c;
기준저 = c;
if E == 하락 then {E표시 = 꺾은선 + 전환가격;
매도마크 = 매도마크 + 1;}
if UB == 천장 then { UB표시 = 꺾은선 + 2*전환가격;
매도마크 = 매도마크 +1;}
if w == 하락 then {w표시 = 꺾은선 +3*전환가격;
매도마크 = 매도마크 +1;}
E = 0;
UB = 0;
W = 0;
if 고[1] < 고[0] then 색깔 = 빨강;
if 색깔[1] !=색깔 and 고[1] < 고[0] and 저[1] > 저[0] then 확인 = 0;
if 고[1] > 고[0] then {
if 고[2] <= 고[1] then 확인 = 천장;
else 확인 = 0;
}
if 확인 == 천장 and 확인[1] > 확인 then 확인표시 = 꺾은선 + 4*전환가격;
if 색깔[1] !=색깔 then 전환 = 0;
if 고[1] > 고[0] and 저[1] > 저[0] then 전환=하락;
if 전환 == 하락 and 전환[1] > 전환 then 전환표시 = 꺾은선 + 5*전환가격;
if 고[1]-저[1] > 고[1]-저[0] and 고[1]-저[0] > 고[0]-저[0] then {
대중소 = 꺾은선 + 5*전환가격;
대중소색깔 = 파랑;
청산 = 1;
}
if 고[1]-저[1] < 고[1]-저[0] and 고[1]-저[0] < 고[0]-저[0] then {
소중대 = 꺾은선 + 5*전환가격;
대중소색깔 = 빨강;
}
if 고[2]-저[1] < 고[1]-저[1] and 고[1]-저[1] < 고[1]-저[0] then 청산 = 2;
}
a25 = (-(고[1]-저[0])+(고[0]-저[0])*0.75)/((고[1]-저[0])+(고[0]-저[0])*0.75);
a40 = (-(고[1]-저[0])+(고[0]-저[0])*0.6)/((고[1]-저[0])+(고[0]-저[0])*0.6);
a50 = (-(고[1]-저[0])+(고[0]-저[0])*0.5)/((고[1]-저[0])+(고[0]-저[0])*0.5);
a60 = (-(고[1]-저[0])+(고[0]-저[0])*0.4)/((고[1]-저[0])+(고[0]-저[0])*0.4);
a75 = (-(고[1]-저[0])+(고[0]-저[0])*0.25)/((고[1]-저[0])+(고[0]-저[0])*0.25);
b = 고[1] + (고[0]-저[0])+2;
상상 = (고[1]+a25+b)/(1+a25);
상 = (고[1]+a40+b)/(1+a40);
중 = (고[1]+a50+b)/(1+a50);
하 = (고[1]+a60+b)/(1+a60);
하하 = (고[1]+a75+b)/(1+a75);
if 등락폭[1] == 0 or 등락폭[1] == 1 or 등락폭[1] ==2 Then
매도마크 = 매도마크 + 1;
if iff(방향=상승, 기준고, 기준저) >= (상상+상)/2 then 등락폭 = 2;
else if iff(방향=상승, 기준고, 기준저) >= (상+중)/2 then 등락폭 = 1;
else if iff(방향=상승, 기준고, 기준저) > (중+하)/2 then 등락폭 = 0;
else if iff(방향=상승, 기준고, 기준저) > (하+하하)/2 then 등락폭 = -1;
else 등락폭 = -2;
if MarketPosition()==0 then {
if 진입 == 1 then buy("눌림목매수");
}
if MarketPosition() == 1 then {
if 청산 == 1 then ExitLong("대중소");
if 청산 == 2 then ExitLong("소중대");
if 저[0] > C then ExitLong("손절매");
if 고[1]>고[0] then ExitLong("전고점갱신실패");
if 매도마크 >= 3 then exitlong("매도마크");
}
감사^^
2013-04-25
266
글번호 62474
답변완료
지표식 좀 하나 맹글어 주세요...
1 선물1분봉 차트를 띄운후
종목 추가해서 개인콜옵션순매수금액 개인풋옵션순매수금액 차트를 띄웠습니다.
개인콜옵션순매수금액에서 개인풋옵션순매수금액을 뺀 금액을
막대그래프로 표현하고 싶습니다. 0을 기준으로 전봉보다 많으면 빨강색으로
전봉보다 작으면 파란색으로 표현하고 싶습니다.
참조데이터를 이용해 표현하는 방법을 알려주십시요...
2. 참조데이터는 몇개나 차트에 띄어 수식계산에 사용할수 있는지 궁금합니다.
3. plot 는 한 지표식안에서 몇개나 사용할수있는지 궁금합니다.
2013-04-24
197
글번호 62473
CSI300 님에 의해서 삭제되었습니다.
2013-04-24
0
글번호 62472
답변완료
부탁드립니다
수고많으십니다 코딩부탁합니다 ..
당일최저가를 기록한봉이 양봉이면 매수준비단계로 보고(최저가를var1저장)
최저가 갱신되기전에 연속2양봉패턴이 발생하면 2번째양봉 종가에 매수
var1-3틱에 손절
연속2양봉 나오기전에 최저가 갱신되면 ... 음봉이면 앞에 매수준비단계를 무효로인식
당일최신저가를 기록한 양봉이발생하면 매수준비단계로 다시 인식하고(var1최저가교체되는거죠?) ..
최저가 갱신전에 2연속 양봉이 나오면 매수 진입 .. 이렇게 순환하는 식을 만들고 싶습니다
당일최고가를 기록한봉이 음봉이면 (매도준비단계충족,var2에고가를저장);
음봉고가 갱신전까지 매도준비단계를 유효한거로 보고 연속2개음봉이 패턴이 나오면 2번째 음봉 종가에 매도진입 ,var2+1틱에손절;
음봉고가가 갱신되고 양봉으로마감하면 ,직전매도준비단계무효로보고.. 음봉으로마감하면 매도준비단계를 다시 인식하여 2연속음봉패턴이 나오면 매도진입
리버설시스템으로 만들어 주세요
감사합니다
2013-04-24
202
글번호 62471