커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1399
글번호 230811
답변완료
문의드립니다
주식 5분차트에서
240일신고가(52주신고가) 지표를 만들고싶습니다
2024-06-13
1458
글번호 180582
답변완료
V 가 V(1)+3 보다 크다는 함수가 무슨 뜻인가요.l
V 가 V(1)+3 보다 크다는 것이 무슨 뜻인가요. V 가 V(1) 보다 크다는 뜻은 알겠는데 V 가 V(1)+3 보다 크다는 것은 무슨 뜻인지
설명해주는 데가 없습니다.
설명해 주시면 참으로 감사하겠습니다.
2024-06-13
1261
글번호 180581
답변완료
문의 드립니다.
input : periodK(500),smoothK(200),length(2),percent(0.5),showsupport(false);
var : src1(0),avalpha1(0),avud11(0),avdd11(0),avUD1(0),avDD1(0),avCMO1(0);
var : fk(0),kvalpha1(0),kvud11(0),kvdd11(0),kvUD1(0),kvDD1(0),kvCMO1(0),k(0),src(0);
src1 = close;
avalpha1 = 2/(length+1);
avud11 = iff(src1>src1[1] , src1-src1[1] , 0);
avdd11 = iff(src1<src1[1] , src1[1]-src1 , 0);
avUD1 = AccumN(avud11,9);
avDD1 = AccumN(avdd11,9);
avCMO1 = iff(IsNan((avUD1-avDD1)/(avUD1+avDD1))==true,0,(avUD1-avDD1)/(avUD1+avDD1));
VAR1 = iff(IsNan(avalpha1*abs(avCMO1)*src1) ==true,0,avalpha1*abs(avCMO1)*src1)+(1-avalpha1*abs(avCMO1))*iff(IsNan(VAR1[1])==true,0,var1[1]);
fk = FastK(PeriodK);
kvalpha1 = 2/(length+1);
kvud11 = iff(fk>fk[1] , fk-fk[1] , 0);
kvdd11 = iff(fk<fk[1] , fk[1]-fk , 0);
kvUD1 = AccumN(kvud11,9);
kvDD1 = AccumN(kvdd11,9);
kvCMO1 = iff(IsNan((kvUD1-kvDD1)/(kvUD1+kvDD1))==true,0,(kvUD1-kvDD1)/(kvUD1+kvDD1));
k = iff(IsNan(kvalpha1*abs(kvCMO1)*fk) ==true,0,kvalpha1*abs(kvCMO1)*fk)+(1-kvalpha1*abs(kvCMO1))*iff(IsNan(k[1])==true,0,k[1]);
src=k+1000;
var : valpha(0),vud1(0),vdd1(0),vUD(0),vDD(0),vCMO(0),MAvg(0);
var : fark(0),longStop(0),longStopPrev(0),shortStop(0),shortStopPrev(0),dir(0),MT(0);
var : OTT(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))== true,0,(vUD-vDD)/(vUD+vDD));
MAvg = iff(IsNan(valpha*abs(vCMO)*src),0,valpha*abs(vCMO)*src)+(1-valpha*abs(vCMO))*iff(IsNaN(MAvg[1]),0,MAvg[1]);
fark=MAvg*percent*0.01;
longStop = MAvg - fark;
longStopPrev = iff(IsNan(longStop[1])== true, longStop,longStop[1]);
longStop = iff(MAvg > longStopPrev , max(longStop, longStopPrev) , longStop);
shortStop = MAvg + fark;
shortStopPrev = iff(IsNan(shortStop[1])== true, shortStop,shortStop[1]);
shortStop = iff(MAvg < shortStopPrev , min(shortStop, shortStopPrev) , shortStop);
dir = 1;
dir = iff(isnan(dir[1]) ==true,dir,dir[1]);
dir = iff(dir == -1 and MAvg > shortStopPrev , 1 ,IFf(dir == 1 and MAvg < longStopPrev , -1 , dir));
MT = iff(dir==1 , longStop , shortStop);
OTT = iff(MAvg>MT , MT*(200+percent)/200 , MT*(200-percent)/200);
plot1(src,"%K");
if showsupport Then
plot2(MAvg,"Support Line");
plot3(IFf(IsNan(OTT[2])==true,0,OTT[2]),"OTT");
PlotBaseLine1(1080, "Upper Band");
PlotBaseLine2(1020, "Lower Band");
위 수식에서 k선이 ott선을 교차하면 신호가 나오도록 해주세요.
2024-06-13
1335
글번호 180580
답변완료
이동평균선의 표시
15분 챠트에서 240분봉의 50일 이동평균선을 보고 싶습니다
해외선물이 24시간 매매되는 것이아니라 1시간 휴식시간이 있어서...문제가 있을 것 같은데요
240분봉의 50일 이동평균선을 15분 차트에서 볼려면 몇일 이동평균선을 사용해야 할까요?
2024-06-13
957
글번호 180579
답변완료
문의드립니다.
안녕하세요
하기수식의 선을 최근 발생한 2개선만 우측으로 확장하여 보고싶습니다.
수고에 항상 감사드립니다.
input:봉수(1);
if (o<c)[1]then
(value1 = highest(h,봉수));
if value1 > 0 Then
plot1 (value1);
2024-06-12
894
글번호 180577
파워 님에 의해서 삭제되었습니다.
2024-06-12
875
글번호 180576
답변완료
수식 수정 의뢰 드립니다.
안녕하세요!
아래는 자동 행사가가 표시되는 수식입니다.
2.5 간격의 3가격 행사가처럼 행사가격 사이마다 자동으로 1.25의 중간값 선들이 같은 조건으로 추가되어 자동 표시되게 끔 수식 수정을 요청 드립니다.
감사합니다.
var : pv(0),r1(0),s1(0);
var1 = Floor(c/2.5);
var2 = var1*2.5;
var3 = c-var2;
if var3 >= 1.25 Then
pv = var2+2.5;
Else
pv = var2;
r1 = pv+2.5;
s1 = pv-2.5;
plot1(pv);
plot2(r1);
plot3(s1);
-----------------------------------------------
아래는 삼각가중이평 수식인데 수식에 오류가 있는 것 같습니다.
확인 부탁 드립니다.
input:Period(20),interval(2);
var : P1(0),P2(0),P3(0),P4(0),P5(0),P6(0),P7(0),P8(0),P9(0);
P1 = Period;
P2 = period+(interval*1);
P3 = period+(interval*2);
P4 = period+(interval*3);
P5 = period+(interval*4);
P6 = period+(interval*5);
P7 = period+(interval*6);
P8 = period+(interval*7);
P9 = period+(interval*8);
var1 =iff(FracPortion(p1*0.5)==0,ma(ma(c,p1*0.5),(p1*0.5)+1),ma(ma(c,Ceiling(p1*0.5)),Ceiling(p1*0.5)));
var2 =iff(FracPortion(p2*0.5)==0,ma(ma(c,p2*0.5),(p1*0.5)+1),ma(ma(c,Ceiling(p2*0.5)),Ceiling(p2*0.5)));
var3 =iff(FracPortion(p3*0.5)==0,ma(ma(c,p3*0.5),(p1*0.5)+1),ma(ma(c,Ceiling(p3*0.5)),Ceiling(p3*0.5)));
var4 =iff(FracPortion(p4*0.5)==0,ma(ma(c,p4*0.5),(p1*0.5)+1),ma(ma(c,Ceiling(p4*0.5)),Ceiling(p4*0.5)));
var5 =iff(FracPortion(p5*0.5)==0,ma(ma(c,p5*0.5),(p1*0.5)+1),ma(ma(c,Ceiling(p5*0.5)),Ceiling(p5*0.5)));
var6 =iff(FracPortion(p6*0.5)==0,ma(ma(c,p6*0.5),(p1*0.5)+1),ma(ma(c,Ceiling(p6*0.5)),Ceiling(p6*0.5)));
var7 =iff(FracPortion(p7*0.5)==0,ma(ma(c,p7*0.5),(p1*0.5)+1),ma(ma(c,Ceiling(p7*0.5)),Ceiling(p7*0.5)));
var8 =iff(FracPortion(p8*0.5)==0,ma(ma(c,p8*0.5),(p1*0.5)+1),ma(ma(c,Ceiling(p8*0.5)),Ceiling(p8*0.5)));
var9 =iff(FracPortion(p9*0.5)==0,ma(ma(c,p9*0.5),(p1*0.5)+1),ma(ma(c,Ceiling(p9*0.5)),Ceiling(p9*0.5)));
plot1(var1);
plot2(var2);
plot3(var3);
plot4(var4);
plot5(var5);
plot6(var6);
plot7(var7);
plot8(var8);
plot9(var9);
2024-06-12
977
글번호 180575
답변완료
문의드립니다
수고하십니다.
시스템식부탁드립니다.
1. data1 rsi bull 매수식
2. data2 rsi bull 매수신호시
data1 매도식
더운날씨 건강유의하세요.
2024-06-12
1028
글번호 180574
답변완료
문의 드립니다.
안녕하세요.
다음은 VPVR(Visible Range Volume Profile)지표중 POC(Point of Control) 라인만 구현하고 싶어서 만들었는데
계속 오류가 납니다. 수정 부탁드립니다.
input: rangeStart(1), rangeEnd(100), priceStep(1), priceRange(100);
var: priceVolumeSum(0), maxVolume(0), POC(0);
var: i(0), j(0), tempPrice(0), tempVol(0), tempIdx(0);
array: volumeProfile ; // 배열 크기를 101로 설정하고 초기값을 0으로 설정
// 볼륨 프로파일을 초기화
for i = 0 to 100 begin
volumeProfile[i] = 0;
end;
// 범위 내 각 봉에 대해 볼륨 프로파일을 계산
for i = rangeStart to rangeEnd begin
tempPrice = Close[i];
tempVol = Volume[i];
tempIdx = int((tempPrice - Low[rangeEnd]) / priceStep);
if tempIdx >= 0 and tempIdx <= 100 then
volumeProfile[tempIdx] = volumeProfile[tempIdx] + tempVol;
end;
end;
// 최대 거래량이 발생한 가격(POC)을 찾음
for j = 0 to 100 begin
if volumeProfile[j] > maxVolume then begin
maxVolume = volumeProfile[j];
POC = Low[rangeEnd] + j * priceStep;
end;
end;
// POC를 차트에 라인으로 표시
if POC != 0 then
Plot("POC Line", POC, Gray, 2);
end;
2024-06-12
1114
글번호 180573