커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6158
글번호 230811
검색식 문의
1. A= AccumN(v-v[1], period)
100일 동안 A값이 0선을 한 번이상 돌파한 종목중에서
당일 볼린져밴드 상단선을 돌파하는 종목을 검색하는 식
2. A= AccumN(v-v[1], period)
100일 동안 A값이 0선을 한 번이상 돌파한 종목중에서
볼린져밴드 상단선 이상인 종목을 검색하는 식
3. A= AccumN(v-v[1], period)
100일 동안 A값이 0선을 한 번이상 돌파한 종목중에서
전일 동시간대 거래량 2배인 종목을 검색하는 식
세 가지 종목검색이 궁금합니다.
부탁드립니다.
2022-01-06
735
글번호 155214
답변완료
변환부탁드립니다.
study("Breakout Finder", "BF", overlay = true, max_bars_back = 500, max_lines_count = 400)
prd = input(defval = 5, title="Period", minval = 2)
bo_len = input(defval = 200, title="Max Breakout Length", minval = 30, maxval = 300)
cwidthu = input(defval = 3., title = "Threshold Rate %", minval = 1., maxval = 10) / 100
mintest = input(defval = 2, title = "Minimum Number of Tests", minval = 1)
bocolorup = input(defval = color.blue, title = "Breakout Colors", inline = "bocol")
bocolordown = input(defval = color.red, title = "", inline = "bocol")
lstyle = input(defval = line.style_solid, title = "Line Style", options = [line.style_solid, line.style_dashed, line.style_dotted])
//width
lll = max(min(bar_index, 300), 1)
float h_ = highest(lll)
float l_ = lowest(lll)
float chwidth = (h_ - l_) * cwidthu
// check if PH/PL
ph = pivothigh(prd, prd)
pl = pivotlow(prd, prd)
//keep Pivot Points and their locations in the arrays
var phval = array.new_float(0)
var phloc = array.new_int(0)
var plval = array.new_float(0)
var plloc = array.new_int(0)
// keep PH/PL levels and locations
if ph
array.unshift(phval, ph)
array.unshift(phloc, bar_index - prd)
if array.size(phval) > 1 // cleanup old ones
for x = array.size(phloc) - 1 to 1
if bar_index - array.get(phloc, x) > bo_len
array.pop(phloc)
array.pop(phval)
if pl
array.unshift(plval, pl)
array.unshift(plloc, bar_index - prd)
if array.size(plval) > 1 // cleanup old ones
for x = array.size(plloc) - 1 to 1
if bar_index - array.get(plloc, x) > bo_len
array.pop(plloc)
array.pop(plval)
// check bullish cup
float bomax = na
int bostart = bar_index
num = 0
hgst = highest(prd)[1]
if array.size(phval) >= mintest and close > open and close > hgst
bomax := array.get(phval, 0)
xx = 0
for x = 0 to array.size(phval) - 1
if array.get(phval, x) >= close
break
xx := x
bomax := max(bomax, array.get(phval, x))
if xx >= mintest and open <= bomax
for x = 0 to xx
if array.get(phval, x) <= bomax and array.get(phval, x) >= bomax - chwidth
num += 1
bostart := array.get(phloc, x)
if num < mintest or hgst >= bomax
bomax := na
if not na(bomax) and num >= mintest
line.new(x1 = bar_index, y1 = bomax, x2 = bostart, y2 = bomax, color = bocolorup, style = lstyle)
line.new(x1 = bar_index, y1 = bomax - chwidth, x2 = bostart, y2 = bomax - chwidth, color = bocolorup, style = lstyle)
line.new(x1 = bostart, y1 = bomax - chwidth, x2 = bostart, y2 = bomax, color = bocolorup, style = lstyle)
line.new(x1 = bar_index, y1 = bomax - chwidth, x2 = bar_index, y2 = bomax, color = bocolorup, style = lstyle)
plotshape(not na(bomax) and num >= mintest, location = location.belowbar, style = shape.triangleup, color = bocolorup, size = size.small)
alertcondition(not na(bomax) and num >= mintest, title = "Breakout", message = "Breakout")
// check bearish cup
float bomin = na
bostart := bar_index
num1 = 0
lwst = lowest(prd)[1]
if array.size(plval) >= mintest and close < open and close < lwst
bomin := array.get(plval, 0)
xx = 0
for x = 0 to array.size(plval) - 1
if array.get(plval, x) <= close
break
xx := x
bomin := min(bomin, array.get(plval, x))
if xx >= mintest and open >= bomin
for x = 0 to xx
if array.get(plval, x) >= bomin and array.get(plval, x) <= bomin + chwidth
num1 += 1
bostart := array.get(plloc, x)
if num1 < mintest or lwst <= bomin
bomin := na
if not na(bomin) and num1 >= mintest
line.new(x1 = bar_index, y1 = bomin, x2 = bostart, y2 = bomin, color = bocolordown, style = lstyle)
line.new(x1 = bar_index, y1 = bomin + chwidth, x2 = bostart, y2 = bomin + chwidth, color = bocolordown, style = lstyle)
line.new(x1 = bostart, y1 = bomin + chwidth, x2 = bostart, y2 = bomin, color = bocolordown, style = lstyle)
line.new(x1 = bar_index, y1 = bomin + chwidth, x2 = bar_index, y2 = bomin, color = bocolordown, style = lstyle)
plotshape(not na(bomin) and num1 >= mintest, location = location.abovebar, style = shape.triangledown, color = bocolordown, size = size.small)
alertcondition(not na(bomin) and num1 >= mintest, title = "Breakdown", message = "Breakdown")
alertcondition((not na(bomax) and num >= mintest) or (not na(bomin) and num1 >= mintest), title = "Breakout or Breakdown", message = "Breakout or Breakdown")
2022-01-06
1329
글번호 155213
답변완료
시가 교차
다음과 같이 수식 부탁합니다.
1. 해외선물입니다.
2. 08시 부터 6봉째에서 5이평선이 시가선 위이면 매수, 아래이면 매도
3. 이후 5이평선이 시가선 상향교차시 매수, 하향 교차시 매도
4. 10봉이내 교차시 재진입금지
5. 100 P 수익후 50 P 저감시 청산
6. 당일 청산
2022-01-06
1203
글번호 155212
답변완료
재 문의드립니다..
답변주신 수식을 분봉에서 시초가 매매를 하려고 하는데 안되는데
다른 문제가 있을까요?
주석도 부탁드립니다..
input : P(20);
var : cnt(0);
if NextBarSdate != sDate Then
{
var1 = NextBarOpen;
For cnt = 0 to P-2
{
var1 = var1+DayClose(cnt);
}
var2 = var1/P;
if abs(NextBarOpen-var2) >= 3 Then
Sell();
Else
Buy();
}
2022-01-06
1238
글번호 155210
답변완료
부탁드립니다
$,안녕하세요
아래식에서다음조건 추가 부탁드립니다
ㅡ,Red사각이 발생한 봉의 시가,고가,저가를 다음 Red사각이 나올때까지 우측
추세선 그리기합니다
ㅡ,Blue사각이 발생한 봉의 시가,고가,저가를 다음 Blue사각이 나올때까지 우측
추세선 그리기합니다
var : 봉수(0),최대봉(0),텍스트크기(12),UDV(0),tx(0);
if DayIndex+1 < 100 Then 봉수 = dayindex+1;
UDV = Upvol-DownVol;
if sTime >= 091000 and sTime <=150000 and Highest(v,봉수)[1] <= v Then
{
if UDV > 0 Then
{
tx = Text_New(sdate,sTime,H,"■");
Text_SetColor(tx,RED);
Text_SetSize(tx,텍스트크기);
Text_SetStyle(tx,2,1);
}
if UDV <= 0 Then
{
tx = Text_New(sdate,sTime,L,"■");
Text_SetColor(tx,BLUE);
Text_SetSize(tx,텍스트크기);
Text_SetStyle(tx,2,0);
}
PlaySound("C:예스트레이더dataSound1point.wav");
}
$, 관리자님의 도움주심에 늘 고맙습니다.
2022-01-06
1281
글번호 155199
답변완료
함수구합니다
-- 스톡캐스틱k가d를 상향돌파시 박스채우기확장
-- 스톡캐스틱k가d를 하향추락시 박스채우기확장 구합니다
감사합니다
2022-01-06
1414
글번호 155178
답변완료
지표 수식 작성 부탁드립니다.(15분 고저점)
담당자님, 안녕하세요.
항상 수고 많으십니다.
어제(1월 5일) 작성해주신 지표 수식을
-------------------------------------
var1 = (DayHigh+DayLow)/2;
Plot1(var1,"당일중심");
------------------------------------
잘 활용하고 있습니다. 감사합니다.
또 다른 지표의 작성 부탁드립니다.
(KOSPI200 주가지수 선물) 분봉 차트(1분, 3분, 5분, 15분)에서
매일 당일의 장시작 이후 부터 15분 시점까지의
'(최고점+최저점)/2'을 표시하는 지표 수식
작성을 부탁드립니다.
부연 설명드리면,
당일의 장시작 이후 부터 15분까지의 '(최고점+최저점)/2'를 표시하는
수평라인이 당일 기간중에는 장마감시 까지 계속 표시되는 것입니다.
cf. 당일 수평라인은 15분 경과후 부터 시작되어 그려져도 되고
후행적으로 장시작되는 시점 부터 표시되어도 무방함.
그러나 장마감시 까지는 계속 표시되어야 함.
(전일의 수평라인은 전일구간에만 표시되고) 다음날에는
다시 다음날의 장시작 이후 부터 15분까지의 '(최고점+최저점)/2'를
표시합니다. (다음날의 장마감시 까지 계속 표시됨)
이 지표를 1분, 3분, 5분, 15분 차트에서 적용할 경우와
4분, 10분 차트 등(15분 단위로 구분할 수 없는 차트)에서
적용하는 경우의 수식이 달라지면
두 가지 경우의 지표 수식을 작성해 주실 것을 부탁드리며
이 지표가 1분, 3분, 5분, 15분 차트에서만 적용된다면
이 경우에만 적용되는 지표 수식 작성을 부탁드립니다.
감사합니다.
2022-01-06
1427
글번호 155177
원칙투자자 님에 의해서 삭제되었습니다.
2022-01-06
0
글번호 155176
답변완료
20일전 60일간 최고가를 구하는 함수 문의드립니다.
20(N봉)일전 60(M봉)일간(80일전부터 20일전까지의) 최고가를 구하는 함수 문의드립니다.
highest(H,80)[20]으로 하면 잘못된 값이 나옵니다.
오늘도 미리 감사드립니다!
2022-01-06
1391
글번호 155175