커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 부탁합니다

1. Data2 (5분봉) 스토캐스틱 (25,6,6)이 전봉 대비 하락중인데 Data1의 스토캐스틱(25,6,6)의 K값이 70이상인 경우 지표식 (즉, Data2 스토캐스틱이 하락할때만 적용) 1. Data2 (5분봉) 스토캐스틱 (25,6,6)이 전봉 대비 상승중인데 Data1의 스토캐스틱(25,6,6)의 K값이 30이하인 경우 지표식 (즉, Data2 스토캐스틱이 상승할때만 적용)
프로필 이미지
미래테크
2015-10-23
119
글번호 91592
지표
답변완료

예비신호

시스템모니터에 시스템 신호에 의해 진입주문이 체결되고 예비신호가 나오는 경우가 있고 나오지 않는 경우가 있습니다. 예비신호가 나와야 정상일 것 같은데 나오지 않는 경우는 어떤 경우인가요?
프로필 이미지
통큰베팅
2015-10-23
124
글번호 91591
시스템
답변완료

문의드립니다.

안녕하세요. 일전에 답변 주신 수식으로 지표를 출력하였더니 위 그림과 같은 모양에서는 출력이 되지 않습니다. 위 모양에서도 출력이 되도록 수식 부탁드립니다. var : T(0) ; if dayindex == 0 Then T = 0; if dayindex > 0 and L <= min(daylow(0),daylow(1)) Then # 최저가 찍고 T = -1; if T == -1 and T[1] == -1 && c>o Then # 최저가 찍고 양봉이면 출력 plot1(c); 수고하세요.
프로필 이미지
land22
2015-10-22
151
글번호 91590
지표
답변완료

함수변경요청(SK증권)

안녕하세요? 아래 4개의전략은 SK증권에서 사용했던 함수입니다. YT에서 사용할 수 있도록 1개의 함수로 합성하여 변경 요청드립니다. 1. [상대강도(RSI)매수] Params : pPVal( Close ), pLeng( 14 ), pLine( 5 ) ; v1 = RSI( pPVal, pLeng ) ; if CB > 1 then if CrossUp(v1, pLine) Then Buy ("RSI Stg BY", AtMarket); 2. [모멘텀 매도] Params : pPVal( Close ), pLeng( 5 ) ; v0 = Momentum( pPVal, pLeng ) ; v1 = Momentum( v0, 1 ) ; if v0 < 0 and v1 < 0 then Sell ("Momentum SE", AtStop, L + 1 ) ; 3. [채널추적 매도청산] Params : pLeng( 3 ), pFloorAmt( 1 ), pPositionBasis( false ) ; v0 = HighestFast( High, pLeng ) ; If pPositionBasis = false then v1 = CurrentShares * pFloorAmt else v1 = pFloorAmt ; Cond1 = SignalPosition = -1 && MaxPositionProfit >= v1 ; if Cond1 then ExitShort ( "TrailingChannel SX", AtStop, v0 ) ; 4. [채널추적 매수청산] Params : pLeng( 3 ), pProfit( 0.5 ), pIsPosition( false ) ; v0 = LowestFast( Low, pLeng ) ; If pIsPosition = false then v1 = CurrentShares * pProfit else v1 = pProfit ; Cond5 = SignalPosition = 1 && MaxPositionProfit >= v1 ; If Cond5 then ExitLong ( "TrailingChannel LX", AtStop, v0) ;
프로필 이미지
통큰베팅
2015-10-22
129
글번호 91589
시스템

종풍화성 님에 의해서 삭제되었습니다.

프로필 이미지
종풍화성
2015-10-22
0
글번호 91588
시스템
답변완료

시스템식 검토 부탁드립니다.

그림1)은 1차매수, 2차매수가 이루어 지고 최종손절가인 초록색선이 4,180원 입니다. 오후3:00 이전에는 가격이 4,215원으로 손절이 발생하지 않았는데.. 그림2)에서 보듯이 오후 3:00에 동시호가 가격이 4,170원이 되면서 손절신호가 나왔습니다. 이처럼 아래와 같은 조건일 경우 당일에는 손절신호가 발생하였으나 실제 매도를 할수 없으므로 다음날 시가에 매도할수 있게 시스템식을 변경 부탁드립니다. 1) 오후 2:50에 가격이 손절가에 진입시 2) 오후 3:00에 동시호가가 손절가 이하일때 시스템식은 다음과 같습니다. --------------------------------------------------------------------------------- input : 전략식시작일자(20151019), 전략식시작시간(090000), 전략총매수금액(2000); input : 매수위치1차(2), 매수위치2차(3); input : 매도위치1차(1), 매도위치2차(1.2); input : 매수비중1차(50), 매수비중2차(50); input : 매도비중1차(50), 매도비중2차(50); input : 전략식진입횟수(1); input : 최종손절위치(4); input : Period(120); var : CL(0),V0.5(0),V1(0),V2(0),V3(0); var : mid(0),V4(0),V5(0),V6(0),V7(0); var : diff(0),TF(0),cnt(0),value(0); var : entrycond1(false),entrycond2(false),entrycond3(false); # Period기간전 최고가의 값이 있으면 if dayhigh(Period) > 0 Then{ var1 = dayhigh(0); # 당일최고가(Period기간동안 최고가를 계산하기 위한 초기값) var2 = daylow(0); # 당일최저가(Period기간동안 최고가를 계산하기 위한 초기값) var11 = dayhigh(1); # 전일최고가(전일기준 Period기간동안 최고가를 계산하기 위한 초기값) var12 = daylow(1); # 전일최저가(전일기준 Period기간동안 최고가를 계산하기 위한 초기값) # 0일부터 Period전일까지 최고가와 최저가를 불러와 # Period기간동안 최고가/최저가를 계산 # 전일기준은 0을 제외하고 Period기간이므로 +1 for cnt = 0 to Period-1{ if DayHigh(cnt) > var1 Then var1 = DayHigh(cnt); if dayhigh(cnt+1) > var11 Then var11 = dayhigh(cnt+1); if daylow(cnt) < var2 Then var2 = daylow(cnt); if daylow(cnt+1) < var21 Then var21 = daylow(cnt+1); } # Period기간동알 최고가가 전일보다 상승하면 # CL에 당일 중간값 저장 if var11 < var1 Then CL = (var1+var2)/2; V0.5 = var1-((var1-CL)/5)*1; V1 = var1-((var1-CL)/5)*2; ## 1매수타점 V2 = var1-((var1-CL)/5)*3; ## 2매수타점 V3 = var1-((var1-CL)/5)*4; ## 3매수타점 mid = (var1+var2)/2; V4 = var1-((var1-CL)/5)*5; V5 = var1-((var1-CL)/5)*6; V6 = var1-((var1-CL)/5)*7; V7 = var1-((var1-CL)/5)*8; value = abs(var1-V0.5); if sdate >= 전략식시작일자 and # 지정일 이후 TotalTrades < 전략식진입횟수 and # 최대 진입횟수 이전 MarketPosition == 0 and # 현재 무포지션 stime >= 전략식시작시간 and #지정시간 이후 EntryCond1 == false Then{ #EntryCond1은 false일때(첫진입이 발생하면 true로 변경되어 한번만 진입하게 됨) # (1차매수),(1차매수.)은 가격이 하락해서 1차매수가격을 터치한 것인지 # 시가가 갭으로 1차매수가격 이하에서 바로 시작해서 신호가 발생한것인지 # 구분하기 위해서 1차매수를 2개의 함수로 작성한 것입니다. # 시가가 지정한 가격보다 위에서 시작하면 하락해서 지정한 가격 터치시 매수(1차매수) # 시가가 지정한 가격보다 이하에서 바로 시작하면 시가에 바로 매수(1차매수.) if NextBarOpen > var1-value*(매수위치1차+1) Then buy("1차매수",atlimit,var1-value*(매수위치1차+1),Floor((전략총매수금액*10000*(매수비중1차/100))/C)); Else buy("1차매수.",AtMarket,def,Floor((전략총매수금액*10000*(매수비중1차/100))/C)); } # 매수진입이후 if MarketPosition == 1 then{ #매수시점의 var1와 V0.5의 차이값을 diff에 저장 diff = abs(var1[BarsSinceEntry]-V0.5[BarsSinceEntry]); if MaxEntries == 1 and #최대진입횟수가1이고(첫진입 한번만 발생한 상황) L >= var1-value*(매수위치2차+1) and #저가가 2차매수가격 이상이고 EntryCond2 == false Then #EntryCond2은 false일때(2차매수가 발생하면 true로 변경되어 한번만 진입하게 됨) #다음봉에서 2차매수가격을 터치하면 신호발생(즉 가격이 하락해서 첫 터치가 발생하면 매수) buy("2차매수",atlimit,var1-value*(매수위치2차+1),Floor((전략총매수금액*10000*(매수비중2차/100))/C)); #Condition1과 Condition2는 각 매도의 횟수를 1번으로 제한하게 위한 변수 #포지션 진행 중 1차매도란 이름의 청산이 발생하면 Condition1은 true if LatestExitName(0) == "1차매도" Then Condition1 = true; #포지션 진행 중 2차매도란 이름의 청산이 발생하면 Condition2는 true if LatestExitName(0) == "2차매도" Then Condition2 = true; #Condition1이 false일때(첫진입후 아직 1차매도는 발생하지 않은 상태) #당일 최저가에서 diff*매도위치1차만큼 상승하면 매도1차비중만큰 청상 if Condition1 == false then exitlong("1차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치1차,"",Floor(MaxContracts*(매도비중1차/100)),1); #Condition2는 false일때(첫진입후 아직 2차매도는 발생하지 않은 상태) #당일 최저가에서 diff*매도위치2차만큼 상승하면 매도2차비중만큰 청상 if Condition2 == false then exitlong("2차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치2차); #당일최고가에서 value*(최종손절위치+1)만큰 하락하면 전량청산 exitlong("최종손절",AtStop,var1-value*(최종손절위치+1)); } Else{#매수포지션이 아니면 모두 false로 초기화 Condition1 = false; Condition2 = false; } } #매수진입 후 1차매수나 1차매수.진입신호가 발생하면 true if MarketPosition == 1 and (LatestEntryName(0) == "1차매수" or LatestEntryName(0) == "1차매수.") Then entrycond1 = true; #매수진입 후 2차매수가 발생하면 true if MarketPosition == 1 and LatestEntryName(0) == "2차매수" Then entrycond2 = true; #무포지션이면 flase로 초기화 if MarketPosition == 0 Then{ entrycond1 = false; entrycond2 = false; } --------------------------------------------------------------------------------------
프로필 이미지
종풍화성
2015-10-22
152
글번호 91587
시스템
답변완료

부탁드립니다..

90틱의 240과 480이평의 이격도를 보조지표로 만들고 싶은데 가능할까요?? 간단하게 말하면 90틱의 240과 480이평의 이격도를 3분봉에서 보조지표로 쓸려고 할려는데 가능할까요??
프로필 이미지
돈버니
2015-10-22
126
글번호 91586
지표
답변완료

부탁드립니다

수고하십니다 당일 중심에서 +0.5,-0.5씩 3단계 수식부탁드립니다
프로필 이미지
파생돌이
2015-10-22
132
글번호 91585
지표
답변완료

수정부탁드립니다.

매번 성실한 답변에 감사드립니다. 1.아래 검색식에 만족하는 종목의 종가를 최초로 양봉으로 상향돌파하는 종목 검색식으로 수정 부탁드립니다. 2.아래 검색식을 이전에 검색된 종목은 재검색이 않되도록 수정부탁드립니다. input : n(24); var4 = BollBandup(20,2); var5 = BollBandup(80,2); var6 = BollBandup(240,2); if date != date[1] Then{ var1 = c; var2 = o; var3 = h; Var10 = 1; } condition1 = c > highest(c,N)[1] ; ##24봉중-최고가 Condition2 = crossup(c,var5); Condition3 = crossup(c,var6); ##주가-240bbup돌파 if countif(Condition1 == true and Condition3 == true and c > var6 and var4 > var6*0.9 and c > c[1] and c > o and o < c[1]*1.1 and var4 > var4[1] and var5 > var5[1] and var4[1] <= var6[1],var10) then{ var10 = var10+1; if c > DayClose(1)*1.045 then find(1); }
프로필 이미지
부양가족
2015-10-22
135
글번호 91584
종목검색