커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4542
글번호 230811
답변완료
예약청산 주문 추가하고 싶습니다.
해외선물 주로 쿠르드오일 매매하고요
value1 = (highest(H,9)+lowest(L,9))/2; //전환
value2 = (highest(H,26)+lowest(L,26))/2; //기준
If crossup(value1,value2) Then
{
Buy ("LE") ;
}
If crossdown(value1,value2) Then
{
Sell ("SE");
}
요 수식에
1. 시스템 신호 진입시 진입가 10틱 익절, 5틱 하락시 1계약 물타기진입 자동예약주문설정
2. 10틱 익절시 익절값의 5틱하락일때 자동 재진입예약주문, 진입시 진입값의 10틱 익절, 5틱 하락시 1계약 물타기진입의 1번 자동예약주문설정
3. 첫 매입가의 5틱하락시 1계약 물타기진입후 1번의 자동예약주문 모두취소 후 2계약평균값으로 다시 1계약 10틱 익절, 1계약 +2틱 물타기 청산, 첫 매입가 10틱 하락시 1계약 물타기 진입 3가지 자동예약주문설정
4. 첫 매입가의 10틱하락시 1계약 물타기진입후 3번의 자동예약주문 모두취소 후 3계약평균값으로 다시 1계약 10틱 익절, 2계약 +2틱 물타기 청산, 첫 매입가 15틱 하락시 1계약 물타기 진입 3가지 자동예약주문설정
5. 첫 매입가의 15틱하락시 1계약 물타기진입후 4번의 자동예약주문 모두취소 후 4계약평균값으로 다시 1계약 10틱 익절, 3계약 +2틱 물타기 청산, 첫 매입가 20틱 하락시 1계약 물타기 진입 3가지 자동예약주문설정
6. 첫 매입가의 20틱하락시 1계약 물타기진입후 5번의 자동예약주문 모두취소 후 5계약평균값으로 다시 1계약 10틱 익절, 4계약 +2틱 물타기 청산, 첫 매입가 25틱 하락시 1계약 물타기 진입 3가지 자동예약주문설정
7. 첫 매입가의 25틱하락시 1계약 물타기진입후 6번의 자동예약주문 모두취소 후 6계약평균값으로 다시 1계약 10틱 익절, 5계약 +2틱 물타기 청산, 첫 매입가 30틱 하락시 1계약 물타기 진입 3가지 자동예약주문설정
8. 첫 매입가의 30틱하락시 1계약 물타기진입후 7번의 자동예약주문 모두취소 후 7계약평균값으로 다시 1계약 10틱 익절, 6계약 +2틱 물타기 청산, 첫 매입가 35틱 하락시 1계약 물타기 진입 3가지 자동예약주문설정
9. 첫 매입가의 35틱하락시 1계약 물타기진입후 8번의 자동예약주문 모두취소 후 8계약평균값으로 다시 1계약 10틱 익절, 7계약 +2틱 물타기 청산, 매입가 40틱 하락시 1계약 물타기 진입 3가지 자동예약주문설정
9. 시스템에서 반대신호 발생시 포지션 모두 청산하고 예약주문 취소 후 1계약진입 1번반복
1~9까지의 예약청산식을 추가하고 싶은데 가능한가요? 가능하면 수식부탁드립니다.
2016-09-08
112
글번호 101790
답변완료
질문드립니다
현재 아래 1번 코드와 2번 코드를 분봉에서 적용하고 있습니다
제가 원하는 지표는
1.
이 두 지표의 당일 분봉상 마지막값을
익일에 그려주는 겁니다
5분차트라면 15:30의 값을 그 다음날 그려주는 겁니다
2.
이 두 지표의 특정일의 당일 분봉상 마지막값을
익일에 그려주는 겁니다
예를들면
오늘(9월7일)에 특정일(9월1일)의 분봉상 마지막값을
오늘 그려주는 겁니다
1,2번 코드를 위 두가지 각각의 코드로 알려주세요
==============================================
1번 코드 : Volume Power OBV
Var : value(0),VPOBV(0);
If upVol > downVol Then
value = V;
Else
value = -V;
VPOBV = accum(value);
Plot1(VPOBV, "VP_OBV");
PlotBaseLine1(0, "기준선 0");
-----------------------------------------------------------
2번 코드 : OBV
/* Description : (O)n (B)alance (V)olume
*
* Provided By : YesStock Inc. (c) Copyright 2006
* E-Mail : webmaster@yesstock.com
*/
If CurrentBar > 0 Then
{
If Close[0] > Close[1] Then
OBV = OBV[1] + Volume;
Else
If Close[0] < Close[1] Then
OBV = OBV[1] - Volume;
Else
OBV = OBV[1];
}
Else
OBV = 0;
===========================================================
2016-09-07
177
글번호 101789
답변완료
SetStopTrailing 관련 질문 드립니다. 급해요..
SetStopTrailing 관련 질문 드립니다.
1. 아래와 같이 SetStopTrailing 사용가능한가요?
IF SetStopTrailing(a,b,PercentStop) == 1 Then
{
FLAG=1;
}
2. 그리고 SetStopTrailing 조건이 만족하면 그 때 이익청산 안하고
Flag로 저장했다가 그 다음봉이나 다다음봉에서
매도 매수 하고 싶은데 방법이 없을까요?
꼭 답변 부탁드립니다. 급합니다. TT
2016-09-07
120
글번호 101788
답변완료
문의드립니다
안녕하세요
예스스탁님
제가 부탁드린
1.어제 아침AM 7:00 부터 ~오늘 아침 AM 6:00 까지의 고가 저가를 표시하는 지표를 짜주셨는데
요 제가 응용해서 시간대를 변경하려고 하는데요 그 뜻을 몰라서요
if stime == 070000 or (stime >070000 and stime[1] < 070000) 에서
stime == 070000 는 시작시간이 오늘 7시인가?
stime >070000 and stime[1] < 070000 는 어제 7시 이전 이면서 오늘 7시 이후인가~
아니 어제 AM 7시부터 오늘 AM 6시인데~이게 뭐람?
stime >= 070000 or stime <= 060000 오늘 7시이후부 오늘6시 이전인가 ~아이고 모르겠다,수식
의 세계는 심오해~
시간을 변경하려는데요 뜻을 몰라 이렇게 고민 했습니다^^
가령 어제 AM 8:30 부터~ 오늘 AM 11:45 분 까지의 고점과 저점을 표시하는 지표라면
어느곳의 수식을 바꿔야 하는지 문의 드립니다
고맙습니다
p/s 예스스탁님 저처럼 초짜를 위한 교육이 혹시 있나요?
<어제 짜주신 수식>
var : HH(0),LL(0),HH1(0),LL1(0);
if stime == 070000 or (stime >070000 and stime[1] < 070000) Then{
HH = H;
LL = L;
HH1 = HH[1];
LL1 = LL[1];
}
if stime >= 070000 or stime <= 060000 then{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
}
if HH1 > 0 and LL1 > 0 then{
plot1(HH1);
plot2(LL1);
}
2016-09-07
113
글번호 101787
답변완료
질문입니다.
선물 일봉에서 거래를 하려고 합니다.
3일이동평균(3ma), 5일이동평균(5ma), 7일이동평균(7ma)을 가지고 매매를 하려고 합니다.
장중에 3ma, 5ma, 7ma 중 최대값을 상향돌파하면 매수진입(현재가로, 즉 atstop으로)하고,
장중에 3ma, 5ma, 7ma 중 최소값을 하향돌파하면 매도진입(현재가로, 즉 atstop으로)합니다.
그리고 장 시작시 시초가가 3ma, 5ma, 7ma 모두 위에 있다면 매수진입,
장 시작시 시초가가 3ma, 5ma, 7ma 모두 아래에 위치한다면 매도진입입니다.
위와 같은 시스템을 예시로 부탁드립니다.
감사합니다.
2016-09-07
111
글번호 101776
답변완료
시스템 질문
참조 데이터를 이용하려고 하는데,
1. 틱차트 상 (i) 75 지수이평선 위에 있고, (ii) Slow stochastic이 20 cross-up 하면서 (iii) 5분봉 차트상 75 지수이평선 위에 있으면 매수
2. 틱차트 상 (i) 75 지수이평선 아래에 있고, (ii) Slow stochastic이 80 cross-down 하면서 (iii) 5분봉 차트상 75 지수이평선 아래에 있으면 매도
3. stochastic이 80 crossdown하면 매수 청산, 20 cross-up 하면 매도청산
4. stop은 5분봉 차트상 10틱이상 올라가거나 내려가는 경우 stop 주문
2016-09-07
121
글번호 101775
답변완료
문의드립니다.
KOSPI200선물 기준으로
차트의 첫 부분의 첫봉 부터 거래계약수가
100계약일 될때까지의 최고가, 최저가
그 이후 100계약까지의 최고가, 최저가
그 이후 100계약까지의 최고가. 최저가
이런식인데 설명이 어렵네요..
비유를 해서 설명드리자면,
보통의 차트의 경우
틱차트의 경우
: X축의 기준은 거래횟수를 기준함. [EX:20틱차트의 경우 20번의 거래(거래계약수에 무관하게.. 1계약 20번과 100계약 20번이 동일하게 표기)]
Y축은 가격
3분봉 차트의 경우
: X축의 기준은 3분을 기준으로 표기되자나요..
Y축은 마찬가로 가격
그걸 거래량 N개 단위를 X축으로 사용해서 차트에 표시할수 있나요??
가능하다면 지표식좀 부탁드리겠습니다.
2016-09-07
137
글번호 101774
답변완료
지표식부탁드립니다
감사합니다
해외선물 차트에 사용하려합니다
아래수식에서 각고점 저점을 수평선으로 오른쪽으로
당일분만 연장하여 나타나게 부탁드립니다
좋은하루되세요
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""),
TL_Val1(0),TL_Val2(0);
Var:TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0),TL19(0),TL20(0);
Var:TL21(0),TL22(0),TL23(0),TL24(0),TL25(0),TL26(0),TL27(0),TL28(0),TL29(0),TL30(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);
Text_Delete(Text1);
If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then
TL_Delete(TL2);
}
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));
Text_SetStyle(Text1, 2, 1);
If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then
{
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,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);
Text_Delete(Text1);
If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then
TL_Delete(TL3);
}
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));
Text_SetStyle(Text1, 2, 0);
If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then
{
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
}
}
}
TL_SetSize(TL1,0);
TL_SetColor(TL1,BLACK);
2016-09-07
132
글번호 101773
답변완료
간단한 질문입니다.
항상 친절한 답변에 감사드립니다.
1. 대괄호[ ]에 대한 질문입니다. 이게 사용되는 경우가 배열변수와 이전봉참조 일텐데요, 두 경우 모두 대괄호 내에서 연산이 가능한가요?
2. 예를 들어 아래 2경우가 가능한가요?
1) var1 [ abc ] = var1 [ abc+1 ];
2)
abc=5;
if crossup( C, Ma(c,5)[abc+2] ) then ~;
2016-09-07
119
글번호 101772