커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3566
글번호 230811
답변완료
문의드립니다.
안녕하세요.
아래 기존의 검색식에 일부 추가를 하고 싶습니다.
var1 = (highest(H,5)+lowest(L,5))/2;
var2 = (highest(H,10)+lowest(L,10))/2;
var3 = (highest(H,20)+lowest(L,20))/2;
if C >= 5000 and C <= 30000 And
countif(C > O and H >= O*1.05,30) >= 1 and H < O*1.05 and
ma(v,5)[1] >= 100000 and
C >= var1 and C >= var2 and C >= var3 Then
find(1);
1. var1 >= var2 >= var3
2. 주가가 var1에 5% 이내 접근. 이 접근이 일봉상 7봉이내에서 1번째, 2번
째, 3번째 접근인 경우만 한정.
var1 = (highest(H,5)+lowest(L,5))/2;
var2 = (highest(H,10)+lowest(L,10))/2;
var3 = (highest(H,20)+lowest(L,20))/2;
if C >= 5000 and C <= 30000 And
countif(C > O and H >= O*1.05,30) >= 1 and H < O*1.05 and
countif(c >= var1 and C <= var1*1.05,7) <= 3;
ma(v,5)[1] >= 100000 and
C >= var1 and C >= var2 and C >= var3 AND
var1 >= var2 >= var3 Then
find(1);
위 조건을 추가하여 만들었는데 검증에서 맞지 않다고 하네요.
수정 부탁드립니다.
감사합니다.
2019-11-08
289
글번호 133534
답변완료
키움증권에서 쓰던 수식을 예스스탁에서 사용가능한가요?(변경원합니다.)
키움증권에서 쓰던 수식입니다.
혹시 예스스탁에서 사용할수 있게 변경 가능한가요?
총 6개 수식입니다.
1.빨주노초(기술적지표)
수식1
CL=valuewhen(1,(highest(h(1),period)<highest(h,period)),((highest(high,Period)+lowest(low,Period))/2));
highest(H, period)-(((highest(H, period)-CL)/5)*1)
수식2
CL=valuewhen(1,(highest(h(1),period)<highest(h,period)),((highest(high,Period)+lowest(low,Period))/2));
highest(H, period)-(((highest(H, period)-CL)/5)*2)
수식3
CL=valuewhen(1,(highest(h(1),period)<highest(h,period)),((highest(high,Period)+lowest(low,Period))/2));
highest(H, period)-(((highest(H, period)-CL)/5)*3)
수식4
CL=valuewhen(1,(highest(h(1),period)<highest(h,period)),((highest(high,Period)+lowest(low,Period))/2));
highest(H, period)-(((highest(H, period)-CL)/5)*4)
수식5
highest(h,period)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
2.최저점(기술적지표)
수식1
CL=valuewhen(1,(highest(h(1),period)<highest(h,period)),((highest(high,Period)+lowest(low,Period))/2));
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
3.300억 거래대금(신호검색)
A = (H + L+ O + C) / 4 * V / 100000000;
B = Sum(A);
D = ValueWhen(1, Date(1) != Date, B(1));
E = B - D;
CrossUp(E, 300)
highest(H, period)-(((highest(H, period)-CL)/5)*10)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
4.거래량(기술적지표)
수식1
highest(V,period)
수식2
highest(V,period)/2
수식3
highest(V,period)/4
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
5.a.300억 거래대금(신호검색)
거래량 * ((고가+저가)/2) > 35000000000
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
6.가격이평선
수식1
MA(가격, 기간1, 이평종류)
수식2
MA(가격, 기간2, 이평종류)
수식3
MA(가격, 기간3, 이평종류)
2019-11-08
2061
글번호 133533
답변완료
부탁드립니다.
매번 감사드립니다.
아래식에서
1) B1■, B2■, S1■, S2■ 신호의 색깔을 PINK로 해주시고,
2) 숫자+★ 에서 "★"만 Yellow로 표현 부탁드립니다.
감사합니다.
Input: AA(-120), BB(-40);
Input : 손절(10),익절(10),익절하락(1);
input : P1(30), P2(120), p3(240);
input : StartTime(090000),EndTime(050000);
var : tx(0),X(false),Tcond(false),tt(0);
var1 = ma(C, P1);
var2 = ma(C, P2);
var3 = ma(C, P3);
######## 진입제한
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)Then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= Endtime) or
(sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)Then
{
Tcond = false;
}
## 진입
if Tcond == true and marketposition == 0
and crossup(var1,var2) Then
{
if Condition1 == true and tt < BB then ###
buy("B1■"); ###
Else
buy("B1"); ###
}
if Tcond == true and marketposition == 0
and crossdown(var1,var2) Then
{
if Condition1 == true and tt < BB then
sell("S1■");
Else
sell("S1");
}
if Tcond == true and marketposition == 0
and crossup(var2,var3) and var3[1] < var3 Then
{
if Condition1 == true and tt < BB then
buy("B2■");
Else
buy("B2");
}
if Tcond == true and marketposition == 0
and crossdown(var3,var4) and var3[1] > var3 Then
{
if Condition1 == true and tt < BB then
sell("S2■");
Else
sell("S2");
}
## 청산
if MarketPosition == 1 then
{
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if MarketPosition == -1 Then
{
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if ((sdate != sdate[1] and stime >= Endtime) or
(sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)) Then
{
if MarketPosition == 1 Then
{
ExitLong("BE6");
}
if MarketPosition == -1 Then
{
ExitShort("SE6");
}
}
if TotalTrades > TotalTrades[1] then
{
if IsExitName("StopLoss",1) == true then
{
tt = tt - 40;
if tt >= 0 Then
{
tt = 0;
Condition1 = false;
}
if tt > AA then ###
{
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0));
Text_SetSize(tx,20);
Text_Setstyle(tx,2,20);
}
else
{
Condition1 = true;
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)+"★");
Text_SetSize(tx,20);
Text_Setstyle(tx,2,20);
}
}
if IsExitName("StopTrailing",1) == true then
{
tt = tt + 30;
if tt >= 0 Then
{
tt = 0;
X = true;
Condition1 = false;
}
if Condition1 == true and tt >= BB then ###
Condition1 = false; ###
if tt > AA then ###
{
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0));
Text_SetSize(tx,20);
Text_Setstyle(tx,2,2);
}
}
}
2019-11-10
286
글번호 133532
답변완료
보조지표에 신호넣는 수식 부탁드립니다.
보조지표 신호넣기 문의드립니다.
stochastics 지표를 2개 열어
첫번째 stochastics 지표에서 변수값 5.3.3
두번째 stochastics 지표에서 변수값 10.6.6 를 넣고 겹치기해서
stochastics 5.3.3의 %D3와
stochastics 10.6.6의 %D6이 교차했을때 신호발생조건
즉 %D3이 %D6 골든크로스 발생시 매수신호
%D3이 %D6 데드크로스 발생시 매도신호 신호 나오게끔 수식 부탁드립니다.
2019-11-08
348
글번호 133520
답변완료
피라미딩 max 조절
별첨파일은 아래수식을 시뮬레이션한 결과입니다.
피라미딩은 max 6개되는 수식입니다.
2017년5월29일을 보면
buy 진입 후 피라미딩을 3개까지(잔고 4개) 하다가
9시05분 2번째,3번째,4번째가 손절로 청산된 후(잔고1개)
9시22분 다시 피라미딩을 하여 max6개를 채웁니다.
요청사항
1) 피라미딩 max n개의 50% 이상 손절될 경우는 피라미딩 중지
위 경우처럼 3개 손절되면 피라미딩 중지. 잔고1개로 포지션 유지.
2) 피라미딩 max에서 손절되는 갯수를 제한 나머지 숫자가 피라미딩 max가 됨
위 경우처럼 3개 손절되면 max 피라미딩은 3개까지 허용.
두 가지 경우를 나누어 요청드립니다.
*************************************************************
input : up진입수(1), dn진입수(1);
input : uppyra검증(0.20);
input : 상승pyra(0.00),상승N(6);
input : dnpyra검증(0.20);
input : 하락pyra(0.00),하락N(6);
input : up강제손절(0.60),dn강제손절(0.60);
var : S1(0),S2(0),ST(0),E1(0),E2(0),ET(0),second(0);
var : T1(0),entry(0);
if bdate != Bdate[1] Then
T1 = TotalTrades;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = TotalTrades-T1+1;
S1 = TimeToMinutes(stime)*60;
S2 = FracPortion(stime/100)*100;
ST = S1+S2;
E1 = TimeToMinutes(time)*60;
E2 = FracPortion(time/100)*100;
ET = E1+E2;
if sdate == date Then
Second = ET-ST;
Else
Second = 86400-ST+ET;
if entry < up진입수 and second < second[1] and C > O Then
buy("b1");
if entry < dn진입수 and second < second[1] and C < O Then
sell("s1");
if MarketPosition == 1 and C >= EntryPrice+uppyra검증 and MaxContracts < 상승N Then
buy("bb",AtStop,LatestEntryPrice(0)+상승Pyra);
if MarketPosition == -1 and C <= EntryPrice-dnpyra검증 and MaxContracts < 하락N Then
sell("ss",AtStop,LatestEntryPrice(0)-하락Pyra);
if MarketPosition == 1 Then
{
SetStopLoss(up강제손절,pointstop);
}
if MarketPosition == -1 Then
{
SetStopLoss(dn강제손절,pointstop);
}
2019-11-11
301
글번호 133519
답변완료
수싟부탁드려요
추운 날씨 고생하십니다.
볼린저밴드 20.2 로 거래
현재봉의 상단 볼린저밴드 가격을 터치하면 상단밴드가격으로 매도
현재봉의 하단 볼린저밴드 가격을 터치하면 하단밴드가격으로 매수 하는 수식
수고하세요
2019-11-08
235
글번호 133517
답변완료
문의
해외선물을 매매하려고 합니다.
오후 9시부터 매매신호에 따라 매수 또는 매도로 진입하고
그 다음날 새벽 5시00분까지만 진입하고 5시 이후에는 진입하지 않고 5시 이후에 보유 종목이 있으면 5틱 이익시 수익청산하고 5틱 손실시 손절청산만 합니다.
매수 :
무포지션에서 종가가 시가보다 1틱 이상인 양봉이 2연속으로 양봉이고
양봉들은 최초1양봉종가<2번째양봉종가될 때 그리고 양봉 두개의 시가가 이평선 10 위에 모두 있을 때
매수진입합니다.
이 때 최초1양봉시가 = 매수시가 라고 합니다.
매수청산;
진입후에 매수이익이 5틱나면 무조건 이익청산합니다.
손절은 종가가 매수시가를 하향하면 손절합니다.
매도 :
무포지션에서
종가가 시가보다 1틱 이하인 음봉이 2연속으로 음봉이고
음봉들은 1음봉종가>2음봉종가될 때 그리고 음봉 두개의 시가가 이평선 10 아래에 모두
있을 때
매도진입합니다.
이 때 최초1음봉시가 = 매도시가 라고 합니다.
매도청산;
진입후에
수익이 5틱나면 무조건 이익청산합니다.
손절은 종가가 매도시가를 상향하면 손절합니다.
2019-11-08
239
글번호 133514
답변완료
수능일_ 개장과 장마감 시간이 순연 시
기존 사용시스템을 1시간씩 순연시키는 방법은 시스템식을 별도로 수정하는 방법밖에 없나요?
질문1.
평상시엔 09:30~15:00 사이에 거래하고, 당일 강제청산 탭을 이용해서 청산을 하는데,
if 093000 < stime and stime <= 150000 ~~ 으로 설정했던 부분을
같은 시간개념으로 운영하려면 수능일 1시간 순연된다하니, 초보적인 수준이라
if 103000 < stime and stime <= 160000 ~~ 로 수정을 했고,
당일 강제청산 탭에서도 1시간씩 순연해서 일일히 수정을 했는데 틀리지는 않겠지요?
질문2.
평상 시와 수능/개장일 등 순연되는 날(순연시간 고려해서) 등 겸용으로 수식으로 만들수는 없는지요?
항상 감사드립니다.
2019-11-08
202
글번호 133513
답변완료
수고 부탁 드립니다
전환선이 기준선을 데드 크로스 하고 하락 하던 주가가 첫 전환선 위에 안착 하는 종목을
찾아 주셔요~~
2019-11-08
206
글번호 133512