커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1360
글번호 230811
체결되길원합니다 님에 의해서 삭제되었습니다.
2024-11-13
1
글번호 185222
답변완료
샹들리에 청산
65822 샹들리에 청산에 관한 종목검색식 요청합니다.
아래는 해당 지표입니다.
종가가 var1을 돌파하는 수식 요청합니다
input : Period(14),ATRP(13),ATRS(3);
var1 = highest(H,Period)-atr(13)*atrs;
var2 = Lowest(L,Period)+atr(13)*atrs;
plot1(var1);
plot2(var2);
2024-11-13
722
글번호 185221
답변완료
요청드립니다.
1. 1차 매수진입 일봉전 60일 저점보다-100포인트까지 하락돌파하면 매수진입하다.
2. 첫번째 진입후 직전 진입가격보다 -100포인트 낮아지면 매수 진입한다
3. 2번을 10번 반복해서 계속매수진입한다.
2024-11-13
605
글번호 185220
답변완료
종목검색식 부탁드립니다.
종목 검색식을 만들고 싶습니다.
최근 N일 동안
최소 1번 이상
최고가가 상한가를 간 종목을 찾고 싶습니다.
(종가상 상한가 뿐만 아니라, 장중 최고가가 상한가 또는 상한가로 마감한 종목)
매번 감사드립니다.
2024-11-13
683
글번호 185219
답변완료
지표식 수정
바로 아래는 키움식인데 이것을 예스식으로 바꾸려고합니다.
s=sum(1);
A=valuewhen(1, s%봉수==1, O);
As=valuewhen(1, s%봉수==1, S);
B=valuewhen(1, s%봉수==0, C);
Bs=valuewhen(1, s%봉수==0, S);
AA=VALUEWHEN(1,AS<BS,A),-봉수+1;
BB=VALUEWHEN(1,AS<BS,B),-봉수+1;
LL=VALUEWHEN(1, S%봉수==0, lowest(l,봉수));
흰선1=min(aa,bb);
음고1=valuewhen(1,As<Bs, A),-봉수+1;
양고1=valuewhen(1,As<Bs, B),-봉수+1;
평고1=if(음고1>=양고1,-(음고1-흰선1), +(양고1-흰선1));
qq1=sum(평고1, n2)/1000;
qq2=crossup(qq1, 0) or crossdown(qq1, 0);
qq3=if(qq2, 50, 0);
valuewhen(1, qq3, h)
에서 위 고가 선과
위 식 유사부분은 생략....
valuewhen(1, qq3, l)
저 저가 선 사이에 봉(차트상의 봉사이에 그 바음 고저선이 나타나지 전까지 사이에 색상은 유지) 고저에 선이 그어지고 그 사이 색을 입히고 싶습니다.
( 봉수, n1, n2 는 변수로 설정하여 각각 100, 30, 70으로 임의로 우선 설정한다)
아래는 만들어 본 것인데... 에러가 너무 많아요 수정보다는 전체적으로 다시 작성을 부탁합니다.
input : 봉수(75), n1(30), n2(200); // 변수 설정
var : s(0), A(0), As(0), B(0), Bs(0), AA(0), BB(0), LL(0), 흰선1(0), 음고1(0), 양고1(0), 평고1(0), qq1(0), qq2(false), qq3(0), qq33(0), qq22(false);
// 카운터 변수 업데이트
s = s + 1;
// 봉수와 관련된 가격 계산
A = iff(s % 봉수 == 1, Open, A); // 봉수마다 매수 가격 (시가)
As = iff(s % 봉수 == 1, s, As); // 봉수마다 매수 시점
B = iff(s % 봉수 == 0, Close, B); // 봉수마다 종가
Bs = iff(s % 봉수 == 0, s, Bs); // 봉수마다 매도 시점
// 조건에 맞는 A, B값 계산
AA = iff(As < Bs, A, AA);
BB = iff(As < Bs, B, BB);
LL = iff(s % 봉수 == 0, lowest(Low, 봉수), LL); // 봉수만큼의 최저가 계산
// 흰선1 설정: AA와 BB 중 작은 값
흰선1 = min(AA, BB);
// 음고1과 양고1 조건 설정
음고1 = iff(As < Bs, A, 음고1);
양고1 = iff(As < Bs, B, 양고1);
// 평고1 계산
평고1 = iff(음고1 >= 양고1, -(음고1 - 흰선1), 양고1 - 흰선1);
// qq1 계산: n2 기간 동안 평고1 합산 값 계산
qq1 = sumN(평고1, n2) / 1000;
// 교차 여부 체크
qq2 = CrossUp(qq1, 0); // qq1 값이 0을 상향 교차하는지 확인
qq22 = CrossDown(qq1, 0); // qq1 값이 0을 하향 교차하는지 확인
// 교차 신호 발생 시 50, 그렇지 않으면 0
qq3 = iff(qq2, 50, 0);
qq33 = iff(qq22, 50, 0);
// 최종 출력
plot1 = iff(qq3 == 50, High, 0); // 상향 교차 고가 값
plot2 = iff(qq33 == 50, Low, 0); // 하향 교차 저가 값
Plot(plot1, "상향 교차 고가 값", colorRed);
Plot(plot2, "하향 교차 저가 값", colorBlue);
2024-11-13
696
글번호 185218
답변완료
수정부탁드립니다.
수고하십니다.
아래수식을 시뮬레이션 해보면 틱의 동일봉에서 동일시간으로 매수,매도 청산까지
이루어질때도 있는데 다음봉부터 청산이나 매매스위칭 되게 수정부탁드립니다.
첨부그림 참조해주세요.
---------------------------------------------------------------------
INPUT : LENGTH(1), PRO(0.35), LOSS(0.4),T(144900),TICK(1);
VAR : TCHAN(0), BCHAN(0);
var : bs1(0),ss1(0);
var : bs2(0),ss2(0);
var : bs3(0),ss3(0);
var : bl(0),bh(0), sh(0), sl(0);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
// TCHAN 보다 크면 매수 1단계
if TCHAN[1] < H[1] then {bs1 = 1;}
if BCHAN[1] > L[1] then {ss1 = 1;}
// 만약 매수 1단계 진행중 BCHAN의 저가를 깨면 매수단계 초기화
if bs1 == 1 and BCHAN > L then {bs1=0; }
if ss1 == 1 and TCHAN < H then {ss1=0; }
//진입
if bs1 == 1 then {buy("매수",atlimit,TCHAN-PriceScale*TICK); }
if ss1 == 1 then {sell("매도",atlimit,BCHAN+PriceScale*TICK); }
SetStopProfittarget(PRO,PointStop);
SetStopLoss(LOSS,PointStop);
2024-11-13
634
글번호 185216
답변완료
수식 질문합니다.
안녕하세요.
20/390선 데드 후 골드한 종목 중에서
1. 이전 골드 후 정배열 기간 대비 데드후골드 기간이 10% 이하로 짧은 종목.
2. 이전 골드 후 정배열 기간은 60봉 이상, 데드후골드 기간은 20봉 이하인 종목.
감사합니다.
2024-11-12
710
글번호 185215
답변완료
함수질문입니다.
안녕하세요! 항상 친절한 답변 감사합니다.
초보라 독해만하고 있는데, 시간함수가 혼란스러워 질문드립니다.
1) 일봉에서 sdate[0]와 date[1]는 결국 같은 값인가요?
2) 같은 맥락으로 분봉주기에서 Stime[0] 과 time[1]은 같은 값일 수 밖에 없는 건가요?
매번 시간 내주셔서 감사합니다.
2024-11-12
597
글번호 185214
답변완료
부탁드립니다
input : 분(30);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
Array : HH[50](0),LL[50](0),OO[50](0), cc[50](0), pp[50](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TimeToMinutes(stime)%분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or
(Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then
{
for cnt = 49 downto 1
{
OO[cnt] = OO[cnt-1];
HH[cnt] = HH[cnt-1];
LL[cnt] = LL[cnt-1];
cc[cnt] = cc[cnt-1];
pp[cnt] = pp[cnt-1];
}
OO[0] = O;
HH[0] = H;
LL[0] = L;
cc[0] = C;
pp[0] = O;
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
위의 식은 분단위인데 일단위로 변경할 수 있을까요?
2024-11-12
774
글번호 185213