커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의 드립니다

수고하십니다. 아래 식의 경우 시스템식과 지표식은 동일한데.. 그 밑의 동일한 로직의 종목검색식에서는 시스템식에서 신호가 나온 종목이 검색되지 않는 경우가 왕왕 있는데 그 이유가 뭔가요...? 혹 N일전 종목검색 로직이 이상있는건지요..? 확인 좀 부탁드립니다. 수고하세요 *****시스템식 input : Period(3); var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ; Lowval= Lowest(Low, Period+1); Highval = Highest(High, Period+1); For counter= 0 To Period { If Low[counter] == Lowval Then DownVel = counter; If High[counter] == highval Then UpVel = counter; } UpAroon = 100*(Period-UpVel)/Period; DnAroon = 100*(Period-DownVel)/Period; if crossup(UpAroon,DnAroon) Then buy("B10S10"); if CrossDown(UpAroon,DnAroon) Then sell("S10"); *****종목검색식 Input : Period(3); input : N일전(3); var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0),AroonOsc(0) ; Lowval= Lowest(Low, Period+1); Highval = Highest(High, Period+1); For counter= 0 To Period { If Low[counter] == Lowval Then DownVel = counter; If High[counter] == highval Then UpVel = counter; } UpAroon = 100*(Period-UpVel)/Period; DnAroon = 100*(Period-DownVel)/Period; if crossup(UpAroon[N일전],DnAroon[N일전]) Then var1 = 1 ; else var1 = 0 ; Find(var1);
프로필 이미지
오이도인
2020-02-23
523
글번호 136248
시스템
답변완료

수식문의드립니다

Crossup(DIPlus(Period), DIMinus(Period))and if(DIPlus(5)>DIMinus(5), C>=SAR(0.02,0.2),!C>=SAR(0.02,0.2)) and MACD(short,long)>-20 and A = (highest(high,shortPeriod)+lowest(low,shortPeriod))/2; B = (highest(high,midPeriod)+lowest(low,midPeriod))/2; Crossup(c, A) and CrossUp(c, B) and c>eavg(c,30) period 10 short 5 long 10 shortperiod 3 midperiod 26 ==================== 종목검색 할수 있게 부탁드립니다...감사합니다^^
프로필 이미지
나호이다
2020-02-23
495
글번호 136247
종목검색

오이도인 님에 의해서 삭제되었습니다.

프로필 이미지
오이도인
2020-02-23
1
글번호 136246
종목검색
답변완료

지표부탁드립니다

안녕하세요 관리자님!! 5분봉차트에서 새로운 고가,저가가 생길때마다 볼린져밴드(이평:20,상/하한:6σ)의 상한,하한값을 수평선으로 표현하고 싶습니다. 도와주세요!!!
프로필 이미지
카카
2020-02-24
513
글번호 136245
지표
답변완료

시스템식 부탁드립니다.

항상 도움 주셔서 감사합니다. 아래 시스템식 좀 부탁드립니다. 종목 : 해선 일봉 매수조건 : 전일 종가보다 금일 종가가 크면 금일종가에 매도 매수청산 : 다음날 종가에 청산 매도조건 : 전일 종가보다 금일 종가가 작으면 금일종가에 매수 매도청산 : 다음날 종가에 청산 종목 : 국선 일봉 매수조건 : 전일 종가보다 금일 종가가 크면 금일종가에 매도 매수청산 : 다음날 종가에 청산 매도조건 : 전일 종가보다 금일 종가가 작으면 금일종가에 매수 매도청산 : 다음날 종가에 청산 종목 : 해선 일봉 매수조건 : 전일 종가보다 금일 종가가 크면 금일종가에 매도 매수청산 : 다음날 종가가 전일종가보다 작으면 종가에 매도 청산 - 만약에 다음날 종가가 전일종가보다 크면 매도 포지션 유지 매도조건 : 전일 종가보다 금일 종가가 작으면 금일종가에 매수 매도청산 : 다음날 종가가 전일종가보다 크면 종가에 매수 청산 - 만약에 다음날 종가가 전일종가보다 작으면 매수 포지션 유지 종목 : 국선 일봉 매수조건 : 전일 종가보다 금일 종가가 크면 금일종가에 매도 매수청산 : 다음날 종가가 전일종가보다 작으면 종가에 매도 청산 - 만약에 다음날 종가가 전일종가보다 크면 매도 포지션 유지 매도조건 : 전일 종가보다 금일 종가가 작으면 금일종가에 매수 매도청산 : 다음날 종가가 전일종가보다 크면 종가에 매수 청산 - 만약에 다음날 종가가 전일종가보다 작으면 매수 포지션 유지 시스템식 부탁드립다. 감사합다.
프로필 이미지
양치기
2020-02-23
512
글번호 136244
시스템
답변완료

청산 설정이 가능할까요?

설정창에서 매매 청산-사용자가격설정에서 보면 oncloss/atmarket, atstop , atlimit 별로 "현재가""시장가"등을 지정할수 있는데요.. 아래 제가 운영하는 청산 수식인데요.. 다 atstop이네요... 혹시 좋은 방법이 없을까요?? 수식에 "#" 으로 하고 싶은 청산 방법을 기재하였습니다. if MarketPosition == 1 then { BuySetup = false; if countif(CrossDown(CCIv,CCI값),BarsSinceEntry) >= 1 and CCIv < CCI값 and C < O Then ExitLong("매수cci청산"); # 현재가 청산 요망 if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*즉시익절1 and C < O Then ExitLong("즉시익절1"); # 현재가 청산 요망 if highest(H,BarsSinceEntry) >= (EntryPrice+PriceScale*즉시익절1*N2) Then ExitLong("본전청산1",AtStop,EntryPrice+PriceScale*즉시익절1*N3); # 현재가 청산 요망 Else { if L <= EntryPrice-PriceScale*즉시손절1 Then ExitLong("즉시손절1",AtStop,L-PriceScale*저점손절틱수); # 시장가 청산 요망 } if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*tr수익 Then ExitLong("tr",AtStop, highest(H,BarsSinceEntry)-PriceScale*tr하락); # 현재가 청산 요망 }
프로필 이미지
이형지
2020-02-23
571
글번호 136243
시스템
답변완료

수식 도와주세요

1. 하루 시가로부터 x 만큼 움직이면 매수 or 매도 진입하고 2. 시가로 다시 돌아오면 stop 3. 하루에 한번 진입 4. 장 종료시 청산 (마감일 반영) 위 수식 만들어 주실 수 있으신가요?
프로필 이미지
파랭
2020-02-23
572
글번호 136242
시스템
답변완료

궁금

10880번의 내용을 시스템식으로 써 주시면 고맙겠습니다. 또nput : VV(0.1),Per(3); input : p1(10),p2(20),P3(30),P4(40),short(12),long(26),sig(9); var1 = ma(c,p1); var2 = ma(c,P2); var3 = ma(c,P3); var4 = ma(c,P4); var5 = MACD_OSC(short,long,sig); if abs(var5) <= VV and max(var1,var2,var3,var4) <= min(var1,var2,var3,var4)*(1+per/100) and var1 > var1[1] and var1[1] < var1[1] Then buy(); if MarketPosition == 1 and var1 < var1[1] and var1[1] > var1[2] Then exitlong(); if abs(var5) <= VV and max(var1,var2,var3,var4) <= min(var1,var2,var3,var4)*(1+per/100) and var1 < var1[1] and var1[1] > var1[1] Then sell(); if MarketPosition == -1 and var1 > var1[1] and var1[1] < var1[2] Then ExitShort(); 이식을 복사해서 쓰려는데 오류가 납니다. 수정부탁할께요 Input : short(12), long(26), signal(9); Var : MACDV(0) , MACDS(0), T(0); MACDV = MACD(short, long); MACDS = ema(MACDV,signal); var1 = ma(C,5); var2 = ma(C,10); var3 = var1-var2; var4 = ma(C,10); var5 = ma(C,20); var6 = var4-var5; var7 = ma(C,20); var8 = ma(C,60); var9 = Var7-Var8; var10 = ma(C,60); var11 = ma(C,120); var12 = Var10-var11; if t <= 0 and crossup(MACDV,MACDS) Then { t = 1; value1 = 0; value2 = 0; Value3 = 0; Value4 = 0; if var3 > 0 Then value1 = 1; if var6 > 0 Then value2 = 1; if Var9 > 0 Then Value3 = 1; if var12 > 0 Then value4 = 1; if t == 1 and t[1] == 1 then { if crossup(var3,0) Then value1 = value1+1; if crossup(var6,0) Then value2 = value2+1; if crossup(Var9,0) Then value3 = value3+1; if crossup(var12,0) Then value4 = value4+1; if value1 == 1 and value2 == 1 and value1 == 3 and value2 == 4 and (value1[1] != 1 or value2[1] != 1 value3[1] != 1 or value4[1] != 1) Then Find(1); } 이식도 오류가 납니다. 수정부탁해요
프로필 이미지
엉덩공주
2020-02-23
586
글번호 136241
시스템
답변완료

답변을 받았으나 생각했던 대로 구현이 되질 않아서 질문드립니다.

안녕하세요. 아래와 같이 답변을 받았으나 생각처럼 진입이 안되어서 재질문 드립니다 제 설명이 미숙했나봐요ㅜㅜ # <--- 뒤에 있는 글 처럼 진입하려 하는데 주신 코드에서는 그냥 시초가에 되네요. # 진입 # # 매수 진입 # if DayClose(1)> DayOpen and ExitDate(1) <> date then # 갭상승으로 장 시작하면, 포지션이 없다면 buy("매수", AtLimit, DayClose(1)); # 하락하여 갭을 메우는 순간 (반등을 예측하고) 전날 종가로 매수 진입 # 매도 진입 # if DayClose(1)< DayOpen and ExitDate(1) <> date then # 갭하락으로 장 시작하면, 포지션이 없다면 sell("매도", AtLimit, DayClose(1)); # 상승하여 갭을 메우는 순간 (하락을 예측하고) 전날 종가로 매도진입 SetStopEndofday(153000); ----------------------------- 안녕하세요 예스스탁입니다. 1 매도가 buy 함수로 작성되어 있어 수정했습니다. 2 청산함수의 최소 매개변수는 1입니다. ExitDate(1)이 가장최근 청산의 날짜입니다. 진입과 관련된 함수만 매개변수 0이 가능합니다. 3 시간청산은 당일청산 함수 이용하시면 됩니다. 4 # 진입 # # 매수 진입 # if DayClose(1)> DayOpen and ExitDate(1) <> date then # 갭상승으로 장 시작하면, 첫 진입이라면 buy("매수", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입 # 매도 진입 # if DayClose(1)< DayOpen and ExitDate(1) <> date then # 갭하락으로 장 시작하면, 첫 진입이라면 sell("매도", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입 SetStopEndofday(153000); 즐거운 하루되세요 > 퀀트드래곤 님이 쓴 글입니다. > 제목 : 코드 구현이 잘 안되어서 질문올렸습니다. > ## 전략 ## # 진입 : 개장시 갭이 발생한 날에 갭을 메우면 갭 방향으로 매수 혹은 매도 # 예) 전일 종가 90, 당일 시초가 100 -> 당일 가격이 90으로 떨어져서 갭을 메우면 매수(다시 위로 간다고 판단) # 예) 전일 종가 100, 당일 시초가 90 -> 당일 가격이 100으로 올라가서 갭을 메우면 매도(다시 아래로 간다고 판단) # 청산 : 종가 청산 # 진입조건에 당일 재진입 금지 #----------------------------------------------------------------------------------------- # 진입 # # 매수 진입 # if DayClose(1)> DayOpen and ExitDate <> date then # 갭상승으로 장 시작하면, 첫 진입이라면 buy("매수", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입 # 매도 진입 # if DayClose(1)< DayOpen and ExitDate <> date then # 갭하락으로 장 시작하면, 첫 진입이라면 buy("매도", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입 # 장마감 청산 if time > 153000 and MarketPosition == 1 Then ExitLong("매수청산", OnClose); if time > 153000 and MarketPosition == -1 Then ExitShort("매도청산", OnClose);
프로필 이미지
퀀트드래곤
2020-02-22
597
글번호 136240
시스템