커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4422
글번호 230811
답변완료
수식 문의
please check attaschment.
always thank you.
2018-08-10
157
글번호 121265
답변완료
수식 문의 드립니다.
지난 번 따른 답변으로 큰 도움을 받아 다시한번 감사드립니다.
공부 중에 적용이 잘 되어 한번 더 더움을 받고자 합니다.
문의 1)
buy, sell 명령어 문자 삽입시 폰트 적용이 가능한지요?
예:
if CrossDown(C, WMA(C, 5)) or CrossDown(C, Ema(C, 5)) or CrossDown(C, ma(C, 5)) Then
{
cnt1 = cnt1+1;
tx = Text_New(sdate,stime,H+PriceScale*1,"@"+NumToStr(cnt1,0));
Text_SetStyle(tx,2,2); -- 적용되고 있음
Text_SetBold (tx,1); -- 적용되고 있음
}
위 경우는 적용이 되는데 명령어에 직접적용하니 안되네요. (첨부파일 A 캔들 위치)
이런 경우도 위 처럼 별도 표기처리를 해야 하거나 방법을 알고 싶습니다.
If Value1 < Value2 Then
{
# 매도/매수청산
if MarketPosition >= 0 and CrossDown(Value4, Value5) Then
{
sell("매도주문");
cnt2 = 0;
Text_SetStyle(tx,2,2); -- 적용이 안되고 있음
Text_SetBold (tx,1); -- 적용이 안되고 있음
}
}
문의 2)
buy("매수주문"); 또는 sell("매도주문"); 발생할 경우(신호발생/확정 상관없이) 화면에 해당 라인이 그려지게 하려는데
잘 안되네요 ㅜㅠ , 도움 부탁 드립니다.
buy인 경우 빨간색 수직선, sell 경우 파란색으로 그려졌으면 합니다.
(첨부파일 B 위치 캔들)
화면에 직접 표현이 안된다면 보조지표로 만든 후 화면에 지표 합성을 하는 방식도 가능하지 않을까 하는데 어렵네요 ㅠㅠ
항상 도움을 주셔서 감사드립니다.
2018-08-09
233
글번호 121264
답변완료
선물옵션 정정
> 안녕하세요
1. ==>> 선물 입니다
연결선물 주봉 상승이고 연결선물 일봉 도 상승이며
옵션 만기일 콜옵션중간값 종목 상승 이면 매수
연결선물 주봉 하락이고 연결선물 일봉 도 하락아며
옵션 만기일 콜옵션중간값 종목 하락 이면 매도
2. ==>> 주식 입니다
변수는 ; 투자금액 입력 사용할수있도록 해요 예}==>> 1천만원
현물 월봉 상승이며 현물주봉 도 상승이고
현물 일봉 상승 이면 금요일 오후 1시~2시 사이에 1차 매수
월요일 오전 9시~10시 사이에 2차매수
매수
목표 20% 청산
감사합니다^^
2018-08-09
155
글번호 121263
답변완료
수정부탁드립니다.
input : 금액(500000);
If NextBarSdate >sDate Then
Buy("b1%", AtLimit, dayclose*0.99, Floor(금액/C));
If NextBarSdate >sDate Then
Buy("b1.5%", AtLimit, dayclose*0.985, floor(금액/C));
If NextBarSdate >sDate Then
Buy("b2%", AtLimit, dayclose*0.98, floor(금액/C));
If NextBarSdate >sDate Then
Buy("b2.5%", AtLimit, dayclose*0.975, Floor(금액/C));
If NextBarSdate >sDate Then
Buy("b3%", AtLimit, dayclose*0.97, floor(금액/C));
If NextBarSdate >sDate Then
Buy("b4%", AtLimit, dayclose*0.96, floor(금액/C));
if stime >= 090600 and dayhigh == H and C<O Then
var1 = o;
Buy("b1%1음봉", Atlimit, o*0.99, floor(금액/c));
if stime >= 090600 and dayhigh == H[1] and C[1]>O[1] and C<o Then
Buy("b1%2음봉", Atlimit, DayHigh*0.99, floor(금액/c));
if stime >= 090600 and dayhigh == H[2] and C[2]>O[2] and C[1]<o[1] and C<O Then
Buy("b1%3음봉", Atlimit, O*0.99, floor(금액/c));
if marketposition == 1 and ((latestEntryName == "b1%1음봉" )) Then
buy("b1%1음봉2%추매", atlimit, var1*0.98, floor(금액/c));
//매도 1%
SetStopProfittarget(1,PercentStop);
SetStopInactivity (1, 50, PercentStop);
항상 수고가 많으십니다.
1. 3분봉에서 시뮬레이션을 하고 있는데. 9시3분에 "b1%1음봉" 이 거래가 일어난다고 뜹니다. 어느부분이 잘못되었을까요?
2. if marketposition == 1 and ((latestEntryName == "b1%1음봉" )) Then
buy("b1%1음봉2%추매", atlimit, var1*0.98, floor(금액/c));
이 매수가 b1%1음봉 한번당 한번만 진입 하고 싶습니다.(중간에 b1%2음봉 신호가 나와도 매수 할수 있는 방법도 알려주세요.)
3. SetStopInactivity (1, 50, PercentStop); 이 신호가 나오면 그 이후 매수를 중지고 싶습니다.
2018-08-09
160
글번호 121262
답변완료
부탁드립니다.
도움 주심에 깊이 감사 드립니다.
수식1)
조건1)
연속 n개이상 양봉일때의 그 양봉 가격의 합이,
과거 100개의 봉크기 평균값의 k배 이상의 조건
조건2)
연속 n개이상 양봉일때의 거래량의 합이
과거 100개봉의 거래량의 평균값의 q배 이상의 조건
조건3)
연속 n개이상 양봉일때의 거래량의 합이
과거 100개봉의 거래량의 평균값의 r배 이하의 조건
위와같이
조건1과 조건2를 동시 만족할 때 수평선과
조건1과 조건3을 동시 만족할 때 수평선을 긋되
그어 오든 수평선에서 새로운 수평선이 생성되면 기존 수평선은 중지 되는 수식 부탁 드립니다.
아울러,
수식2)
(상기 수식1의 조건에 있는 양봉에서 음봉으로만 변경되는 조건으로서)
조건4)
연속 n개이상 음봉일때의 그 음봉 가격의 합이,
과거 100개의 봉크기 평균값의 k배 이상의 조건
조건5)
연속 n개이상 음봉일때의 거래량의 합이
과거 100개봉의 거래량의 평균값의 q배 이상의 조건
조건6)
연속 n개이상 음봉일때의 거래량의 합이
과거 100개봉의 거래량의 평균값의 r배 이하의 조건
위와같이
조건4와 조건5를 동시 만족할 때 수평선과
조건4와 조건6을 동시 만족할 때 수평선을 긋되
그어 오든 수평선에서 새로운 수평선이 생성되면 기존 수평선은 중지 되는 수식을
부탁 드립니다.
미리 경배로 감사 인사 올립니다.
추신) 위 수식과 관련된 유사한 수식 2개를 첨부 합니다.
참고수식1)
input :n(3), P100(100),q(3),r(0.3);
var1 = AccumN(V,n);
var2 = ma(V,P100);
var3 = var1/var2;
if crossup(var3,q) and countif(C>O,n) == n Then
value1 = C;
if CrossDown(var3,r) and countif(C<O,n) == n Then
value2 = C;
참고수식2)
input :n(3),p100(100),k(4);
var : T(0),cnt1(0),d1(0),t1(0),h1(0),l1(0);
var : cnt2(0),d2(0),t2(0),h2(0),l2(0);
var : tl11(0),tl12(0),tl13(0),tl14(0);
var : tl21(0),tl22(0),tl23(0),tl24(0);
var : v1(0),v2(0),v3(0),v4(0);
v1 = iff(C>O,abs(C-O),0);
v2 = AccumN(v1,p100);
v3 = countif(C>O,p100);
v4 = v2/v3;
if C > O Then
T = 1;
if C < O Then
T = -1;
if T == 1 and T[1] != 1 Then
{
cnt1 = 0;
d1 = sdate;
t1 = stime;
h1 = H;
l1 = L;
}
if T == 1 Then
{
cnt1 = cnt1+1;
if h > h1 Then
h1 = h;
if l < l1 Then
l1 = l;
}
if T == -1 and T[1] != -1 Then
{
cnt2 = 0;
d2 = sdate;
t2 = stime;
h2 = H;
l2 = L;
}
if T == -1 Then
{
cnt2 = cnt2+1;
if h > h2 Then
h2 = h;
if l < l2 Then
l2 = l;
}
if T != 1 and T[1] == 1 and cnt1[1] >= n and C[1] > O[1] Then
{
var1 = h1;
var2 = L1;
if h1-l1 >= v4*k Then
{
TL_SetEnd(tl11[1],sdate[cnt1+1],stime[cnt1+1],value88[1]);
tl11 = TL_New(d1,t1,h1,sdate[1],stime[1],h1);
value88 = var1;
}
TL_SetColor(Tl11,RED);
}
Else
{
TL_SetEnd(TL11,sdate,stime,value88);
TL_Setsize(TL11,2);
}
if T != -1 and T[1] == -1 and cnt2[1] >= n and C[1] < O[1] then
{
var3 = H2;
var4 = L2;
if h2-l2 >= v4*k Then
{
TL_SetEnd(tl22[1],sdate[cnt2+1],stime[cnt2+1],value99[1]);
tl22 = TL_New(d2,t2,l2,sdate[1],stime[1],l2);
value99 = var4;
}
TL_SetColor(Tl22,BLUE);
}
Else
{
TL_SetEnd(TL22,sdate,stime,value99);
TL_Setsize(TL22,2);
}
2018-08-09
167
글번호 121261
답변완료
수식 문의
여러가지 조건값을 넣어 아래와 같이
진입 신호를 설정 하였습니다.
네개의 조건값 var3,9,15,21 중,
세개, 또는 네개가 양수를 충족하면 -> 매수
세개, 또는 네개가 음수를 충족하면 -> 매도
하는 수식입니다.
★
문제는 아래의 진입조건이 직전봉과 비교하다 보니
시초가 첫봉을 반영하지 못한다는 것인데요,
시초가 첫봉에 한하여, 직전봉과 비교하지 않고
시초가 첫봉이 세개, 또는 네개가 양수를 충족하면 -> 매수
시초가 첫봉이 세개, 또는 네개가 음수를 충족하면 -> 매도
하는 수식을 추가 하고 싶습니다.
항상 친절한 답변 감사드립니다.
======== 아 래 =========
.
.
.
.
.
.
.
plus = 0;
if Var3 > 0 Then
plus = plus+1;
if Var9 > 0 Then
plus = plus+1;
if var15 > 0 Then
plus = plus+1;
if var21 > 0 Then
plus = plus+1;
minus = 0;
if var3 < 0 Then
minus = minus+1;
if Var9 < 0 Then
minus = minus+1;
if var15 < 0 Then
minus = minus+1;
if var21 < 0 Then
minus = minus+1;
if plus >= 3 and plus[1] <= 2 Then
buy();
if plus >= 4 and plus[1] <= 3 Then
buy();
if minus >= 3 and minus[1] <= 2 Then
sell();
if minus >= 4 and minus[1] <= 3 Then
sell();
2018-08-09
166
글번호 121258
답변완료
수식 부탁드립니다.
안녕하세요..
1번 요청
1분봉에서 3개의 수평라인 표시 하러 합니다.
( 3개의 수평라인은 당일에만 표시 )
1라인 : 분봉에서 하루 중 거래량이 가장 많이 발생한 봉 고가에 수평라인을 표시
2라인 : 분봉에서 하루 중 거래량이 두번째 많이 발생한 봉 고가에 수평라인을 표시
3라인 : 분봉에서 하루 중 거래량이 세번째 많이 발생한 봉 고가에 수평라인을 표시
2번 요청
1번 요청과 동일하나 분봉에서 3개의 수평라인이 3일째 까지만 표시 되면 됩니다.
3번 요청
일봉에서 20이평과 60이평이 크로스다운 발생한 지점에 수평라인을
입력한 봉 개수 까지만 표시
감사합니다...
2018-08-09
179
글번호 121257
답변완료
예스스탁님 도움 부탁드립니다
안녕하세요 예스스탁님
선생님이 만드신 2번식(시간을 직접입력)으로 240분 분봉 30분분봉등에서 실행했는데요 선이
표시가 안되네요
차트속성에서 시간대는 한국시간인데요 이상하네요~~
안녕하세요
예스스탁입니다.
2
시간을 직접 지정하신다면 아래와 같습니다.
input : Price(69.35),ST(070000),ET(060000);
if bdate == CurrentDate and
((sdate != sdate[1] and stime >= ST) or
(sdate == sdate[1] and stime >= ST and stime[1] < ST)) Then
Condition1 = true;
if Condition1 == true and
((sdate != sdate[1] and stime >= ET) or
(sdate == sdate[1] and stime >= ET and stime[1] < ET)) Then
Condition1 = false;
if Condition1 == true Then
plot1(Price);
즐거운 하루되세요
> 행복이 님이 쓴 글입니다.
> 제목 : 시간대 표시
> 안녕하세요 예스님
해외선물에서 am7시부터 다음날 am6시까지 시간대에만
제가 지정하는 지정값 plot1(69.35) 값을 표시 하고 싶습니다
물론 다음날은 위에시간대에 다시 제가 정한 지정값을 새로 표시하고싶습니다
stime== current~,stime , timeclse 등을 나름 이용하려 했는데 잘 안되네요
부탁드립니다
2018-08-09
180
글번호 121256
답변완료
예.트 시스템식 오류?
밑에 파라볼릭 관련해서 추가 문의합니다.
예스랭귀지 시스템식에 아래 두개 식이 있는데, 그러면 여기도 고쳐야 하는 거겠지요?
1.파라볼릭 bearish
/*******************************************************************
Description : Parabolic Short Entry
********************************************************************/
Inputs: AccelFactor(0.02);
Variables: ParabolicValue(0);
ParabolicValue = sar(AccelFactor, 0.2);
If Low >= ParabolicValue Then
Sell ("Pblc", AtStop, ParabolicValue);
2.파라볼릭 bullish
***********************************************************************
Description : Parabolic Long Entry
********************************************************************/
Input: AccelFactor(0.02);
Variables: ParabolicValue(0);
ParabolicValue = SAR(AccelFactor, 0.2);
If High <= ParabolicValue Then
Buy ("Pblc", AtStop, ParabolicValue);
2018-08-09
148
글번호 121255