커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
7680
글번호 230811
지표
답변완료

수식재문의

수식 재문의 1 : BPDL Trend Filter - Raw 지표 수식을 바탕으로 아래의 수식을 문의한 바 있습니다. BPDL Trend Filter - Raw 지표의 값이 직전값 대비 n값 이상 상승하면 **색을 n값 이상 하락하면 %%색을 n값 이내로 횡보하면 직전 봉 색깔을 유지 하는 지표를 얻고 싶습니다. 또, 그 지표에 대한 이동평균선 n1, n2, n3을 구하여 추가로 삽입하고 싶습니다. 그리하여 받은 수식이 아래와 같은데, 강조식이더군요. 제가 얻고 싶은 수식은 강조식이 아니라 BPDL Trend Filter - Raw 지표의 색깔이 위의 조건에 따라 바뀌고 그 지표에 추가로 이평을 더 삽입하고 싶다는 뜻이었습니다. 제, 설명이 충분치 못하였나 봅니다. 다시 한번 부탁드리겠습니다. 아래 : Inputs: Length(14),n(1); value1 = C - C[1]; value2 = Power(Ma(Power(value1,2), Length)+1, 0.5); value3 = Power(Power(value1,2)+1, 0.5); value4 = Iff(Ma(value1, Length) > 0,1 * value2,-1 * value2); value5 = IFF(value1 > 0 ,1 * value3,-1 * value3); var1 = accum(value4 + value5);#BPDL Trend Filter - Raw if var1 >= var1[1]+n Then var2 = 1; if var1 <= var1[1]-n Then var2 = -1; if var2 == 1 Then PlotPaintBar(c,O,"1",RED); if var2 == -1 Then PlotPaintBar(c,O,"1",blue); \\\\\\\\\\\\\\\\\\\\\\\\ 수식 재문의 2 : 쿠프먼필터와 지수이동평균의 골드데드를 이용한 신호와 BPDL Trend Filter - Raw지표의 상승하락을 이용한 신호를 합친 시스템을 아래와 같이 요청드린 바 있습니다. ㅁ. 쿠프먼필터 시스템 수식 ㄱ 과 BPDL Trend Filter - Raw지표 시스템 수식 ㄹ을 하나로 합치고 싶습니다. 즉, ㄱ의 조건과 ㄹ의 조건을 동시에 만족할 때에만 매수,매도 신호를 뿌려주는 것입니다. 그리하여 아래2의 지표를 얻었으나, ㄱ의 조건과 ㄹ의 조건을 같은 봉에서 동시에 만족하는 봉에서만 신호가 나오네요. 제가 말씀 얻고 싶은 수식은, 가령, ㄱ의 조건과 ㄹ의 조건이 동시에 (같은 봉에서) 만족되지 않더라도 ㄱ(또는 ㄹ)의 조건이 만족된 상태에서 시간이 경과하여 이후의 다른 봉에서라도 ㄹ(또는 ㄱ)의 조건이 만족된다면 거기에 신호를 뿌려주고 싶다는 뜻입니다. 제, 설명이 충분치 못하였나 봅니다. 다시 한번 부탁드리겠습니다. 아래 2 : Inputs: Length(14),n(1); input: period(10),nn(20); var: efratio(0), smooth(1), fastend(0.666), slowend(0.0645), AMA(0), diff(0), signal(0), noise(0); value1 = C - C[1]; value2 = Power(Ma(Power(value1,2), Length)+1, 0.5); value3 = Power(Power(value1,2)+1, 0.5); value4 = Iff(Ma(value1, Length) > 0,1 * value2,-1 * value2); value5 = IFF(value1 > 0 ,1 * value3,-1 * value3); var1 = accum(value4 + value5);#BPDL Trend Filter - Raw efratio = 1; diff = absvalue(C - C[1]); if currentbar > period then { signal = absvalue(C - C[period]); noise = accumN(diff,period); if noise <> 0 then efratio = signal / noise; smooth = power(efratio*(fastend - slowend) + slowend,2); AMA = AMA[1] + smooth*(C - AMA[1]); } else AMA = C; var11 = ema(c,nn); if crossup(var11,ama) and var1 >= var1[1]+n Then buy(); if CrossDown(var11,ama) and var1 <= var1[1]-n Then sell();
프로필 이미지
흑수돌
2012-02-13
622
글번호 47632
지표
답변완료

문의드립니다.

안녕하세요. 종목 일봉차트에서 var1 = accumN(upvol-downvol,10); // 최근10일간의 업다운을 합산한 값 var2 == lowest(var1,7); // 최근 7일간의 최저 var1값 if var2[15] == lowest(var1[15],100) Then find(1); 위 식으로 검색하면 결과값이 좀 이상하게 나옵니다. 위 식이 잘못되었다면 그 이유를 알려 주시면 고맙겠습니다. 수고하세요.
프로필 이미지
골드드래곤
2012-02-11
370
글번호 47631
검색
답변완료

첫봉이 양봉일때 조건진행

밑에 수식에 조건 하나를 추가 하고 싶습니다. 당일 5분봉 첫봉이 양봉이면 buy 만 하고, 당일 5분봉 첫봉이 음봉이면 sell 만 하는 식을 만들고 싶습니다. var: avgval1(0) ; avgval1 = ma(c,5); If Highest(High,10) < avgval1 Then Sell("p"); if CrossUp(c, avgval1) then ExitShort("pu"); if lowest(low,10) > avgval1 Then buy("c"); if crossdown(c, avgval1) the ExitLong("ca"); 메일로 부탁드립니다. ddaseo@naver.com
프로필 이미지
스카시
2012-02-11
446
글번호 47630
시스템

aaace 님에 의해서 삭제되었습니다.

프로필 이미지
aaace
2012-02-11
122
글번호 47629
시스템
답변완료

시스템식 질문입니다

1분봉으로 데이타1 (유동성 풍부해서 090000,090100,090200....다 나타남 ) 데이타2 (유동성 풍부해서 090000,090100,090200....다 나타남 ) 데이타3 (유동성 부족해서 첫봉이 090000이 안나타 날 수있음 ) 이 있고 하루에 한번 매매 입니다 데이타3의 첫봉 종가에 따라 + 면 매수 - 면 매도 입니다 여기서 데이타3의 첫봉이 90000,90100,90200....... 언제 나타날지 모릅니다 즉 9시 장 시작과 첫봉이 나오면 바로 매수/매도 신호가 나오지만 데이타3의 첫봉이 2분에 나올수 있습니다. 감사합니다
프로필 이미지
파인애플
2012-02-11
350
글번호 47628
시스템
답변완료

수식부탁합니다

일목균형표 전환선, 기준선,선행스펜1.2를 (외부변수로작성해주세요.) 구름대 = (선행스펜1,선행스펜2)는 25일전이아니라 현주가에표시) 1) 선행스팬1이 선행스펜2를 상향돌파하면 매수 선행스팬1이 선행스펜2를 하향돌파하면 매수 청산 2) 선행스팬1이 선행스펜2를 상향돌파하면 매수 선행스팬1이 선행스펜2를 하향돌파하면 매수 청산 선행스팬1이 선행스펜2를 하향돌파하면 매도 선행스팬1이 선행스펜2를 상향돌파하면 매도 청산
프로필 이미지
태조산
2012-02-10
351
글번호 47627
시스템
답변완료

시스템식 부탁드립니다.

이격도 Period 20, LPercent(99.5) 일때(첫번째 봉) 다음봉이(두번째 봉) 종가가 양봉이면 매수이고요 다음봉(세번째 봉)에 종가매도입니다. 손절은 -15pip입니다. 그리고 하루에 1회거래만 제한두고싶습니다.
프로필 이미지
심리도박사
2012-02-10
356
글번호 47626
시스템
답변완료

수식 문의 드립니다.

아래 수식을 야간선물에서 사용할 수 있도록 수정부탁드립니다. 밤 12시가 되면서 아래 수식이 제대로 반영이 안되는 것 같습니다. var : cond1(false),cond2(false); Var1=dayhigh(1)-daylow(1); Cond1= sdate==exitdate(1) And MarketPosition(1)==1; Cond2= sdate==exitdate(1) And marketposition(1)==-1;
프로필 이미지
무명
2012-02-10
367
글번호 47620
시스템
답변완료

이상합니다------

//Input:length1(65),높이조절(0.05),N(15),변동율(0.06),이평(4); //input :최소익틱(2),손절틱(9), 익절틱(10),눌림틱(3),장기전봉차(0.006); Input:length1(65),높이조절(0.05),N(15),변동율(0.06),이평(4); input :최소익틱(2),손절틱(9), 익절틱(10),눌림틱(3),장기전봉차(0.006); Var:당일손익(1000000); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0); var:TEMA71(0),TEMA81(0),Ep(0),T1(0),T2(0),T3(0),TEMA82(0); var:장기봉기간(1),단기봉기간(4); Var:추2(1),추4(1.01),추10(0.8),추20(0.5),추26(0.23),추30(0.2),추35(0.2) ,추45(0.2),추55(0.2),추65(0.2),추75(0.2),추90(0.2); var : cnt(0),가격(0),매수매도(0); //최고저테마값 시작******** if dayindex+1 < 단기봉기간 Then{ var71 = DayHigh; var72 = DayLow; } Else{ var71 = highest(H,단기봉기간); var72 = Lowest(L,단기봉기간); } value71 = (var71 - var72)/2+var72; if dayindex+1 < 장기봉기간 Then{ var81 = DayHigh; var82 = DayLow; } Else{ var81 = highest(H,장기봉기간); var82 = Lowest(L,장기봉기간); } value81 = (var81 - var82)/2+var82; TEMA71 = (3 * Ema(value71,LENGTH1)) - (3 * Ema(Ema(value71,LENGTH1),LENGTH1)) + (Ema(Ema(Ema(value71,LENGTH1),LENGTH1),LENGTH1)); Ep = 2/(LENGTH1+1); if dayindex == 0 Then T1 = value81; Else T1 = value81*EP + T1[1] * (1-EP); if dayindex <= 1 Then T2 = T1; Else T2 = T1*EP + T2[1] * (1-EP); if dayindex <= 2 Then T3 = T2; Else T3 = T2*EP + T3[1] * (1-EP); TEMA82 = (3 * T1) - (3 * T2) + (T3); //최고저테마값 끝********************************************* if sdate != sdate[1] Then Condition1 = false; //진입라인설정시작--------------------------------------------------- if ( highest(H,N)-lowest(L,N)) <= C*변동율 Then{ Condition1 = true; var8=DayIndex; if TEMA82 > TEMA82[1] Then{ var1 = highest(H-높이조절,N); var2 = lowest(L-높이조절,N); } If TEMA82 < TEMA82[1] Then{ var1 = highest(H+높이조절,N); var2 = lowest(L+높이조절,N); } } /*if Condition1 == False Then{ value1 = max(var65,var66); value2 = min(var65,var66); } */ /* If Condition1 == true Then{ value1 = var1; value2 = var2; }*/ //------------연결문 if TEMA82 > TEMA82[1]+장기전봉차 Then 가격 = var1; if TEMA82 < TEMA82[1]-장기전봉차 Then 가격 = var2; if TEMA82 < TEMA82[1]-장기전봉차 Then 매수매도 = -1; if TEMA82 > TEMA82[1]+장기전봉차 Then 매수매도 = 1; //------------연결문 if(countif(C >=var1,1) == 1) and (countif (TEMA82 > TEMA82[1]+장기전봉차,1) == 1) Then plot1(H+0.05); if(countif(C <=var2,1) == 1) and (countif (TEMA82 < TEMA82[1]-장기전봉차,1) == 1) Then plot2(l-0.05); plot4(TEMA82,"장기테마등락",iff(tema82>tema82[1]+장기전봉차,red,iff(tema82<tema82[1]-장기전봉차,BLUE,WHITE))); /* var : Dir(0); if(countif(C >=var1,1) == 1) and (countif (TEMA82 > TEMA82[1]+장기전봉차,1) == 1) Then dir = 1; if(countif(C <=var2,1) == 1) and (countif (TEMA82 < TEMA82[1]-장기전봉차,1) == 1) Then Dir = -1; if dir == 1 and dir[1] != 1 Then plot1(H+0.05); if dir == -1 and dir[1] != -1 Then plot2(l-0.05); */ /* var : Dir(0),D1(0),D2(0); if(countif(C >=var1,1) == 1) and (countif (TEMA82 > TEMA82[1]+장기전봉차,1) == 1) Then dir = 1; if(countif(C <=var2,1) == 1) and (countif (TEMA82 < TEMA82[1]-장기전봉차,1) == 1) Then Dir = -1; if dir == 1 and dir[1] != 1 Then{ plot1(H+0.05); D1 = 0; } if Dir == 1 and Dir[1] == 1 Then{ D1 = D1+1; if (D1)%10 == 0 Then plot1(H+0.05); } if dir == -1 and dir[1] != -1 Then{ plot2(l-0.05); D2 = 0; } if Dir == -1 and Dir[1] == -1 Then{ D2 = D2+1; if (D2)%10 == 0 Then plot2(l-0.05); } plot4(TEMA82,"장기테마등락",iff(tema82>tema82[1]+장기전봉차,red,iff(tema82<tema82[1]-장기전봉차,BLUE,WHITE))); */ =========================점이 다나오는식 끝========================== =========================점이 10봉마다 다나오는식 =================== //Input:length1(65),높이조절(0.05),N(15),변동율(0.06),이평(4); //input :최소익틱(2),손절틱(9), 익절틱(10),눌림틱(3),장기전봉차(0.006); Input:length1(65),높이조절(0.05),N(15),변동율(0.06),이평(4); input :최소익틱(2),손절틱(9), 익절틱(10),눌림틱(3),장기전봉차(0.006); Var:당일손익(1000000); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0); var:TEMA71(0),TEMA81(0),Ep(0),T1(0),T2(0),T3(0),TEMA82(0); var:장기봉기간(1),단기봉기간(4); Var:추2(1),추4(1.01),추10(0.8),추20(0.5),추26(0.23),추30(0.2),추35(0.2) ,추45(0.2),추55(0.2),추65(0.2),추75(0.2),추90(0.2); var : cnt(0),가격(0),매수매도(0); //최고저테마값 시작******** if dayindex+1 < 단기봉기간 Then{ var71 = DayHigh; var72 = DayLow; } Else{ var71 = highest(H,단기봉기간); var72 = Lowest(L,단기봉기간); } value71 = (var71 - var72)/2+var72; if dayindex+1 < 장기봉기간 Then{ var81 = DayHigh; var82 = DayLow; } Else{ var81 = highest(H,장기봉기간); var82 = Lowest(L,장기봉기간); } value81 = (var81 - var82)/2+var82; TEMA71 = (3 * Ema(value71,LENGTH1)) - (3 * Ema(Ema(value71,LENGTH1),LENGTH1)) + (Ema(Ema(Ema(value71,LENGTH1),LENGTH1),LENGTH1)); Ep = 2/(LENGTH1+1); if dayindex == 0 Then T1 = value81; Else T1 = value81*EP + T1[1] * (1-EP); if dayindex <= 1 Then T2 = T1; Else T2 = T1*EP + T2[1] * (1-EP); if dayindex <= 2 Then T3 = T2; Else T3 = T2*EP + T3[1] * (1-EP); TEMA82 = (3 * T1) - (3 * T2) + (T3); //최고저테마값 끝********************************************* if sdate != sdate[1] Then Condition1 = false; //진입라인설정시작--------------------------------------------------- if ( highest(H,N)-lowest(L,N)) <= C*변동율 Then{ Condition1 = true; var8=DayIndex; if TEMA82 > TEMA82[1] Then{ var1 = highest(H-높이조절,N); var2 = lowest(L-높이조절,N); } If TEMA82 < TEMA82[1] Then{ var1 = highest(H+높이조절,N); var2 = lowest(L+높이조절,N); } } /*if Condition1 == False Then{ value1 = max(var65,var66); value2 = min(var65,var66); } */ /* If Condition1 == true Then{ value1 = var1; value2 = var2; }*/ //------------연결문 if TEMA82 > TEMA82[1]+장기전봉차 Then 가격 = var1; if TEMA82 < TEMA82[1]-장기전봉차 Then 가격 = var2; if TEMA82 < TEMA82[1]-장기전봉차 Then 매수매도 = -1; if TEMA82 > TEMA82[1]+장기전봉차 Then 매수매도 = 1; //------------연결문 /* if(countif(C >=var1,1) == 1) and (countif (TEMA82 > TEMA82[1]+장기전봉차,1) == 1) Then plot1(H+0.05); if(countif(C <=var2,1) == 1) and (countif (TEMA82 < TEMA82[1]-장기전봉차,1) == 1) Then plot2(l-0.05); plot4(TEMA82,"장기테마등락",iff(tema82>tema82[1]+장기전봉차,red,iff(tema82<tema82[1]-장기전봉차,BLUE,WHITE))); */ /* var : Dir(0); if(countif(C >=var1,1) == 1) and (countif (TEMA82 > TEMA82[1]+장기전봉차,1) == 1) Then dir = 1; if(countif(C <=var2,1) == 1) and (countif (TEMA82 < TEMA82[1]-장기전봉차,1) == 1) Then Dir = -1; if dir == 1 and dir[1] != 1 Then plot1(H+0.05); if dir == -1 and dir[1] != -1 Then plot2(l-0.05); */ var : Dir(0),D1(0),D2(0); if(countif(C >=var1,1) == 1) and (countif (TEMA82 > TEMA82[1]+장기전봉차,1) == 1) Then dir = 1; if(countif(C <=var2,1) == 1) and (countif (TEMA82 < TEMA82[1]-장기전봉차,1) == 1) Then Dir = -1; if dir == 1 and dir[1] != 1 Then{ plot1(H+0.05); D1 = 0; } if Dir == 1 and Dir[1] == 1 Then{ D1 = D1+1; if (D1)%10 == 0 Then plot1(H+0.05); } if dir == -1 and dir[1] != -1 Then{ plot2(l-0.05); D2 = 0; } if Dir == -1 and Dir[1] == -1 Then{ D2 = D2+1; if (D2)%10 == 0 Then plot2(l-0.05); } plot4(TEMA82,"장기테마등락",iff(tema82>tema82[1]+장기전봉차,red,iff(tema82<tema82[1]-장기전봉차,BLUE,WHITE))); 위식 위에것은 점을 모두 찍었구요 아래식은 10봉에 한번 찍었는데 dir이 +1,-1 이 아닌자리에 점찍은것 같아요 첨부&#54719;읍니다 부탁드립니다
프로필 이미지
leekss1
2012-02-10
503
글번호 47619
지표