커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3478
글번호 230811
답변완료
안녕하세요
안녕하세요
지표식 부탁드립니다
Input : Period(20), D(2), Period11(9);
var : BBdown(0),BBUp(0),BandB(0);
BBDown = BollBandDown(Period,D);
BBUp = BollBandUp(Period,D);
BandB = ((C-BBDown)/(BBUp-BBDown))*100;
Plot1(BandB, "Band %b");
PlotBaseLine1(10, "기준선10");
PlotBaseLine2(90, "기준선90");
Plot1(BandB, "Band %b");의
이평선(ma) 을
부탁드립니다
<<<Plot2 = ma(Plot1, Period11);>>>
감사합니다
2023-07-26
946
글번호 170933
답변완료
수식 부탁드립니다
안녕하세요
수식 부탁드립니다
어제 문의드린 수식에
답변이 없으시어
다시 부탁드립니다
1.
Input : shortPeriod(12), longPeriod(26);
Var : value(0);
value = MACD(shortPeriod, longPeriod);
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, 0) Then
{
Sell();
}
2.
Input : Period(12), Period1(5);
Var : value(0);
value = StochasticsK(Period,Period1);
# 매수/매도청산
If CrossUP(value, 20) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, 80) Then
{
Sell();
}
Macd 기준선 수식과
Stochastics 수식을
<<<Macd 기준선 수식 + Stochastics 수식>>>
수식을 만틀고자 합니다
3,.
Input : Period(20), D(2), Period11(20);
var : BBdown(0),BBUp(0),BandB(0);
BBDown = BollBandDown(Period,D);
BBUp = BollBandUp(Period,D);
BandB = ((C-BBDown)/(BBUp-BBDown))*100;
Plot1(BandB, "Band %b");
Value1 = ma(Plot1, Period11);
PlotBaseLine1(10, "기준선10");
PlotBaseLine2(90, "기준선90");
PlotBaseLine1>"기준선10" 이면 매수식
PlotBaseLine2>"기준선90" 이면 매도식
수식 부탁드립니다
감사합니다
2023-07-26
825
글번호 170932
답변완료
수식 문의 드립니다.
안녕하세요.
기존에는 잘 작동하다가,
최근 들어 수식이 계속 에러가 나서 확인해보니
GetPrevVolume 함수가 이상하게 동작하는 것 같습니다.
예를 들어,
GetPrevVolume(1)를 이용해서 DATA를 얻으려고 하는데
삼성전자 005930을 MarektData1 객체명에 일간데이터 사용, 조회건수 100 으로 설정 하고
MarketData1.GetPrevVolume(1)로 메세지로그를 남겨보니
41801757050798080 이라는 숫자가 리턴됩니다.
즉, 설명할 수 없는 큰 숫자로 인해서 오류가 생기고 있는데
GetPrevVolume 최근에 뭔가 바뀐것인지 확인 부탁드리며,
오류가 있었다면 수정을 부탁드립니다.
ps : 추가로 편집기에서 아래와 같은 에러가 발생하고 있습니다.
TypeError : GetPrevVolume : 1개의 매개변수가 필요합니다.
2023-07-26
896
글번호 170931
답변완료
해외선물 시가 청산 문의드립니다.
안녕하세요.
분봉 차트에서 나스닥 선물같은 해외선물을 다음날 장 시작 후 시가에 청산하려고 합니다.
Bdate != bdate[1] 로 잡으면 한캔들 넘어가는 거 같은데 어떻게 조건을 잡아야 할까요 ?
서머타임도 고려해야 하나요 ?
2023-07-26
812
글번호 170930
답변완료
문의
input : n분(30);
var : S1(0),D1(0),TM(0),TF(0),OO(0),Box(0);
var : DD(0),TT(0);
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;
TF = TM%n분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and n분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and n분 > 1 and TM >= TM[1]+n분) or
(Bdate == Bdate[1] and n분 == 1 and TM > TM[1]) Then
{
OO = O;
DD = sDate;
TT = sTime;
box = Box_New(DD,TT,OO,NextBarSdate,NextBarStime,c);
Box_SetFill(box,true);
}
Box_SetEnd(box,NextBarSdate,NextBarStime,c);
Box_SetColor(box,IFF(C > OO,Red,IFf(C<OO,Blue,Green)));
}
윗꼬리와 아래꼬리 꼭지점과 중심에 선이 나오도록 부탁드립니다
2023-07-26
991
글번호 170929
배움이 님에 의해서 삭제되었습니다.
2023-07-26
1
글번호 170928
답변완료
문의 드립니다.
안녕하세요?
최근답변 잘받았습니다. 감사합니다.
아래의 수식에서 종료되는 시간설정을 하면 봉마감되는 시간에 종료가 되고있는데,
혹시 지정시간이되면 바로 청산주문이 들어가게 되었으면 해서 문의 드립니다.
감사합니다.
inputs: Length(10), Pval(0.05);
input : 익절틱수(10), 손절틱수(10), 진입횟수(3);
var : entry(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1 ;
if entry < 진입횟수 then Sell("CBI", AtStop, Lowest(Low, Length) - Pval);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2023-07-25
1276
글번호 170927
답변완료
수식 부탁드립니다
안녕하세요? 항상 수고많으십니다.
기존 시스템 신호 수식에 합성할 당일 선물 40틱(2.0p) 누적수익 및 30틱(1.5P) 누적손실시
즉시 보유 포지션 청산후 종료하는 수식 부탁 드립니다. 감사합니다.
(수익, 손실 변경 가능하도록 부탁드립니다)
2023-07-25
1178
글번호 170925
답변완료
수식 문의입니다.
수식1
var1 = highest(C,20);
var2 = Lowest(C,20);
var3 = (var1+var2)/2;
plot1(var1,"최고가선");
plot2(var2,"최저가선");
plot3(var3,"중심선");
수식2
input : length(2),percent(0.6),hllength(10);
input : highlighting(true);
input : mav(1); # 1:SMA, 2:EMA, 3:WMA, 4:DEMA, 5:TMA, 6:VAR, 7:WWMA, 8:ZLEMA, 9:TSF, 10:HULL
var : src(0),srcl(0);
var : DEMA(0);
src = highest(high, hllength);
srcl = lowest(low, hllength);
var : valpha(0),vud1(0),vdd1(0),vUD(0),vDD(0),vCMO(0),_var(0);
valpha = 2 / (length + 1);
vud1 = iff(src > src[1] , src - src[1] , 0);
vdd1 = iff(src < src[1] , src[1] - src , 0);
vUD = AccumN(vud1, 9);
vDD = AccumN(vdd1, 9);
vCMO = iff(isnan(((vUD - vDD) / (vUD + vDD))),((vUD - vDD) / (vUD + vDD)),0);
_VAR = 0.0;
_VAR = iff(isnan(valpha * abs(vCMO) * src) == False,valpha * abs(vCMO) * src,0) + (1 - valpha * abs(vCMO)) * iff(isnan(_VAR[1])==False,_VAR[1],0);
DEMA = 2 * ema(src, length) - ema(ema(src, length), length);
var : wwalpha(0),wwma(0);
wwalpha = 1 / length;
WWMA = 0.0;
WWMA = wwalpha * src + (1 - wwalpha) * IFf(IsNan(WWMA[1]) == False,WWMA[1],0);
var : zxLag(0),zxEMAData(0),ZLEMA(0);
zxLag = IFf(length / 2 == round(length / 2,0) , length / 2 , (length - 1) / 2);
zxEMAData = src + src - src[zxLag];
ZLEMA = ema(zxEMAData, length);
var : lrc(0),lrc1(0),LRS(0),TSF(0);
lrc = LRL(src, length);
lrc1 = LRL(src, length)[1];
lrs = lrc - lrc1;
TSF = lrc + lrs;
var : hma(0);
HMA = wma(2 * wma(src, length / 2) - wma(src, length), round(sqrt(length),0));
var : valphal(0),vud1l(0),vdd1l(0),vUDl(0),vDDl(0),vCMOl(0),VARl(0);
valphal = 2 / (length + 1);
vud1l = iff(srcl > srcl[1] , srcl - srcl[1] , 0);
vdd1l = iff(srcl < srcl[1] , srcl[1] - srcl , 0);
vUDl = AccumN(vud1l, 9);
vDDl = AccumN(vdd1l, 9);
vCMOl = iff(IsNan((vUDl - vDDl) / (vUDl + vDDl)) == False,(vUDl - vDDl) / (vUDl + vDDl),0);
VARl = 0.0;
VARl = iff(IsNan(valphal * abs(vCMOl) * srcl),valphal * abs(vCMOl) * srcl,0) + (1 - valphal * abs(vCMOl)) * iff(isnan(VARl[1]) == False,VARl[1],0);
var : DEMAl(0);
DEMAl = 2 * ema(srcl, length) - ema(ema(srcl, length), length);
var : wwalphal(0),WWMAl(0);
wwalphal = 1 / length;
WWMAl = 0.0;
WWMAl = wwalphal * srcl + (1 - wwalphal) * iff(IsNan(WWMAl[1]) == False,WWMAl[1],0);
var : zxLagl(0),zxEMADatal(0),ZLEMAl(0);
zxLagl = iff(length / 2 == round(length / 2,0) , length / 2 , (length - 1) / 2);
zxEMADatal = srcl + srcl - srcl[zxLagl];
ZLEMAl = ema(zxEMADatal, length);
var : lrcl(0),lrc1l(0),lrsl(0),TSFl(0);
lrcl = lrl(srcl, length);
lrc1l = LRl(srcl, length)[1];
lrsl = lrcl - lrc1l;
TSFl = LRl(srcl, length) + lrsl;
var : HMAL(0);
HMAl = wma(2 * wma(srcl, length / 2) - wma(srcl, length), round(sqrt(length),0));
var : _MA(0),mal(0);
if mav == 1 then
_ma = ma(src, length);
if mav == 2 then
_ma = ema(src, length);
if mav == 3 then
_ma = wma(src, length);
if mav == 4 then
_ma = DEMA;
if mav == 5 then
_ma = ma(ma(src, Ceiling(length / 2)), floor(length / 2) + 1);
if mav == 6 then
_ma = _VAR;
if mav == 7 then
_ma = WWMA;
if mav == 8 then
_ma = ZLEMA;
if mav == 9 then
_ma = TSF;
if mav == 10 then
_ma = HMA;
if mav == 1 then
mal = ma(srcl, length);
if mav == 2 then
mal = ema(srcl, length);
if mav == 3 then
mal = wma(srcl, length);
if mav == 4 then
mal = DEMAl;
if mav == 5 then
mal = ma(ma(srcl, Ceiling(length / 2)), floor(length / 2) + 1);
if mav == 6 then
mal = VARl;
if mav == 7 then
mal = WWMAl;
if mav == 8 then
mal = ZLEMAl;
if mav == 9 then
mal = TSFl;
if mav == 10 then
mal = HMAl;
var : mavg(0),fark(0),longstop(0),longStopPrev(0),shortstop(0),shortstopprev(0);
var : dir(0),MT(0),HOTT(0),HOTTC(0);
var : MAvgl(0),farkl(0),longStopl(0),longStopPrevl(0),shortStopl(0),shortStopPrevl(0);
var : dirl(0),MTl(0),LOTT(0),LOTTC(0);
MAvg = _ma;
fark = MAvg * percent * 0.01;
longStop = MAvg - fark;
longStopPrev = iff(IsNaN(longStop[1]) == False, longStop,0);
longStop = iff(MAvg > longStopPrev , max(longStop, longStopPrev) , longStop);
shortStop = MAvg + fark;
shortStopPrev = iff(isnan(shortStop[1])==False, shortStop,0);
shortStop = iff(MAvg < shortStopPrev , min(shortStop, shortStopPrev) , shortStop);
dir = 1;
dir = iff(isnan(dir[1])== False, dir,0);
dir = iff(dir == -1 and MAvg > shortStopPrev , 1 , iff(dir == 1 and MAvg < longStopPrev , -1 , dir));
MT = iff(dir == 1 , longStop , shortStop);
HOTT = iff(MAvg > MT , MT * (200 + percent) / 200 , MT * (200 - percent) / 200);
HOTTC = blue;
MAvgl = MAl;
farkl = MAvgl * percent * 0.01;
longStopl = MAvgl - farkl;
longStopPrevl = iff(isnan(longStopl[1]) == False, longStopl,0);
longStopl = iff(MAvgl > longStopPrevl , max(longStopl, longStopPrevl) , longStopl);
shortStopl = MAvgl + farkl;
shortStopPrevl = iff(isnan(shortStopl[1])==False, shortStopl,0);
shortStopl = iff(MAvgl < shortStopPrevl , min(shortStopl, shortStopPrevl) , shortStopl);
dirl = 1;
dirl = iff(isnan(dirl[1]), dirl,0);
dirl = iff(dirl == -1 and MAvgl > shortStopPrevl , 1 , iff(dirl == 1 and MAvgl < longStopPrevl , -1 , dirl));
MTl = iff(dirl == 1 , longStopl , shortStopl);
LOTT = iff(MAvgl > MTl , MTl * (200 + percent) / 200 , MTl * (200 - percent) / 200);
LOTTC = red;
plot1(HOTT[2], "HOTT",HOTTC);
plot2(LOTT[2], "LOTT",LOTTC);
첫번째:
수식1의 최고가선이 수식2의 HOTT 선을 돌파하면 매수/매도 신호가 나오게 해주세요
두번째:
수식1의 최저가선이 수식2의 LOTT 선을 돌파하면 매수/매도 신호가 나오게 해주세요
수식을 통합하지말고 각각 작성해주세요.
2023-07-25
1237
글번호 170923