커뮤니티

예스랭귀지 Q&A

글쓰기

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

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

도움 부탁드립니다

안녕하세요 늘 도움주셔서 감사합니다. 아래 수식좀 봐주세요 검증은 되는데 화면에는 나오지 않고 있습니다. 부탁드립니다. Input : Length1(3),Length2(16),Length3(60); Var : TLen1(0),TLen2(0),TLen3(0),Tma1(0),Tma2(0),Tma3(0); TLen1 = Ceiling((Length1 + 1) * .5); TLen2 = Ceiling((Length2 + 1) * .5); TLen3 = Ceiling((Length3 + 1) * .5); Tma1 = ma(ma(C, TLen1), TLen1); Tma2 = ma(ma(C, TLen2), TLen2); Tma3 = ma(ma(C, TLen3), TLen3); if Tma1 > Tma1[1] Then Tma1 = 1; if Tma1< Tma1[1] Then Tma1 = -1; if Tma1== 1 and Tma1[1] != 1 Then var1 = 0; // if Tma1 == 1 and C > O and (C+O)/2 >= Tma1 and Tma2 > Tma2[1] and Tma3>Tma3 [1] Then{ 60이평포함 if Tma1 == 1 and C > O and (C+O)/2 >= Tma1 and Tma2 >Tma2 [1] and Tma1> Tma2 Then{ var1 = var1+1; if var1 == 1 Then buy("5매수"); } if Tma1 == -1 and Tma1[1] != -1 Then var2 = 0; // if Tma1 == -1 and C < O and (C+O)/2 <= Tma1 and Tma2 < Tma2[1] and Tma3 < Tma3[1] Then{ 60이평포함 if Tma1 == -1 and C < O and (C+O)/2 <= Tma1 and Tma2 < Tma2[1] and Tma1 < Tma2 Then{ var2 = var2+1; if var2 == 1 Then sell("5매도"); }
프로필 이미지
라몬
2025-02-06
484
글번호 187882
시스템
답변완료

문의드립니다

수고 많으십니다 수식 문의드립니다. [매수진입] 2개의 SMA가 정배열이고(20,40이평) 3개의 EMA가 정배열이고 양의 기울기를 가지고(15,25,35이평) 25EMA가 엔벨로프(23, 1퍼센트) 상단선보다 위에 위치하고 양봉의 종가가 엔벨로프 상단선 위에 위치할 때 매수 진입 (다만 캔들의 고저점 길이가 100틱 이상일 때는 진입 배제) [매도진입] 2개의 SMA가 역배열이고(20,40이평) 3개의 EMA가 역배열이고 음의 기울기를 가지고(15,25,35이평) 25EMA가 엔벨로프(23, 1퍼센트) 하단선보다 아래에 위치하고 음봉의 종가가 엔벨로프 하단선 아래에 위치할 때 매도 진입 (다만 캔들의 고저점 길이가 100틱 이상일 때는 진입 배제) [수익 청산_트레일링 스탑] 80틱 이상 수익시 진입가 기준 +11틱에 스탑로스 90틱 이상 수익시 진입가 기준 +22틱에 스탑로스 110틱 이상 수익시 진입가 기준 +33틱에 스탑로스 120틱 이상 수익시 진입가 기준 + 44틱에 스탑로스 250틱 이상 수익시 진입가 기준 + 55틱에 스탑로스 X틱 이상 수익시 진입가 기준 + Y틱에 스탑로스 ... (위 같이 예시 만들어 주시면 추가적으로 만들어보겠습니다) *다만 만약 스탑로스로 수익 청산 될 경우(미완선봉) 그 봉 완성시 매수, 매도 진입 금지(다음봉부터 다시 매수 OR 매도 진입 여부 결정) [손절] 1)200틱 2)가격이 엔벨로프 상하단선 터치시(매수는 하단선 터치, 매도는 상단선 터치) 1),2)중 손실이 작은 값으로 손절 감사합니다
프로필 이미지
가라데쓰
2025-02-06
439
글번호 187881
시스템
답변완료

수식 부탁 드립니다

#,안녕하세요 상기 그림파일 참조하여 우축 추세선 수식을 부탁드립니다. *,당일(D) 1,첫시작 볼밴 상단밴드 최고점을 당일Y축까지 그리기 2,첫시작 볼밴 하단밴드 최저점을 당일Y축까지 그리기 *,전일(D-1) 3,첫시작 볼밴 상단밴드 최고점을 익일 Y축까지 그리기 4,첫시작 볼밴 하단밴드 최저점을 익일 Y축까지 그리기 (PS : D 와 D-1 의 추세선 생성 여부를 변수로 조절하면 좋겠습니다) Input : Period(20), MultiD(2); var : MAv(0),BBup(0),BBdn(0); MAv = ma(C,Period); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); Plot1(MAv, "이평"); Plot2(BBup, "상단밴드"); Plot3(BBdn, "하단밴드"); $, 언제나 늘 고맙습니다.
프로필 이미지
크라켄
2025-02-07
579
글번호 187880
지표
답변완료

사용자 함수를 사용하여 지표에 표현

1. _01_최저누적매수량_2025_CWY_v01.yfu - 사용자 함수로 2400bar 기간동안 개인 최저 누적수량을 구하여 "기간최저보유수량_개인"을 구한다. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ input : 최대기간(Numeric), 기간최저보유수량_개인(NumericRef) ; var : 일순매수량_개인(0), 일누적매수량_개인(0), 최고보유수량_개인(0) ; # 순매수수량 외부 참조 데이터 : 최대 2400 bar이하로 설정 ****************************** 일순매수량_개인 = data2(C); 일누적매수량_개인 = 일누적매수량_개인 + 일순매수량_개인 ; 기간최저보유수량_개인 = min(기간최저보유수량_개인,일누적매수량_개인); _01_최저누적매수량_2025_CWY_v01 = 1; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2. #01_01_개인누적지표.yin - 2400bar동안 누적개인 보유수량이 -값이 나오지 않도록 사용자함수에서 구한 "기간최저보유수량_개인"의 값을 이용하여 최기 수량에 "최저수량보정_개인"으로 보정을 하여 누적을 하더라도 음수는 나오지 않게 하려고 합니다. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var : 최대기간(2400), 기간최저보유수량_개인(0) ; var : 일순매수량_개인(0), 일누적매수량_개인(0), 최고보유수량_개인(0), 최저수량보정_개인(0) ; _01_최저누적매수량_2025_CWY_v01(최대기간, 기간최저보유수량_개인); # 순매수수량 외부 참조 데이터 : 최대 2400 bar이하로 설정 ****************************** 일순매수량_개인 = data2(C); 일누적매수량_개인 = 일누적매수량_개인 + 일순매수량_개인 ; If 기간최저보유수량_개인 < 0 Then 최저수량보정_개인 = - 기간최저보유수량_개인 ; Else 최저수량보정_개인 = 0; If Index == 0 Then 일누적매수량_개인 = 일순매수량_개인 + 최저수량보정_개인 ; Else 일누적매수량_개인 = 일누적매수량_개인 + 일순매수량_개인 ; Plot1(일순매수량_개인, "일순매수량_개인[일/화]", Rgb(000,100,000), Def, 1); Plot2(일누적매수량_개인, "일누적매수량_개인[일/화]", Rgb(000,250,000), Def, 1); Plot3(기간최저보유수량_개인, "기간최저보유수량_개인[일/화]", Rgb(000,000,250), Def, 1); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3. 1의 마지막 값만 가져와 2.의 초기의 "최저수량보정_개인"에만 한번만 계산이 되어 적용이 되는 수식을 작성하고 싶은데 잘 되지 않습니다. 4. 가능하면 사용할 수 있도록 검토 부탁드립니다.
프로필 이미지
최원엽
2025-02-06
479
글번호 187879
사용자 함수

한칼부르스 님에 의해서 삭제되었습니다.

프로필 이미지
한칼부르스
2025-02-06
2
글번호 187878
종목검색
답변완료

문의 드립니다

input : StartTime(80000),EndTime(60000),Xtime(60000); var : Tcond(false),entry(0); if sdate != sDate[1] Then SetStopEndofday(Xtime); 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; SetStopEndofday(0); entry = 0; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; Inputs: VtyPercent(0.10),ATRperiod(1); input : P1(1),P2(3); var : m1(0),m2(0); m1 = ma(C,P1); m2 = ma(C,P2); If MarketPosition() <> 1 and m1 > m2 Then Buy ("Vty_LE1", AtStop, Close + (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> -1 Then ExitLong ("Vty_SE1)", AtStop, Close - (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> 1 and m1 > m2 Then Buy ("Vty_LE2", AtStop, Close + (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> -1 Then ExitLong ("Vty_SE2)", AtStop, Close - (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> 1 and m1 > m2 Then Buy ("Vty_LE3", AtStop, Close + (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> -1 Then ExitLong ("Vty_SE3)", AtStop, Close - (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> 1 and m1 > m2 Then Buy ("Vty_LE4", AtStop, Close + (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> -1 Then ExitLong ("Vty_SE4)", AtStop, Close - (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> 1 and m1 > m2 Then Buy ("Vty_LE5", AtStop, Close + (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> -1 Then ExitLong ("Vty_SE5)", AtStop, Close - (VtyPercent * ATR(ATRperiod))); 하나의 캔들에 진입 청산후 또 동일조건이 왔을때 신호 허용이 가능하지요 ? ----------------------------------------- input : StartTime(192000),EndTime(52000); input : 익절틱수(0),손절틱수(0); var : Tcond(False),entry(0); Variables: Mom(0); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; IF Endtime <= starttime Then { SetStopEndofday(0); } } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { Tcond = False; } if Tcond == true Then { if L ==lowest(L,2) and highest(H,2) >= lowest(L,2)+PriceScale*1 Then { Buy("b",AtStop,(highest(H,2)+lowest(L,2))/2); } if MarketPosition == 1 and BarsSinceEntry == 9 Then ExitShort(); } if H == highest(H,2) and lowest(L,2) <= highest(H,2)+PriceScale*1 Then { Sell("s",AtStop,(lowest(L,2)+highest(H,2))/2); } if MarketPosition == -1 and BarsSinceEntry == 9 Then ExitLong(); 수식의 해석을 부탁드립니다.
프로필 이미지
푸른
2025-02-07
463
글번호 187877
시스템

살빼고싶다 님에 의해서 삭제되었습니다.

프로필 이미지
살빼고싶다
2025-02-06
29
글번호 187875
검색
답변완료

수고하십니다. 키움수식을 파워종목 검색식 부탁드립니다

A=Highest(V,120); B=Valuewhen(1, V>A(1),(O+C+L+H)/4); B1=B*(1+1/100); Crossup(C,B1) 지표변수 없습니다
프로필 이미지
foxdie08
2025-02-06
428
글번호 187874
종목검색
답변완료

문의 드립니다.

선생님~ 화면에 하이킨 아시 캔들은 표현되지 않아도 됩니다. 제가 원하는건 하이킨 아시 캔들을 바탕으로 한 스무스 하이킨 아시가 적용된 지표 1개만 표시되면 되는데 이 수식은 가능한 가요? 같은 말로 표현하면 일반 캔들이 아닌 하이킨아시 캔들을 아래의 스무스 하이킨아시 수식으로 적용시킨 강조식을 표현 부탁 드립니다. 기간값은 (36)으로 하구요. 항상 감사드립니다. input : len(36),len2(36); var : oo(0),cc(0),hh(0),ll(0),col(0); var : haclose(0),haopen(0),hahigh(0),halow(0); var : o2(0),h2(0),l2(0),c2(0); oo=ema(open,len); cc=ema(close,len); hh=ema(high,len); ll=ema(low,len); haclose = (oo+hh+ll+cc)/4; haopen = iff(IsNaN(haopen[1]) == true, (oo + cc)/2 , (haopen[1] + haclose[1]) / 2); hahigh = max (hh, max(haopen,haclose)); halow = min (ll, min(haopen,haclose)); o2=ema(haopen, len2); c2=ema(haclose, len2); h2=ema(hahigh, len2); l2=ema(halow, len2); col=iff(o2>c2 , red , lime); PlotPaintBar(h2, l2,o2,c2, "heikin smoothed", col);
프로필 이미지
촌동네선생
2025-02-06
469
글번호 187873
강조