커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1699
글번호 230811
답변완료
종목검색식 문의드립니다
수고많으십니다....
종목 검색식 문의드립니다
일봉에서 5이평과 20이평선의 데드 크로스점(데드크로스가격)을 좌측으로 라인을 그어 연결한다고할때 이 라인을 당일 종가로 돌파하는 종목을 검색하고 싶습니다
부탁드립니다~~~
2022-01-17
738
글번호 155528
답변완료
75545번 지표식 수정합니다
- 일봉의 일목균형표를 틱봉에 표시하는 지표식을
300틱에 표시되는 값과 120틱에 표시되는 값이 다릅니다.
무슨 이유인지요?
감사합니다
2022-01-17
815
글번호 155526
답변완료
함수요청
안녕하세요?
답변주신 아래 글번호 75497번을 매매에 응용하고 싶습니다.
국내 선물 3분봉으로 매매를 하되
- 현주가 > 전일주가이며, 현주가 > 20ma(주가) 이고, 누적미결제약정 > 60ma(누적미결제약정)이면 익봉시가에 매수 진입
- 매수 진입 이후 현주가 < 20ma(주가)이고, 누적미결제약정 < 60ma(누적미결제약정)이면 익봉시가에 매수청산
- 현주가 < 전일주가이며, 현주가 < 20ma(주가) 이고, 누적미결제약정 > 60ma(누적미결제약정)이면 익봉시가에 매도
- 매도 진입 이후 현주가 > 20ma(주가) 이고, 누적미결제약정 < 60ma(누적미결제약정)이면 익봉시가에 매도청산
- 15시 15분 모든 포지션 강제청산
- 당일 첫봉에서 진입신호가 발생되면 익봉부터 신호를 생성하고자 합니다.
- 진입기준으로 매매횟수를 최대 2회로 하고자 합니다.
====================================================================================
input : ntime(60),P(60);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : sum1(0),mav1(0);
Array : CC[100](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 = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
for cnt = 1 to 99
{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = OI;
if CC[P-1] > 0 then
{
sum1 = 0;
for cnt = 0 to P-1
{
sum1 = sum1+CC[cnt];
}
mav1 = sum1/P;
plot1(mav1,"이평1");
}
}
2022-01-17
882
글번호 155525
huhboo99 님에 의해서 삭제되었습니다.
2022-01-17
0
글번호 155516
답변완료
시각표시
안녕하세요,
장중 고점(저점)을 이룬 시각(시간의 경과에 따라 변함_ 그시간이후부터의 timelow 또는 timehigh의 시작시점으로 사용하기 위해)을 나타내는 수식은 어떻게 되는가요?
감사합니다.
2022-01-17
865
글번호 155515
답변완료
수식을 부탁드립니다
<음봉고가라인지표수식>
음봉의 고가라인 표시수식. 이 라인은 양봉의 종가상으로 돌파하는 경우에는
돌파한 양봉이후에 새로 발생하는 음봉중에서 가장 높은 고가로 라인이 새로 변경
표시되어야 한다
<매수종목검색식과 신호수식>
1.월봉기준으로 양봉으로 종가가 24선을 돌파할 때의 매수종목 검색식
2. 1번을 만족하면서 위 음봉고가지표라인을 돌파하는 매수종목 검색식
3. 2번을 만족하는 봉이 완성된이후 다음봉에서 음봉이 발생하는 종목검색식
추가적으로 최근6봉이내에 6이평선이 볼린저밴드(12,2) 중심선을 돌파한
경우가 1회이상 존재해야된다
<시스템매매신호>
위 3번의 매수종목신호 또는 종목이 검색되는 경우에 진입과 청산기중은 다음과 같다
진입은 매월 말일 장종료 동시호가에 시장가로 매수진입되게 한다.
금액기준(1백만원) 또는 수량기준(100주)을 변수로 설정변경가능하게 하고, 검색종목수가
많아 보유현금으로 전부 매수하지 못할때에는 매수우선순위는 시총순위>유보율기준>24선돌파순위로 한다
청산은 매수후 5%이상으로 하되 트레일링스탑기능을 활용하여 75,10%,15%,20%,30%기준으로 한다. 진입후 익월에 청산되지 못하고 다시 음봉으로 마감하는 경우에는 진입기준에 따라
말일 장마감동시호가시간에 시장가로 첫진입의 수량으로 진입하고, 익월 청산은 추가진입분은 5%에 청산하고 첫진입분은 앞의 트레일링 청산기준을 활용한다.
두번째 진입까지 청산되지 못한 경우에는 또다시 말일에 첫진입의 수량만큼 진입하고
청산은 두번째,세번째 진입분은 5%에 청산하고, 첫진입분은 트레일링기준을 활용한다.
세번째 진입까지 청산이 안된 경우에는 또다시 말일에 첫진입수량만큼 진입하고
추가 진입분은 5%에 청산대기하고, 첫진입분만 트레일링기준으로 청산한다
2022-01-17
1217
글번호 155510
답변완료
부탁드립니다
피보나치 상단(76.4%)이 위로 3회 상향하면 매수 신호
피보나치 하단(23.6%)이 아래로 3회 하향하면 매도 신호가
나오는 시스템식 부닥드립니다
3회는 변경가능하도록 부탁드립니다 ex 1,2,3,4,5,6,7,8....
2022-01-17
986
글번호 155509
답변완료
지표 수식 부탁드립니다. (수정 의뢰 2)
담당자님, 안녕하세요.
항상 수고 많으십니다.
감사드립니다.
수식작성QA 75536 답변(RE)에서 작성해 주신 수식에 대하여
수정 보완을 부탁드립니다. (수정 의뢰 2)
직전 수정의뢰1 75561번 질문에서 이어지는 질문입니다.
작성해주신 75536 답변 수식을 실행해 보니 위 그림 파일과 같이 실행됩니다.
상단라인(굵은 청색선)은
MACD 오실레이터 값의 부호가 장시작 후 최초 1회 변경 될 때
장시작 부터 그 때(최초 1회 변경)까지의 최고점을
장마감까지 계속 표시합니다.
하단라인(굵은 분홍색선)은
MACD 오실레이터 값의 부호가 변경될 때 마다
장시작 부터 매번 변경되는 시점까지의 최저점을 계속 갱신해서
변경되는 수평라인을 표시합니다.
-----------------------------------------------------------------------------------
하단라인(굵은 분홍색선)도
MACD 오실레이터 값의 부호가 장시작 후 최초 1회 변경 될 때
장시작 부터 그 때(최초 1회 변경)까지 구간의 최저점을
장마감까지 계속 수평라인으로 표시(상단라인 처럼 표시)하도록
기존 지표수식 중 하단라인의 수정, 보완을 부탁드립니다.
(기존 상단라인은 계속 유지)
* 하단라인도 상단라인과 같은 로직으로 표시되도록 수정함.
즉,동일한 일자에서 고점과 저점 모두 높아지더라도
상단라인과 하단라인 모두 각각 최초 1회 변경까지 구간의 고점, 저점을
장마감까지 계속 수평라인으로 표시 되도록 수정
아래 지표1, 지표2 모두 수정해 주실 것을 부탁드립니다.
cf. 지표1 : 오실레이터 변경 시점 (즉, 오실레이터 골든크로스 또는 데드크로스 시점 포함)의
구간까지 고점 및 저점을 표시하는 수평라인
cf. 지표2 : 오실레이터 변경되기 직전 (즉, 오실레이터 골든크로스 또는 데드크로스 되기 직전)의
구간까지 고점 및 저점을 표시하는 수평라인
---------------------------------------------------------------------------------------
위와 같이 지표1과 지표2의 지표 수식의 수정, 보완을 부탁드립니다.
담당자님 노고와 답변에 미리 감사드립니다.
-------------------------------------------------------------------------------------------------
아래는 수식작성QA 75536 답변(RE)에서 작성해 주신 수식입니다.
작성에 참고하시기 바랍니다.
지표1
Input : short(12), long(26), signal(9),n(1);
Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Bdate != Bdate[1] Then
{
T = 0;
var1 = 0;
Var2 = 0;
}
Else
{
if CrossUp(MACDO,0) or CrossDown(MACDO,0) Then
{
T = T+1;
if T == n Then
{
var1 = DayHigh;
} Var2 = DayLow;
}
}
if var1 > 0 and Var2 > 0 Then
{
Plot1(Var1);
plot2(Var2);
}
Else
{
NoPlot(1);
NoPlot(2);
}
---------------------------------------------------
지표2
Input : short(12), long(26), signal(9),n(1);
Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Bdate != Bdate[1] Then
{
T = 0;
var1 = 0;
Var2 = 0;
}
Else
{
if CrossUp(MACDO,0) or CrossDown(MACDO,0) Then
{
T = T+1;
if T == n Then
{
var1 = DayHigh(0)[1];
} Var2 = DayLow(0)[1];
}
}
if var1 > 0 and Var2 > 0 Then
{
Plot1(Var1);
plot2(Var2);
}
Else
{
NoPlot(1);
NoPlot(2);
}
2022-01-17
1266
글번호 155508
답변완료
지표 수식 부탁드립니다. (수정 의뢰 1)
담당자님, 안녕하세요.
항상 수고 많으십니다. 작성해주신 지표 수식을 잘 활용하고 있습니다.
감사드립니다.
수식작성QA 75536 답변에서 작성해 주신 수식에 대하여
수정 보완을 부탁드립니다. (수정 의뢰 1)
위의 수정의뢰 문서2 75562와 관련되는 질문입니다.
작성해주신 75536 답변 수식을 실행해 보니 위 그림 파일과 같이 실행됩니다.
상단라인(굵은 청색선)은
MACD 오실레이터 값의 부호가 장시작 후 최초 1회 변경 될 때
장시작 부터 그 때(최초 1회 변경)까지의 최고점을
장마감까지 계속 표시합니다.
하단라인(굵은 분홍색선)은
MACD 오실레이터 값의 부호가 변경될 때 마다
장시작 부터 매번 변경되는 시점까지의 최저점을 계속 갱신해서
변경되는 수평라인을 표시합니다.
-------------------------------------------------------------------------------------
상단라인(굵은 청색선)도
MACD 오실레이터 값의 부호가 변경될 때 마다
장시작 부터 변경되는 시점까지의 최고점을 계속 갱신해서
변경되는 수평라인을 표시(하단라인 처럼 표시)하도록
기존 지표수식 중 상단라인 부분의 수정, 보완을 부탁드립니다.
(기존 하단라인은 계속 유지)
* 상단라인도 하단라인과 같은 로직으로 표시되도록 수정함.
즉, 동일한 일자에서 고점과 저점 모두 높아지면
그 날짜에 상단라인과 하단라인 모두 각각 고점과 저점 변경을 반영하여
갱신되어 표시되도록 수정
아래 지표1, 지표2 모두 수정해 주실 것을 부탁드립니다.
cf. 지표1 : 오실레이터 변경 시점 (즉, 오실레이터 골든크로스 또는 데드크로스 시점 포함)의
구간까지 고점 및 저점을 표시하는 수평라인
cf. 지표1 : 오실레이터 변경되기 직전 (즉, 오실레이터 골든크로스 또는 데드크로스 되기 직전)의
구간까지 고점 및 저점을 표시하는 수평라인
--------------------------------------------------------------------------------------
위와 같이 지표1과 지표2의 지표 수식의 수정, 보완을 부탁드립니다.
담당자님 노고와 답변에 미리 감사드립니다.
----------------------------------------------------------------------------------------------------
아래는 수식작성QA 75536 답변(RE)에서 작성해 주신 수식입니다.
작성에 참고하시기 바랍니다.
지표1
Input : short(12), long(26), signal(9),n(1);
Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Bdate != Bdate[1] Then
{
T = 0;
var1 = 0;
Var2 = 0;
}
Else
{
if CrossUp(MACDO,0) or CrossDown(MACDO,0) Then
{
T = T+1;
if T == n Then
{
var1 = DayHigh;
} Var2 = DayLow;
}
}
if var1 > 0 and Var2 > 0 Then
{
Plot1(Var1);
plot2(Var2);
}
Else
{
NoPlot(1);
NoPlot(2);
}
---------------------------------------------------
지표2
Input : short(12), long(26), signal(9),n(1);
Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Bdate != Bdate[1] Then
{
T = 0;
var1 = 0;
Var2 = 0;
}
Else
{
if CrossUp(MACDO,0) or CrossDown(MACDO,0) Then
{
T = T+1;
if T == n Then
{
var1 = DayHigh(0)[1];
} Var2 = DayLow(0)[1];
}
}
if var1 > 0 and Var2 > 0 Then
{
Plot1(Var1);
plot2(Var2);
}
Else
{
NoPlot(1);
NoPlot(2);
}
2022-01-17
1117
글번호 155507