커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5321
글번호 230811
답변완료
식 문의 드립니다
크루드오일에 적용할때 쓰려고 합니다.
1. 재고발표날이 있는 수요일 23시20분까지 포지션이 들어가 있으면 모두 청산하고 23시35분까지 모든 포지션 진입을 막아놓는 수식을 구하고자 합니다.
2. 위 수식을 썸머타임 여부에 따라 자동조절하는 기능은 없겠지요?
2019-07-29
308
글번호 130736
답변완료
문의 드립니다.
볼린져 밴드 20.2
상단선을 돌파시 매수 집입/ 상단선 아래로 내려오면 매도 청산완료
하단선을 아래로 돌파시 매도 진입/ 하단선 위로 돌파하면 매수 청산완료
부탁드립니다.
2019-07-29
262
글번호 130735
답변완료
수식 부탁드립니다.
# 10분봉에서 현재봉 거래량 합이
이전 3개봉의 거래량 합의 1.5배 이상인 종목 검색 수식 원합니다.#
게시판 내용중 하나를 적용해 보았는데
당일 적용이라 당연히 9 시 30 분 이후로 검색되어져야 하는데...
결과가 생각한 내용대로 안나와서
제가 잘못 적용한 부분이 있는것 같아 부탁 드립니다.
감사합니다. 수고하세요.
2019-07-29
336
글번호 130734
답변완료
함수요청
안녕하세요?
아래 스크립트 전략을 추가하고자 하여 스크립트를 수정요청드립니다.
세부내용은,
아래의 전략에 진입신호가 발생되었을 때 그 위치가 data1의 볼린저밴드 상하단 내에서로 진입신호를 필터링하고자 합니다.
즉, 매수신호는 기본종목이 볼린저밴드 상단 아래에서
매도신호는 기본종목이 볼린저밴드 하단 위에서
신호가 생성되게 하고자 합니다.
Vars : SP(0,data1), TickSize(0,data1);
Vars : fstHH(0,data1), fstLL(0,data1), sndHH(0,data2), sndLL(0,data2);
var : v1(0,data2),v2(0,data2);
SP = MarketPosition;
TickSize = PriceScale;
v1 = data2(H);
v2 = data2(L);
IF v1[10] > 0 Then
Begin
fstHH = data1(Highest(H, 5));
fstLL = data1(Lowest(L, 3));
sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]);
sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]);
End;
IF MarketPosition == 0 and data2(C) > sndHH[1] Then Buy("B", AtStop, fstHH - TickSize);
IF MarketPosition == 0 and data2(C) < sndLL[1] Then Sell("S", AtStop, fstLL + TickSize);
2019-07-29
281
글번호 130721
답변완료
부탁드립니다.
손절 청산식 하나만 더 추가 부탁드립니다.
input: 손절틱(100)
매수 개수가 5개 이상이고 진입된 전체 손익이 손절틱 이상이면 매수 전체 손절
매도 개수가 5개 이상이고 진입된 전체 손익이 손절틱 이상이면 매도 전체 손절
var : ll(0),hh(0);
if index == 0 Then
buy();
if index == 100 Then
buy();
if index == 200 Then
buy();
if index == 300 Then
buy();
if index == 400 Then
buy();
if MarketPosition == -1 then
{
if CurrentContracts > CurrentContracts[1] Then
{
hh = h;
ll = L;
}
if h > hh Then
hh = h;
if l < ll Then
ll = l;
if ll <= AvgEntryPrice-(PriceScale*500)/CurrentContracts Then
ExitShort("sp2",AtStop,LL+(AvgEntryPrice-LL)*0.01);
//매도 진입 수가 5개 이상이고 전체 수익이 +100틱 이상이었다가 다시 0이 되면 청산
if CurrentContracts >= 5 and MaxPositionProfit >= PriceScale*100 Then
ExitShort("sl2",AtStop,AvgEntryPrice);
}
if MarketPosition == 1 then
{
if CurrentContracts > CurrentContracts[1] Then
{
hh = h;
ll = l;
}
if h > hh Then
hh = h;
if l < ll Then
ll = l;
#if hh >= AvgEntryPrice+(PriceScale*500)/CurrentContracts Then
# ExitLong("bp2",AtStop,hh-(hh-AvgEntryPrice)*0.01);
//매수 진입 수가 5개 이상이고 전체 수익이 +100틱 이상이었다가 다시 0이 되면 청산
if CurrentContracts >= 5 and MaxPositionProfit >= PriceScale*100 Then
ExitLong("bl2",AtStop,AvgEntryPrice);
}
2019-07-29
270
글번호 130719
답변완료
함수 부탁드립니다
Easy Language입니다.예스함수와 지표식 부탁드립니다.
// Function
inputs:
Price (NumericSeries),
Length (NumericSimple);
vars:
TR(0),
DI_Diff(0),
DI_Sum(0),
ma(0),
pdm(0),
mdm(0),
pdi(0),
mdi(0),
DI_Factor(0),
VI(0),
diff(0),
HHV(0),
LLV(0),
WeightDM(Length),
WeightDI(Length),
WeightDX(Length),
ChandeEMA(Length),
output(0);
once ma=Price;
if(Price>Price[1]) then begin
pdm=Price-Price[1];
mdm=0;
end else begin
mdm=Price[1]-Price;
pdm=0;
end;
pdm=((WeightDM-1)*pdm[1] + pdm)/WeightDM;//ema.
mdm=((WeightDM-1)*mdm[1] + mdm)/WeightDM;//ema.
TR=pdm+mdm;
if (TR>0) then begin
pdi=pdm/TR;
mdi=mdm/TR;
end else begin
pdi=0;
mdi=0;
end;
pdi=((WeightDI-1)*pdi[1] + pdi)/WeightDI;//ema.
mdi=((WeightDI-1)*mdi[1] + mdi)/WeightDI;//ema.
DI_Diff=pdi-mdi;
if (DI_Diff<0) then DI_Diff= -DI_Diff;//Only positive momentum signals are used.
DI_Sum=pdi+mdi;
DI_Factor=0;//Zero case, DI_Diff will also be zero when DI_Sum is zero.
if (DI_Sum>0) then output=DI_Diff/DI_Sum else output=0;
output=((WeightDX-1)*output[1] + output)/WeightDX;
HHV = HighestFC(output,Length+1);
LLV = LowestFC(output,Length+1);
diff = HHV - LLV;
VI=0;
if (diff>0) then VI=(output-LLV)/diff;
ma=((ChandeEMA-VI)*ma[1]+VI*Price)/ChandeEMA;//Chande VMA formula with ema built in.
ADXVMA = ma;
끝부분의 ChandeEMA 확인가능하시면 그대로 해주시고 아니라면,
var : ADXVMAPeriod(Length);
ma=((ADXVMAPeriod-VI)*ma[1]+VI*Price)/ADXVMAPeriod;
ADXVMA = ma;
로 대체해 주십시요.
2019-07-29
398
글번호 130718
답변완료
(주식) 기초적인것 몇가지 문의드립니다.
1. 고점을 돌파할 때 매수한다는 조건 수식이 H <= DayHigh(0) 이게 맞는지 궁금합니다. 이 수식은 당일고가가 같거나(돌파를하진않았음) 뛰어넘었다는 의미같아서요.. 당일 고가를 뛰어넘었을때 사고싶으면 H < DayHigh(0) 이렇게 바꾸면 되나요?
2. buy("b",AtStop,DayHigh(0)+PriceScale*1); 여기서 조건에 부합할 때 현재가가 아닌 한틱 위 호가에 주문을 내려면 어떻게 변경하면 될까요?
3. 현금이 아닌 신용으로 매수가능금액의 99%로 매수하려면 수식을 어떻게 바꾸면 될까요?
4. 일봉상 3일전 고점과 저점폭보다 1일전 고저폭이 같거나 적을때 그리고, 2일전 고저폭보다 1일전 고저폭이 같거나 적을 때 당일 기준으로 전일고가 돌파시 매수한다. 라는 수식 부탁드리겠습니다.(쉽게말해서 1일전 일봉상 고저폭이 2일전,3일전 캔들보다 같거나 최저치인날을 조건으로 만들고 싶습니다.) --> 인사이드 데이처럼 전일 캔들의 고점과 저점 안에 있어야하는건 아닙니다.
5. 하루에 한번만 매수한다는 조건을 추가하려면 어떤 수식을 추가해야하는지 부탁드리겠습니다. (매수 후 스탑로스로 매도체결 뒤 다시 매수되는것 방지)
무더운 여름인데 더위조심하시고 감사합니다.
2019-07-29
327
글번호 130717
답변완료
문의드립니다
1)input : per1(23.6),per2(38.2),per3(50.0),per4(61.8),per5(76.4);
var : hh(0),ll(0),h1(0),l1(0),dd(0),tt(0),d1(0),t1(0);
var : tl1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0),tl7(0);
if bdate > bdate[1]-1 then
{
hh = h;
ll = l;
h1 = hh[1];
l1 = ll[1];
dd = sdate[1];
tt = stime[1];
d1 = dd[1];
t1 = tt[1];
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
TL_Delete(tl4);
TL_Delete(tl5);
TL_Delete(tl6);
TL_Delete(tl7);
tl1 = TL_New(dd,tt,hh,sdate,stime,hh);
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl4 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
tl5 = TL_New(dd,tt,hh-(hh-ll)*(per4/100),sdate,stime,hh-(hh-ll)*(per4/100));
tl6 = TL_New(dd,tt,hh-(hh-ll)*(per5/100),sdate,stime,hh-(hh-ll)*(per5/100));
tl7 = TL_New(dd,tt,ll,sdate,stime,ll);
}
if h > hh Then
{
hh = h;
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
TL_Delete(tl4);
TL_Delete(tl5);
TL_Delete(tl6);
TL_Delete(tl7);
tl1 = TL_New(dd,tt,hh,sdate,stime,hh);
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl4 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
tl5 = TL_New(dd,tt,hh-(hh-ll)*(per4/100),sdate,stime,hh-(hh-ll)*(per4/100));
tl6 = TL_New(dd,tt,hh-(hh-ll)*(per5/100),sdate,stime,hh-(hh-ll)*(per5/100));
tl7 = TL_New(dd,tt,ll,sdate,stime,ll);
}
if l < ll Then
{
ll = l;
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
TL_Delete(tl4);
TL_Delete(tl5);
TL_Delete(tl6);
TL_Delete(tl7);
tl1 = TL_New(dd,tt,hh,sdate,stime,hh);
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl4 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
tl5 = TL_New(dd,tt,hh-(hh-ll)*(per4/100),sdate,stime,hh-(hh-ll)*(per4/100));
tl6 = TL_New(dd,tt,hh-(hh-ll)*(per5/100),sdate,stime,hh-(hh-ll)*(per5/100));
tl7 = TL_New(dd,tt,ll,sdate,stime,ll);
}
TL_SetColor(TL2,RED);
TL_SetSize(TL2,2);
TL_SetExtRight(TL2,true);
TL_SetColor(TL6,CYAN);
TL_SetSize(TL6,2);
TL_SetExtRight(TL6,true);
위수식으로 당일 시가부터 23.6,50,76.4,선이3개나오게 피보나치 부탁드립니다 가격이변하면 피보나치선도변하게~~미리감사드립니다
2)
input : per1(23.6),per2(38.2),per3(50.0),per4(61.8),per5(76.4);
var : hh(0),ll(0),h1(0),l1(0),dd(0),tt(0),d1(0),t1(0);
var : tl1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0),tl7(0);
if bdate > bdate[1]-1 then
{
hh = h;
ll = l;
h1 = hh[1];
l1 = ll[1];
dd = sdate[1];
tt = stime[1];
d1 = dd[1];
t1 = tt[1];
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
TL_Delete(tl4);
TL_Delete(tl5);
TL_Delete(tl6);
TL_Delete(tl7);
tl1 = TL_New(dd,tt,hh,sdate,stime,hh);
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl4 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
tl5 = TL_New(dd,tt,hh-(hh-ll)*(per4/100),sdate,stime,hh-(hh-ll)*(per4/100));
tl6 = TL_New(dd,tt,hh-(hh-ll)*(per5/100),sdate,stime,hh-(hh-ll)*(per5/100));
tl7 = TL_New(dd,tt,ll,sdate,stime,ll);
}
if h > hh Then
{
hh = h;
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
TL_Delete(tl4);
TL_Delete(tl5);
TL_Delete(tl6);
TL_Delete(tl7);
tl1 = TL_New(dd,tt,hh,sdate,stime,hh);
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl4 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
tl5 = TL_New(dd,tt,hh-(hh-ll)*(per4/100),sdate,stime,hh-(hh-ll)*(per4/100));
tl6 = TL_New(dd,tt,hh-(hh-ll)*(per5/100),sdate,stime,hh-(hh-ll)*(per5/100));
tl7 = TL_New(dd,tt,ll,sdate,stime,ll);
}
if l < ll Then
{
ll = l;
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
TL_Delete(tl4);
TL_Delete(tl5);
TL_Delete(tl6);
TL_Delete(tl7);
tl1 = TL_New(dd,tt,hh,sdate,stime,hh);
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl4 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
tl5 = TL_New(dd,tt,hh-(hh-ll)*(per4/100),sdate,stime,hh-(hh-ll)*(per4/100));
tl6 = TL_New(dd,tt,hh-(hh-ll)*(per5/100),sdate,stime,hh-(hh-ll)*(per5/100));
tl7 = TL_New(dd,tt,ll,sdate,stime,ll);
}
현재.전봉에 피보나치가 나오는데 전,전봉부터 나오게 수정부탁드립니다
2019-07-29
275
글번호 130716
부동여산 님에 의해서 삭제되었습니다.
2019-07-29
0
글번호 130715