커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5501
글번호 230811
답변완료
문의드립니다
도움이 간절히 필요해서 문의 드립니다, 키움에서 쓰던 지표식 입니다, 예스트레이더로 종목검색 할려고 합니다.
YY=OBV();
AA=YY>YY(1);
BB=YY<YY(1);
JJ=sum(BB, 일수)==일수 && sum(AA(일수), 일수)==일수;
KK = valuewhen(1,JJ, YY(일수));
CrossUp(YY,KK)
예스 종목검색식으로 부탁 드립니다
2023-09-21
1283
글번호 172623
답변완료
문의 드립니다
아래 피보나치 지표식으로 1,2번 수식어의 수정을 부탁 드립니다.
input : Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8),Per5(76.4);
var : HH(0),LL(0);
if date > date[1]+1 Then{
HH = H;
LL = L;
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
var1 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per1/100));
var2 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per2/100));
var3 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per3/100));
var4 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per4/100));
var5 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per5/100));
plot1(HH,"H");
plot2(var1,"23.6");
plot3(var2,"38.2");
plot4(var3,"50.0");
plot5(var4,"61.8");
plot6(var5,"76.4");
plot7(LL,"L");
1.
* 매매시간 10:00 ~ 익일 05:30
* 익절 100 손절 100
* 위의 피보나치지표 100의 변수값 23.6 매수후 76.4 청산
2.
* 매매시간 10:00 ~ 익일 05:30
* 익절 100 손절 100
* 위의 피보나치지표 100의 변수값 76.4 매도후 23.6 청산
----------------------
아래 수식의 해석을 부탁드립니다.
var1 = SwingHigh(1, H, 3, 1, 100);
var2 = SwingHigh(1, L, 3, 1, 100);
if crossup(c, var1) then{
buy();
exitshort();
}
if crossdown(c, var2) then{
sell();
exitlong();
}
2023-09-21
1210
글번호 172622
답변완료
거래시간 상이
안녕하세요?
예스틀이더를 8시쯤 틀어놓으면 9시전에 몇번 거래가 되더라구요 (실매매)
하지만 성능보고서상에는 9시전 거래가 없고 시간이 맞질않습니다.
이유가 있겠지해서 질문 드립니다.
스타트시간을 9시로 해놓고 해야 성능보고서랑 같이 움직이는지요?
2023-09-20
948
글번호 172621
답변완료
부탁드립니다
1. 종가가 전일 시가보다 높으면 해당 봉에 빨강색으로, 전일 및 전전일 시가보다 높으면 해당 봉에 흰색으로, 전일 시가보다 낮으면 해당 봉에 파란색으로, 전일 및 전전일 시가보다 낮으면 해당 봉에 검정색으로 구현해 주세요
2. 보조차트의 종가가 전일 고가보다 높으면 기본차트 해당 봉에 빨강색으로, 전일 저가보다 낮으면 기본차트 해당 봉에 파란색으로 구현해 주세요
고맙습니다.
2023-09-20
989
글번호 172620
답변완료
거래대금 수식 관련
다음 조건을 만족할 때 매수한다면 어떤 식을 만들면 되나요?
1. 이틀전 거래대금이 1000억원 이상일 때 오늘 시초가에 매수, 혹은 오늘 첫봉에서 매수
2. 당일 거래대금이 500억원 이상일 때 즉시 매수
2023-09-20
888
글번호 172619
답변완료
수식 문의
안녕하세요?
input: 시작(01시), 끝(23시)
var1 = 어제의 시작시각부터 끝시각까지의 중심값 (= 0.5*(최대값 + 최소값))을
오늘 01시부터 내일 01시가 되기 전까지 수평선으로 그려 주세요.
var2 = 위의 var1 을 24시간 빠꾸 시켜서 왼쪽에 그려주세요.
그러니까 어제의 시작시각부터 끝시각까이의 중심값을
어제의 01시(== 시작)부터 오늘 01시가 되기 전까지 수평선으로 그려 주세요.
물론 시작시각은 22시, 끝 시각은 다음날 15시로 인풋을 줄 수도 있습니다.
감사합니다.
2023-09-21
779
글번호 172618
러블리 님에 의해서 삭제되었습니다.
2023-09-20
15
글번호 172617
답변완료
함수요청
안녕하세요?
아래 글번호 83866번 재질문드립니다.
스크립트 검증 부탁드립니다.
작성주신 스크립트를 국내선물 1분봉에 적용해보면
9월 19일은, [1]은 나오나 [2]가 나오지 않습니다. 따라서 [3]으로도 연결이 안됩니다.
해당일은 DayOpen < DayClose(1) and value1 > DayOpen 이고
Var2 = DayHigh = 343.25, Var3 = DayLow = 342.70 입니다.
[1] 09:06에 CrossDown(c=342.65,var3=342.70)을 만족하므로 익봉 시가인 09:07에 342.60으로 "s1" 신호가 생성되어야 합니다.
[2] 그리고 09:27 완성봉 종가가 343.30이므로 CrossUp(c=343.30,var2=343.25)이 되어 익봉 시가인 09:28에 343.30으로 "b2" 신호가 나와야 합니다.
[3] 그리고 11:20에는 CrossDown(c=341.80, var1=341.86)이면서 (var1=341.86) < (var3 =342.70)을 만족하므로 익봉 시가인 11:21에 341.75로 "Cx" 신호가 나와야 합니다.
[4] 아울러 매수, 매도 신호가 최대 1번씩 총 2번이 나와서 당일 추가 신호는 없어야 합니다.
////////////글번호 83866번에서 작성주신 스크립트////////////
var : b(0),s(0);
var1 = ma(c,100);
if Bdate != Bdate[1] Then
{
b = 0;
s = 0;
value1 = var1;
}
if DayIndex < 7 Then
{
Var2 = DayHigh;
Var3 = DayLow;
}
if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then
b = b+1;
if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then
s = s+1;
if MarketPosition >= 0 and DayOpen < DayClose(1) and value1 > DayOpen Then
{
if s < 1 and DayIndex >= 7 and CrossDown(C,Var3) Then
Sell("s1",AtMarket);
if b < 1 and s == 1 and CrossUp(C,Var2) Then
Buy("b2",AtMarket);
if CrossDown(c,var1)and var1 < Var3 Then
ExitLong("Cx",AtMarket);
}
if MarketPosition <= 0 and DayOpen > DayClose(1) and value1 < DayOpen Then
{
if b < 1 and DayIndex >= 7 and CrossUp(C,Var2) Then
Buy("b1",AtMarket);
if s < 1 and b == 1 and CrossDown(C,Var3) Then
Sell("s2",AtMarket);
if CrossUp(c,var1) and var1 > Var2 Then
ExitShort("Px",AtMarket);
}
SetStopEndofday(151900);
////////////스크립트로 작성하고자는 전략////////////
1번 신호는 2번 신호보다 우선하여 나오게 하고 싶습니다.
즉 s1은 b2에 우선합니다. b1은 s2에 우선합니다.
s1이 발생하지 않았는데 b2가 먼저 나오게 하지 않게 하고자 합니다.
s1이 발생된 후에는 b2가 나올 수 있습니다.
b1이 발생하지 않았는데 s2가 먼저 나오게 하지 않게 하고자 합니다.
b1이 발생된 후에는 s2가 나올 수 있습니다.
당일 매수는 최대 1번, 매도도 1번, 도합 2번까지 진입이 가능하게 하고자 합니다.
1 .당일 시초가가 전일 종가대비 하락 출발하되 시초가 당시의 100ma > 시초가일 때
가) 당일 개장 후 7개봉의 고점과 저점을 잡고 저점 이탈시 익봉 시가에 매도(s1) 진입
나) 당일 개장 후 7개봉의 고점과 저점을 잡고 s1인 상태에서 고점 돌파시 익봉 시가에 매수(b2) 진입
다) 분봉의 종가가 100ma를 하향 이탈하되 당시 100ma가 당일 개장 후 7개봉 저점보다 작은 상태이면 b2 청산
2. 당일 시초가가 전일 종가대비 상승 출발하되 시초가 당시의 100ma < 시초가일 때
가) 당일 개장 후 7개봉의 고점과 저점을 잡고 고점 돌파시 익봉 시가에 매수(b1) 진입
나) 당일 개장 후 7개봉의 고점과 저점을 잡고 b1인 상태에서 저점 이탈시 익봉 시가에 매도(s2) 진입
다) 분봉의 종가가 100ma를 상향 돌파하되 당시 100ma가 당일 개장 후 7개봉 고점보다 큰 상태이면 s2 청산
3. 15시 19분 강제청산
*1번 신호는 2번 신호보다 우선하여 나오게 하고 싶습니다.
즉 s1은 b2에 우선합니다. b1은 s2에 우선합니다.
s1이 발생하지 않았는데 b2가 먼저 나오게 하지 않게 하고자 합니다.
s1이 발생된 후에는 b2가 나올 수 있습니다.
b1이 발생하지 않았는데 s2가 먼저 나오게 하지 않게 하고자 합니다.
b1이 발생된 후에는 s2가 나올 수 있습니다.
당일 매수는 최대 1번, 매도도 1번, 도합 2번까지 진입이 가능하게 하고자 합니다.
2023-09-20
691
글번호 172616
예스쟁이 님에 의해서 삭제되었습니다.
2023-09-20
6
글번호 172605