커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7378
글번호 230811
답변완료
수식 문의드립니다.
1.진입가
. 전일 주간장 12:15 ~ 15:45 사이에서의 고가,저가와 야간장에서의 저가, 고가
이상 4개의 가격을 비교하여 제일 낮은 가격과 제일 높은 가격의 평균 값을 진입가로 한다.
(* 장시작 봉챠트를 정의 해줘야 하는지 모르겠습니다. 필요하다면 최소분봉(1분봉)으로 부탁드립니다.)
2. 매수진입
. 진입가가 전일종가 대비 더 높을 경우 진입가로 2계약 매수 진입 한다.
3. 매도진입
. 진입가가 전일종가 대비 더 낮을 경우 진입가로 2계약 매도 진입 한다.
4. 청산
. 진입 후 1포인트 이익 발생되면 1계약 이익 청산한다.
진입 후 2포인트 이익 발생되면 나머지 한계약 이익 청산한다.
. 진입 후 1포인트 이익달성 후 다시 진입가에 도달하면 스탑청산
. 진입 후 1포인트 손실 발생하면 2계약 손절 청산
5. 기타사항
- 13:00 이후에는 진입 금지
- 14:30 보유포지션 강제청산
잘 부탁드립니다.
감사합니다.
2016-09-09
150
글번호 101858
답변완료
고저점
다음의 조건에 맞는 수식을 부탁합니다.
var1 = ma(c,p1);
var2 = ma(c,p2); 이라면
1. var1 의 직전 저점 보다 var1 의 현재 값이 크고 ( var1이 저점을 지나 상향중이고 ) 종가가 var2 를 crossup 하면 매수
2. var1 의 직전 고점 보다 var1 의 현재 값이 작고 ( var1이 고점을 지나 하향중이고 ) 종가가 var2 를 crossdown 하면 매도
2016-09-11
141
글번호 101857
답변완료
수식문의드려요
1.input : Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8),Per5(76.4);
var : HH(0),LL(0);
if DayOfWeek(sdate) < DayOfWeek(sdate[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");
해당주의피보나치식인데요 단,월요일은 저번주 것을 포함한 피보나치로는 안되나요??
월요일이 초기화가되는데 화요일 부터는 월화를 포함한 피보나치로 시작하게 하고싶습니다.
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]+30 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");
이건월이고요 첫주만 저번달 이어서 가능하게 부탁드립니다.
3.
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]+1000 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");
이건 년도고요 첫달만 이어지게 부탁드립니다.
2016-09-10
152
글번호 101856
답변완료
수식 부탁드립니다
안녕하세요?
시스템 수식 부탁 드립니다.
1. 진입1에 대한 조건
가. 매수주문
- 전일 종가 대비 시초가가 1포인트 이상 높을 경우 시초가로 매수 주문 실행
나, 매도주문
- 전일 종가 대비 시초가가 1포인트 이상 낮을 경우 시초가로 매도 주문 실행
2. 진입2에 대한 조건
가. 기준가의 정의
- 전일 종가, 10분 첫봉의 저가, 고가, 세 개의 가격중, 최고점과 최저점의 두 값의 평균
값을 기준가로 한다.
나. 진입 주문
- 기준가에 대비 현재가가 더 높을 경우 기준가 매수 주문 실행
- 기준가에 대비 현재가가 더 낮을 경우 기준가 매도 주문 실행
다. 재진입 주문
. 매수 재진입 ; 청산 후 진입가 대비 현재가가 더 높으면 기준가로 매수 주문 실행
. 매도 재진입 ; 청산 후 진입가 대비 현재가가 더 낮으면 기준가로 매도 주문 실행
3. 청산규칙
- 진입 후 1.0포인트 이익 발생되면 이익 청산
- 진입 후 0.5포인트 손실 발생하면 손절 청산
- 진입 후 0.7포인트 이익달성 후엔 진입가 스탑청산
4. 공통사항
- 진입1과 진입2에 대한 중복진입금지(어느 한쪽이 진입 되어 있으면 다른 한쪽이 진입조
건이 되어도 주문금지.)
- 일 진입횟수 3회로 제한
- 당일 종가 청산
PS. 위 전략이 예스트레이드만으로 구현하기 힘들다면 스팟전략까지 추가하여 수식작성 부탁드립니다.
감사합니다^^
2016-09-11
157
글번호 101855
답변완료
시스템 질문드립니다.
시스템 매매신호 질문드립니다.
매수신호
MACD 12,26,9 기준선 이상
Stochastics slow %K 12,5 > %D 5
MACD OSC 12,26,9 0봉전>1봉전
RSI 50 이상
매도신호
MACD 12,26,9 기준선 이하
Stochastics slow %K 12,5 < %D 5
MACD OSC 12,26,9 0봉전<1봉전
RSI 50 이하
2016-09-09
141
글번호 101840
답변완료
문의
yeslang 아래의 스크립트 파일을 폴더 구조로 만들어 주시면 안되나요??
만약 그룹을 10개 만들고
각각 그룹마다 파일을 10개씩 넣어둘때(총 100개)
하드디스크를 옮기거나 뭐 이런 저런 이유로 다시 복원하려면
폴더구조가 똑같이 이전이 되지 않아
그룹 10개를 똑같이 손으로 만들고
스크립트 100개 파일을 일일이 마우스로 찍어서 옮길때가 몇번 있었습니다
이리저리 계속 수정하다보면 파일 100개가 허풍이 아니라는거
다 경험했을텐데
아예 처음부터 파일구조를 폴더식으로 하고 편집기에서 그대로 읽어오면
이런 불편은 없을것으로 생각합니다
2016-09-09
201
글번호 101838
답변완료
문의드립니다.
안녕하세요~!!
수고가 많습니다.
최근 20일 중에서 양봉거래량이 제일 많은 봉을 찾아서
그 봉의 고가와 저가를 구하고
현재 봉이 그 저가와 고가 안에 있는 종목을 검색하고 싶습니다.
부탁드립니다.
수고하세요~~^^
2016-09-09
124
글번호 101835
답변완료
수식 부탁 드립니다.
안녕하세요.
당일청산, 연결선물, 분봉, 틱봉, 사용 시스템에서 당일 시초가를 수신할때
-> 전일종가보다 시초가가 높으면 즉시 매수 진입
-> 전일종가보다 시초가가 낮으면 즉시 매도 진입 하고
2016년 7월 31일 이전 까지의 전일종가 기준 시간은 15:00 이고
2016년 8월 01일 부터의 전일종가 기준 시간은 15:30 으로 수식 부탁 드립니다.
수고하세요..꾸벅
2016-09-09
149
글번호 101834
답변완료
수정 부탁드립니다.
아래 수식에서 시스템신호에 의해 매수,매도 진입후 청산되는 신호에 동시에 다시 매도,매수
진입 신호가 떨어지는 경우에는 청산만 되고 진입은 되지 않도록 시스템신호 수정
부탁드립니다.
input:b_time1(000000),e_time1(240000),
stoK_p11(150),stoK_p12(50),stoK_p13(10),
ma_p11(10),ma_p12(5),ma_p13(10),ma_p14(100),
ma_p15(10),ma_p16(20),ma_p17(15),상단(90),하단(10),익절틱수(10);
Var:stoK(0),stoD(0),TRIXv(0),TRIXsig(0),T(0);
var:ma11(0),ma12(0),ma13(0),ma15(0),ma16(0),ma17(0);
var:j(0),매수강도(0),매도강도(0);
var : ma_P14_1(0),ma_P14_2(0),ma_P14_3(0),ma_P14_4(0),ma_P14_5(0);
var : ma_P14_6(0),ma_P14_7(0),ma_P14_8(0),ma_P14_9(0),ma_P14_10(0),T2(0);
Array:ma14[10](0),추세[10]("");
ma11=ma(C,ma_P11);
ma12=ma(C,ma_P12);
ma13=ma(C,ma_P13);
ma15=ma(C,ma_P15);
ma16=ma(C,ma_P16);
ma17=ma(C,ma_P17);
ma_P14_1=ma_P14+1;
ma_P14_2=ma_P14+2;
ma_P14_3=ma_P14+3;
ma_P14_4=ma_P14+4;
ma_P14_5=ma_P14+5;
ma_P14_6=ma_P14+6;
ma_P14_7=ma_P14+7;
ma_P14_8=ma_P14+8;
ma_P14_9=ma_P14+9;
ma_P14_10=ma_P14+10;
ma14[1] = ma(C,ma_p14_1);
ma14[2] = ma(C,ma_p14_2);
ma14[3] = ma(C,ma_p14_3);
ma14[4] = ma(C,ma_p14_4);
ma14[5] = ma(C,ma_p14_5);
ma14[6] = ma(C,ma_p14_6);
ma14[7] = ma(C,ma_p14_7);
ma14[8] = ma(C,ma_p14_8);
ma14[9] = ma(C,ma_p14_9);
ma14[10] = ma(C,ma_p14_10);
매수강도=0;
매도강도=0;
If b_time1 <= Time and Time <= e_time1 Then
{
For j=1 TO 10
{
If countif(ma11[1]<ma11,1)==1
and (ma12[1]<=ma13[1] and ma12>ma13)
and countif(ma14[j][1]<ma14[j],1)==1
and countif(ma15[1]<ma15,1)==1
and countif(ma16[1]<ma16,1)==1
and countif(ma17[1]<ma17,1)==1
Then
{
추세[j]="매수추세";
}
If countif(ma11[1]>ma11,1)==1
and(ma12[1]>=ma13[1] and ma12<ma13)
and countif(ma14[j][1]>ma14[j],1)==1
and countif(ma15[1]>ma15,1)==1
and countif(ma16[1]>ma16,1)==1
and countif(ma17[1]>ma17,1)==1
Then
{
추세[j] = "매도추세";
}
If 추세[j] == "매수추세" Then 매수강도 = 매수강도 +1;
If 추세[j] == "매도추세" Then 매도강도 = 매도강도 +1;
}
If 매수강도 == 10 Then 추세[0] = "매수추세";
If 매도강도 == 10 Then 추세[0] = "매도추세";
T2 = iff(추세[0]=="매수추세",100,iff(추세[0]=="매도추세",-100,0));
stoK = StochasticsK(stoK_p11,stoK_p12);
stoD = StochasticsD(stoK_p11,stoK_p12,stoK_p13);
If countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] <= ma(C,ma_p13)[1] and ma(C,ma_p12) > ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1
Then
{
T = 1;
}
If countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] >= ma(C,ma_p13)[1] and ma(C,ma_p12) < ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1
Then
{
T = -1;
}
if T == 1 and CrossDown(stok,하단) Then
buy("매수",AtMarket);
if MarketPosition == 1 Then
{
if crossup(stok,상단) Then
exitlong("매수1",AtMarket);
if T == -1 and T2 == -100 Then
exitlong("1번2번추세전환(-)",AtMarket);
if T == 1 and T2 == -100 Then
exitlong("2번추세전환(-)",atlimit,EntryPrice+PriceScale*2);
}
if T == -1 and Crossup(stok,상단) Then
sell("매도",AtMarket);
if MarketPosition == -1 Then
{
if Crossdown(stok,하단) Then
ExitShort("매도1",AtMarket);
if T == 1 and T2 == 100 Then
exitShort("1번2번추세전환(+)",AtMarket);
if T == -1 and T2 == 100 Then
exitShort("2번추세전환(+)",Atlimit,EntryPrice-PriceScale*2);
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
2016-09-09
143
글번호 101828