커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7604
글번호 230811
답변완료
문의드립니다.
참조data가 잘 안되서 문의합니다.
value3 = StochasticsK(Period1,Period2);
value4 = StochasticsD(Period1, Period2, Period3);
If stime <= 144000
AND MarketPosition == 0
AND CrossUP(value1, value2)
AND Data2(value3 >= value4)
AND Data2(var1 >= var1[1])
...
이렇게 짰는데
실행시키니깐 저조건(value3 >= value4) 이 아닌데도 진입이 되어버립니다.
뭐가 잘못되었는지요? 부탁드립니다.
감사합니다.
2012-11-16
294
글번호 56564
답변완료
문의드립니다
1.
현재가 가 크로스업일때와 크로스 다운일때의 식은 무엇입니까?
2.
아래식이 검증이 안됩니다
input : P1(10),p2(5);
value1 = StochasticsK(p1,P2);
if value1 < 20 or value1 > 80 Then{
if Var1 >= 49 and Var1 < 51 Then
plot1(L,"50L");
if Var2 >= 49 and Var2 < 51 Then
plot2(L,"50L");
2012-11-16
292
글번호 56562
답변완료
안녕하세요(벤드수축)
반갑습니다
볼린져 벤드에 대해서문의드리겠습니다
50개(갯수는무시해도 됨) 봉진행중 벤드폭이 가장 좁은(수축)부분일때
신호를 받고자 합니다.가능할까요?
감사합니다
2016-12-24
310
글번호 56558
추격자 님에 의해서 삭제되었습니다.
2012-11-16
5
글번호 56552
답변완료
수식문의
수식전환 부탁드립니다
'k1 = 95 (이평 변수)
Var1= slowk(5,3) '스토케스틱
Var2= slowd(5,3,3) '스토케스틱
Var3= mov(close,k1,e,1) '이평 필터
Var4= mov(close,k1,e) '이평 필터
Var5= adx(10) 'adx필터
'매수전략
If position = 0 Then
If Var5 > 22 Then 'adx필터
If Var4 > Var3 Then ' 이평 필터
If crossup(Var1,Var2) Then
Call buy("매수진입",Atmarket)
End If
End If
End If
End If
'매도전략
If position = 0 Then
If Var5 > 22 Then 'adx필터
If Var4 < Var3 Then '이평필터
If crossdn(Var1,Var2) Then
Call sell("매도진입",Atmarket)
End If
End If
End If
End If
'트레일링 스탑
If I_position = 1 Then
Var13 = entryprice*1.05 '매수진입시 목표이익가
Var14 = hhv(1, high, barnumsinceentry+1)
If Var14 >= Var13 Then
Var15 = (((Var14-entryprice)/entryprice)*0.95) '목표이익 후 95%설정
Var16 = entryprice*(1 + Var15)
Call exitlong("매수이익보존", Atstop, Var16)
End If
End If
If i_position = -1 Then
Var13 = entryprice*0.95 '목표이익가
Var14 = llv(1, low, barnumsinceentry+1)
If Var14 <= Var13 Then
Var15 = (((entryprice-var14)/entryprice)*0.95) '목표이익 후 95%설정
Var16 = entryprice*(1 - Var15)
Call exitshort("매도이익보존", Atstop, Var16)
End If
End If
2012-11-16
427
글번호 56546
답변완료
시스템 수식 작성 문의 드립니다.
안녕하세요? 이렇게 무작정 수식 작성 문의를 드려서 죄송합니다.
30분봉으로 3일 이내 최고점(고가포함)을 돌파 시도하는 경우,
거래량은 3일 이내 최고점보다 2배 많을 때 혹은 전날 9시 4분 50초까지의 거래량 보다 당일 9시 4분 50초까지의 거래량이 2배 이상일 때,
3일 이내 최고점의 가격으로 매수하려고 합니다.
이를 수식으로 작성하려는데 잘 되지 않는군요.
제가 작성한 수식은 다음과 같습니다.
------------------------------------------------
Input : Period(36);
If CrossUp(C,Highest(H,Period)[1]) Then {
Buy();
}
------------------------------------------------
위를 보면, 거래량 부분 관련 수식은 없습니다. 잘 모르겠더라구요.
그리고 Buy()하는 부분에서 돌파 시점의 현재가로 매수하고 싶은데, Buy()만 하면 현재가로 매수가 되는지 문의 드립니다.
그럼 부탁드리겠습니다.
2012-11-16
359
글번호 56545
답변완료
문의드립니다.
macd에서
선이 세게나오는데...
macd, macdsignal , 기준선
이중에 macd선을 기울기에 의한 선의 색상변화를 부탁드립니다.
상향은 빨강, 하향은 파랑...
부탁드립니다.
2012-11-16
379
글번호 56544
답변완료
플롯함수가 차팅되지 않는 문제
옵션민감도를 차팅하려고 하는데 수치는 계속 계산되어도 그려지지는 않습니다.
수식은 다음과 같습니다 (data1 = 코스피200종합 , data2 = 옵션 개별종목)
pFlag : Call,Put 구분, 1,2로 표현
# S : 기초자산가격의 가격, 예)주가지수(KOSPI200)
# X : 행사가격
# T : 잔존만기(연율)
# r : 무위험 이자율, 예) CD금리
# Vol : 역사적변동성
# ImVol : 내재변동성
#================================================#
Input: 콜풋구분(1), //콜풋 입력(1:콜,2:풋)
행사가격(260), //행사가 입력
만기일(20121213), //만기일
CD금리(3.56); //CD 금리, http://stock.koscom.co.kr 조회가능
Var:cpFlag(0),S(0),X(0),T(0),r(0),vol(0),bs(0),p(0),j(0),
ImVol(0),delta(0),gamma(0),vega(0),theta(0),rho(0), plotimvol(0);
If LastBarOnChart == 1 Then
{
S = C; //기초자산이 기본차트가 되어야 한다.
p = Data2("C"); //옵션가격, 옵션종목을 보조차트로 띄워놓아야 한다.
Var1 = 0; Var2 = 0;
For j = 0 To 59
{
Var1 = Var1 + Log(DayClose(j)/DayClose(j+1))^2;
Var2 = Var2 + Log(DayClose(j)/DayClose(j+1));
}
vol = Sqrt((60 * Var1 - Var2^2)/3540)*Sqrt(244); //역사적변동성
If p > 0 and vol > 0 then
{
cpFlag = 콜풋구분;
X = 행사가격;
T = (DateToJulian(만기일) - DateToJulian(Date) + 1)/365;
r = CD금리 / 100;
Delta = _Delta(cpFlag, S, X, T, r, Vol);
Plot4(Delta,"델타");
//수식끝
****필요한 사용자 함수는 옵션 델타를 구하는 수식입니다. 다음과 같습니다.
//함수시작
#================================================#
# cpFlag : Call,Put 구분, 1,2로 표현
# S : 기초자산가격의 가격, 예)주가지수(KOSPI200)
# X : 행사가격
# T : 잔존만기(연율)
# r : 무위험 이자율, 예) CD금리
# Vol : 변동성
#================================================#
input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),vol(numeric);
var1 = (log(S/X) + (r + (vol^2) / 2)*T) / (vol*sqrt(T));
if cpflag == 1 then
_Delta = Exp((-r)*T) * _NormSDist(var1);
if cpflag == 2 then
_Delta = Exp((-r)*T) * (_NormSDist(var1)-1);
//함수끝
2012-11-16
823
글번호 56543
답변완료
신호가 발생하지않아 재질문 드릴께요!
b2 신호가 발생하지 않아 다시 질문드려요!
b2가 계좌 손실을 발생시키기도 하지만 놓치는 수익도 커서 꼭 필요하다고 생각되서
해결해 보려합니다! 다시한번만 부탁드려요!
밑에는 b2가 발생하지 않는 부분 그림파일입니다! 아무리 찾아봐도 b2가 발생하는 종목을 찾을 수가 없네요! 왜 매수신호가 안나가는지 궁금합니다!
수평선 추세선을 그리고 스마일스티커를 붙인부분이 바로 제가 원하는 돌파매수신호입니다!
즉 b2가 발생해야 되지만 되지않아서 꼭 해결해보고 싶은데 지그재그상이 아닌 다른 수식이라도 신호가 발생할 수 있도록 도와주세요!
아래는 전에 답변해주신 시스템완성수식입니다!
#==========================================#
# 지표명 : 지그재그차트
# 작성자 : 수식지왕
# 블로그 : http://yahoosir.blog.me
#==========================================#
Input:상승률(1),하락률(1);
Var:j(0),상승(100),하락(-100),양방향(2),색깔(0),파랑(-1),빨강(1),
기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),추세(0),이중파동(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
{
var1 = 이중파동;
#Plot1(이중파동,"Zigzag",Iff(색깔==빨강,RED,BLUE));
이중파동 = 0;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If 기준고 <= C || 기준고 == 0 || IsNaN(기준고) == True Then
{
기준고 = C;
기준고Bar = 0;
}
Else
기준고Bar = 기준고Bar + 1;
If 기준저 >= C || 기준저 == 0 || IsNaN(기준저) == True Then
{
기준저 = C;
기준저Bar = 0;
}
Else
기준저Bar = 기준저Bar + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If 기준고 * (1 - (하락률/100)) > C && 기준저 * (1 + (상승률/100)) < C Then
{
추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락));
}
Else If 기준고 * (1 - (하락률/100)) > C Then 추세 = 하락;
Else If 기준저 * (1 + (상승률/100)) < C Then 추세 = 상승;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 추세[1] == 상승 && 추세 == 하락 Then
{
For j = 18 DownTo 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
기준고 = C;
기준고Bar = 0;
기준저 = C;
기준저Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강;
If 이중파동[1] > 0 Then 이중파동 = 고[1];
Else
var1 = 고[1];
//plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
}
If 추세[1] == 하락 && 추세 == 하락 &&
고[1] < 기준고 &&
기준고 * (1 - (하락률/100)) >C 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;
기준고 = C;
기준고Bar = 0;
기준저 = C;
기준저Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
var1 = 저[1];
#plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
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;
기준저 = C;
기준저Bar = 0;
기준고 = C;
기준고Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
If 이중파동[1] > 0 Then 이중파동 = 저[1];
Else
var1 = 저[1];
//plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
}
If 추세[1] == 상승 && 추세 == 상승 &&
저[1] > 기준저 &&
기준저 * (1 + (상승률/100)) <C 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;
기준저 = C;
기준저Bar = 0;
기준고 = C;
기준고Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강;
var1 = 고[1];
#plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
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;
기준고 = C;
기준고Bar = 0;
기준저 = C;
기준저Bar = 0;
추세 = 추세[1];
If 추세[1] == 상승 Then
{
If 고[2] < 고[1] Then 색깔 = 빨강;
var1 = 고[1];
#Plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
Else
{
If 저[2] > 저[1] Then 색깔 = 파랑;
var1 = 저[1];
#Plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
}
#==========================================#
# 마무리
#==========================================#
If LastBarOnChart == 1 && 기준고Bar > 0 && 기준저Bar > 0 Then
{
If 추세 == 상승 Then
{
If 고[1] < 기준고 Then 색깔 = 빨강;
var1 = 기준고;
#Plot1(기준고,"Zigzag",Iff(색깔==빨강,RED,BLUE));
}
Else
{
If 저[1] > 기준저 Then 색깔 = 파랑;
var1 = 기준저;
#Plot1(기준저,"Zigzag",Iff(색깔==빨강,RED,BLUE));
}
}
if 색깔 == 빨강 and var1 < var1[1] Then
buy("b1");
if 색깔 == 빨강 and var1 > var1[1] Then
sell("s1");
if 색깔 == 빨강 and var1 > var1[1] Then{
value1 = 1;
value2 = var1;
}
if 색깔 == 빨강 and var1 < var1[1] Then{
value1 = -1;
value3 = var1;
}
# 전고점 발생 --> 전저점발생 --> 전고점 상향돌파 매수
if 색깔 == 빨강 and value1 == -1 and crossup(c,value2) Then
buy("b2");
2012-11-16
532
글번호 56542