커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6373
글번호 230811
패터니스트 님에 의해서 삭제되었습니다.
2023-06-28
28
글번호 170173
답변완료
평균산출시 봉의 수가 영향을
input : debug(0);
input : 일봉평균산출기간(50); //일봉기준
var : D1현재가(0),D2현재가(0);
var : 기간(0);
var : D1평균(0),D2평균(0);
//*==== 기간적용 : 일봉기준:50일 30분봉기준(25일):1250
기간 = 일봉평균산출기간;
if BarInterval == 30 Then
기간 = 일봉평균산출기간 / 2 * 50;
D1현재가 = Data1(c);
D2현재가 = Data2(c);
//======== 해당기간이전이면 그때까지의 봉수로 평균산출
D1평균 = ma(D1현재가, min(Index + 1, 기간));
D2평균 = ma(D2현재가, min(Index + 1, 기간));
plot81(D1평균,"D1평균",Red,Def,2);
plot82(D2평균,"D2평균",Blue,Def,2);
plot91(0,"0선",Gray);
=====================================================
상기코드로 평균지표를 찍으려하는데 잘 되었었습니다
그런데 일봉갯수를 줄여서 1000개로 했을때는 지표출력이 전혀 되지 않네요
참고로 1000개로 줄이기전에는 2000개였습니다
그런데 지금 살펴보니 2000개였을때도 원래 의도는 첫봉부터 평균을 찍으려 했던건데
차트상 일정 봉수를 건너뛰고 지표가 출력되네요(그림1의 ?부분)
평균산출기간 이내에는 그냥 해당봉수만큼 평균을 내려는 의도였구요
왜 그런건지 전혀 감이 잡히질 않습니다
좀 도와주세요
첨부파일중 캡처.png파일(그림1)은 2000봉일때구요
캡처1.png파일(그림2)은 1000봉일때 입니다(이때는 아예 출력자체가 안됩니다)
2023-06-28
1549
글번호 170169
답변완료
부탁드립니다.
1. 옵션 만기 날 종가 일봉상 선물이 양봉이면 빨강색으로, 음봉이면 파란색으로 구현해 주세요, 옵션 만기 다음 날 종가 일봉상 선물이 양봉이면 빨강색으로, 음봉이면 파란색으로 구현해 주세요, 그리고 옵션 만기 다음 주 월요일 종가 선물 일봉이 양봉이면 빨강색으로, 음봉이면 파란색으로 구현해 주세요
2. 본 차트에 보조차트의 매월 옵션 만기가 끝난 그 다음 주 월요일을 기준으로 , 그 14일전부터 옵션 만기 다음 날까지 가장 높은 고가중 하나를 찾아서 이를 수평선으로 그대로 매월 구현해주세요 그리고 가장 낮은 저가 하나도 함께 찾아서 구현해 주세요
고맙습니다.
2023-06-28
1023
글번호 170163
답변완료
data2 사용 관련
안녕하세요
기준 매매 봉은 5분봉이나 data2에 일봉을 불러와서 사용하고 있습니다.
Data2(L[1]) > Data2(L[2]) then Buy();
이렇게 하려하는데 잘 되지가 않습니다... 도움 부탁드립니다 ㅠㅠ
2023-06-28
1210
글번호 170160
답변완료
안녕하세요
항상 감사합니다 ^^
아래와 같은 조건으로 검색을 하고 싶습니다.
n1: 1or -1(1을 입력하면 5일선보다 캔들의 시가가 위에, -1은 5일선보다 캔들 시가가 아래)
n2: 1or -1(1을 입력하면20일선보다 캔들의 시가가 위에, -1은 5일선보다 캔들 시가가 아래)
n3: 1or -1(1을 입력하면60일선보다 캔들의 시가가 위에, -1은 5일선보다 캔들 시가가 아래)
n4: 1or -1(1을 입력하면12일선보다 캔들의 시가가 위에, -1은 5일선보다 캔들 시가가 아래)
0을 입력하면 그 조건은 무시
예를 들면 n4에 0을 넣으면 120선은 고려하지 않는 것입니다.
고맙습니다
2023-06-28
901
글번호 170156
답변완료
수식문의
안녕하세요
1. 전고점대비 25% 이상 하락한 주가가 20일선을 전일종가 대비 10% 이상 돌파한
양봉시현(기준봉)후 10봉 이내에서 20일선을 돌파한 종가대비 +1% ~ -5%의 추세를 유지함
2. 2번항 완성후 20일선을 돌파한 종가(기준봉)대비 2%이상 상승한 양봉시현
수식문의
1,2항을 완성한 종목을 검색하는 수식문의드립니다.
2023-06-28
974
글번호 170155
답변완료
문의드립니다
첨부 파일 수식을 검증하면 절편부분의 _intercept 부분에서 오류가 발생합니다
수식을 제대로 구현할려면 어떻게 수정해야 하나요?
2023-06-28
1028
글번호 170154
답변완료
잘 부탁드립니다
### 아래지표에 20일 60일 이평을 추가해서
부탁 드립니다
input : length(10),multiplier(3.0),emaPeriod(200);
var : supertrend(0),highestHigh(0),lowestLow(0);
var : atrv(0),ii(0),supertrendcolor(0);
var : ema200(0),emaColor(0);
ATRV = ATR(length);
supertrend = 0;
highestHigh = 0;
lowestLow = 0;
for ii = length downto 1
{
if close[ii] > close[ii+1] Then
{
if highestHigh == 0 or (highestHigh > 0 and high[ii] > highestHigh) Then
highestHigh = high[ii];
}
else
{
if lowestLow == 0 or (lowestLow > 0 and low[ii] < lowestLow) Then
lowestLow = low[ii];
}
}
supertrend = iff(close > close[1] , lowestLow + multiplier * ATRV, highestHigh - multiplier * ATRV);
supertrendColor = iff(supertrend > ema(close, emaPeriod) , green , red);
ema200 = ema(close, emaPeriod);
emaColor = iff(close > ema200 , Red , Green);
plot1(supertrend, "Supertrend",supertrendColor);
plot2(ema200,"200 EMA",emaColor);
2023-06-28
1020
글번호 170153
답변완료
부탁드립니다.
안녕하세요
문의 드립니다
코드로는 아무리봐도 23일에 매도가 되는줄 알았는데 24일에 매도가 되네요..?
어떤게 잘못된지 잘 모르겠습니다..
1. 23일에 매도가 가능하게 수정 부탁드립니다.
2. 코드에서 CurrentContracts > CurrentContracts[1] 이것을 H > H[1]로 해도 같은 의미 일까요?
감사합니다.
var : hh(0), varl(0), vol(0);
#매수
If MarketPosition == 0
and O <= Average(C,120)
and C < Average(C,120)
and C > 1.02 * Average(C,60)
and C > O
and V > 7.5 * V [1]
and (H-C[1])/C[1] < 0.20
and H-C < C-O
and Average(V,5)[1] < 450000
and V > 150000 Then
Buy("매수A",OnClose,1);
#추가매수, 매도
if MarketPosition ==1 Then
{
# 추가매수 수량
varl = (L-C[1])/C[1]*100;
vol = floor(abs(varl));
#고점 갱신
if CurrentContracts > CurrentContracts[1] Then hh = h;
if h > hh Then hh = h;
Condition1 = False;
#평단가 * 1.06배보다 고점이 같거나 클 때 매도하고 고가 대비 2%빠지면 매도
if hh >= AvgEntryPrice * 1.06 Then
{
Condition1 = true;
ExitLong("수익매도",AtStop,hh*0.98);
}
if Condition1 == False and vol >= 1 and O > C Then Buy("추가매수",OnClose,Def,vol);
}
2023-06-27
1028
글번호 170152