커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4416
글번호 230811
답변완료
please check attaschment
please check attaschment.
always thank you.
2018-07-18
213
글번호 120702
답변완료
수식 문의
전봉의 data2 - 현재봉의 data2 ::
현재봉의 data2 값을 막대그래프로 표현하고 싶습니다.
항상 친절한 답변 감사드립니다.
2018-07-18
236
글번호 120696
답변완료
종목검색에 수급
안녕하세요.
예스랭귀지로 만든 종목검색 조건식에 외국인, 기관수급도 포함할 수 있는지 궁금합니다.
감사합니다.
2018-07-18
244
글번호 120688
답변완료
문의드립니다
문의드립니다.
1.해외선물 0600시부터 1000시까지의 가격중 최고가와 최저가를
익일 0600시까지 plot하는식
2. 1분차트에 5분의 ema100 을 plot하는식
부탁드립니다.
2018-07-18
205
글번호 120687
답변완료
재요청 드립니다.
안녕하세요? 어제 질문드렸는데 다른분 답변이 달린것 같더라고요^^
수정 재요청 드립니다.
아래의 수식에서 진입조건중, 연속 음봉2개 매도, 연속양봉 2개 매수를 하라고 되어있습니다.
여기에서 연속봉 사이에 도지가 나와도 연속봉으로 인식을 하도록 수정부탁드립니다.
(봉과 봉사이에 도지가 몇개가 나오든간에 연속봉으로 인식요망)
감사합니다.
**진입조건
1.몸통 길이가 같은 연속 음봉 2개 매도
2.몸통 길이가 같은 연속 양봉 2개 매수
#몸통길이 : 외부변수
**청산조건
1.손/익절 : 외부변수
#진입후 청산 이후 재진입 반복. (익절이든 손절이든 하기전에 신규진입 금지)
input : 몸통길이틱수(10),익절틱수(10),손절틱수(10);
var : T(0);
var1 = abs(C-O);
if MarketPosition == 0 and countif(C<O,2) == 2 and
var1 == var1[1] and var1 == PriceScale*몸통길이틱수 then
{
sell("s");
}
if MarketPosition == 0 and countif(C>O,2) == 2 and
var1 == var1[1] and var1 == PriceScale*몸통길이틱수 then
{
Buy("b");
}
SetStopProfittarget(익절틱수*PriceScale,PointStop);
SetStopLoss(손절틱수*PriceScale,PointStop);
2018-07-18
207
글번호 120686
답변완료
해석좀 부탁합니다.
안녕하세요.
아래 해선 돌파 시스템인데 내용을 잘 모르겠읍니다
어딜(어느 고저점) 돌파 한다는 건지 시간은 언제부터 언제까진지
해석좀 부탁합니다.
var : S1(0),D1(0),TM(0),TF(0),HH(0),LL(0),H1(0),L1(0);
var : Tcond(False);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then
Tcond = true;
if stime == 020000 or (stime > 020000 and stime[1] < 020000) Then
Tcond = false;
if S1 > 0 Then{
TF = TM%60;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then{
HH = H;
LL = L;
H1 = HH[1];
L1 = LL[1];
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
if Tcond == true then{
if H1 > 0 and crossup(c,H1) then
buy();
if L1 > 0 and CrossDown(c,L1) then
sell();
}
}
2018-07-17
217
글번호 120685
답변완료
error 확인 요청 드립니다.
*해선 로직 돌렸는데 안되는데 확인좀 부탁 드립니다.
Input : Period(15);
var : S1(0),D1(0),TM(0),TF(0);
var : RSIV(0);
RSIV = RSI(Period);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
if CrossDown(RSIV,30) Then{
if MarketPosition == 0 or (MarketPosition == -1 and TM >= TM[BarsSinceEntry]+10) Then
buy();
}
if CrossUp(RSIV,70) Then
{
if MarketPosition == 0 or (MarketPosition == 1 and TM >= TM[BarsSinceEntry]+10) Then
sell();
}
}
SetStopProfittarget(PriceScale*30,PointStop);
SetStopLoss(PriceScale*30,PointStop);
**** ERROR 문장 < 참고 그림>
* 수고 하십시요.
2018-07-17
209
글번호 120683
답변완료
지표수식문의 드립니다...
안녕하세요,
tradingview의 파인스크립트를 활용해서 작성된 수식을 공부하다가 수식하나를 예트버전으로 만드는 과정에서 막힘이 발생했습니다. 도와 주세요.
파인스크립트의 원래식은 다음과 같습니다.
Length = input(21, minval=1),
Multiplier = input(3, minval=1)
avgTR = wma(atr(1), Length)
highestC = highest(Length)
lowestC = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
lin = iff(close > hiLimit and close > loLimit, hiLimit,
iff(close < loLimit and close < hiLimit, loLimit, nz(lin[1], 0)))
plot(lin)
이걸 예트버전으로 만들어 봤는데 아래와 같습니다.
Input : Length(21), Multiplier(3);
var : avgTR(0), highestC(0), lowestC(0), hiLimit(0), loLimit(0), lin(0);
avgTR = wma(ATR(1), Length);
highestC = highest(C, Length);
lowestC = lowest(C, Length);
hiLimit = highestC[1]-(avgTR[1] * Multiplier);
loLimit = lowestC[1]+(avgTR[1] * Multiplier);
lin = IFF(C > hiLimit and C > loLimit, hiLimit,
iff(C < loLimit and C < hiLimit, loLimit, NaN));
plot(lin, "lin");
여기서 맨 아래줄의 plot(lin...)에서 에러가 나는데요,
위의 파인 스크립트의 nz함수와의 차이가 있어서 그런 것 같습니다.
파인 스크립트 설명서를 보니까 nz함수는 self referenceing을 위한 함수라고 하던데,
예트에서 이 기능을 하게 하는 방법을 몰라서 NaN으로 대체해 두었던 게 문제인 것 같습니다.
이 부분을 해결할 수 있을까요?
참고가 되실까해서 해당부분 설명을 캡쳐해서 첨부합니다.
2018-07-17
316
글번호 120682
답변완료
예스스팟 피라미딩 로직 오류..
아까 전화로 문의드렸었습니다. 3개의 시스템 전부 선물에 적용하고 미니선물로 거래하는 피라미딩 로직입니다. 계좌명은 동일하게 설정하였습니다. 진입은 3개의 시스템 전부 멀쩡하게 들어갔는데, 청산이 되지 않았습니다. 예전에 1개의 시스템 가지로 테스트 했을 때에는 문제 없이 진행되는 것을 확인했었습니다. 코드 자체에 오류가 있는건가요? 한번봐주시길 부탁드립니다. 날씨가 더운데 수고하세요.
var Position;
var OrderCode;
var BID;
var SID;
var Bnum;
var Snum;
var BuyCnt;
var SellCnt;
function Main_OnStart()
{A1.Balance
Main.MessageLog("시작");
Position = 0;
BuyCnt = 0;
SellCnt = 0;
OrderCode = Main.GetOrderCode(miniKP.code)
}
function C1_OnRiseSignal(Signal)
{
Main.MessageLog("신호완성/" + Signal.signalKind);
if (Signal.signalKind == 1)
{
Position = 1;
BID = A1.OrderBuy(OrderCode, Signal.count, miniKP.Ask(5), 0)
Main.MessageLog("미니선물 매수");
}
if (Position==1 && Signal.signalKind == 2)
{
if (BuyCnt>0)
{
A1.OrderSell(OrderCode, BuyCnt, miniKP.Bid(5), 0)
Main.MessageLog("미니선물 매수 청산");
BuyCnt = 0;
}
}
if (Signal.signalKind == 3)
{
Position=-1;
A1.OrderSell(OrderCode, Signal.count, miniKP.Bid(5), 0)
Main.MessageLog("미니선물 매도");
}
if (Position==-1 && Signal.signalKind == 4)
{
if (SellCnt>0)
{
A1.OrderBuy(OrderCode, SellCnt, miniKP.Ask(5), 0)
Main.MessageLog("미니선물 매도 청산");
SellCnt = 0;
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (Position == 1 && OrderResponse.orderID == BID)
{
BNum = OrderResponse.orderNum;
}
if (Position == -1 && OrderResponse.orderID == SID)
{
SNum = OrderResponse.orderNum;
}
}
function Main_OnNotifyFill(NotifyFill)
{
if (Position == 1 && NotifyFill.orderNum == BNum)
{
BuyCnt = BuyCnt + 1;
}
if (Position == -1 && NotifyFill.orderNum == SNum)
{
SellCnt = SellCnt + 1;
}
}
2018-07-17
226
글번호 120681