커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4445
글번호 230811
답변완료
수식 부탁드립니다.
아래식에서
CrossUp하고 c < mav 의 매수조건에서 전봉의 저가 대비 B틱이상 하락되어 있으면 매수조건 제외
CrossDown하고 c > mav 의 매도조건에서 전봉의 고가 대비 B틱이상 상승되어 있으면 매도조건 제외
하고 싶습니다. 매번 감사합니다.
if mav3 > mav3[1] and CrossUp(macdv,macds) Then{
T = 1;
ii = index;
}
if mav3 < mav3[1] and CrossDown(macdv,macds) Then{
T = -1;
ii = index;
}
if Tcond == true and Xcond == false then{
if MarketPosition == 0 and T == 1 and index <= ii+10 and c < mav Then
buy("매수");
if MarketPosition == 0 and T == -1 and index <= ii+10 and c > mav Then
sell("매도");
2017-02-02
85
글번호 106452
답변완료
60분봉에서
60분봉 차트에서 그날 3시~3시20분경 당일 거래량의 합계가 40일간의 거래량중 최고인 종목을 검색하려면 어떻게 하나요?
또 검색시간대를 정해서 1시간마다 자동검색할수는 없을까요?
예를들어 위내용을 오후2시에 자동검색하고 오후3시에 자동검색하고 이렇게 않될까요?
2017-02-02
95
글번호 106450
답변완료
시스템 수식 문의
1. 해당 조건의 수식을 아래와 같이 적용 후 YT에 적용하니깐
신호가 몇개 누락되는 경우가 발생하게 되는데
YT 챠트에 초록색은 매도 신호가 누락된 부분이며, 핑크색은 매수 신호가 누락된 부분입니다.
그 이유를 설명 부탁 드리겠습니다.
input : TRIXP2(8),TRIXsig2(3);
input : P20(3),P21(5),P22(10),P23(20),P24(60);
var : TRIXV2(0),TRIXS2(0);
var : mav20(0),mav21(0),mav22(0),mav23(0),mav24(0);
var : A2(false),B2(false),C2(false),D2(false);
#청산에 사용될 지표
TRIXV2 = TRIX(TRIXP2);
TRIXS2 = ema(TRIXV2,TRIXSig2);
mav20 = ma(c,P20);
mav21 = ma(c,P21);
mav22 = ma(c,P22);
mav23 = ma(c,P23);
mav24 = ma(C,P24);
A2 = TRIXV2 > TRIXV2[1] and TRIXV2[1] > TRIXV2[2]; #TRIX 하락후 상승(상승반전)이면 true 아니면 false
B2 = MAV21 > MAV23 and MAV23 > MAV24; #5-20-60이평 정배열이면 true 아니면 false
C2 = mav23 == lowest(MAV23,10); #20이평이 10개봉 최저가이면 true 아니면 false
D2 = mav20[5] >= mav21[3]; #5개봉전 3이평이 3개봉전 5이평보다 큼
#조건조합
if A2 and B2 == false and C2 and D2 Then
buy();
# 매도신호
input : TRIXP(8),TRIXsig(3);
input : P0(3),P1(5),P2(10),P3(20),P4(60);
var : TRIXV(0),TRIXS(0);
var : mav0(0),mav1(0),mav2(0),mav3(0),mav4(0);
var : A1(false),B1(false),C1(false);
TRIXV = TRIX(TRIXP);
TRIXS = ema(TRIXV,TRIXSig);
mav0 = ma(c,P0);
mav1 = ma(c,P1);
mav2 = ma(c,P2);
mav3 = ma(c,P3);
mav4 = ma(C,P4);
A1 = TRIXV < TRIXV[1] and TRIXV[1] < TRIXV[2]; #TRIX 하락후 상승(상승반전)이면 true 아니면 false
B1 = mav3 == Highest(MAV3,10); #20이평이 10개봉 최저가이면 true 아니면 false
C1 = mav0[5] < mav1[3]; #5개봉전 3이평이 3개봉전 5이평보다 큼
if A1 and B1 and C1 Then
Sell();
2. 빨간 신호를 매수신호 + 매도 청산 이라고 보고 파란 신호를 매도 + 매수청산으로 볼 경우의 수식을 부탁 드리겠습니다.
즉 빨간 신호 발생 시 이전에 매도 신호가 발생되어 매도 했던 수량을 매도 청산하고 바로 매수 하는 것을 말하며, 해당 수식 조건은 위의 조건으로 부탁 드리겠습니다.
2017-02-02
134
글번호 106449
답변완료
수식문의 드립니다.
안녕하세요
하기 수식 수정 부탁드립니다.
Input : Period(20), MultiD(2);
var : MAv(0),BBup(0),BBdn(0),T(0);
MAv = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
if T <= 0 and C > BBup and C > O Then{
T = 1;
buy("b");
}
if T >= 0 and C < BBdn and C < O Then{
T = -1;
sell("s");
}
#매수추세이고 무포지션이고 직전 청산가격을 상향돌파하면 재매수
if T == 1 and MarketPosition == 0 and crossup(c,ExitPrice(1)) Then
buy("bb");
#매도추세이고 무포지션이고 직전 청산가격을 하향이탈하면 재매도
if T == -1 and MarketPosition == 0 and CrossDown(c,ExitPrice(1)) Then
sell("ss");
1. 가격변동이 심하여 하기 부분을 보정 부탁드립니다.
상기 수식에서 bb 또는 ss로 재매수/재매도 들어갈 때, 수정할 부분이 좀 있습니다.
매수 bb 진입시 볼린져 밴드 이평 아래에서 진입이 발생할 경우 매도로 들어가는 옵션부탁드립니다.
매도 ss 진입시도 마찬가지로 볼린져 밴드 이평 위에서 진입이 발생할 경우 매수로 들어가는
옵션 부탁드립니다.
추가로 아예 bb 진입을 해야 하는데, 볼린져 이평 아래에서 들어가야 한다면
신호를 발생시키지 않는 수식도 부탁드립니다.
ss도 마찬가지 입니다.
input : P(14),BBP(20),dv(2),MAP(60);
input : short(12),long(26),sig(9);
var : ADXV(0),DP(0),DM(0),T(0),BBup(0),BBdn(0),mav(0);
var : MACDV(0),MACDS(0),Bcond(false),Scond(False),bbmd(0),diff(0),cnt(0),count(0);
ADXV = ADX(P);
DP = Diplus(P);
DM = DiMinus(P);
bbmd = ma(c,BBP);
BBup = BollBandUp(BBP,dv);
BBdn = BollBandDown(BBP,dv);
mav = ma(C,MAP);
MACDV = MACD(short,long);
MACDS = ema(MACDV,sig);
diff = C-O;
Bcond = TotalTrades == 0 or (MarketPosition == 0 and BarsSinceExit(1) >= 2) or (MarketPosition == -1 and BarsSinceEntry >= 2);
Scond = TotalTrades == 0 or (MarketPosition == 0 and BarsSinceExit(1) >= 2) or (MarketPosition == 1 and BarsSinceEntry >= 2);
if CrossUp(BBdn,mav) and countif(crossdown(BBdn,mav),1) < 1 and DP < 40 and bcond == true
Then
buy("b1");
if CrossDown(BBup,mav) and countif(CrossUp(BBup,mav),1) < 1 and DM <40 and scond == true
Then
sell("s1");
if MarketPosition == 0 Then{
if MarketPosition(1) == 1 and IsExitName("StopTrailing",1) == true and H > BBdn and macdv > macds
then {
buy("bb",AtStop,C-PriceScale);
}
if MarketPosition(1) == -1 and IsExitName("StopTrailing",1) == true and L < BBup and macdv < macds
then {
sell("ss",AtStop,C+PriceScale);
}
2. 상기 수식의 bb와 ss도 1번과 같은 가격옵션 부탁드립니다.
a. bb 신호가 발생하여 매수 진입시 볼린져 이평 하단에 있으면 매도로 진입,
ss 신호가 발생하여 매도 진입시 볼린져 이평 상단에 있으면 매수로 진입,
b. bb 신호가 발생하여 매수 진입시 볼린져 이평 하단에 있으면 신호 취소.
ss 신호가 발생하여 매도 진입시 볼린져 이평 상단에 있으면 신호 취소.
3.
볼린져 밴드의 상단과 하단의 폭이 50틱 이내에서는
상기의 bb/ss 의 어떠한 신호도 발생하지 않는 수식을 만들 수 있으신지 확인 부탁드립니다.
작아지기 전에 진입한 신호는 예정대로 손절 또는 익절을 진행합니다.
감사합니다.
2017-02-01
97
글번호 106448
답변완료
부탁 드립니다
A봉, B봉, C봉이 순서대로 있을때
[ 조건 1번 ]
A봉은 윗꼬리를 달고 있어야 함
B봉은 시가가 A봉 고점 아래에서 시작해서 장중에 A봉 고점을 돌파 했다가 다시 밀려서 A봉 고점 아래에서 마감
C봉은 B봉의 고점 아래에서 시작해서 장중에 B봉의 고점을 한번도 넘지 못하고 마감
A봉과 B봉의 조건이 만족되면 B봉 위에 빨간★표시
위 조건을 만족하는 과거의 B봉들도 찾아서 B봉 위에 빨간★표시
장중에 실시간으로 만족하여 ★표시 되었다가, 종가 전에 조건이 없어지면 빨간★표시도 없어짐
장중에 실시간으로 C봉이 위의 조건이 만족될때 C봉위에 파란★표시
위 조건을 만족하는 과거의 C봉들도 찾아서 C봉 위에 파란★표시
장중에 실시간으로 만족하여 ★표시 되었다가, 종가 전에 조건이 없어지면 파란★표시도 없어짐
[ 조건 2번 ]
A봉은 아래꼬리를 달고 있어야 함
B봉은 시가가 A봉 저점 위에서 시작해서 장중에 A봉 저점을 붕괴 했다가 다시 반등해서 A봉 저점 위에서 마감
C봉은 B봉의 저점 위에서 시작해서 장중에 B봉의 저점을 한번도 붕괴하지 못하고 마감
A봉과 B봉의 조건이 만족되면 B봉 아래에 빨간★표시
위 조건을 만족하는 과거의 B봉들도 찾아서 B봉 아래에 빨간★표시
장중에 실시간으로 만족하여 ★표시 되었다가, 종가 전에 조건이 없어지면 빨간★표시도 없어짐
장중에 실시간으로 C봉이 위의 조건이 만족될때 C봉 아래에 파란★표시
위 조건을 만족하는 과거의 C봉들도 찾아서 C봉 아래에 파란★표시
장중에 실시간으로 만족하여 ★표시 되었다가, 종가 전에 조건이 없어지면 파란★표시도 없어짐
부탁드립니다
2017-02-02
94
글번호 106447
카카 님에 의해서 삭제되었습니다.
2017-02-01
33
글번호 106446
카카 님에 의해서 삭제되었습니다.
2017-02-01
17
글번호 106445
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2017-02-01
3
글번호 106444
답변완료
수식재문의
지표에 나타나내는 것이 65 135 275인데
50틱 65틱 100틱
이렇게 전부 바꾸고싶습니다. 숫자만 바꾸니 추세선이 엉망으로되서 방법을 모르겠네요
굵기는 두번째정도 굵은선으로 부탁드립니다.
그리고 60틱 라인도하나 추가 부탁드립니다.
수식
input : 텍스트소수점자리수(4);
var : TL1(0),TL2(0),TL3(0),TL4(0);
var : TL5(0),TL6(0),TL7(0),TL8(0);
var : Tx1(0),Tx2(0),Tx3(0),Tx4(0);
var : Tx5(0),Tx6(0),Tx7(0),Tx8(0);
var : Tx11(0),Tx12(0),Tx13(0),Tx14(0);
var : Tx15(0),Tx16(0),Tx17(0),Tx18(0);
if L == DayLow Then{
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
TL2 = TL_New(sdate[1],stime[1],DayLow+PriceScale*65,sdate,stime,DayLow+PriceScale*65);
TL3 = TL_New(sdate[1],stime[1],DayLow+PriceScale*135,sdate,stime,DayLow+PriceScale*135);
TL4 = TL_New(sdate[1],stime[1],DayLow+PriceScale*275,sdate,stime,DayLow+PriceScale*275);
TL_SetExtRight(TL2,true);
TL_SetExtLeft(TL2,true);
TL_SetExtRight(TL3,true);
TL_SetExtLeft(TL3,true);
TL_SetExtRight(TL4,true);
TL_SetExtLeft(TL4,true);
TL_SetColor(TL2,RED);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,RED);
TL_SetSize(TL2,2);
TL_SetSize(TL3,2);
TL_SetSize(TL4,2);
}
if H == DayHigh Then{
TL_Delete(TL6);
TL_Delete(TL7);
TL_Delete(TL8);
TL6 = TL_New(sdate[1],stime[1],DayHigh-PriceScale*65,sdate,stime,DayHigh-PriceScale*65);
TL7 = TL_New(sdate[1],stime[1],DayHigh-PriceScale*135,sdate,stime,DayHigh-PriceScale*135);
TL8 = TL_New(sdate[1],stime[1],DayHigh-PriceScale*275,sdate,stime,DayHigh-PriceScale*275);
TL_SetExtRight(TL6,true);
TL_SetExtLeft(TL6,true);
TL_SetExtRight(TL7,true);
TL_SetExtLeft(TL7,true);
TL_SetExtRight(TL8,true);
TL_SetExtLeft(TL8,true);
TL_SetColor(TL6,BLUE);
TL_SetColor(TL7,BLUE);
TL_SetColor(TL8,BLUE);
TL_SetSize(TL6,2);
TL_SetSize(TL7,2);
TL_SetSize(TL8,2);
}
Text_Delete(Tx2);
Text_Delete(Tx3);
Text_Delete(Tx4);
tx2 = Text_New(sdate,stime,DayLow+PriceScale*65,"당일저점+65틱");
tx3 = Text_New(sdate,stime,DayLow+PriceScale*135,"당일저점+135틱");
tx4 = Text_New(sdate,stime,DayLow+PriceScale*275,"당일저점+275틱");
Text_SetColor(tx2,red);
Text_SetColor(tx3,red);
Text_SetColor(tx4,red);
text_setStyle(tx2,2,1);
text_setStyle(tx3,2,1);
text_setStyle(tx4,2,1);
Text_Delete(Tx12);
Text_Delete(Tx13);
Text_Delete(Tx14);
tx12 = Text_New(sdate,stime,DayHigh-PriceScale*65,"당일고점-65틱");
tx13 = Text_New(sdate,stime,DayHigh-PriceScale*135,"당일고점-135틱");
tx14 = Text_New(sdate,stime,DayHigh-PriceScale*275,"당일고점-275틱");
Text_SetColor(tx12,blue);
Text_SetColor(tx13,blue);
Text_SetColor(tx14,blue);
text_setStyle(tx12,2,1);
text_setStyle(tx13,2,1);
text_setStyle(tx14,2,1);
2017-02-01
103
글번호 106443