커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

xcolor = iff(pos == -1 ,red,iff(pos == 1 , green,blue)); plot1(xATRTrailingStop,"Trailing Stop",xcolor); 상기식을 굵기 조절가능하게 부탁드립니다.( 속성창이 아님 )
프로필 이미지
as8282
2020-04-09
698
글번호 137772
지표
답변완료

다시 문의드립니다.

수고 많으십니다. 며칠전 아래사항으로 문의를 드렸었는데요... '거래량 변동율'((당일 거래량 - 전일 거래량) / 전일 거래량)과 '체결건수 변동율'((당일 체결건수 - 전일 체결건수) / 전일 체결건수)을 지표로 만들고 싶습니다. 기준선을 두고 기준선 위에 있으면 양수, 기준선 아래에 있으면 음수로 표현하되 '거래량 변동율'과 '체결건수 변동율'은 각각 다른 색깔로 선그래프로 나타내고 싶습니다. 이 질문에 아래와 같이 답변을 주셨습니다. var : tt(0),tt1(0); if bdate != bdate[1] Then { tt = 0; tt1 = tt[1]; } tt = tt + ticks; if tt1 > 0 then { var1 = (DayVolume-DayVolume(1))/DayVolume(1)*100; var2 = (tt-tt1)/tt1*100; plot1(var1,"거래량변동률",RED); plot2(var2,"체결건수변동률",BLUE); } 그런데 확인해보니 일봉차트에서는 잘 맞지만 일봉차트가 아닌 주봉,분봉차트 등에서는 안 맞는것 같더라구요. 거래량과 체결건수의 변동율을 구하는 기준이 '전일'이 아닌 확인코자하는 봉의 '직전 봉'이었으면 합니다. 수정을 부탁드리고 싶습니다. 그럼 수고하세요~
프로필 이미지
분노의물타기
2020-04-09
749
글번호 137771
지표
답변완료

수식 확인 부탁 드립니다

옵션 50틱 챠트에 DATE2 2분(참조데이터 KP외국인 순매수 금액 2분 챠트 date2)설정 하여 시스템 적용 하면 적용이 되지 않아 매수, 매수 청산이 되지를 않습니다 수정 부탁 드립니다(KP외국인 순매수 금액이 플러스 수치일때만 매수 청산이 되도록 원합니다) ( var : V2(0,data2); v2 = data2(c); v2 >0 이 없을때는 실행이 잘됩니다 var : V2(0,data2); v2 = data2(c); inputs: ndays(25); vars: alpha(0),bo(0),bo1(c),xest(0),xest1(c),emaV(0),ema1(c),tosc(0); alpha = 2 / (ndays + 1); bo = (1 - alpha) * bo1 + close; emaV = ema1 + alpha * (close - ema1); xest = (1 - alpha) * xest1 + alpha * (close + bo - bo1); bo1 = bo; xest1 = xest; ema1 = emaV; tosc = xest - emaV; if index > 50 then begin if v2 > 0 and tosc > 0 then buy(); if tosc < 0 then ExitLong(); end;
프로필 이미지
뎅이요
2020-04-09
691
글번호 137770
시스템
답변완료

함수요청

안녕하세요? 아래의 전략에 대해 스크립트 작성 요청드립니다. 안녕하세요? 아래 전략에 대해 스크립트 작성 요청드립니다. 적용하고자 하는 상품 : 항셍선물1분봉 전략: 1) 매수진입 조건: ABS(기준값) > ABS(힘의 균형대) 2) 매수청산 조건: 현재가 > 상대값 3) 매도진입 조건: ABS(기준값) < ABS(힘의 균형대) 4) 매도청산 조건: 현재가 < 상대값 5) 기타: 당일청산(15시 20분)으로 하루 1번 진입 * 기준값: (당일의 시가-전일의 시가) * 힘의균형대: 당일제외 과거 12영업일 동안 일별 (시가-시가[1]) 값의 최대값과 최소값을 제외한 10일의 평균값 *상대값: v1~v5까지 변수를 산출하여 내림차순 했을 경우 3번째 값 v1= 당일 시가에 v6을 더한 값 v2= 당일 시가에 v7을 뺀 값 v3= 전일 종가에 v8을 더한 값 v4= 전일 종가에 v9을 뺀 값 v5= 당일 시가 > 전일 종가이면 전일 종가에 v10을 더하고, 당일 시가 < 전일종가이면 전일 종가에 v10을 뺀 값 v6= 당일제외 과거 12영업일 동안 일별 (고가-시가) 값의 최대값과 최소값을 제외한 10일의 평균값 v7= 당일제외 과거 12영업일 동안 일별 (시가-저가) 값의 최대값과 최소값을 제외한 10일의 평균값 v8= 당일제외 과거 12영업일 동안 일별 abs(종가[1]-고가) 값의 최대값과 최소값을 제외한 10일의 평균값 v9= 당일제외 과거 12영업일 동안 일별 abs(종가[1]-저가) 값의 최대값과 최소값을 제외한 10일의 평균값 v10= 당일제외 과거 12영업일 동안 일별 (종가[1]-시가) 값의 최대값과 최소값을 제외한 절대값의 10일 의 평균값 하루의 계산을 가. T+1장과 T장을 하루로 계산하여 시가를 18:15로 산정 나. T장과 T+1장을 하루로 계산하여 시가를 10:15로 산정 가, 나 각각 스크립트 작성을 요청드립니다. 언제나 감사드립니다.
프로필 이미지
흰둥이아빠
2020-04-09
753
글번호 137769
시스템
답변완료

문의 드립니다.

국내 데이트레이딩용입니다. 아참에 적용해서 그날 종가나 종가전에 남아 있는 물량은 다 청산하려고 합니다. 수식으로 하는 것이 좋은지요? 아니면 다른 부가 기능으로 하는 것이 좋은지요? 수식으로 하는 것이 좋으면 수식으로 부탁드립니다. 양봉의 &#47809;통길이 = C - O 음봉의 몽통길이 = O - C 라고 합니다. 몸통길이가 크면 장봉 작으면 단봉이라고 정의합니다. 매수 무포지션에서 모든 봉의 종가가 20 이평선값 위에 존재하고 양봉의 장봉 후에 음봉 양봉 구분없이 단봉이 오고 다음봉이 양봉의 장봉이 오면 매수합니다. 가운데 단봉의 몸통길이가 1이라고 하면 가운데봉 전봉의 장봉길이가 적어도 2배이상 이어야 하고 가운데봉 후봉 장봉의 길이도 2배이상이어야 하며 전봉과 후봉 둘다 이와같이 2배이상이어야 하며 동시에 적어도 둘중에 한개는 3배 이상이어야 합니다. 이 조건을 만족하면 매수합니다. 손절 매수봉 직전봉의 장봉 길이의 절반으로 현재가가 도달하면 손절 청산합니다. 이익청산 매수후 양봉이 발생하면 그 양봉의 몸통의 절반에 현재가가 오면 이익청산 합니다. 매도도 같은 논리로 적용부탁드립니다
프로필 이미지
종호
2020-04-09
830
글번호 137766
시스템
답변완료

부탁드립니다.

감사드립니다. StopLoss, StopTrailing봉에 표시가 잘 됩니다. 하나만 더 부탁드립니다. 마지막 봉에서 StopLoss, StopTrailing 된 것이 계산에 반영이 안됩니다. 마지막 봉의 StopLoss, StopTrailing 된것이 반영된 값으로 표현을 부탁드립니다. 같은 시점에 안된다면 topLoss, StopTrailing 다음 봉에 표시될 수 있도록 요청드립니다. 여러번 부탁드려서 죄송합니다. 3 input : 손절(20),익절(15),익절하락(3); input : P1(30), P2(120), p3(240); input : StartTime(090000),EndTime(050000); var : tt(0),tx(0),X(false),tx1(0),cnt(0),sum(0); var: Tcond(false),ht(0),lcnt(0),trcnt(0),R(-1); Array : XX[200](-1); var1 = ma(C, P1); var2 = ma(C, P2); var3 = ma(C, P3); if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; tt = 0; X = false; } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { Tcond = false; if MarketPosition == 1 Then { ExitLong("BE6"); } if MarketPosition == -1 Then { ExitShort("SE6"); } } if Tcond == true then { if marketposition == 0 and crossup(var1,var2) Then { buy("B1"); } if marketposition == 0 and crossdown(var1,var2) Then { sell("S1"); } if marketposition == 0 and crossup(var2,var3) and var3[1] < var3 Then { buy("B2"); } if marketposition == 0 and crossdown(var3,var4) and var3[1] > var3 Then { sell("S2"); } ## 청산 if MarketPosition == 1 then { SetStopTrailing(익절하락,익절,PointStop); SetStopLoss(손절,PointStop); } if MarketPosition == -1 Then { SetStopTrailing(익절하락,익절,PointStop); SetStopLoss(손절,PointStop); } } ## 카운트 (수정요청) if TotalTrades > TotalTrades[1] then { if IsExitName("StopLoss",1) == true then { lcnt = lcnt+1; XX[0] = 0; for cnt = 1 to 199 { XX[cnt] = XX[cnt-1][1]; } if Floor((trcnt+lcnt)*0.2) > 1 then { sum = 0; for cnt = 0 to Floor((trcnt+lcnt)*0.2)-1 { if XX[cnt] == 1 Then sum = sum+1; } R = sum/Floor((trcnt+lcnt)*0.2)*100; } tt = tt +1 ; if tt > ht Then { ht = tt; } tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(ht,0)+"◆"); Text_SetSize(tx,20); Text_Setstyle(tx,2,1); Text_SetColor(tx,GREEN); Text_Delete(tx1); tx1 = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(trcnt/(trcnt+lcnt)*100,1)+NewLine+NumToStr(R,1)+NewLine+NewLine); Text_SetStyle(tx1,2,1); } if IsExitName("StopTrailing",1) == true then { trcnt = trcnt+1; XX[0] = 1; for cnt = 1 to 199 { XX[cnt] = XX[cnt-1][1]; } if Floor((trcnt+lcnt)*0.2) > 1 then { sum = 0; for cnt = 0 to Floor((trcnt+lcnt)*0.2)-1 { if XX[cnt] == 1 Then sum = sum+1; } R = sum/Floor((trcnt+lcnt)*0.2)*100; } tt = tt + 1; ht = tt; tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(ht,0)+"◆"); Text_SetSize(tx,20); Text_Setstyle(tx,2,1); Text_SetColor(tx,GREEN); Text_Delete(tx1); tx1 = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(trcnt/(trcnt+lcnt)*100,1)+NewLine+NumToStr(R,1)+NewLine+NewLine); Text_SetStyle(tx1,2,1); } }
프로필 이미지
라떼처럼
2020-04-09
833
글번호 137764
시스템
답변완료

수식전환 부탁드립니다.

수식전환 부탁드립니다. length = input(title="Length", type=integer, defval=45) powersLength = input(title="Elder Powers Length", type=integer, defval=10) adjustableLevel = input(title="Adjustable Entry Level", type=integer, defval=75) applyFilling = input(title="Apply Powers Filling ?", type=bool, defval=false) elderBullPower = high - ema(close, powersLength) elderBearPower = low - ema(close, powersLength) adjust(value) => 100 * value / length bullCount = sum(elderBullPower > 0 ? 1 : 0, length) bearCount = sum(elderBearPower < 0 ? 1 : 0, length) total = adjust(abs(bullCount - bearCount)) bull = adjust(bullCount) bear = adjust(bearCount) bullPlot = plot(bull, title="Bull", linewidth=2, color=#0ebb23, transp=0) bearPlot = plot(bear, title="Bear", linewidth=2, color=red, transp=0) plot(total, title="Total", linewidth=2, color=#3c78d8, transp=0) fillColor = applyFilling ? (bull > bear ? #0ebb23 : red) : color(white, 100) fill(bullPlot, bearPlot, color=fillColor, transp=80) hline(adjustableLevel, title="Adjustable Entry Level", linestyle=dotted) hline(50, title="Middle Level", linestyle=dotted, color=#f49517)
프로필 이미지
장안퀙쿠르드
2020-04-09
1005
글번호 137758
지표
답변완료

문의드립니다.

input : length(20),siglength(9),colorBars(false); var : mao(0),mac(0),mc(0),mo(0),signal(0); mao =ma(open, length); mac =ma(close, length); mc=mac-mao; mo=mao-mac; signal=ma(mc, siglength); plot1(0,"ZeroLine",gray); plot2(mc,"BullHisto",green); plot3(mo,"BearHisto",red); plot4(mo,"BearLine",red); plot5(mc,"BullLine",green); plot6(signal,"Signal",blue); ------------------------------------------------------------- 변환된 이 수식에서 plot6만을 남기고 캔들에 적용시키고 싶어서 input : length(20),siglength(9); var : mao(0),mac(0),mc(0),mo(0),signal(0); mao =ma(open, length); mac =ma(close, length); mc=mac-mao; mo=mao-mac; signal=ma(mc, siglength); plot1(signal,"Signal",blue); 으로 수정 후 컴파일 해보았습니다. 소수점 자리는 6으로 세팅한 후 적용해본 결과 화면에 적용하였을 때, 정상적으로 구현이 되나 가격에 적용을 하였을 때는 캔들위로 overlay가 되지 않고 캔들을 위로 밀리고 0으로 구현이 됩니다. 수정 문의드려도 될까요 감사합니다.
프로필 이미지
물고기
2020-04-09
1129
글번호 137757
지표
답변완료

종목검색식 부탁드립니다.

안녕하세요 잘좀 부탁드립니다. 모든 수치는 제가 넣을수 있게 부탁드리며 기본수치로 해주시면 됩니다. ======================================================== 지수이평 220일 기준 주가가 220일 위에 있는 종목중에 엔벨로프(중심선)이 볼린져밴드 중신선을 골든크로스 하는 종목을 찾고싶습니다.
프로필 이미지
이카나
2020-04-09
1107
글번호 137755
종목검색