커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8207
글번호 230811
답변완료
print 파일명 지정 (변수)
print 함수에서 파일명을 고정문자열이 아닌 변수로 처리할 수 없나요 ?
예를들면 아래 파일명을 data_yyyymmdd.csv를 data_20131225.csv처럼
현재 날짜로 [자동적]으로 변경해서 출력하도록
(매번 날짜를 변경하지 않아도 되도록)
print("C:₩data_yyyymmdd.csv",",시가,%.2f,고가,%.2f,저가,%.2f,종가,%.f",O,H,L,C)
수고하세요
2013-12-26
217
글번호 70828
답변완료
틱봉에서 SetStopTrailing의 값이 정밀하게 제어되지 않습니다.
틱봉 적용시
최대 수익대비 하락 0.6포인트 수익후 0.6포인트 하락시 청산을 셋팅한후 적용하였는데요.
12월 26일 선물지수에서
264.10 포인트에 매수 진입한후 264.7 포인트 까지 최고가 형성된후 264.10 포인트로
재하락시 청산되어야 맞는데 264.10에 청산되지 않도 자체 시간함수에 의해 청산되었어요.
시뮬레이션도 그렇고 실전매매도 같이 오류가 발생됩니다.
1) 왜 이런 오류가 발생되는지 궁금합니다.
긴급으로 회신부탁합니다.
2) SetStopTrailing(0.6,0.55,Pointstop,0) 의 경우는 신호가 잘 발생됩니다.
차이점도 궁금하네요.
3)
if MarketPosition() == 1 Then {
Hvalue = Highest(H,BarsSinceEntry+1);
ExitLong("TrailStop_EL",AtStop, Hvalue - TsValue); 의 경우 0.6포인트 수익이후를
표현하는 방법도 알고 싶네요.
2013-12-26
330
글번호 70827
답변완료
시장가 주문
항상 수고 많으십니다....
진입과 청산의 매매 가격을 시장가로 정해놓고 자동매매주문시 지정가 주문만 가능하다는 주문오류가 나옵니다..
자동매매 진입과청산 신호발생시 시장가로 주문할려면 어찌해야할련지요,,????
수식으로 atmarket 을 사용해야 할까요.?
자세한 수식설명 부탁드립니다...
2013-12-26
227
글번호 70826
답변완료
시스템식
안녕하세요
신호가발생이안되네요
Input : Period1(10),Period2(5),Period3(5);
Var : HH(0),LL(0),FK(0),EP1(0),EP2(0),SK(0),SD(0);
if dayindex < Period1 Then{
HH = DayHigh;
LL = DayLow;
}
Else{
HH = highest(H,Period1);
LL = lowest(L,Period1);
}
FK = (Close - LL) / (HH - LL) * 100;
EP1 = 2/(Period2+1);
EP2 = 2/(Period3+1);
if dayindex == 0 Then{
SK = FK;
SD = SK;
}
Else{
SK = FK * EP1 + SK[1] * (1-EP1);
SD = SK * EP2 + SD[1] * (1-EP2);
}
if date != date[1] Then{
value1 = 0;
value2 = 0;
}
if CrossDown(sk,sd) then{
value1 = value1+1;
var1 = sk;
var2 = var1[1];
var3 = c;
var4 = var3;
if value1 >= 2 and var1 < var2 and var3 > var4
and dayhigh >= DayOpen+2 Then
buy();
}
if CrossDown(sk,sd) then{
value2 = value2+1;
var11 = sk;
var12 = var11[1];
var13 = c;
var14 = var13;
if value2 >= 2 and var11 > var12 and var13 < var14
and daylow <= dayopen-2 Then
sell();
}
2.
Input : Period1(10),Period2(5),Period3(5);
Var : HH(0),LL(0),FK(0),EP1(0),EP2(0),SK(0),SD(0);
if dayindex < Period1 Then{
HH = DayHigh;
LL = DayLow;
}
Else{
HH = highest(H,Period1);
LL = lowest(L,Period1);
}
FK = (Close - LL) / (HH - LL) * 100;
EP1 = 2/(Period2+1);
EP2 = 2/(Period3+1);
if dayindex == 0 Then{
SK = FK;
SD = SK;
}
Else{
SK = FK * EP1 + SK[1] * (1-EP1);
SD = SK * EP2 + SD[1] * (1-EP2);
}
if date != date[1] Then{
value1 = 0;
value2 = 0;
}
if CrossDown(sk,sd) then{
value1 = value1+1;
var1 = sk;
var2 = var1[1];
var3 = c;
var4 = var3;
if value1 >= 2 and var1 < var2 and var3 > var4
and dayopen >= DayClose(1)+2 Then
buy();
}
if CrossDown(sk,sd) then{
value2 = value2+1;
var11 = sk;
var12 = var11[1];
var13 = c;
var14 = var13;
if value2 >= 2 and var11 > var12 and var13 < var14
and dayopen <= DayClose(1)-2 Then
sell();
}
2013-12-26
220
글번호 70825
답변완료
수식문의드립니다.
아래와 같은 수식 부탁드립니다.
1. 양봉의 몸통이나 꼬리가 이동평균선의 5일선과 볼린저밴드 중간선을 동시에 닿거나 걸치는 경우 - 해당 양봉이 신호봉(봉완성시)
----> 매수 진입
반대로,
음봉의 몸통이나 꼬리가 이동평균선의 5일선과 볼린저밴드 중간선을 동시에 걸치는 경우 - 해당 음봉이 신호봉(봉완성시)
----> 매도 진입
그럼 수고하세요
2013-12-26
200
글번호 70820
답변완료
수식문의
Input:상승률(0.2),하락률(0.2);
Var:j(0),상승(100),하락(-100),양방향(2),색깔(0),파랑(-1),빨강(1),
기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),추세(0),이중파동(0);
var : hbody(0),lbody(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0);
#==========================================#
# 전고점,전저점 index 증가
#==========================================#
For j = 1 To 19
{
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#==========================================#
# 이중파동 처리
#==========================================#
If 이중파동 > 0 Then
{
if 색깔 == 빨강 Then{
Plot1(이중파동,"Zigzag",blue);
var2 = 이중파동;
var3 = -1;
}
Else{
Plot1(이중파동,"Zigzag",red);
var1 = 이중파동;
var3 = 1;
}
이중파동 = 0;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If 기준고 <= Hbody || 기준고 == 0 || IsNaN(기준고) == True Then
{
기준고 = Hbody;
기준고Bar = 0;
}
Else
기준고Bar = 기준고Bar + 1;
If 기준저 >= Lbody || 기준저 == 0 || IsNaN(기준저) == True Then
{
기준저 = Lbody;
기준저Bar = 0;
}
Else
기준저Bar = 기준저Bar + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If 기준고 * (1 - (하락률/100)) > Hbody && 기준저 * (1 + (상승률/100)) < Lbody Then
{
추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락));
}
Else If 기준고 * (1 - (하락률/100)) > Hbody Then 추세 = 하락;
Else If 기준저 * (1 + (상승률/100)) < Lbody Then 추세 = 상승;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 추세[1] == 상승 && 추세 == 하락 Then
{
For j = 18 DownTo 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강 ;
If 이중파동[1] > 0 Then 이중파동 = 고[1];
Else {
plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
}
}
If 추세[1] == 하락 && 추세 == 하락 &&
고[1] < 기준고 &&
기준고 * (1 - (하락률/100)) > Hbody Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
plot1(저[1],"Zigzag",blue);
var2 = 저[1];
var3 = -1;
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
If 추세[1] == 하락 && 추세 == 상승 Then
{
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = Lbody;
기준저Bar = 0;
기준고 = Hbody;
기준고Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
If 이중파동[1] > 0 Then 이중파동 = 저[1];
Else {
plot1(저[1],"Zigzag",blue);
var2 = 저[1];
var3 = -1;
}
}
If 추세[1] == 상승 && 추세 == 상승 &&
저[1] > 기준저 &&
기준저 * (1 + (상승률/100)) < Lbody Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = Lbody;
기준저Bar = 0;
기준고 = Hbody;
기준고Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강;
plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
If 추세 == 양방향 Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
추세 = 추세[1];
If 추세[1] == 상승 Then
{
If 고[2] < 고[1] Then 색깔 = 빨강;
Plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
Else
{
If 저[2] > 저[1] Then 색깔 = 파랑;
Plot1(저[1],"Zigzag",blue);
Text_New(sdate,stime,저[1],NumToStr(저[1],2));
var2 = 저[1];
var3 = -1;
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
}
위의수식에서 전고와전저의 봉의갯수나 걸리는시간을 텍스트로알고싶은데요 가능하면 수식부탁합니다
2013-12-26
229
글번호 70810
답변완료
부탁드립니다
1.시가를 올라오면서 터치 하고 내려가면 둘째봉부터 A조건에 매도만 나오게 하시고
즉 시가 터치하고 1포인트 내려갈때까지는 매도만 하는식
그리고 시가 터치하고 그 기준으로 1포인트 이상 내려오면 A조건에 매수 신호도 나오게 식
부탁드립니다
2.1번에서 반대식도 부탁드입니다
3.참조식에서 외국인 순매수 0~2000억 또는 0 ~ -2000억 사이에서는
매수매도식 B조건식이 나오게
4.3번에서 +2000억이상나오면 C조건에 매수만 나오게 -2000억이상에서는 C조건에 매도식만
5.1.5포인트 갭상승 또는 갭하락 하게 되면 D조건이 매매되는식
6.1포인트 갭상승 또는 갭하락 하고 시가를 터치해서 다시 오르거나 내리면 E조건의
매매식만 되게
해설도 부탁드립니다
2013-12-26
212
글번호 70807
답변완료
선물순매수호가 총건수
선물순매수호가총건수(선물매수호가총건수 - 선물매도호가총건수) 의
단기이동평균선(P1) 및 장기이동평균선(P2)에 대한 수식을 구하고자 합니다.
2013-12-26
232
글번호 70803
답변완료
문의
안녕하세요?
1. 5일선이 20일선을 크로스다운하고 장대음봉발생시 매도식은 어떻게도는지요?
장대음봉조건.. 크로스다운직전 30개봉 최고최저봉차이보다 3배 이상큰 음봉 발생되는경우
2. 10 시 이후 코스피200은 상승율은시가+에서 현재-이고 선물포인트가 zero로
크로스다운하고 풋봉이 10개중 6개 음봉발생시 풋 매수식
3 . 콜.풋 매도식이 시스템적으로 방지할수 있는식이 있는지요?
이니면 풋 또는 콜매도시 즉시 청산식으로 하는지요
풋기준 샘플식 부탁드립니다
2013-12-26
208
글번호 70800