커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6060
글번호 230811
답변완료
60일선과 20일선
60일선과 20일선 간격이 점점 넓어지는 지표 또는 시스템식을 구하고 싶습니다
2018-12-04
215
글번호 124149
답변완료
지표문의
일마다 미결제약정 누적지표 받고 싶은데 어떻게 하면 될까요?
1분봉으로 보고 싶습니다.
2018-12-04
199
글번호 124148
답변완료
수식 문의드립니다
high-low oscillator 최고갑 의 신호 뛰울려고 해는데 검색결과 이상케 나왓어 수식수정 부탁드립니다
Input :
Period(3) ,period1(30);
Vars :
v1(0),
v2(0),
v3(0);
if (H-L) <> 0 then
v1 = ( H-C[1]) / (H-L);
Else
v1 = 0.01;
v3 = Highest (v1,period1);
if v3 Then
begin
Plot1( c, "buy" );
end
else
NoPlot(1);
2018-12-04
219
글번호 124147
답변완료
종목검색식 부탁함니다.
안녕하십니까!
아래와 같은 조건으로 종목검색을 하고 합니다.
검색조건
- 일봉 60일선과 주봉 60일선 위
- 20과 60선의 이격도는 30% 이내(일봉 및 주봉)
- 60선의 우상향 추세(일봉 및 주봉)
종목검색식으로 어떻게 종목검색을 해야 하는지 절차를 알려주세요.
감사합니다.
2018-12-04
217
글번호 124146
답변완료
문의드립니다
문의드립니다.
분봉에서 일봉 주봉 월봉의 price channel 과 볼린저밴드를 불러올때
수식 cnt 와 counter 사용범위가 궁금합니다.
분봉의 pc 는 cnt 볼린저밴드는 counter 를 사용하고
일,주,월의 pc 는 dcnt wcnt mcnt 볼린저밴드는 dCounter wcounter mcounter
Top dTop wTop mTop 에서는 cnt 를 맞게 사용하고
있는지 알려주시기 바랍니다.
분봉의 pc 에서 cnt 와 counter의 차이점이 무엇인지 궁금합니다
감사합니다.
2018-12-04
274
글번호 124145
답변완료
확인부탁드립니다!
안녕하세요!
아래는 어제 만들어 주신 수식인데요!
월물(콜과 풋의 당월 근월물 첫날 저가와 고가)가 표현이 안되는것 같습니다!
적용을 해보니 콜은 적용이 되면 풋은 0으로 선 구현이 됩니다!
다시 한번 수식 점검을 부탁드립니다!
감사합니다!
------------------------------------------------------
var : nday1(0,data1),week1(0,data1),Exdate1(false,data1);
var : H1(0,data1),L1(0,data1),D1(0,data1),V11(0,data1),V12(0,data1);
var : nday2(0,data2),week2(0,data2),Exdate2(false,data2);
var : H2(0,data2),L2(0,data2),D2(0,data2),V21(0,data2),V22(0,data2);
nday1 = data1(date - int(date/100)*100);
week1 = data1(DayOfWeek(date));
if nday1 >= 8 and nday1 <= 14 and week1 == 4 then
Exdate1 = true;
Else
Exdate1 = false;
if data1(bdate != bdate[1] and Exdate1 == false and Exdate1[1] == true) Then
{
D1 = data1(bdate);
H1 = data1(H);
L1 = data1(L);
}
if sdate == D1 Then
{
v11 = data1(daylow);
v12 = data1(DayHigh);
}
if data1(H) > H1 Then
H1 = data1(H);
if data1(L) < L1 Then
L1 = data1(L);
plot1(data1(DayHigh(1)),"전일고가");
plot2(data1(daylow(1)),"전일저가");
plot3(data1(DayOpen(0)),"전일시가");
if H1 > 0 and L1 > 0 then
{
plot4(H1,"월고");
plot5(L1,"월저");
}
plot6(v11,"월물첫날저가");
plot7(v12,"월물첫날고가");
nday2 = data2(date - int(date/100)*100);
week2 = data2(DayOfWeek(date));
if nday2 >= 8 and nday2 <= 14 and week2 == 4 then
Exdate2 = true;
Else
Exdate2 = false;
if data2(bdate != bdate[1] and Exdate2 == false and Exdate2[1] == true) Then
{
D2 = data2(bdate);
H2 = data2(H);
L2 = data2(L);
}
if sdate == D2 Then
{
v21 = data2(lowD(0));
v22 = data2(HighD(0));
}
if data2(H) > H2 Then
H2 = data2(H);
if data2(L) < L2 Then
L2 = data2(L);
plot11(data2(HighD(1)),"전일고가");
plot12(data2(lowD(1)),"전일저가");
plot13(data2(OpenD(0)),"전일시가");
if H2 > 0 and L2 > 0 then
{
plot14(H2,"월고");
plot15(L2,"월저");
}
plot16(v21,"월물첫날저가");
plot17(v22,"월물첫날고가");
2018-12-04
210
글번호 124144
답변완료
부탁드립니다.
항상 감사드립니다.
매구 가능 조건 후 (BuyEntry == true)
mav1 > mav2 and mav3[1] < mav3 상태이면서
U2 == 1 and U2!=U2[1] 이면 매수하는 식으로 해보았습니다.
매구 가능 조건 후 (BuyEntry == true)
mav1 > mav2 and mav3[1] < mav3 상태가 풀리면
U2 == 1 and U2!=U2[1] 이어도 매수하지 않고 싶습니다.
아래식은 매수 가능 조건후 mav1 > mav2 and mav3[1] < mav3 상태가 풀리더라도
한참뒤어 mav1 > mav2 and mav3[1] < mav3 와 U2 == 1 and U2!=U2[1] 가 만족되면
매수가 들어갑니다.
부탁드립니다.
1식은 제가 구성해 본 식이며, 2식은 작성해 주신 식입니다.
두개 모두 동일합니다.
1.
Input : Period(5), Period1(5);
Input : P1(30), P2(60), P3(300);
var : FstK(0),FstD(0);
var : mav1(0), mav2(0), mav3(0);
var : t(0), t1(0), tx(0), U2(0);
var : BH(0),SL(0),HE(0),LE(0);
var : BuyEntry(false);
FstK = FastK(Period);
FstD = FastD(Period,Period1);
mav1 = wma(C, P1);
mav2 = wma(C, P2);
mav3 = wma(c, P3);
if FstK[1] < FstK Then #FstK 상승
U2 = 1;
if FstK[1] > FstK Then #FstK 하강
U2 = -1;
if mav1 > mav2 and mav3[1] < mav3 then
{
t = 1; #t는1 mav1>mav2 & mav3 상향구간 t값은 t1에 저장
t1 = t[1];
}
# t가 1인 상태에서 Fstk가 80을 CrossDown 하면 t = 2로 변경 ● 출력
if t == 1 and Crossdown(FstD, 80) Then
{
t = 2; #t는 2로 변경
#●출력
tx = Text_New(sdate,stime,H+PriceScale,"●"+NumToStr(C,2));
Text_SetStyle(tx,2,2);
Text_SetColor(tx,RED);
BuyEntry = true; //매수가능
}
# mav1>mav2 & mav3 상향구간
# Crossdown(Fastk, 80) t는 2까지 기록했고
# mav1>mav2 & mav3 상향구간 인 상태이고 FastK가 다시 상승하면 매수
if BuyEntry == true
and mav1 > mav2 and mav3[1] < mav3
and U2 == 1 and U2!=U2[1] then
BuyEntry = false; # false로 초기화
buy("B3");
}
if MarketPosition == 1 Then
{
BH = highest(H,BarsSinceEntry);
if MaxEntries == 1 Then
HE = LatestEntryPrice(0);
if MaxEntries >= 2 and LatestEntryPrice(0) > HE Then
HE = LatestEntryPrice(0);
SetStopProfittarget(0.4);
ExitLong("B손절",AtStop,HE-PriceScale*80);
}
2.
Input : Period(5), Period1(5);
Input : P1(30), P2(60), P3(300);
var : FstK(0),FstD(0);
var : mav1(0), mav2(0), mav3(0);
var : t(0), t1(0), tx(0), U2(0);
var : BH(0),SL(0),HE(0),LE(0);
var : BuyEntry(false);
FstK = FastK(Period);
FstD = FastD(Period,Period1);
mav1 = wma(C, P1);
mav2 = wma(C, P2);
mav3 = wma(c, P3);
if FstK[1] < FstK Then #FstK 상승
U2 = 1;
if FstK[1] > FstK Then #FstK 하강
U2 = -1;
if mav1 > mav2 and mav3[1] < mav3 then
{
t = 1; #t는1 mav1>mav2 & mav3 상향구간 t값은 t1에 저장
t1 = t[1];
}
# t가 1인 상태에서 Fstk가 80을 CrossDown 하면 t = 2로 변경 ● 출력
if t == 1 and Crossdown(FstD, 80) Then
{
t = 2; #t는 2로 변경
#●출력
tx = Text_New(sdate,stime,H+PriceScale,"●"+NumToStr(C,2));
Text_SetStyle(tx,2,2);
Text_SetColor(tx,RED);
BuyEntry = true; //매수가능
}
# mav1>mav2 & mav3 상향구간
# Crossdown(Fastk, 80) t는 2까지 기록했고
# mav1>mav2 & mav3 상향구간 인 상태이고 FastK가 다시 상승하면 매수
if t > 0 and t1 >= 2
and U2 == 1 and U2!=U2[1] and
BuyEntry == true Then 매수가능일때만 매수
{
BuyEntry = false;# false로 초기화
buy("B3");
}
if MarketPosition == 1 Then
{
BH = highest(H,BarsSinceEntry);
if MaxEntries == 1 Then
HE = LatestEntryPrice(0);
if MaxEntries >= 2 and LatestEntryPrice(0) > HE Then
HE = LatestEntryPrice(0);
SetStopProfittarget(0.4);
ExitLong("B손절",AtStop,HE-PriceScale*80);
}
2018-12-04
198
글번호 124143
답변완료
수식 부탁드립니다.
5분봉에서 전일거래량 10%발생하면서
5분봉에서 2%이상으로 일봉에서 60일 이동평균선 뚫고
1,2,3,4,5일전 종가위에 있으면서
전일대비 3%이상 상승한 종목에서 매수
수식 부탁드립니다.
2018-12-04
204
글번호 124139
답변완료
함수요청
안녕하세요?
아래 글번호 60311번 재질문 드립니다.
함수요청드립니다.
해외선물 크루드오일 30분봉으로 거래를 하고자 합니다.
써머타임 적용시에는 1번으로, 써머타임 해지시에는 2번전략으로 거래를 하고자 합니다.
하나의 스크립트로 요청드립니다.
1. 써머타임 적용시
-매수: 23시 30분 시점에 현재가 > 00시 30분 시점에 현재가 이면, 익일 1시 시초가 진입
-매도: 23시 30분 시점에 현재가 < 00시 30분 시점에 현재가 이면, 익일 1시 시초가 진입
-청산: SetStopEndOfday(043000);
-당일 진입, 당일 청산으로 1번 왕복 거래입니다.
2. 써머타임 해지시
-매수: 22시 30분 시점에 현재가 > 23시 30분 시점에 현재가 이면, 익일 0시 시초가 진입
-매도: 22시 30분 시점에 현재가 < 23시 30분 시점에 현재가 이면, 익일 0시 시초가 진입
-청산: SetStopEndOfday(033000);
-당일 진입, 당일 청산으로 1번 왕복 거래입니다.
두 시점의 현재가를 비교하여 특정 시각에 진입한다는 컨셉입니다.
그런데 작성주신 스크립트는 두 시점의 현재값을 비교하여 atmarket하는 걸로 주셨습니다.
바쁘시겠지만 검토 부탁드립니다.
2018-12-04
219
글번호 124136