커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3635
글번호 230811
답변완료
문의드립니다
안녕하세요
수식에 사용된 함수(nz)의 설명은 아래에 첨부했습니다.
예스함수와 지표식 각각 요청드립니다.
src=close
l =input(16)
k = 1.0/l
pdm = max((src - src[1]), 0)
mdm = max((src[1] - src), 0)
pdmS = ((1 - k)*nz(pdmS[1]) + k*pdm)
mdmS = ((1 - k)*nz(mdmS[1]) + k*mdm)
s = pdmS + mdmS
pdi = pdmS/s
mdi = mdmS/s
pdiS = ((1 - k)*nz(pdiS[1]) + k*pdi)
mdiS = ((1 - k)*nz(mdiS[1]) + k*mdi)
d = abs(pdiS - mdiS)
s1 = pdiS + mdiS
iS = ((1 - k)*nz(iS[1]) + k*d/s1)
hhv = highest(iS, l)
llv = lowest(iS, l)
d1 = hhv - llv
vI = (iS - llv)/d1
vma = (1 - k*vI)*nz(vma[1]) + k*vI*src
plot(vma)
-----------------------------------------------------
nz (Built-in function) //함수설명
Replaces NaN values with zeros (or given value) in a series.
Syntax
nz(x,y) - integer
nz(x,y) - float
nz(x,y) - color
nz(x,y) - bool
nz(x,y) - series[integer]
nz(x,y) - series[bool]
nz(x,y) - series[color]
nz(x,y) - series
nz(x) - color
nz(x) - bool
nz(x) - integer
nz(x) - float
nz(x) - series[integer]
nz(x) - series[bool]
nz(x) - series[color]
nz(x) - series
Returns
Two args version: returns x if it`s a valid (not NaN) number,otherwise y
One arg version: returns x if it`s a valid (not NaN) number,otherwise 0
2019-08-01
264
글번호 130828
답변완료
수식문의
당일 시가를 기준으로
1. 매수
+0.5p 마다 매수. 최대수량 3계약.
0.5 1.0 1.5 매수가 되겠네요.
한계약이라도 진입이 되면 최고가 대비 -0.3p일때 전량 청산.
청산된 가격부터 다시 위와 동일하게 0.5p마다 진입.
2. 매도
1번과 반대로 동일하게 -0.5p마다 매도
3. +0.5대신 +0.3%로 변경.
번거로우시겠지만 부탁드립니다.
감사합니다.
2019-08-01
234
글번호 130827
답변완료
해외선물 거래시간 및 수식문의
cme 오일매매 1분봉에 적용할 예정입니다.
한국시간 오후 10:00:00의 종가가 자정의 종가보다 높을경우 (10시부터 하락중) 라면
종가에 매수 진입
한국시간 오후 10:00:00의 종가가 자정의 종가보다 낮을경우(10시부터 상승중) 라면
종가에 매도 진입
한국시간 03시 종가에 모든포지션 청산
각종시간은 최적화 테스트 및 조정을 위해 변수로 설정 부탁드립니다.
또한 미국의 섬머타임이 적용됨에 따라 현재 기준 시간들이 섬머타임 해제시 미국시간에 맞춰질 수 있도록 부탁드립니다..
(현 기준시간 오후 10시 라면 섬머타임해제시 오후 11시에 거래가 되도록)
감사합니다.
2019-08-01
378
글번호 130826
답변완료
문의드립니다
Input : short(12), long(26), sig(9);
value1 = MACD(short, long);
value2 = ema(value1, sig);
# 매수/매도청산
If CrossUP(value1, value2) and stime >= 150000 Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) and stime >= 150000 Then
{
Sell();
}
IF stime == 110000
Then
{
if MarketPosition == 1 Then
ExitLong("bx",AtMarket);
if MarketPosition == -1 Then
ExitShort("sx",AtMarket);
}
이 수식에서 3시~3시30분 사이에 발생하는 매수 매도 신호중에서 마지막에 발생한 신호방향으로 종가에 진입할수 있는 수식이 가능할까요??
예를들면 3시 20분에 마지막신호가 나오고 그 방향이 매수면 신호가 발생한 봉에 진입하는게 아니고 종가에 매수로 진입
2019-08-01
239
글번호 130825
답변완료
목표수익구간
* 지난주 도움에 고맙 습니다.
작성해주신 수식은 40틱 되면 자동 으로 잘 청산이 되는데 2가지 문제가 있습니다.
1. 수익 36틱 에서 다시 매매가 되어 총손실로 되는 경우가 발생 합니다.
2. 수익중 중간에 청산 되어 좀더 수익이 될수 있는데 청산이 됨니다.
수식요청: 꼭 40틱이 아니고 35 ~ 50틱 사이면 당일 매매중지되는 수식으로
수정 좀 부탁 드립니다.
즉 청산이 매번 될때 마다 수익이 "목표수익구간"에 있으면 다음 신호는 진입금지 입니다.
#####
Input : 당일수익틱수(40);
Var : N1(0),dayPl(0),당일수익(0),Xcond(false);
당일수익 = PriceScale*당일수익틱수;
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 Then
Xcond = true;
if (IsExitName("목표40만원달성1",1) == true or IsExitName("목표40만원달성2",1) == true) then
Xcond = true;
}
if Xcond == false then
{
#진입식
#가장 위
if MarketPosition == 1 then{ExitLong("목표40만원달성1",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); }
if MarketPosition == -1 then{ExitShort("목표40만원달성2",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); }
## 나머지 청산식들
if MarketPosition==1 and IsEntryName("매수66") == true then{ ExitLong("수청66",AtLimit,EntryPrice+PriceScale*32); }
########################################################################################################################### highest(H,BarsSinceEntry) Lowest(L,BarsSinceEntry)
SetStopProfittarget(PriceScale*92,PointStop);
SetStopLoss(PriceScale*28,PointStop);
}
if sdate != sdate[1] Then SetStopEndofday(043000);
if bdate != bdate[1] Then SetStopEndofday(0);
* 항상 많은 도움에 정말 고맙습니다.
2019-07-31
257
글번호 130824
스누피독 님에 의해서 삭제되었습니다.
2019-07-31
0
글번호 130823
답변완료
수정 부탁드립니다
plot1(DayClose(1),"전일종가");
plot2((DayHigh(1)+daylow(1))/2,"전일중간");
plot3(DayOpen(1),"전일시가");
plot4(DayHigh(1),"전일고가");
plot5(DayLow(1),"전일저가");
plot6(DayOpen(0),"당일시가");
plot7(DayHigh(0),"당일고가");
plot8((DayHigh(0)+DayLow(0))/2,"당일중간");
plot9(DayLow(0),"당일저가");
위에식에서 맨 왼쪽으로 건 선의 이름(예/ 당일시가)과 수치(숫자)가 표현될수있도록 부탁드립니다
소숫점 자리 갯수 변경도 가능하면 좋겠습니다
2019-07-31
221
글번호 130822
답변완료
질문드립니다
안녕하세요,
아래는 전에 알려주신 전일 MACD 최고, 최저가를 구하는 식입니다.
input : Short(12),Long(26),Sig(9);
var : MACDV(0), HH(0),LL(0),H1(0),L1(0);
MACDV = MACD(short,long);
if Bdate != Bdate[1] Then
{
HH = MACDV;
LL = MACDV;
H1 = HH[1];
L1 = LL[1];
}
if MACDV > HH Then
HH = MACDV;
if MACDV < LL Then
LL = MACDV;
plot1(H1);
plot2(L1);
전전일(2일전) MACD의 최고, 최저가도 함께 구해 보려고 하는데, 잘 안되고 있습니다 ;;
전일, 전전일 MACD 최고, 최저가 구하는 식을 알려주시면 감사하겠습니다.
2019-07-31
214
글번호 130820
답변완료
시스템식 부탁드립니다.
항상 도움 주셔서 감사합니다.
종목 : 해외선물(오일-60분봉)
----------------------------------------------------
매수 : 아침 7시 시가랑 밤 23시 종가랑 비교하여
밤 23시 종가가 크면 23시 종가가격에 매수
매수청산 : 익일 아침 7시 시가에 청산
----------------------------------------------------
매도 : 아침 7시 시가랑 밤 23시 종가랑 비교하여
밤 23시 종가가 작으면 23시 종가가격에 매도
매도청산 : 익일 아침 7시 시가에 청산
----------------------------------------------------
위 시스템식 부탁드립니다.
감사합니다.
2019-07-31
255
글번호 130816