커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3369
글번호 230811
답변완료
부탁 드립니다.
도움에 늘 감사 드립니다.
변동성 지수(VIX)라는 것이 최근 많이 보여지고 있지만,
수학적 공식은 아래 블로그나 여기저기에서 보고 있으나
yes수식으로 작성된것을 찾아 볼수가 없습니다.
https://blog.naver.com/chunjein/100158814256
작성이 가능하다면 부탁 드리며,
아니면 같은 목적으로 작성된 유사한 것이라도 상관 없습니다.
미리 감사 드립니다.
2020-06-01
1282
글번호 139456
답변완료
부탁드립니다
수고하십니다
*아래수식에서 상단선HH가 양일때 시가에표시,음일때 종가에 수식부탁드립니다
input : 기간(5),k(2);
var : LL(0),HH(0),NL(0),ii(-1),tx(0);
ll=lowest(l,기간);
hh=highest(h,기간);
if l < LL[1] Then
{
nl = l;
ii = 0;
}
else
{
if ii >= 0 Then
ii = ii+1;
}
if ii == 기간-k then
{
var1 = NL;
var2 = HH;
var3 = (var1+var2)/2;
}
plot1(var1,"하단선");
plot2(var2,"상단선");
plot3(var3);
2020-06-01
1078
글번호 139455
2wnwn 님에 의해서 삭제되었습니다.
2020-06-01
11
글번호 139454
답변완료
문의드립니다.
장이 시작하면 전저점과 전고점을 초기화하여
전저점 = 일봉시가
전고점 = 일봉시가
로 전저점과 전고점을 초기화 합니다.
매수:
최초 음봉뒤에 양봉이 두개가 연속되고 이 때
최초 음봉 종가 < 첫양봉 종가 < 두번째 양봉 종가
를 만족하면 새로운 전저점 = 위의 최초 음봉 종가 라고 정의 합니다,.
이 때
무포지션이고
바로 이전 전저점 + 10틱 < 새로운 전저점
이면 두번 째 양봉 종가 이후 시장가 매수진입합니다.
매수 손절 :
위의 두번째 양봉 시가를 현재가가 하방으로 깨면 손절합니다.
매수 이익 청산
이익이 15틱 이상 ~ 30틱 까지 되면 매수가+1틱 으로 이익이 줄어들면 청산합니다.
이익이 30틱 이상 ~ 100틱 까지 되면 최고가 이익이 100% 라고 하면 30% 이하 이익으로
줄어 들면 추적 이익청산합니다.
이익이 100틱 이상 ~ 500틱 까지 되면 최고가 이익이 100% 라고 하면 50% 이하 이익으로
줄어 들면 추적 이익청산합니다.
이익이 501 틱이 되면 시장가 청산합니다.
매도 매도손절 매도 이익청산도 매수와 반대 논리로 수식을 부탁드립니다.
2020-06-01
687
글번호 139453
제로백 님에 의해서 삭제되었습니다.
2020-06-01
4
글번호 139444
답변완료
포지션 체결이 안되면 취소후 재주문
안녕하세요.
윗호가로 걸었는데도 코스닥150에서 체결이 안되고 계속 올라갔는데요.
혹시 체결이 안되었으면 체크후 다시 주문내는 로직이 가능할까요?
샘플 있으시면 제공 부탁드려봅니다.
감사합니다.
2020-06-01
1401
글번호 139439
어느강아지의죽음 님에 의해서 삭제되었습니다.
2020-06-01
0
글번호 139437
답변완료
문의
고점 저점에서 올라갔든 폭만큼 오르거나 내리거나 햇습니다, 이것을 그폭의 0.5배,1.618배 그리고 2배만큼을 추가해서 나오도록 부탁드립니다,올라갓을때 폭에 나타났든 색깔은 올라갔을때 같게 해주시고 내려갈때 폭도 같은 색깔로 부탁드립니다 그리고 외부변수로 해서 그폭의 변동을 변수로해서 고칠수 있도록 부탁드립니다. 수식은 아래식으로 참조햇습니다
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),
Text1(0),처리구분(""),tl2(0),tl3(0),tl4(0),tl5(0);
var : tx2(0),tx3(0),tx4(0),tx5(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(TL4);
TL_Delete(TL5);
Text_Delete(Text1);
Text_Delete(Tx4);
Text_Delete(Tx5);
}
TL1 = 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)
+NewLine+"진폭"+NumToStr((고점[1,1]-저점[1,1]),2));
Text_SetStyle(Text1, 2, 1);
var2 = abs(고점[2,1]-저점[1,1]);
TL4 = TL_New(sDate,sTime,고점[1,1],NextBarSdate,NextBarStime,고점[1,1]);
TL5 = TL_New(sDate,sTime,고점[1,1]-var2,NextBarSdate,NextBarStime,고점[1,1]-var2);
tx4 = Text_New(NextBarSdate,NextBarStime,고점[1,1],NumToStr(고점[1,1],2));
tx5 = Text_New(NextBarSdate,NextBarStime,고점[1,1]-var2,NumToStr(고점[1,1]-var2,2));
}
}
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);
TL_Delete(TL3);
Text_Delete(Text1);
Text_Delete(Tx2);
Text_Delete(Tx3);
}
TL1 = 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)
+NewLine+"진폭"+NumToStr((고점[1,1]-저점[1,1]),2));
Text_SetStyle(Text1, 2, 0);
var1 = (고점[1,1]-저점[2,1]);
TL2 = TL_New(sDate,sTime,저점[1,1],NextBarSdate,NextBarStime,저점[1,1]);
TL3 = TL_New(sDate,sTime,저점[1,1]+var1,NextBarSdate,NextBarStime,저점[1,1]+var1);
tx2 = Text_New(NextBarSdate,NextBarStime,저점[1,1],NumToStr(저점[1,1],2));
tx3 = Text_New(NextBarSdate,NextBarStime,저점[1,1]+var1,NumToStr(저점[1,1]+var1,2));
}
}
TL_SetSize(TL1,0);
TL_SetColor(TL1,gray);
TL_SetEnd(TL2,NextBarSdate,NextBarStime,저점[1,1]);
TL_SetEnd(TL3,NextBarSdate,NextBarStime,저점[1,1]+var1);
TL_SetSize(TL2,2);
TL_SetColor(TL2,BLUE);
TL_SetSize(TL3,2);
TL_SetColor(TL3,yellow);
TL_SetEnd(TL4,NextBarSdate,NextBarStime,고점[1,1]);
TL_SetEnd(TL5,NextBarSdate,NextBarStime,고점[1,1]-Var2);
TL_SetSize(TL4,2);
TL_SetColor(TL4,RED);
TL_SetSize(TL5,2);
TL_SetColor(TL5,cyan);
Text_SetLocation(tx2,NextBarSdate,NextBarStime,저점[1,1]);
Text_SetLocation(tx3,NextBarSdate,NextBarStime,저점[1,1]+var1);
Text_SetStyle(tx2,2,1);
Text_SetStyle(tx3,2,1);
Text_SetColor(tx2,BLUE);
Text_SetColor(tx3,yellow);
Text_SetLocation(tx4,NextBarSdate,NextBarStime,고점[1,1]);
Text_SetLocation(tx5,NextBarSdate,NextBarStime,고점[1,1]-var2);
Text_SetStyle(tx4,2,1);
Text_SetStyle(tx5,2,1);
Text_SetColor(tx4,RED);
Text_SetColor(tx5,cyan);
2020-06-01
1440
글번호 139432
답변완료
문의드립니다!
안녕하세요
먼저 항상 감사드립니다!!!
덕분에 많은것을 알게되고 배우는것같습니다.
저번에 알려주신 수직에서 추가질문드립니다
Maxdata 이부분이 오늘만 적용하고싶습니다. maxdata가 어제(현재기준 오늘 오전7시이전) 이면
maxdata가 If data1(H) >= Maxdata[arr] Then 이조건이 만족이 안되었으면 합니다
오늘 7시부터 조건성립이 되었음합니다.
알려주시면 감사하겠습니다!!
Var : 몸통상단(0,Data2),Maxdata(0,data2);
var : Arr(0,data1),cond(false,data1);
몸통상단 = Data2(max(C,O)); #data2몸통상단
Maxdata = data2(Highest(몸통상단, 3)); #data2 몸통상단의 3개봉 최고값
#data1의 고가가 Maxdata의 0~150봉전 값보다 크거나 같으면 cond는 true
cond = false;
For ARR = 0 TO 150
{
If data1(H) >= Maxdata[arr] Then
cond = true;
}
#cond가 true일때 매수
if cond == true then
buy();
2020-06-01
1513
글번호 139430