커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁 드립니다

젤 아래 120 이평이 있고 5, 10, 20 이평중에 하나라도 역배열이 되었다가 0봉전(오늘)정배열이 되는 종목을 찾고 십습니다. 부탁 드립니다.
프로필 이미지
hg950265
2023-03-30
671
글번호 167746
검색

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

프로필 이미지
2wnwn
2023-03-31
198
글번호 167745
지표
답변완료

지표 수식변환부탁드립니다

2개수식입니다. 예스드레이더 수식으로 전환부탁드립니다 정말 감사드립니다 indicator('RedK SmoothAndLazyMA', shorttitle='SALMA v2.0', overlay=true, timeframe='', timeframe_gaps=false) // Corrects price points within specific StdDev band before calculting a smoothed WMA price = input(close, 'Source') length = input.int(10, 'Length', minval=1) smooth = input.int(3, 'Extra Smooth [1 = None]', minval=1) mult = input.float(0.3, minval=0.05, maxval=3, step=0.05, title='Width', inline = 'SD Channel', group='Volatility Filter (SD Channel)') sd_len = input.int(5, minval=1, title='Length', inline = 'SD Channel', group='Volatility Filter (SD Channel)') baseline = ta.wma(price, sd_len) dev = mult * ta.stdev(price, sd_len) upper = baseline + dev lower = baseline - dev cprice = price > upper ? upper : price < lower ? lower : price // Uncomment these code lines to expose the base StdDev channel used as volatility filter //plot (baseline, "Base MA") //plot(upper, "Upper Band", color=color.green) //plot(lower, "Lower Band", color=color.red) REMA = ta.wma(ta.wma(cprice, length), smooth) c_up = color.new(#33ff00, 0) c_dn = color.new(#ff1111, 0) REMA_up = REMA > REMA[1] plot(REMA, title='SALMA', color=REMA_up ? c_up : c_dn, linewidth=3) // ====================================================================================================== // add optional MA's - to enable us to track what many other traders are working with // These MA's will be hidden by default until user exposes them as needed in the Settings // the below code is based on the built-in MA Ribbon in the TV library - with some modifications // ====================================================================== f_ma(source, length, type) => type == 'SMA' ? ta.sma(source, length) : type == 'EMA' ? ta.ema(source, length) : ta.wma(source, length) // ====================================================================== gr_ma = 'Optional MA₩'s' t_ma1 = 'MA #1' t_ma2 = 'MA #2' show_ma1 = input.bool(false, t_ma1, inline=t_ma1, group=gr_ma) ma1_type = input.string('SMA', '', options=['SMA', 'EMA', 'WMA'], inline=t_ma1, group=gr_ma) ma1_source = input.source(close, '', inline=t_ma1, group=gr_ma) ma1_length = input.int(50, '', minval=1, inline=t_ma1, group=gr_ma) ma1_color = #9c27b0 ma1 = f_ma(ma1_source, ma1_length, ma1_type) plot(show_ma1 ? ma1 : na, color=color.new(ma1_color, 0), title=t_ma1, linewidth=1) show_ma2 = input.bool(false, t_ma2, inline=t_ma2, group=gr_ma) ma2_type = input.string('SMA', '', options=['SMA', 'EMA', 'WMA'], inline=t_ma2, group=gr_ma) ma2_source = input.source(close, '', inline=t_ma2, group=gr_ma) ma2_length = input.int(100, '', minval=1, inline=t_ma2, group=gr_ma) ma2_color = #1163f6 ma2 = f_ma(ma2_source, ma2_length, ma2_type) plot(show_ma2 ? ma2 : na, color=color.new(ma2_color, 0), title=t_ma2, linewidth=1) 두번쨰 수식입니다 indicator(title="Commodity Channel Index", shorttitle="CCI", format=format.price, precision=2, timeframe="", timeframe_gaps=true) length = input.int(20, minval=1) src = input(hlc3, title="Source") ma = ta.sma(src, length) cci = (src - ma) / (0.015 * ta.dev(src, length)) plot(cci, "CCI", color=#2962FF) band1 = hline(100, "Upper Band", color=#787B86, linestyle=hline.style_dashed) hline(0, "Middle Band", color=color.new(#787B86, 50)) band0 = hline(-100, "Lower Band", color=#787B86, linestyle=hline.style_dashed) fill(band1, band0, color=color.rgb(33, 150, 243, 90), title="Background") ma(source, length, type) => switch type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing") smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="Smoothing") smoothingLine = ma(cci, smoothingLength, typeMA) plot(smoothingLine, title="Smoothing Line", color=#f37f20, display=display.none)
프로필 이미지
seayun1
2023-03-30
1524
글번호 167744
지표
답변완료

81446 재문의

-------- 선 아래가 문의한 내용입니다 보니까 마지막 봉의 윗꼬리 아래꼬리, 몸통만 표시되게 하신거 같아요 그날의 윗꼬리와 아래꼬리의 총 합산을 부탁드립니다!!! 그리고 그리드로 출력 말고 1. 봉이 완성된 후 완성된 봉 위에 꼬리 합산 내용 업데이트 되게 부탁드려요 2. 오늘꺼만 볼 수 있는데 전일, 전전일 등 일별 매매 끝난 마지막 봉에 그날 꼬리 및 몸통 합산 볼 수 있게 부탁드립니다 ^_^ ------------------------------------------------------------- 안녕하세요 예스스탁입니다. 봉차트 위에 그리려면 텍스트 함수를 사용해야 하는데 봉완성시에만 동작합니다. 차트 마지막봉은 미완성봉으로 해당봉기준으로 텍스트를 출력할 방법이 없습니다. 그리드로 출력되게 작성해 드립니다. 차트왼쪽 중단에 표시가 됩니다. 1 var : grid(0); var1 = H-max(C,O); Var2 = L-min(C,O); Var3 = var1+Var2; if Index == 0 Then Grid = Grid_New(4,1,2,White, Gray, 1, Gray, 0); if LastBarOnChart == 1 Then { Grid_Cell(Grid,0,0,"꼬리합산",0,0,BLACK,LightRed); Grid_Cell(Grid,0,1,NumToStr(Var3,2),0,0,BLACK,White); } 2 var : grid(0); if Bdate != Bdate[1] Then Var1 = 0; Var1 = var1 + C-O; if Index == 0 Then Grid = Grid_New(4,1,2,White, Gray, 1, Gray, 0); if LastBarOnChart == 1 Then { Grid_Cell(Grid,0,0,"몸통합산",0,0,BLACK,LightRed); Grid_Cell(Grid,0,1,NumToStr(Var1,2),0,0,BLACK,White); } 즐거운 하루되세요 > 돈을잃자 님이 쓴 글입니다. > 제목 : 문의 드려요 > #지표1 1. 기간: 데이트레이딩 한정 2. 컨셉: - 데이 안에서의 1분봉이든 2분봉이든 분봉 세팅에 따라 - 윗꼬리와 아래꼬리의 포인트를 계산하여 최신봉 위에 표시 - 윗꼬리는 +, 아래꼬리는 - 하여 합산하여 마지막 캔들 위에 실시간 표시 예시) 2분봉으로 했는데 몸통 포인트는 뺀 윗꼬리는 +8pt 아래꼬리는 -7pt 면 합산시 1pt임. 이게 마지막 캔들 위 또는 아래에 표시 #지표2 ㅇ 1. 기간: 데이트레이딩 한정 2. 컨셉: - 데이 안에서의 1분봉이든 2분봉이든 분봉 세팅에 따라 - (꼬리를 제외한) 몸통의 길이 포인트를 합산하여 최신봉(마지막봉의 위든 아래든 표시) - 양봉 몸통 포인트는 +, 음봉 몸통 포인트는 -, 합산하여 마지막 캔들 위에 실시간 표시 예시) 2분봉으로 했는데 꼬리포인트는 뺀 몸통이 양봉 +8pt 음봉 -7pt 면 합산시 1pt임. 이게 마지막 캔들 위 또는 아래에 표시 항상 감사드려요 ^_^
프로필 이미지
돈을잃자
2023-03-30
965
글번호 167735
지표
답변완료

수식 문의드립니다.

30분봉에 적용할 시스템이고 N-10일부터 N일까지 매물대를 누적하여 가장 큰 매물대를 데드크로스할때 매수하도록 수식작성이 가능한가요?
프로필 이미지
망고맨
2023-03-30
1096
글번호 167733
시스템
답변완료

TypeError: SetColData: 지정한셀을 찾을 수 없습니다

YesSpot에서 클래스 등록 에러는 없어졌는데, 스크립트를 적용하면 "TypeError: SetColData: 지정한셀("ANaN")을 찾을 수 없습니다."라고 뜹니다. 지금 같은 스크립트를 두 개의 다른 컴퓨터에서 돌리고 있는데, 하나는 정상적으로 작동이 되는데, 다른 하나는 이걸로 작동이 되지 않고 있습니다. 이 에러가 무슨 뜻이고 어떻게 해결해야 하나요?
프로필 이미지
민현종
2023-03-30
937
글번호 167732
시스템
답변완료

수식 문의드립니다.

신호가 발생한 봉 다음 시가에 바로 매수가 될 수 있도록 설정하고싶은데 가능한가요? Onclose, Atmarket 신호발생봉, 다음봉에 의미부여를 한다고 되어있는데 그렇다면 onclose는 신호발생 다음봉 종가 atmarket은 신호발생 다다음봉 종가에 매수가 되는 지 궁금하네요
프로필 이미지
망고맨
2023-03-30
953
글번호 167731
시스템
답변완료

시스템식 부탁드립니다.

항상 도움 주셔서 감사합니다. 금일 답변해 주셨는데 추가 질문사항이 있어서 재질문 드립니다. var : 이평(0),간격(0),매수가격(0); 이평 = ma(C,20) ; 간격 = PriceScale*10; if marketposition == 0 and C > 이평 then { buy("b1",OnClose,Def,1) ; 매수가격 = C; buy("b2.",atlimit,매수가격+간격*1,1) ; buy("b3.",atlimit,매수가격+간격*2,1) ; buy("b4.",atlimit,매수가격+간격*3,1) ; buy("b5.",atlimit,매수가격+간격*4,1) ; buy("b6.",atlimit,매수가격+간격*5,1) ; } if marketposition == 1 then { if lowest(L,BarsSinceEntry) > 매수가격+간격*1 Then buy("b2",atlimit,매수가격+간격*1,1) ; if lowest(L,BarsSinceEntry) > 매수가격+간격*2 Then buy("b3",atlimit,매수가격+간격*2,1) ; if lowest(L,BarsSinceEntry) > 매수가격+간격*3 Then buy("b4",atlimit,매수가격+간격*3,1) ; if lowest(L,BarsSinceEntry) > 매수가격+간격*4 Then buy("b5",atlimit,매수가격+간격*4,1) ; if lowest(L,BarsSinceEntry) > 매수가격+간격*5 Then buy("b6",atlimit,매수가격+간격*5,1) ; if CurrentContracts < 3 Then SetStopProfittarget(PriceScale*10,PointStop); Else { SetStopProfittarget(0); ExitLong("bx",AtLimit,EntryPrice+PriceScale*10); } } Else SetStopProfittarget(0); 위와 같이 코딩해 주셨는데요. 질문사항 1 : 위의 시스템식을 적용해보면 b1. b2. b3. b4. b5. b6. 진입가격이 모두 동일합니다. 왜 그런건가요? 질문사항2 : if marketposition == 0 and C > 이평 then { buy("b1",OnClose,Def,1) ; 매수가격 = C; buy("b2.",atlimit,매수가격+간격*1,1) ; buy("b3.",atlimit,매수가격+간격*2,1) ; buy("b4.",atlimit,매수가격+간격*3,1) ; buy("b5.",atlimit,매수가격+간격*4,1) ; buy("b6.",atlimit,매수가격+간격*5,1) ; } 위의 경우 처음 매수하면 marketposition == 0 이 아닌데 왜 b2. b3 b4. b5. b6. 모두 같은 가격으로 매수가 되는건가요? 질문사항 3. if CurrentContracts < 3 Then SetStopProfittarget(PriceScale*10,PointStop); Else { SetStopProfittarget(0); ExitLong("bx",AtLimit,EntryPrice+PriceScale*10); } 위 코딩에서 3계약 이내는 개별청산을 하고 나머지 계약은 일괄 청산하려면 남아있는 계약의 평균 진입가격 대비 10틱 위에서 청산해야 하는거 아닌가요? 즉 ExitLong("bx",AtLimit,EntryPrice+PriceScale*10); 아니라 ExitLong("bx",AtLimit,avgEntryPrice+PriceScale*10); 이게 맞는게 아닌가요? 질문사항 4. SetStopProfittarget(0); 위 함수를 2번 해제 하셨는데 위에서 조건문으로 해제 했는데 왜 마지막에 또 해제 하는건가요? 질문사항 5. 위에 코딩은 가격이 상승한 경우 즉 매수 불타기 코딩인거죠? 물타기 코딩을 하려면 아래와 같이 (-) 마이너스 하면 되는 건가요? buy("b2.",atlimit,매수가격-간격*1,1) ; 질문사항 6. 위 시스템식을 차트에 적용해보면 marketposition == 0 일때만 6계약 모두 매수가 되고 marketposition == 1 일때는 매수가 하나도 안됩니다. 왜 그런거죠? 가격이 하락해서 물타기 하는 경우 marketposition == 0 일때는 1계약만 들어가고 나머지 계약은 marketposition == 1 일때만 들어가야 하는거 아닌가요? 죄송하지만 코딩의 내용이 이해가 안됩니다. 설명좀 부탁드립니다. 그리고 마지막으로 수고스럽겠지만 첫 진입이후 가격이 상승하면 10틱 단위로 매수 불타기 하고 첫 진입이후 가격이 하락하면 10틱 단위로 매수 물타기 하고 그리고 총 계약이 3틱 이내에는 10틱 수익이 발생하면 개별 청산하고 총 계약이 3틱 이상일 경우에는 총 진입계약의 평균가격보다 10틱 이상 수익 발생시 모두 일괄청산하는 시스템식 부탁드립니다. 마지막으로 포지션 진입은 marketposition == 0 일 경우에만 매수, 매도 하고 싶습니다. 감사합니다.
프로필 이미지
양치기
2023-03-30
1083
글번호 167730
시스템
답변완료

81470 재문의

수식 감사합니다. 설명이 부족한부분이 있었습니다. 81470 수식 주,월간의 고가가 아닙니다. 혼선을 드려 죄송합니다. 아래 수식은 일간 영업종료 시간 (06:00)의 고가를 선으로 표시 한것입니다. 주간,월간의 영업종료 시간에 고가로 표시한 수식을 요청 드립니다. 부탁드리겠습니다. 감사합니다. Input:종가시간(60000),종가시간2(60000); if stime <= 종가시간 Then var1 = DayHigh; if date != date[1] Then{ var1 = DayHigh; Condition1 = true; } if stime >= 종가시간 and stime <= 종가시간2 Then{ plot1(var1); } }
프로필 이미지
상중하
2023-03-30
927
글번호 167728
지표