커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4779
글번호 230811
답변완료
수정부탁드립니다.
수일전 만들어주신 검색식입니다..
고가를 거래량으로 변경했는데 수정할 사항이 있어 문의드립니다.
당일거래량(V)과 이전 최고거래량(VV)을 일기준으로 비교하게 되어 있는데
VV와 V를 현재시간(분봉)까지의 누적거래량비교되도록 수정 부탁드립니다.
감사합니다.
input : n(1),n2(2),n3(40);
var : vv(0),DP(0);
DP = Disparity(35); #이격도
var1 = ma(c,20);
var2 = ma(c,60);
var3 = ma(c,33);
# 골든크로스가 발생하면
if crossup(var1,var2) and dp < 120 Then{
vv = v; #기간내 최고거래량 저장
value1 = index;#봉번호 저장
Condition1 = false; #Condition1은 false
Condition2 = false; #첫 전고점 상향돌파 제어할 변수
}
#정배열 상태
if var1 > var2 and index <= value1+n3 then{
#골든크로스 이후 처음으로 저가가 20일선 +n% 아래면 true로 변경
if Condition1 == false and l <= var1*(1+n/100) Then{
Condition1 = true;
}
#Condition1이 false인 상태에서
if Condition1 == false Then{
#새로운 거래량이 발생하면 vv를 현재거래량으로 갱신
if v > vv Then
VV = V;
}
#Condition1은 true이고
#Condition2는 false이고
#종가거래량이 vv 상향돌파
#n2%이상의 양봉인 종목검색
#골드시 이격도 120이하
if Condition1 == true and
Condition2 == false and
var1 > var2 and
var3 > var3[1] and
var2 > var2[1] and
var1 > var1[1] and
c > o*1.005 and
c > var1 and
v > vv*2 and ## VV 대비 V 가 현재까지 누적거래량 비교로 변경 ##
c > c[1]*1.025 then{
Condition2 = true;
find(1);
}
}
2015-08-23
136
글번호 89764
답변완료
시스템수식과 지표수식 부탁드립니다.
시스템수식과 지표수식 부탁드립니다.
시스템과 지표에 국선과 해선 총 4가지입니다.
국선은 15분봉, 해선은 60분봉 기준입니다.
-----------------------------------------------------------
해선기준으로 말씀드리면........
1)
60분봉 캔들의 양봉이 (전일 고가와 전일 저가의 중심선)을 몸통(시가와 종가간)으로 돌파하면, 다음 캔들에서 (전일 고가와 저가의 중심선)의 3틱 위에서 진입하여 다음 저항선(일목균형표의 전환선 기준선 선행스팬1, 선행스팬2 중 먼저 닿는 선)에서 청산한다.....
1) - 1
위와 동일한데 괄호 안의 (전일 고가와 전일 저가의 중심선)을 (당일 시가선)으로 바꿔 주시면 됩니다.
2) 매도진입과 청산이니 1) 과 반대입니다.
2) 매도진입과 청산이니 1) - 1 과 반대입니다.
----------------------------------------------------------
그리고 국선은 15분봉 기준으로 위와 동일하게 해 주시면 감사하겠습니다.
-----------------------------------------------------------------------------
지금까지 시스템수식을 부탁드린 것인데,
이번에는 차트상에서 표가 나게 보일려면 지표수식으로 코딩하는 것인지요.
차트로 확인하고 싶어서인데 지표수식으로 다시 한번 부탁드립니다.
2015-08-22
121
글번호 89763
답변완료
부탁드립니다
번호 43361 맨위에 외부변수부터 함수로된 문장옆 오른쪽에 한줄당 주석좀 달아주시면 대단히 감사드리겠습니다 감사합니다 꾸벅
2015-08-22
95
글번호 89762
답변완료
공부 중 의문들 입니다.
공부 중이어서 질문이 많아 죄송합니다.
몇 가지 의문만 해결되면 대략 마무리 될 듯합니다.
항상 친절한 답변 감사합니다.
1. 예스랭귀지에서 switch case 문을 쓸 수 있나요? 랭귀지 메뉴얼에는 if문만 있고 switch문 안내가 안나와 있어서 그럽니다. 또한 예스스팟에서 이런 기능(switch문)을 하는 실행문이 뭔가요?
<여기서부터 예스스팟 궁금증>
2. 랭귀지에서 만든 시스템이 없으면 예스스팟을 아예 사용 못하나요? 메뉴얼을 언뜻 보기에는 예스랭귀지로 작성한 시스템에서 신호(이벤트)가 발생할 때 어떤 행동들을 취할 수 있는게 예스스팟이라고 해서 그럽니다. 예를 들어 '장단기 이평선 골드크로스 전략'이라는 걸 처음부터 끝까지 예스스팟 안에서 만들어 쓸 수는 없나요?
3. 메뉴얼에 "예스스팟은 서버에 과도한 부하를 줄이기 위해 시세조회와 계좌 조회를 15초당 60회로 제한하고 있다."로 나오는데 여기서 '시세조회'의 뜻이 뭔가요? 수식 중간에 시세를 조회하라는 코딩이 있을 경우 그것을 말하는 것인가요?
혹시 설정된 차트의 봉 1개가 완성될 때마다 시세조회가 1회가 됐다고 보는 건가요? 틱봉 차트에서 15초당 봉이 100개도 넘게 만들어지는 해외선물은 어떻게 되는건지 궁금합니다.
4. 메뉴얼에 "오작동을 막기 위해 15초당 90회까지만 주문이 가능합니다" 이렇게도 나오는데 이게 1초당 6회의 주문만 가능하는 뜻인가요? 아니면 15초 중에서 1-3초 구간에 90회 주문이 났다면 4-15초 구간에서는 주문을 못내다가 16초(다시 1초)가 되면 주문을 낼 수 있는 샘인가요?
5. 'YesSpot Constants(상수)'가 랭귀지로 치면 일종의 예약어인 샘인가요?
6. 객체 중 IncompleteSignal 이 봉완성전이라도 조건 만족 즉시 행동하려할 때 쓰는 것인가요?
2015-08-24
153
글번호 89761
답변완료
수식 부탁합니다
볼린저밴드(20.)의 중심선을 이용하여 볼린저 밴드의 상단, 하단선이 얼마나
벌어지고 있는지 여부를 지표로 부탁합니다.
2015-08-21
125
글번호 89760
답변완료
문의드립니다
안녕하세요.
아래 식에 다음조건을 추가하여 주세요.
조건 : 파라볼릭 변수 0.02, 0.2
파라볼릭 변수 0.03, 0.3
매수식에 c > para(0.02,0.2) and c > para(0.03,0.3)
매도식에 c < para(0.02,0.2) and c < para(0.03,0.3)
=> 제가 단순하게 매수,매도식에 추가하였더니 매매신호가 불규칙하여
부탁드립니다
감사합니다
===================================================================
input : af1(0.01),max1(0.1);
input : S1(10),P1(20);
var : para1(0),T1(0);
var : Bcond1(false);
var : Scond1(false);
para1 = sar(af1,max1);
if stime >= 170000 or stime < 160000 Then{
if crossup(C,para1) Then{
Bcond1 = false;
var1 = H;
T1 = 1;
}
if CrossDown(C,para1) Then{
Scond1 = false;
var1 = L;
T1 = -1;
}
if T1 == 1 and T1[1] == 1 and Bcond1 == false and H >= var1[1]+PriceScale*1 Then
Bcond1 = true;
if T1 == -1 and T1[1] == -1 and Scond1 == false and L <= var1[1]-PriceScale*1 Then
Scond1 = true;
if T1 == 1 and Bcond1 == false Then
buy("B1",AtStop,var1+PriceScale*1);
if T1 == -1 and Scond1 == false Then
sell("S1",AtStop,var1-PriceScale*1);
if MarketPosition == 1 then{
if CrossDown(c,para1) Then
exitlong("bx1");
}
if MarketPosition == -1 then{
if crossup(c,para1) Then
ExitShort("sx1");
}
}
if MarketPosition == 1 and highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*P1 Then
exitlong("btr",AtStop,highest(H,BarsSinceEntry)-PriceScale*1);
if MarketPosition == -1 and Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*P1 Then
exitshort("str",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*1);
SetStopLoss(PriceScale*S1,PointStop);
if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then{
exitlong("bexit");
ExitShort("sexit");
}
2015-08-21
114
글번호 89758
답변완료
부탁 드립니다.
다음 수식은 hts에서 제공하는 VolumeRatio 지표 입니다.
해외선물에서 영업일 변경시간을 기준으로
당일데이터로만 계산되게 수식을 부탁 드립니다.
늘 만족할 만한 답변에 깊이 감사 드립니다.
Input : Period(20);
var : VolumeRatio(0);
VolumeRatio = VR(Period);
Plot1(VolumeRatio,"VR");
2015-08-21
125
글번호 89757
답변완료
부탁드립니다.
아래 1번 지표와 같이 점으로 표시하고 싶습니다.
RSI선이 상단선과 데드크로스 날때 파란점이 하단선과 골든크로스 날때 빨간점이 나타날 수 있도록 부탁드립니다.
감사합니다.
Input : RSIP(14), Period(20),dv(2);
var : RSIV(0),Mid(0),BBup(0),BBdn(0);
RSIV = RSI(RSIP);
Mid = ma(RSIV,Period);
BBup = Mid+STD(MId,Period)*dv;
BBdn = Mid-STD(MId,Period)*dv;
Plot1(RSIV, "RSI");
Plot2(Mid, "BBmid");
Plot3(BBup, "BBup");
Plot4(BBdn, "BBdn");
----------------------------------------
1.
input : p(2);
var : T(0);
var1=ma(c,p);
if var1 > var1[1] Then
T = 1;
Else
T = -1;
if T == 1 and T[1] != 1 Then
plot1(1,"이평",RED);
if T == -1 and T[1] != -1 Then
plot1(1,"이평",blue);
2015-08-21
114
글번호 89751
답변완료
작동 원리에 대한 질문
항상 친절한 답변에 감사드립니다.
예스스팟으로 수식 작성할 때 질문입니다.
1. 자바스크립트는 보통 html을 위해 만들어졌다고 하는데 예스스팟은 html과 상관없이 단순히 자바스크립트의 '문법 체계만'을 빌려오는 샘이지요?
2. 예스스팟으로 전략을 작성 후 실행할 때 모든 수식 계산은 사용자의 컴퓨터에서 이뤄지고 증권사 서버에는 단순히 "사라" "팔라" 등과 같은 최종 결과만이 전달되는 방식인가요? 예를 들어 "~하므로 사라"라고 했을때 '~하므로'는 사용자 컴퓨터에서 계산이 이뤄지는거고 결론인 '사라'만이 증권사에 전달되나요?
3. 그러면 사용자 컴퓨터 사양에 대한 일종의 가이드라인이 있나요? 해외선물은 초당 거래가 100틱이 나는 경우도 있는데 만약 200줄 정도 수식이다 한다면 다 계산할 수 있을까요? 만약 계산이 끝나기 전에 새로운 봉이 만들어지면 어떻게 됩니까? 그런거 걱정 안해도 되나요...
4. 예스스팟은 랭귀지와 다르게 함수를 저장하는 메뉴가 없는듯 한데 그러면 전략 바뀔 때마다 매번 정의를 해줘야 하는 방식인가요?
5. 예스스팟으로 지표 등을 만들어 시뮬레이션 차트 등에 나타나게 할 수 있나요? 혹시 최적화나 백테스팅 같은게 안되는 건가요? 예스스팟은 오직 전략 작성과 전략 실행만 되는 것인가 해서 그럽니다.
2015-08-21
179
글번호 89741