커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3731
글번호 230811
답변완료
문의드립니다
1) n일 동안 갭상승수치의 합계 - 갭하락수치의 합계 = ?
2) 월초부터 월말까지 갭상승수치의 합계 - 갭하락수치의 합계 = ? (한달간)
3) 옵션시작일부터 옵션한달간 갭상승수치의 합계 - 갭하락수치의 합계 = ?
감사합니다
2024-10-01
735
글번호 183887
답변완료
윌리엄식 RSI 수식 에러 수정 부탁합니다.
다음은 윌리엄식 RSI 키움 수식입니다.
---------------------------------------------------------------
rsi_r = (C-C(1));
qq=100 - (100/(1+eavg(if(rsi_r>0,rsi_r ,0), shortPeriod) /
eavg(if(rsi_r<0,abs(rsi_r),0), shortPeriod)));
qq1 = eavg(qq,longPeriod);
r_sig = eavg(qq1, signal);
r_osc = qq1 - r_sig;
---------------------------------------------------------------
위 수식을 아래 처럼 if을 예스랭기지에서 해보니 계속 에러만 납니다.
rs_r = C-C[1];
컨디션1 =
if rs_r>0 Then
{
rs_r
}
Else if rs_r<0 Then
{
0
}
컨디션2 =
if rs_r<0 Then
{
abs(rs_r)
}
Else if rs_r<0 Then
{
0
}
qq = 100-(100/(1+Ema(컨디션1, shortPeriod)/Ema(컨디션2, shortPeriod)));
qq1 = ema(qq,longPeriod);
r_sig = ema(qq1, signal);
r_osc = qq1 - r_sig;
뭐가 잘 못 됐는지 고쳐주실 수 있을까요?
2024-10-01
890
글번호 183886
답변완료
프리장에서의 캔들의 크기와 관련 추가사항입니다.
항상 빠르고 친절한 답변에 감사를 드립니다.
작성해 주신 식을 제가 운영하는 로직에 대입해 보았습니다.
처음 식을 적용했을 때는 총손익이 높아지길래 역시 프리장의 캔들의 크기가 본장에서 영향을 미치는 구나 생각을 했었는데 오히려 거래 횟수가 늘어 시뮬레이션의 거래내역을 살펴 봤더니 프리장에서의 실적이 누적되어 있었습니다.
알려주신 식이 프리장의 캔들크기에만 영향을 미치게할 수 없는지요?
참고로 TimeHigh(StartTime,EndTime) 함수를 사용해 봤지만 제대로 적용되는지 알수가 없었습니다.
다음은 운용하고 있는 로직(일부분)에 적용한 내용입니다.
input : THL_Bcan(109), THL_Scan(72);
input : 시간(70000), 시작시간(70000), 종료시간(213000), StartTime(213100),EndTime(055623);
var : Tcond(False);
var : HH(0), LL(0), 프리캔들(0) ;
buySignal = 프리캔들 >= THL_Bcan and
buySignal = 프리캔들 >= THL_Scan and
//프리장캔들
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Tcond = true;
HH = H;
LL = L;
}
if (sdate != sdate[1] and stime >= 종료시간) or
(sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then
{
Tcond = False;
}
if Tcond == true Then
{
if HH > 0 and H > HH Then
HH = H;
if LL > 0 and L < LL Then
LL = L;
}
프리캔들 = (HH - LL);
//본장진입시간
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if Bdate != Bdate[1] Then
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
if Tcond == true Then
{
if buySignal == true Then
Buy("Buy");
if buyExit == true Then
ExitLong("BExit");
if sellSignal == true Then
Sell("Sell");
if sellExit == true Then
ExitShort("SExit");
}
2024-10-01
784
글번호 183885
답변완료
지표 질문입니다
최근 20캔들 최고가 천정에서
최근 20캔들 최저가 바닥(A)까지 하락 기간 형성한 음봉 캔들수(N)를 계산하고
최근 20캔들 최저가 바닥(A)에서 N캔들 상승한 캔들 고가를 표시한다
최근 20캔들 최저가 바닥에서
최근 20캔들 최고가 천정(B)까지 상승 기간 형성한 양봉 캔들수(M)를 계산하고
최근 20캔들 최고가 천정(B)에서 M캔들 하락한 캔들 저가를 표시한다
20캔들 등 수치 부분은 편집기 외부에서 독립적으로 입력 가능하도록 부탁합니다
감사합니다
2024-09-30
835
글번호 183884
답변완료
수식 문의 드립니다.
안녕하세요.
수식으로 종목 검색을하고싶은데 수식 문의드립니다.
1.볼린저밴드(20,2)상단 밴드 돌파
2.bwi(20,2)돌파
3.일목균형표 10,30,52 주가가 현재 주가의 선행 스팬 1,2 위에 위치할것
세가지를 만족하는 수식을 알려주시면 감사하겠습니다.
2024-09-30
821
글번호 183880
답변완료
종목검색식 부탁드림니다.
항상 노고에 감사드림니다.
아래의 수식을 종목검색식으로 부탁드림니다.
거래량지표 수식을 변환하여 양으로 표시될때 가격이동평균 60선을 돌파할때 검색되는
수식을 부탁드림니다.
변환된 거래량지표
VR(단기)-VR(장기)/VR(장기)*100
지표조건
단기 20
장기 60
2024-09-30
817
글번호 183876
답변완료
지표 질문입니다
최근 20캔들 최고가 천정에서 18캔들 하락한 바닥(A)까지 형성한 음봉 캔들수(N)를 계산하고
최근 20캔들 바닥(A)에서 N캔들 상승한 캔들 고가를 표시한다
20캔들 18캔들 등 수치 부분은 편집기 외부에서 독립적으로 입력 가능하도록 부탁합니다
감사합니다
2024-09-30
734
글번호 183869
답변완료
문의드립니다
m1=ma(c,20,지수);
조건= if(c>=o && c>=m1&&m1>m1(1)&& m1(1)<=m1(2),1,0);
Valuewhen(1, 조건,O)
지수 20선 입니다
종목검색 부탁드립니다
2024-09-30
992
글번호 183864
답변완료
검색이 왜 안될까요?
코드 1:
// 입력 변수 선언
var: 볼밴하단(0), 볼밴상단(0), 밴드비율(0), 스토캐스틱_긴주기(0), 스토캐스틱_짧은주기(0), 스토캐스틱_긴주기_이평(0);
var: 최고점_화살표(0), 최저점_화살표(0), 거래량_스토캐스틱(0);
var: 스토_긴주기_Z(0), 스토_짧은주기_Z(0); // Z-Score 변환된 값
// 볼린저 밴드 상단 계산 (기간 20, 표준편차 1)
볼밴상단 = BollBandUp(20, 1);
// 볼린저 밴드 상단의 스토캐스틱 변환 (300 기간과 30 기간)
스토캐스틱_긴주기 = (볼밴상단 - Lowest(볼밴상단, 300)) / (Highest(볼밴상단, 300) - Lowest(볼밴상단, 300)) * 100;
스토캐스틱_짧은주기 = (볼밴상단 - Lowest(볼밴상단, 30)) / (Highest(볼밴상단, 30) - Lowest(볼밴상단, 30)) * 100;
// 스토캐스틱 지표 계산 (저가 기준, 40 기간)
거래량_스토캐스틱 = (l - Lowest(l, 40)) / (Highest(l, 40) - Lowest(l, 40)) * 100;
// 스토캐스틱의 이동 평균 (기간 10)
스토캐스틱_긴주기_이평 = Ema(스토캐스틱_긴주기, 10);
// Z-Score 변환 (스토캐스틱 긴주기)
스토_긴주기_Z = (스토캐스틱_긴주기 - Average(스토캐스틱_긴주기, 300)) / Std(스토캐스틱_긴주기, 300);
// Z-Score 변환 (스토캐스틱 짧은주기)
스토_짧은주기_Z = (스토캐스틱_짧은주기 - Average(스토캐스틱_짧은주기, 30)) / Std(스토캐스틱_짧은주기, 30);
// 그래프 출력 (Z-Score 변환된 값)
//plot3(스토_긴주기_Z, "스토-긴주기-Z");
//plot4(스토_짧은주기_Z, "스토-짧은주기-Z");
// 텍스트 화살표 표시 조건: 볼밴 상단이 0에서 특정 패턴 발견
/*
var: 화살표1(0), 화살표2(0);
if countif(스토캐스틱_긴주기 == 0, 5) > 1 && Highest(c, 20)[1] < c then
{
화살표1 = Text_New_Self(sDate, stime, 0, "▲");
Text_SetStyle(화살표1, 2, 2);
Text_SetColor(화살표1, Green);
}
*/
if CrossUp (스토캐스틱_긴주기,0) then Find(1);
코드 2:
// 입력 변수 선언
var: 스토캐스틱_긴주기(0),볼밴상단(0); // 스토캐스틱 긴주기
// 볼린저 밴드 상단 계산 (기간 20, 표준편차 1)
볼밴상단 = BollBandUp(20, 1);
// 볼린저 밴드 상단의 스토캐스틱 변환 (300 기간)
스토캐스틱_긴주기 = (볼밴상단 - Lowest(볼밴상단, 300)) / (Highest(볼밴상단, 300) - Lowest(볼밴상단, 300)) * 100;
// 검색용 조건: 스토캐스틱 긴주기가 0을 상향 돌파할 때
if CrossUp(스토캐스틱_긴주기, 0) then
Find(1);
코드1은 코드2에서 필요한 부분만 남기고 삭제한 버전 입니다.
하지만 검색을 실행시키면 코드1은 검색이 되나 코드2는 검색이 되지 않습니다.
코드2에서 그래프를 출력시키면 그래프는 분명 0선 이하에서 0선 이상으로 움직입니다.
하지만 코드2는 검색이 안되요.. 왜 그런가요?
2024-09-30
844
글번호 183863