커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1467
글번호 230811
답변완료
지표 문의
항상 감사드립니다.
5이평을 띄운 경우 이평선 위에 각도를 글씨로 띄우는 식을 알고 싶습니다.
글자가 많아짐으로 글자 크기도 조절할수 있으면 더 좋구요
2024-01-06
893
글번호 175488
답변완료
수식부탁드립니다.
AAA = crossup(cci(20),0)
&&
crossup(diplus(14),
diminus(14))
&&
v>v(1)*2;
BB= valuewhen(1,AAA,c);
crossup(c,BB)
BB라인돌파 하는
종목 검색>>>에서 검출해 내고 싶습니다. mro 를 아무리 봐도 잘 ㅜ.ㅜ
범위 제한 없이 최근 BB조건 돌파
2024-01-06
837
글번호 175487
푸앵카레 님에 의해서 삭제되었습니다.
2024-01-06
24
글번호 175486
답변완료
ADX, +DI 및 -DI 지표 문의 드립니다
안녕하세요.
항상 도움을 받고 있습니다.
ADX, +DI 및 -DI 지표 관련해서 아래와 같은 예스랭귀지 수식을 찾았습니다.
이 수식을 바탕으로 자바스크립트로 변환해 보았습니다만,
ADX가 잘 구현되었는지 궁금합니다.
시스템식에 ADX >30으로 해 놨는데, 신호가 발생 하는게 하나도 없네요.
자바스크립트 수식 검토 부탁합니다.
==============예스랭귀지===================
input : Period(14);
var : PDI(0),MDI(0),ADXv(0);
PDI = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),Period)/
ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100;
MDI = ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),Period)/
ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100;
ADXV = ema(abs(PDI-MDI)/(PDI+MDI),period)*100;
plot1(ADXv);
plot2(PDI);
plot3(MDI);
==============자바스크립트===================
var DMplus, DMminus, TR, ATR, DMplus_avg, DMminus_avg, PDI, MDI, DX, ADX, PeriodADX, PeriodDI;
// ADX(Average Directional Movement Index)
var TR1 = [];
var TR2 = [];
var TR3 = [];
var TR = [];
var DMplus = [];
var DMminus = [];
var PeriodADX = 11;
var PeriodDI = 28;
var DMplusCnt = 0;
var DMminusCnt = 0;
for (var i = PeriodADX; i >= 0; i--)
{
TR1[i] = MKT.High(i+1) - MKT.Low(i+1);
TR2[i] = Math.abs(MKT.Close(i+2) - MKT.High(i+1));
TR3[i] = Math.abs(MKT.Close(i+2) - MKT.Low(i+1));
TR[i] = Math.max(TR1[i], TR2[i], TR3[i]);
if(((MKT.High(i+1) > MKT.High(i+2)) && (MKT.High(i+1) - MKT.High(i+2)) > (MKT.Low(i+2) - MKT.Low(i+1))))
{
DMplus[i] = (MKT.High(i+1) - MKT.High(i+2));
}
else DMplus[i] = 0;
if(((MKT.Low(i+2) > MKT.Low(i+1)) && (MKT.High(i+1) - MKT.High(i+2)) < (MKT.Low(i+2) - MKT.Low(i+1))))
{
DMminus[i] = (MKT.Low(i+2) - MKT.Low(i+1));
}
else DMminus[i] = 0;
}
var ATR = 0;
for (var i = 0; i < TR.length; i++) ATR += TR[i];
ATR = ATR/(TR.length);
var DMplus_avg = 0;
for (var i = 0; i < DMplus.length; i++) DMplus_avg += DMplus[i];
DMplus_avg = DMplus_avg/(DMplus.length);
var DMminus_avg = 0;
for (var i = 0; i < DMminus.length; i++) DMminus_avg += DMminus[i];
DMminus_avg = DMminus_avg/(DMminus.length);
PDI = DMplus_avg / ATR * 100;
MDI = DMminus_avg / ATR * 100;
DX = Math.abs(PDI-MDI) / (PDI+MDI);
ADX = DX / (PeriodADX+1) * 100;
2024-01-05
1105
글번호 175485
답변완료
수식 부탁드립니다.
1. 기준봉: 1봉전기준으로 최근 5봉중 음봉이 4개이상 발생되면서 연속3회음봉발생되어야 하며, 1봉전은 음봉이고
0봉전은 양봉인 경우의 이 양봉을 기준봉이라고 설정함
2. 이 기준봉이 발생된후에 계속적으로 양봉이 나오던 바로 음봉이 나오던간에 음봉이 출현하다가 양봉("음양패턴")이 처음 출현시의
매수신호수식. 단 기준봉의 양봉시가보다 음양패턴의 양봉시가가 낮아야 한다.
3. 음양패턴이 나왔지만 이때의 양봉시가가 기준봉 양봉의 시가보다 높은 경우에는
무시되다가 낮은 음양패턴이 나올때에 매수신호수식이 적용된다.
*부연설명-기준봉 발생후 첫 음양패턴의 양봉시가는 기준봉 양봉의 시가보다 낮아야 하고
첫 음양패턴이 만족조건이 안되면 두번째의 음양패턴의 양봉시가는 기준봉 양봉시가보다
낮거나 첫음양패턴의 양봉시가보다 낮으면 된다. 세번째이후 음양패턴도 동일적용함
4. 2와 3의 내용으로 신호수식이 발생 또는 없다가 1번조건의 기준봉이 다시 발생되면
이에따라 다시 2와3의 조건이 적용되어야 한다. 여기서 새롭게 발생된 1번조건의 기준봉 양봉이 2와 3의 조건을 만족한다면 매수신호가 주어져야 하면서 동시에 새로 시작하는 기준봉이 되어야 한다는 의미임
2024-01-05
1044
글번호 175475
답변완료
array
안녕하세요?
알려주신 수식을 아래처럼 평균값을 출력하면 '0' 입니다
PLOT1(mav, "O",Blue);
PLOT2(mav*1000, "O",red);
PLOT3(mav*10000, "O",Black);
고맙습니다~
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : array
>
안녕하세요
예스스탁입니다.
input : N(20);
input : StartTime(100000),EndTime(120000);
var : cnt(0),Op(0),HH(0),LL(0),Tcond(False);
var : sum(0),mav(0),SumSqrt(0),stdv(0);
Array : HLR[50](-1);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
{
Tcond = False;
}
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
Op = O;
HH = H;
LL = L;
For cnt = 49 DownTo 1
{
HLR[cnt] = HLR[cnt-1];
}
}
if Tcond == true Then
{
if HH > 0 and H > HH Then
HH = H;
if LL > 0 and L < LL Then
LL = L;
HLR[0] = (HH-LL)/Op;
}
if HLR[N] >= 0 Then
{
#평균
sum = 0;
for cnt = 1 to N
{
sum = sum + HLR[cnt];
}
mav = sum/N;
#표준편차
SumSqrt = 0;
For cnt = 1 To N
{
SumSqrt = SumSqrt + (HLR[cnt] - mav)^2;
}
Stdv = SquareRoot(SumSqrt / N);
}
즐거운 하루되세요
> 코퍼 님이 쓴 글입니다.
> 제목 : array
>
안녕하세요?
혼자 응용하려니 어렵습니다
1. 5분봉 차트에서 매일 10시~12 중 발생하는 값
Op : 10시 시가
H : 최고가
L : 최저가
HLR : (H - L)/Op
2. 오늘을 제외한 어제부터 과거로 20일간 어레이에 HLR을 저장하고 어레이를 이용해서 평균과 표준편차를 구하고 싶습니다.
새해 복 많이 받으시고 고맙습니다!
2024-01-05
902
글번호 175473
목마와숙녀 님에 의해서 삭제되었습니다.
2024-01-05
2
글번호 175464
답변완료
시스템식 부탁드립니다.
항상 도움 주셔서 감사합니다.
종목 : 해외선물
요청사항 : 아래식은 매수인 경우 가격이 하락 할때마다
추가 매수가 들어가는 로직입니다.
추가 매수가 들어갈 때마다 해당 매수가격을
수평라인으로 표시하고 싶습니다.
청산되면 매수 라인을 지우고 싶습니다.
시스템식 수정 부탁드립니다.
input : Pst(1); // 매수,매도
input : gap(10), pt(20), multi(0.7);
var : vol(0),v1(0),T(0);
value1 = gap/PointValue; //최초 진입간격
value2 = pt/PointValue;
if pst == 1 Then
{
if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then
{
vol = 1;
Buy("b",OnClose,Def,vol);
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
v1 = CurrentContracts-CurrentContracts[1];
if MaxEntries == 1 Then
T = value1;
Else
T = T+Round(T*0.5,0);
MessageLog("%.2f",T);
}
vol = Round(v1+v1*multi,0);
Buy("bb",AtLimit,EntryPrice(0)-PriceScale*T,vol);
ExitLong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2);
}
}
감사합니다.
2024-01-05
998
글번호 175462
답변완료
수식부탁드려요
var : dm(0);
if sDate != sDate[1] Then
{
dM = 0;
}
dm = dm+m/v;
분봉상에서 전 봉의 dm 값을 알고싶어요. 한봉전의 dm 값구하는 수식 부탁드려요
2024-01-05
882
글번호 175460