커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4528
글번호 230811
답변완료
수식문의
분봉에 전일시가,전일저가를 밑으로 돌파했을때 그최초 캔들봉에만 매수 화살표가 뜨게하고싶어요
2016-09-24
113
글번호 102177
답변완료
문의드립니다
데이터2,데이터3 이 동일가격대 에서
데이터3가 데이터2 고가를 꺠고
데이터2가 데이터3 저가를 돌파 만족하면 매수신호
데이터2가 데이터3 고가를 꺠고
데이터3가 데이터2 저가를 돌파 만족하면 매도신호
간단한주석 과 진입수량,손절틱수는 input으로 부탁드립니다.
당일매매 입니다
감사합니다..
2016-09-24
106
글번호 102176
너무조아 님에 의해서 삭제되었습니다.
2016-09-24
20
글번호 102175
답변완료
지표 문의
예를 들어
당일 3분봉을 본다면 각 3분봉의 당일 신 고점만 이은 선과 당일 신 저점을 이은선, 그리고 그 중간점을 이은선을 봉차트에 이평선 대신 그려 놓을수 있으면 좋겠습니다..
부탁합니다..^^
2016-09-24
108
글번호 102174
답변완료
문의 드립니다(피봇)
피봇 = (DayHigh(1)+daylow(1)+dayclose(1))/3 ;
저항1 = 2 * 피봇 - daylow(1);
저항2 = 피봇 + DayHigh(1)-DayLow(1);
지지1 = 2 * 피봇 - DayHigh(1);
지지2 = 피봇 - DayHigh(1) + DayLow(1);
피봇식을 위와 정의하고요..
장이 시작과 함께 갭상승 할떄 들어가려고 하는데 식을 잘 못짜서요 부탁드립니다..
질문 1. 장시작하면서 갭상승하여 저항2보다 높게 시작할 경우 매수
(단, 5분분으로 할 예정이고 저항2와 지지2의 차이가 3이내일 경우여야 함)
2016-09-24
135
글번호 102173
답변완료
검색식좀 부탁드려요!
1.20일(봉) 매물대 돌파종목 검색식
2. 직전 20개봉 중 직전 230봉 최고가가 없고 c가 250봉 최고가 돌파한 종목 검색식
감사합니다.
2016-09-24
124
글번호 102172
답변완료
함수 문의
안녕하세요
1. ADX 지표로 시스템을 만들고 싶습니다.
기본조건 : ADX 지수 20 (수치조절가능) 이 넘은 상태에서만 거래 가능 :
20 아하에서는 시스템이 작동하지 않습니다.
20 위에있는지 아래있는지 메인 챠트에 표시가 가능한지요? 같이 표현하고 싶습니다.
세부사항
진입 :
* ADX line 이 20 이하에서 20위로 올라오는 순간 진입합니다.
진입 포지션 : 진입하는 순간 +DI가 위에 있으면 매수 진입
진입하는 순간 -DI가 위에 있으면 매도 진입.
청산
* ADX 선이 20 위로 상향 진입 후, DI 선이 cross를 하면 청산 합니다.
* ADX 선이 20 위에 있다가 아래도 내려가면 청산 합니다.
2. 상기 완성된 식을 하기식과 병행해서 같이 사용할 수 있는지 확인 부탁드립니다.
신호는 각각의 모든 신호발생시 마다 적용하는 것으로 부탁드립니다.
즉 합성전략을 짜고 싶습니다.
단, 겹치는 신호는 무시합니다.
현재 매수 보유중인데 매수 신호가 발생했다고 해서, 추가 매수진입은 하지 않습니다.
input : RSIP(9),sto1(12),sto2(5);
input : BBP(20),dv(2),P(60);
input : short(12),long(26),sig(9);
input : RSI과매수(70),RSI과매도(30);
input : Sto과매수(80),Sto과매도(20);
input : MACD매수제한기준(-1),MACD매도제한기준(1);
input : N(5);
var : RSIV(0,data1),stok(0,data1),MACDO(0,data1),MACDV(0,data1);
RSIV = data1(RSI(RSIP));
Stok = data1(StochasticsK(sto1,sto2));
MACDV = data1(MACD(short,long));
MACDO = data1(MACD_OSC(short,long,sig));
if data1(CrossDown(RSIV,RSI과매수) and
stok < Sto과매수 and countif(CrossDown(stok,Sto과매수),N) >= 1 and
MACDO < 0 and countif(CrossDown(MACDO,0),N) >= 1)
or
data1(CrossDown(stok,Sto과매수) and
RSIV < RSI과매수 and countif(CrossDown(RSIV ,RSI과매수),N) >= 1 and
MACDO < 0 and countif(CrossDown(MACDO,0),N) >= 1)
or
data1(CrossDown(MACDO,0) and
stok < Sto과매수 and countif(CrossDown(stok,Sto과매수),N) >= 1 and
RSIV < RSI과매수 and countif(CrossDown(RSIV ,RSI과매수),N) >= 1) Then{
if data1(MACDv < MACD매도제한기준) Then
sell("s");
}
if data1(CrossUp(RSIV,RSI과매도) and
stok > Sto과매도 and countif(CrossUp(stok,Sto과매도),N) >= 1 and
MACDO > 0 and countif(CrossUp(MACDO,0),N) >= 1)
or
data1(CrossUp(stok,Sto과매도) and
RSIV > RSI과매도 and countif(Crossup(RSIV ,RSI과매도),N) >= 1 and
MACDO > 0 and countif(CrossUp(MACDO,0),N) >= 1)
or
data1(CrossUp(MACDO,0) and
stok > Sto과매도 and countif(CrossUp(stok,Sto과매도),N) >= 1 and
RSIV > RSI과매도 and countif(Crossup(RSIV ,RSI과매도),N) >= 1) Then{
if data1(MACDv > MACD매수제한기준) Then
buy("b");
}
번거롭게 해서 죄송합니다.
감사합니다.
검토 부탁드립니다.
감사합니다.
2016-09-26
117
글번호 102171
답변완료
문의드립니다
1.
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),
Text1(0),처리구분(""),T(0);
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],
sDate[eBar],sTime[eBar],고점[1,1]);
TL2 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],
sDate[eBar],sTime[eBar],저점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],
NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
TL_SetSize(TL2,2);
TL_SetColor(TL2,green);
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],
sDate[eBar],sTime[eBar],저점[1,1]);
TL2 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],
sDate[eBar],sTime[eBar],고점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],
NumToStr(저점[1,1],2));
Text_SetStyle(Text1, 2, 0);
TL_SetSize(TL2,2);
TL_SetColor(TL2,yellow);
}
}
TL_SetSize(TL1,2);
TL_SetColor(TL1,red);
2.
Input:chRate(0.5); //전환율 또는 변동률
Var:j(0),upTr(100),dnTr(-100),upRate(0),dnRate(0),trnd(0),TL(0),
date11(0),date12(0),time11(0),time12(0),TL1(0),
date21(0),date22(0),time21(0),time22(0),TL2(0),
date31(0),date32(0),time31(0),time32(0),TL3(0);
Array:hiVal[10](0),loVal[10](0),hiBar[10](0),loBar[10](0);
//hiVal[1]은 전고점, hiVal[2]는 전전고점, hiVal[3]은 전전전고점
//hiVal[0]은 변곡점 이후 현재봉까지의 고점. 현재 고점은 진행중이므로 계속 바뀐다.
//loVal[0]은 반대 개념
upRate = 1 + (chRate/100); //상승률
dnRate = 1 - (chRate/100); //하락률
for j = 1 to 9 { //전고,전저점을 9개까지 보관
loBar[j] = loBar[j] + 1; //전저점의 위치. 현재 봉으로부터 떨어져 있는 거리
hiBar[j] = hiBar[j] + 1; //전고점의 위치
}
if hiVal[0] <= H or hiVal[0] == 0 then { //전고,전저점 이후 현재까지의 고점
hiVal[0] = H; //0을 체크한 이유는 초기에 값이 없는 구간이 생기기 때문
hiBar[0] = 0; //현재 고점의 위치가 0이란 것은 현재봉의 고가가 구간 고점이라는 의미
}
else {
hiBar[0] = hiBar[0] + 1; //현재 고점의 위치
}
if loVal[0] >= L or loVal[0] == 0 then { //전고,전저점 이후 현재까지 저점
loVal[0] = L;
loBar[0] = 0;
}
else {
loBar[0] = loBar[0] + 1; //현재 구간 저점의 위치
}
if trnd != dnTr && hiVal[0] > H && hiVal[0] * dnRate > L then trnd = dnTr;
//저가가 고가 대비 변동률보다 밑으로 떨어지면 하락추세로 설정
//단, 현재봉의 고가가 변곡점 이후 최고가이면 상승 추세가 진행중이라고 본다.
//그래서 현재봉의 고가가 hiVal[0]보다 작다는 조건이 추가되었다.
else if trnd != upTr && loVal[0] < L && loVal[0] * upRate < H then trnd = upTr;
//고가가 저가 대비 변동률보다 높으면 상승추세로 설정
if trnd[1] == upTr and trnd == dnTr then { //상승추세였다가 하락추세로 바뀌었다면
for j = 8 downto 1 { //새로운 전고점이 생기는 것이므로
hiVal[j+1] = hiVal[j]; //전고점을 하나씩 뒤로 보낸다.
hiBar[j+1] = hiBar[j]; //전고점은 전전고점이 되고, 전전고점은 전전전고점이 된다.
}
hiVal[1] = hiVal[0]; //새로운 전고점에 현재 고점을 대입
hiBar[1] = hiBar[0];
hiVal[0] = H; //전고점이 확정되었으므로 전고점 이후 최고가는 현재봉의 고가
hiBar[0] = 0;
loVal[0] = L;
loBar[0] = 0;
//전고점이 새로 생긴 것이니까 전저점에서 전고점까지 추세선을 긋는다.
date11 = date[loBar[1]]; //추세선 시작일. 전저점의 날짜
time11 = stime[loBar[1]]; //추세선 시작시간
Value11 = loVal[1]; //추세선 시작가격
date12 = date[hiBar[1]]; //추세선 종료일. 전고점의 날짜
time12 = stime[hiBar[1]]; //추세선 종료시간
Value12 = hiVal[1]; //추세선 종료가격
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
//TL_New는 신규 추세선을 그려주는 함수
}
if trnd[1] == dnTr and trnd == dnTr and //추세는 하락 상태에서 바뀌지 않았는데
hiVal[1] < hiVal[0] and //전고점보다 더 높은 고점이 출현했다면
hiVal[0] * dnRate > L then {
hiVal[1] = hiVal[0]; //전고점을 현재의 고점으로 바꿔준다.
hiBar[1] = hiBar[0];
hiVal[0] = H;
hiBar[0] = 0;
loVal[0] = L;
loBar[0] = 0;
//전고점이 추가된 게 아니고 바뀐 것이므로 종료일,종료시간,종료가격만 바꿔준다.
date12 = date[hiBar[1]]; //추세선 종료일
time12 = stime[hiBar[1]];
Value12 = hiVal[1];
TL_SetEnd(TL1, date12,time12,Value12);
//TL_SetEnd는 기존추세선의 종료지점을 변경해주는 추세선 함수이다.
//TL_Delete 함수를 써서 직전의 추세선을 지우고 다시 TL_New로 추세선을 추가해도 된다.
}
if trnd[1] == dnTr and trnd == upTr then { //추세가 하락에서 상승으로 바뀌었을 경우
for j = 8 downto 1 {
//이전저점은 전전저점으로, 전전저점은 전전전저점으로 번호를 부여
loVal[j+1] = loVal[j];
loBar[j+1] = loBar[j];
}
loVal[1] = loVal[0];
loBar[1] = loBar[0];
loVal[0] = L;
loBar[0] = 0;
hiVal[0] = H;
hiBar[0] = 0;
date11 = date[hiBar[1]]; //전저점이 새로이 생긴 것이므로 시작점은 전고점이 된다.
time11 = stime[hiBar[1]];
Value11 = hiVal[1];
date12 = date[loBar[1]];
time12 = stime[loBar[1]];
Value12 = loVal[1];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
}
if trnd[1] == upTr and trnd == upTr and //추세는 상승을 유지하고 있는데
loVal[1] > loVal[0] and //전저점보다 낮은 저가가 출현했다면
loVal[0] * upRate < H then {
loVal[1] = loVal[0]; //직전의 전저점만 바꿔준다.
loBar[1] = loBar[0];
loVal[0] = L;
loBar[0] = 0;
hiVal[0] = H;
hiBar[0] = 0;
date12 = date[loBar[1]];
time12 = stime[loBar[1]];
Value12 = loVal[1];
TL_SetEnd(TL1, date12,time12,Value12);
}
if trnd == upTr and loVal[2] > loVal[1] then
TL_SetColor(TL1,BLUE);
else if trnd == dnTr and hiVal[2] < hiVal[1] then
TL_SetColor(TL1,RED);
else
TL_SetColor(TL1,BLACK);
TL_SetSize(TL1,2);
TL_SetColor(TL2,RED);
TL_SetColor(TL3,BLUE);
if var1 <= 0 and Trnd == uptr and Trnd != Trnd[1] Then{
var1 = 1;
value1 = loval[1];
TL1 = Text_New(sdate[lobar[1]],stime[lobar[1]],value1-PriceScale*2,"●");
TL_SetColor(TL,RED);
TL_SetSize(TL,2);
Text_SetStyle(TL1,2,2);
Text_SetColor(TL1,RED);#텍스트 색상
TL= Text_New(sdate[lobar[1]],stime[lobar[1]],L,"상승");
Text_SetColor(TL,RED);#텍스트 색상
}
if var1 >= 0 and Trnd == dntr and Trnd != Trnd[1] then{
var1 = -1;
value1 = hival[1];
TL2 = Text_New(sdate[hibar[1]],stime[hibar[1]],value1+PriceScale*2,"●");
TL_SetColor(TL,BLUE);
TL_SetSize(TL,2);
Text_SetStyle(TL2,2,2);#텍스트 좌우 상하 정렬
Text_SetColor(TL2,BLUE);#텍스트 색상
TL= Text_New(sdate[hibar[1]],stime[hibar[1]],H,"하락");
Text_SetColor(TL,BLUE);#텍스트 색상
}
1. 1번지표와 2번지표 가 사진상처럼
2가지 선이 일치할경우 매수,매도 신호발생 부탁드립니다
2016-09-25
237
글번호 102170
답변완료
수식작성 부탁드립니다.
안녕하세요?
매매전략을 구현해보고 싶은데요,
아래 조건 만족시 매수신호, 매도신호가 뜰수 있도록 수식작성 부탁합니다.
*매수신호 - 5일 이평선 우상향 & 20일 이평선 우상향& 60일 이평선 우상향
각 이평선 정배열 완성되는 시점에서 매수신호 발생하며 신호음 작동
*매도진입 - 5일 이평선 우하향 & 20일 이평선 우하향& 60일 이평선 우하향
각 이평선 역배열 완성되는 시점에서 매도신호 발생하며 매도신호음 울림.
부탁드립니다. 감사합니다.
2016-09-23
120
글번호 102169