커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5488
글번호 230811
답변완료
부탁 드립니다.
도움에 감사 드립니다.
미리 감사 드립니다.
1)다음 일봉에서의 지표를
분봉에서 나타 나도록 부탁 드립니다.
VAR1=HIGHEST(H,P);
2)예를 들어 60분봉에서의 지표를
10분봉(타분봉 지표)에서 나타 나도록 부탁 드립니다.
VAR2=LOWEST(L,P);
3)EnvelopeDown의 함수식을 타분봉에서
나타 나도록 부탁 드립니다.
Input : Period(20), Percent(0.2);
Var : value_MA(0);
value_MA = ma(C, Period);
var1 = value_MA - value_MA * (Percent / 100);
2019-12-31
328
글번호 134769
답변완료
문의드립니다
당일시가+3틱이상은 레드색 당일시가-3틱은 블루색 강조식 부탁드립니다~~미리감사드립니다
2019-12-31
322
글번호 134768
답변완료
시스템 수식
수고가 많으십니다.
RSI관련하여 진입과 청산신호를 수식으로 부탁드립니다.
< 조건> RSI 14, RSI 28 (시그널선은 제외)
< 1> (매수진입) RSI 28이 50을 상향돌파후 최초로 70을 상향돌파할때
(매수청산) 매수진입후 RSI 14가 70을 하향돌파하거나
RSI 28이 70을 하향돌파하거나
RSI 14가 RSI 28을 데드크로스 할때
(매도진입) RSI 28이 50을 하향돌파후 최초로 30을 하향돌파할때
(매도청산) 매도진입후 RSI 14가 30을 상향돌파하거나
RSI 28이 30을 상향돌파하거나
RSI 14가 RSI 28을 골드크로스 할때
<2>①1분봉/ 3분봉/ 5분봉/10분봉에서 위 <1>의 조건이 충족될때만 매수진입/ 매도진입/
②매수청산과 매도청산은 5분봉에서 위<1> 조건충족시
③매수청산과 매도청산은
5분봉 또는 3분봉에서 위<1> 조건충족시
④매수청산과 매도청산은
5분봉 또는 3분봉 또는 1분봉에서 위<1> 조건충족시
*즉, 위<1>은 아무봉에서나 조건 충족시 진입 및 청산
위<2>는 진입시는 1분봉 3분봉 5분봉 10분봉 모두 조건 충족시
청산시는 5분봉에서만,
5분봉 또는 3분봉에서,
5분봉 또는 3분봉 또는 1분봉에서
조건충족시 각각 시스템 수식
<3>청산에 있어서 추가적으로
①5분봉에서
볼린저밴드(10/2)상한선이 볼린저밴드(20/2상한선)을 데드크로스(터치 포함)할 때 매수청산
②5분봉 또는 3분봉 에서
볼린저밴드(10/2)상한선이 볼린저밴드(20/2상한선)을 데드크로스(터치 포함)할 때 매수청산
③5분봉 또는 3분봉 또는 1분봉에서
볼린저밴드(10/2)상한선이 볼린저밴드(20/2상한선)을 데드크로스(터치 포함)할 때 매수청산
④5분봉에서
볼린저밴드(10/2)하한선이 볼린저밴드(20/2상한선)을 골드크로스(터치 포함)할 때 매도청산
⑤5분봉 또는 3분봉 에서
볼린저밴드(10/2)하한선이 볼린저밴드(20/2) 하한선을 골드크로스(터치 포함)할 때 매도청산
⑥5분봉 또는 3분봉 에서
볼린저밴드(10/2)하한선이 볼린저밴드(20/2) 하한선을 골드크로스(터치 포함)할 때 매도청산
2019-12-31
395
글번호 134767
답변완료
체결강도 관련
안녕하세요 새해복많이 받으시길바랍니다.
종목검색 수식에서 체결강도를 집어넣고 싶은데,
분봉상으로,
(1) 1봉전 체결강도 대비 0봉전 체결강도가 증가값이 X(변수)이상이고,
(2) 0봉전 체결강도가 Y(변수) 이상이고,
(3) 0봉전 체결강도가 체결강도 N봉 평균을 돌파하는,,,
검색하고 싶은데, 수식부탁드립니다.
2019-12-30
433
글번호 134766
답변완료
수식 도와주실수 있나요? 하다가 막혀서요
최대한 수식을 이해하고 스스로 작성하려고 하는데 정말 모르겠습니다. 좀 도와주실수 있나요?
요지는 다음과 같습니다.
아래 특정 하나의 수식으로(물론 변수는 최적화) 분봉별로 변수값을 변형하여 4개의 수식을 각각 차트별로 운용하고 있습니다.
4개의 수식을 하나의 수식으로 통합수식을 구현하려고 합니다.
(바로 아래 질물 사항 참조 ) 해당 수식을 각각
1분봉 - data1
5분봉 - data2
10분봉 - data3
20분봉 - data4
왜냐하면 이유는 다음과 같습니다.
해당 수식은 역추세 매매로 급락시 체결 진입되는 수식인데 폭락 원웨이시 4개 수식이
전량 체결되는 경우가 있는데 그러면 리스크관리가 안되기 때문에 .....
4개의 수식이 전량 진입체결되는 경우 -- 위험관리가 안됨 -- 진입 제한 필요성
및
4개 전략을 반영하다보니 차트를 4개를 열어서 관리해야 함 --> 차트 1개로 간소화 필요
한종목에 4개전략을 활성화하고 종목을 3개하니 12개 전략을 활성화하다보니
컴퓨터가 과부하 걸림.... 락다운되는 현상 가끔씩 발생..위험성으로 개선 필요
전략
1. 4개의 전략 ( 동일종목 1분봉 5분봉 10분봉 20분봉 )을 하나의 수식으로 구현
2. 1개의 버전에 변수로 1회진입버전 및 2회진입버전이 있음 ( max 4버전 * 2 = 8계약 진입해버릴수 있음 )
3. 현재 자금상 2개 (버전진입 갯수를 변수로 지정) 의 버전만 진입가능하게 설계 구현
( max 2버전 * 2계약 = 최대 4계약진입 )
시행 방법
일단 전략차트 (그림과 같이 셋팅)
전략차트를 1분봉 참조차트를 5분봉 10분봉 20분봉으로 셋팅 함.
수식을 아래와 같이 수식 작성
--- -----------------------------------------------------------------------
#매수통합버전 ( 1분봉/ 5분봉/ 10분봉/20분봉 버전)
#1분봉 버전-- data1 차트에 적용
Input : RSIPeriod(14),RSI매수값(16),SimPeriod(14),심리도값(22);
Input : 초기화(7);
Input : CCI기간(20),CCI값(500);
Input : 하락틱수(50);
Input : 즉시익절1(30),즉시손절1(90);
Input : 분할매수횟수(2),분할매수틱수(50);
input : N(100); # N은 즉시손절1 발생시 N봉까지 진입 금지
var : CCIv(0),RSIv(0),Simri(0),BuySetup(false),DD(0),entry(0);
CCIv = CCI(CCI기간);
RSIV = RSI(RSIPeriod);
Simri = Simrido(SimPeriod);
# -------N봉까지 즉시손절1 발생시 진입금지 수식 --------------
if bdate != bdate[1] Then
Entry = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
Condition2 = MarketPosition == 0 and
(IsExitName("즉시손절1",1) == false or
(IsExitName("즉시손절1",1) == true and BarsSinceExit(1) > N));
# --------------------------------------------------------------------
Condition1 = RSIv < RSI매수값 and Simri < 심리도값;
# ------------초기화까지 ----------------
if bdate != bdate[1] Then
{
DD = DD+1;
if var2 > 0 and DD == var2+초기화 Then
BuySetup = false;
}
if BuySetup == false and Condition1 == true and Condition1[1] == false Then
{
var1 = C;
var2 = DD;
BuySetup = true
}
if Condition2 == true and MarketPosition == 0 and BuySetup == true Then
buy("매수",AtLimit,var1-PriceScale*하락틱수);
#추가진입
if MarketPosition == 1 and MaxEntries < 분할매수횟수 Then
buy("추가매수",atlimit,LatestEntryPrice(0)-PriceScale*분할매수틱수,1);
if MarketPosition == 1 then
{
BuySetup = false;
if CrossDown(CCIv,CCI값) Then
ExitLong("매수cci청산");
ExitLong("즉시익절1",AtLimit,EntryPrice+PriceScale*즉시익절1);
ExitLong("즉시손절1",AtStop,EntryPrice-PriceScale*즉시손절1);
}
#***********************************************************************************
#5분봉 버전 -- data2 차트에 적용 ( 잘 몰라서 수정 못함 ( data2로 반영해야함 )
상동 - data2차트에 적용하도록 수정 필요...
#***********************************************************************************
#10분봉 버전 -- data3 차트에 적용 ( 잘 몰라서 수정 못함 ( data3로 반영해야함 )
상동 - data3차트에 적용하도록 수정 필요...
#***********************************************************************************
#20분봉 버전 -- data4 차트에 적용 ( 잘 몰라서 수정 못함 ( data4로 반영해야함 )
상동 - data4차트에 적용하도록 수정 필요...
***** 위식에서 기능추가로 4개 버전중 2개 버전만 진입될수 있도록 진입 제한 수식 ....
참고로 1분봉전략, 5분봉전략, 10분봉전략, 20분봉전략의 기본수식은 같으나 변수는 다 다름
PS 혹시 제가 경험치 부족으로 무식하게 위 식처럼 구현하면 될것 같아서 요청한 것이지만
효율적인 방법이 있으면 알려주시면 감사하겠습니다.
2019-12-30
592
글번호 134765
답변완료
과장님 수식 좀 도와주실수 있으신가요?- 따로 따로 답변해주시면 감사 data2함수관련
기본차트는 다른 봉수로 설정하고 참조차트(data2)에 아래식을 변형하게 하려 합니다.
기본차트 수식
Input : RSIPeriod(14),RSI매수값(35),SimPeriod(14),심리도값(37);
Input : N1(1),초기화(7);
Input : CCI기간(80),CCI값(200);
Input : 하락틱수(40);
Input : 즉시익절1(300),즉시손절1(75);
Input : 분할매수횟수(2),분할매수틱수(45);
input : N(5);
var : CCIv(0),RSIv(0),Simri(0),BuySetup(false),DD(0),entry(0);
CCIv = CCI(CCI기간);
RSIV = RSI(RSIPeriod);
Simri = Simrido(SimPeriod);
if bdate != bdate[1] Then
Entry = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
Condition2 = MarketPosition == 0 and
(IsExitName("즉시손절1",1) == false or
(IsExitName("즉시손절1",1) == true and BarsSinceExit(1) > N));
Condition1 = RSIv < RSI매수값 and Simri < 심리도값;
if bdate != bdate[1] Then
{
DD = DD+1;
if var2 > 0 and DD == var2+초기화 Then
BuySetup = false;
}
if BuySetup == false and Condition1 == true and Condition1[1] == false Then
{
var1 = C;
var2 = DD;
BuySetup = true;
}
if Condition2 == true and MarketPosition == 0 and BuySetup == true Then
buy("매수",AtLimit,var1-PriceScale*하락틱수);
#추가진입
if MarketPosition == 1 and MaxEntries < 분할매수횟수 Then
buy("추가매수",atlimit,LatestEntryPrice(0)-PriceScale*분할매수틱수,1);
if MarketPosition == 1 then
{
BuySetup = false;
if CrossDown(CCIv,CCI값) Then
ExitLong("매수cci청산");
ExitLong("즉시익절1",AtLimit,EntryPrice+PriceScale*즉시익절1);
ExitLong("즉시손절1",AtStop,EntryPrice-PriceScale*즉시손절1);
}
===========================================================================
위 차트 수식을 data2 참조차트에 동일하게 구현하려고 합니다. 맞느지 한번 봐주세요
input 변수는 그대로
var 는 각 변수마다 (0) --> (0,data2)로 변경
지정수식은 A = B ---> A = data2(B)
그리고 잘 모르겠어요.. 다음 수식에는 data2를 어디다가 넣어야 하는지... ...ㅠㅠ
Input : RSIPeriod(14),RSI매수값(35),SimPeriod(14),심리도값(37);
Input : 초기화(7);
Input : CCI기간(80),CCI값(200);
Input : 하락틱수(40);
Input : 즉시익절1(300),즉시손절1(75);
Input : 분할매수횟수(2),분할매수틱수(45);
input : N(7);
var : CCIv(0,Data2),RSIv(0,Data2),Simri(0,Data2),BuySetup(false,Data2),DD(0,Data2),entry(0,Data2);
CCIv = data2(CCI(CCI기간));
RSIV = data2(RSI(RSIPeriod));
Simri = data2(Simrido(SimPeriod));
if data2( bdate != bdate[1] ) Then
Entry = 0;
if data2(MarketPosition != 0 and MarketPosition != MarketPosition[1]) Then
entry = entry+1;
Condition2 = data2(MarketPosition == 0 )and
data2((IsExitName("즉시손절1",1) == false)) or
data2( (IsExitName("즉시손절1",1) == true and BarsSinceExit(1) > N));
Condition1 = (RSIv < RSI매수값) and (Simri < 심리도값);
if data2(bdate != bdate[1]) Then
{
DD = DD+1;
if var2 > 0 and DD == var2+초기화 Then
BuySetup = false;
}
if BuySetup == false and Condition1 == true and Condition1[1] == false Then
{
var1 = C;
var2 = DD;
BuySetup = true;
}
if Condition2 == true and MarketPosition == 0 and BuySetup == true Then
buy("매수",AtLimit,var1-PriceScale*하락틱수);
#추가진입
if MarketPosition == 1 and MaxEntries < 분할매수횟수 Then
buy("추가매수",atlimit,LatestEntryPrice(0)-PriceScale*분할매수틱수,1);
if data2(MarketPosition == 1) then
{
BuySetup = false;
if CrossDown(CCIv,CCI값) Then
ExitLong("매수cci청산");
ExitLong("즉시익절1",AtLimit,EntryPrice+PriceScale*즉시익절1);
ExitLong("즉시손절1",AtStop,EntryPrice-PriceScale*즉시손절1);
}
2019-12-30
388
글번호 134764
답변완료
키움수식 변형 부탁드립니다.
분봉기준입니다.
B = sum( if(C >= 기준값1, M, if(C<=기준값2, -M, 0)) );
//마지막은 문자가 아니라 숫자 영입니다.
D = valuewhen(1, date==날짜 and date(1)!=날짜, B(n1));
E=B-D
F = highestsince(1, date == 날짜 and date(1) != 날짜, E);
2019-12-30
495
글번호 134763
답변완료
함수요청
안녕하세요?
아래글번호 65424번 재질문입니다.
스크립트 검증 요청드립니다.
구체적인 사례를 들어 요청드립니다.
HSIF20을 5분봉으로 거래하고자 합니다.
우리시간 기준으로
1. 2019/12/20 금요일 18시 15분 T+1장이 시작되고 처음 시작된 가격은 28,037입니다.
2. 2019/12/21 토요일 04시경 T+1장이 마감되는 가격은 28,035입니다.
3. 28,037 > 28,035 : 양봉입니다.
4. 2019/12/23 월요일 T장 10시 15분에 시장가 매도를 하고 싶습니다. 기술적으로 어려우면 10시 20분봉이 완성되고 익봉 시가에 매도진입입니다.
5. 2019/12/23 월요일 T장 17시에 매도진입한 포지션 청산입니다.
6. 반대로 3번에서 음봉이 발생되었더라면 매수진입하여 17시 청산입니다.
---------------------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
식을 수정했습니다.
var : Tcond(false);
if (sdate != sdate[1] and stime >= 181500) or
(sdate == sdate[1] and stime >= 181500 and stime[1] < 181500) then
{
var1 = O;
}
if stime < 100000 then
var2 = c;
if (NextBarSdate != sdate and NextBarStime >= 101500) or
(NextBarSdate == sdate and NextBarStime >= 101500 and stime < 101500) then
{
if var2 > var1 and var1 > 0 Then
buy("b",AtMarket);
if var2 < var1 and var1 > 0 Then
sell("s",AtMarket);
}
SetStopEndofday(170000);
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수 검증 요청
> 안녕하세요??
아래 글번호 65404번 스크립트 검증 요청드립니다.
진입만 1번 있고 청산이 발생되지 않습니다.
----------------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
input : starttime(101500),endtime(020000);
var : Tcond(false);
if (sdate != sdate[1] and stime >= 181500) or
(sdate == sdate[1] and stime >= 181500 and stime[1] < 181500) then
{
var1 = O;
}
if stime < 100000 then
var2 = c;
if (NextBarSdate != sdate and NextBarStime >= 101500) or
(NextBarSdate == sdate and NextBarSdate >= 101500 and stime < 101500) then
{
if var2 > var1 and var1 > 0 Then
buy("b",AtMarket);
if var2 < var1 and var1 < 0 Then
sell("s",AtMarket);
}
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
함수 요청드립니다.
항셍지수 선물 5분봉으로 거래를 하고자 합니다.
10시 15분 T장 시초가에 진입을 하는데
T+1장이 양봉이면 매도, 음봉이면 매수
당일 17시 시간청산입니다.
2019-12-30
374
글번호 134760
답변완료
제일 많은 호가을 이은선
현재가에서 나와있는 20개호가중에 제일 많은 거를 이은선을 구하는 수식 부탁드립니다
2019-12-30
316
글번호 134759