커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6135
글번호 230811
답변완료
수식 작성 부탁 드립니다
보조지표 파인스크립트를 해석한것 입니다,
이걸 예스 랭귀지로 만들어 주셨으면 합니다..
높은 시간대가 양봉이면 중간시간대와 낮은시간대중 높은 상승률을 출력
높은 시간대가 음봉이면 중간시간대와 낮은시간대중 낮은 상승률을 출력
하는 지표입니다.
//@version=2
study("내 스크립트")
// 현재 시간대를 쓸것인가?
indip = input(1,type=bool,title="Use current timeframe?")
// 기준시간대 (현재 시간대를 쓰지 않을 경우에 임의로 지정할 수 있음)
tf = (indip==0?(input('60',type=resolution,title="Timeframe (only if previous opt is unflagged)")):period)
// 높은시간대 (기준시간대에 따라 고시간대 설정)
// 기준시간대가 X이면 고시간대를 Y로 설정
// 일이면 월, 4시간이면 주, 2시간이면 주, 1시간이면 주, 15분이면 640분, 5분이면 360분, 그외이면 없음
Timeframem = (tf=='D'?'M' :(tf=='240'?'W' :(tf=='120'?'W': (tf=='60'?'W' :(tf=='15'?'640':(tf=='5'?'360':'na'))))))
// 중간시간대 (기준시간대에 따라 중시간대 설정)
// 기준시간대가 X이면 중시간대를 Y로 설정
// 일이면 2주, 4시간이면 2일, 2시간이면 2일, 1시간이면 일, 15분이면 6시간, 5분이면 3시간, 그외이면 없음
Timeframed = (tf=='D'?'2W':(tf=='240'?'2D':(tf=='120'?'2D':(tf=='60'?'D' :(tf=='15'?'360':(tf=='5'?'180':'na'))))))
// 낮은시간대 (기준시간대에 따라 저시간대 설정)
// 기준시간대가 X이면 저시간대를 Y로 설정
// 일이면 주, 4시간이면 일, 2시간이면 일, 1시간이면 12시간, 15분이면 3시간, 5분이면 90분, 그외이면 없음
Timeframeh = (tf=='D'?'W' :(tf=='240'?'D' :(tf=='120'?'D': (tf=='60'?'720':(tf=='15'?'180':(tf=='5'?'90':'na'))))))
// 높은시간대의 시가 불러옴
chm = security(tickerid, Timeframem, open)
// 높은시간대의 종가 불러옴
chm1 = security(tickerid, Timeframem, close)
// 높은시간대의 시가대비 종가 상승률 (종가 몸통의 비율)
defm = (chm1/chm) -1
// 중간시간대의 시가 불러옴
chd = security(tickerid, Timeframed, open)
// 중간시간대의 종가 불러옴
chd1 = security(tickerid, Timeframed, close)
// 중간시간대의 시가대비 종가 상승률 (종가 몸통의 비율)
defd = (chd1/chd) -1
// 낮은시간대의 시가 불러옴
chh = security(tickerid, Timeframeh, open)
// 낮은시간대의 종가 불러옴
chh1 = security(tickerid, Timeframeh, close)
// 낮은시간대의 시가대비 종가 상승률 (종가 몸통의 비율)
defh = (chh1/chh) -1
// 출력 =
// 높은시간대의 종가 몸통의 비율이 0보다 클때(높은시간대가 양봉일때) >>> 중간시간대와 낮은시간대중 상승률이 큰 시간대의 상승률을 채택
// 높은시간대의 종가 몸통의 비율이 0보다 클때(높은시간대가 양봉이 아닐때) >>> 중간시간대와 낮은시간대중 상승률이 작은 시간대의 상승률을 채택
output = defm > 0 ? (defd > defh ? defd : defh):(defd > defh ? defh : defd)
// 채택된 시간대의 상승률 출력(영역)
plot(output,linewidth=2,color=output>0?lime:red,transp=50,style=area)
// 낮은시간대의 상승률 출력(선)
plot(defh,color=defh>0?lime:red,transp=0,linewidth=1)
// 낮은시간대의 상승률 출력(영역)
plot(defh,color=defh>0?lime:red,transp=75,style=area)
// 0선
hline(0)
2021-10-18
1486
글번호 152972
답변완료
수식 문의 드립니다.
안녕하십니까
상한가 전날의 일봉 종가에 가로선을 표기하고 싶습니다.
조건은 이렇습니다.
예) 60봉 이내 상한가 전날 일봉의 종가에 가로선 표기
감사합니다.
2021-10-18
1403
글번호 152970
답변완료
수식 의뢰드립니다!
안녕하세요!
매매에 도움을 받고져 수식 의뢰를 드립니다!
아래의 수식들은 지난 가격선들입니다!
이 가격선들이 당일 장이 생성되면 나타나는데 이가격선들의 우측으로 (예) "전일고가" 처럼 텍스트로 출력이 되었으면 좋겠습니다! 선들이 많이 생성되니 텍스트 출력이 필요하다고 판단되어 의뢰를 드립니다!
선의 굵기와 색상은 제가 수정하고 싶습니다.
선과 우측에 나타나는 텍스트들 사이 간격을 띄어주시길 부탁드립니다! (이해를 돕고져 참고 이미지 올립니다. 화살표시부분을 띄어쓰기 해주시길 부탁드립니다 )
Plot1 (DayHigh(1),"전일고가");
Plot2 (DayHigh(2),"2일전 고가");
Plot3 (DayHigh(3),"3일전 고가");
Plot4 (DayHigh(4),"4일전 고가");
Plot5 (DayHigh(5),"5일전 고가");
Plot6 (DayLow(1),"전일저가");
Plot7 (DayLow(2),"2일전 저가");
Plot8 (DayLow(3),"3일전 저가");
Plot9 (DayLow(4),"4일전 저가");
Plot10 (DayLow(5),"5일전 저가");
Plot11 (DayClose(1),"전일종가");
Plot12 (DayClose(2),"2일전 종가");
Plot13 (DayClose(3),"3일전 종가");
Plot14 (DayClose(4),"4일전 종가");
Plot15 (DayClose(5),"5일전 종가");
Plot16 (DayOpen(1),"전일시가");
Plot17 (DayOpen(2),"2일전 시가");
Plot18 (DayOpen(3),"3일전 시가");
Plot19 (DayOpen(4),"4일전 시가");
Plot20 (DayOpen(5),"5일전 시가");
plot21(max(DayOpen(1),DayOpen(0))+Var1,"시가상방대칭+",색1,DEf,굵기1);
plot22(min(DayOpen(1),DayOpen(0))-Var1,"시가하방대칭-",색2,DEf,굵기2);
plot23(max(dayclose(1),DayOpen(0))+Var1,"시가종가상방대칭+",색1,DEf,굵기1);
plot24(min(dayclose(1),DayOpen(0))-Var1,"시가종가하방대칭-",색2,DEf,굵기2);
plot24(max(dayclose(2),DayClose(1))+Var1,"종가상방대칭+",색1,DEf,굵기1);
plot25(min(dayclose(2),DayClose(1))-Var1,"종가하방대칭-",색2,DEf,굵기2);
plot26 ((DayHigh(1)+DayLow(1))/2,"전일중심");
-------------------------------------------------------------------
아래의 수식도 새로 만들어 주시길 부탁드립니다!
(전일고가-전일저가) = 전일진폭
(전일고가+전일저가/2) = 전일중심폭
1. 당일고가 - 전일진폭
2. 당일저가 + 전일진폭
3. 당일시가 - 전일진폭
4. 당일시가 + 전일진폭
5. 당일중심 - 전일중심폭
6. 당일중심 + 전일중심폭
항상 많은 도움을 주셔서 다시 한번 감사드립니다.
2021-10-20
995
글번호 152969
답변완료
부탁드립니다.
-항상 친절한 답변에 감사드립니다.
앞의 74342 질문이 정확하지 않아 다시 질문드립니다.
-분봉 차트에서 data2 (선물개인순매수 수량)를 특정 일시(예: 2021년 10월4일 10시30분)
부터 오늘까지 누적하는 지표를 부탁드립니다.
2021-10-18
908
글번호 152968
답변완료
문의 드립니다.~~~~
항상 감사합니다~~~
CME상품 매매시
오전7시 장시작부터 다음날 오전3시까지
각 시간별(7시, 8시, 9시, ......) 시가를 기준(변수화 가능하면 변수로)으로
1, 10틱(변수화 가능하면 변수로) 상승시 매도진입
2, 10틱(변수화 가능하면 변수로) 하락시 매수진입 하는
수식을 부탁드립니다.
건강하세요~~~~~
2021-10-18
974
글번호 152965
예시 님에 의해서 삭제되었습니다.
2021-10-18
5
글번호 152962
답변완료
검색 문의
답변주셔서 감사합니다.
1일전의 차트이면,
수식에서 C[1], L[1]으로 작성되는게 아닌가요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 이평선 돌파종목 검색
> 안녕하세요
예스스탁입니다.
5선이 해당주기 분봉의 이평이면 1번식,
일간 5이평이면 2번식 이용하시면 됩니다.
1
input : P(5);
var1 = ma(C,P);
if sDate != sDate[1] Then
{
Condition1 = False;
Condition2 = Condition1[1];
}
if C > O and C > var1 and Var1 > L Then
Condition1 = true;
if Condition2 == true then
Find(1);
2
input : P(5);
var : cnt(0),sum(0),mav(0);
sum = 0;
For cnt = 0 to P-1
{
sum = sum + DayClose(cnt);
}
mav = sum/P;
if sDate != sDate[1] Then
{
Condition1 = False;
Condition2 = Condition1[1];
}
if C > O and C > mav and mav > L Then
Condition1 = true;
if Condition2 == true then
Find(1);
즐거운 하루되세요
> 디딤돌 님이 쓴 글입니다.
> 제목 : 이평선 돌파종목 검색
> 안녕하세요..
그림과 같은 수식을 만들려고 하는데요..
어제날짜에 분봉차트에서...
시가 또는 저가가 5일선 밑에서 5일선을 돌파한 양봉 종목을 검색하는
수식을 만들고 싶습니다.
2021-10-18
1100
글번호 152960
답변완료
함수요청
안녕하세요?
아래의 요건으로 지표작성을 요청드립니다.
국내선물 1분봉으로 거래합니다.
이에 매일매일 데일리로 의미있는 고점과 저점을 잡고자 하는데
- MACD오실레이터가 9시 1분 완성봉의 첫 히스토그램이 양의 값이면
그 값 포함부터 MACD오실레이터 값이 음으로 반전하고 다시 양의 값으로 재전환할 때까지를 포함하여 (MACD오실레이터 양의 값 포함->음->양으로 변환할 때포함) 주가의 고점(HH)과 저점(LL)을 잡습니다.
- MACD오실레이터가 9시 1분 완성봉의 첫 히스토그램이 음의 값이면
그 값 포함부터 MACD오실레이터 값이 양으로 반전하고 다시 음으로 값으로 재전환할 때까지를 포함하여 (MACD오실레이터 음의 포함->양-> 음으로 변환할 때포함) 주가의 고점(HH)과 저점(LL)을 잡습니다.
2021-10-18
1123
글번호 152959
답변완료
문의 드립니다.
수고많으십니다.
아래 수식에 추가 수식 부탁드립니다.
3분봉 차트에서
오전 10시 18분봉이 음봉으로 끝나는 경우 종가에 매도, 양봉으로 끝나는 경우 종가에 매수.
input : StartTime(101500),EndTime(114000);
input : Length(20), D1(2);
input : 익절1(30),손절1(30),청산구분시간(103000),익절2(50),손절2(30),익절연속횟수(3),손절연속횟수(2);
var : Tcond(false),profit(0),loss(0);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
profit = 0;
loss = 0;
}
if TotalTrades > TotalTrades[1] Then
{
if IsExitName("bp1.",1) or IsExitName("bp2.",21) or IsExitName("bp1",1) or IsExitName("bp2",21) or
IsExitName("sp1.",1) or IsExitName("sp2.",1) or IsExitName("sp1",1) or IsExitName("sp2",1) Then
profit = profit+1;
Else
profit = 0;
if IsExitName("bl1.",1) or IsExitName("bl2.",1) or IsExitName("bl1",1) or IsExitName("bl2",1) or
IsExitName("sl1.",1) or IsExitName("sl2.",1) or IsExitName("sl1",1) or IsExitName("sl2",1) Then
loss = loss+1;
Else
loss = 0;
}
var1 = BollBandUp(Length,D1);
var2 = BollBandDown(Length,D1);
if Tcond == true Then
{
If CrossUP(H,var1) and c > o and profit < 익절연속횟수 and loss < 손절연속횟수 then
{
Buy("b",OnClose,DEF,1);
if sTime >= StartTime and sTime < 청산구분시간 Then
{
ExitLong("bp1.",AtLimit,C+PriceScale*익절1,"",1,1);
ExitLong("bl1.",AtStop,C-PriceScale*손절1,"",1,1);
}
if sTime >= 청산구분시간 and sTime < Endtime Then
{
ExitLong("bp2.",AtLimit,C+PriceScale*익절2,"",1,1);
ExitLong("bl2.",AtStop,C-PriceScale*손절2,"",1,1);
}
}
If CrossDown(L,Var2) and C < O and profit < 익절연속횟수 and loss < 손절연속횟수 then
{
Sell("s",OnClose,DEF,1);
if sTime >= StartTime and sTime < 103000 Then
{
ExitShort("sp1.",AtLimit,C-PriceScale*익절1,"",1,1);
ExitShort("sl1.",AtStop,C+PriceScale*손절1,"",1,1);
}
if sTime >= 103000 and sTime < Endtime Then
{
ExitShort("sp2.",AtLimit,C-PriceScale*익절2,"",1,1);
ExitShort("sl2.",AtStop,C+PriceScale*손절2,"",1,1);
}
}
}
if MarketPosition == 1 Then
{
if sTime >= StartTime and sTime < 청산구분시간 Then
{
ExitLong("bp1",AtLimit,EntryPrice+PriceScale*익절1,"",1,1);
ExitLong("bl1",AtStop,EntryPrice-PriceScale*손절1,"",1,1);
}
if sTime >= 청산구분시간 and sTime < Endtime Then
{
ExitLong("bp2",AtLimit,EntryPrice+PriceScale*익절2,"",1,1);
ExitLong("bl2",AtStop,EntryPrice-PriceScale*손절2,"",1,1);
}
}
if MarketPosition == -1 Then
{
if sTime >= StartTime and sTime < 103000 Then
{
ExitShort("sp1",AtLimit,EntryPrice-PriceScale*익절1,"",1,1);
ExitShort("sl1",AtStop,EntryPrice+PriceScale*손절1,"",1,1);
}
if sTime >= 103000 and sTime < Endtime Then
{
ExitShort("sp2",AtLimit,EntryPrice-PriceScale*익절2,"",1,1);
ExitShort("sl2",AtStop,EntryPrice+PriceScale*손절2,"",1,1);
}
}
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
2021-10-18
1185
글번호 152953