커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

두 대의 컴퓨터에서 동일한 아이디로 접속해서 두 대로 거래를 하는것이 가능한가요? 현재 두 대의 컴퓨터에서 동시에 접속하니 중복접속 안내 메세지가 나오고 이전에 접속되있던 컴퓨터에서 작동이 안되는 거 같네요(클릭 등 아무 동작 안함) 답변 부탁드릴게요.
프로필 이미지
대환
2013-04-25
260
글번호 62510
시스템
답변완료

ㅠㅠ 조금만 더 도와주십시요

안녕하세요 내용 관계없이 일단 신호발생되게 만큼만 수정 부탁할께요 ㅠㅠ 해당부분은 if조건이 만족하지 않으므로 신호가 발생하지 않는 것입니다. 수식 위쪽의 if date[1] < date and dayofweek(date[1]) >= dayofweek(date) then { 이 그아래의 너무 많은 if조건과 실행문들을 감싸고 있습니다. 이부분 살펴보시면 될것 같습니다. 위와같이 해주셨는데 저는 어리둥절 하네요 뭐가뭔지 일단 신호 나오게만 부탁드릴께요 감사^^ 감사^^ input: 전환가격(300); var: j(0), 꺾은선(0), 기준고(0), 기준저(0), 방향(0), 상승(100), 하락(-100), 색깔(0), 파랑(-1), 빨강(1), 전환(0), 확인(0), 확인표시(0), 전환표시(0), 천장(-10), 바닥(10), E(0), UB(0), E표시(0), UB표시(0), 대중소(0), 소중대(0), 대중소색깔(0), 진입(0), 청산(0), a25(0), a40(0), a50(0), a60(0), a75(0), b(0), 상상(0), 상(0), 중(0), 하(0), 하하(0), 등락폭(0), w(0), w표시(0), 주기준고(0), 주기준저(0), 주색깔(0), 매수마크(0), 매도마크(0); Array: 고[10](0), 저[10](0), wo[10](0), wh[10](0), wl[10](0), wc[10](0), 주방향[2](0), 주고[2](0), 주저[2](0); E표시 = 0; UB표시 = 0; w표시 = 0; 전환표시 = 0; 확인표시 = 0; 대중소 = 0; 소중대 = 0; 진입 = 0; 청산 = 0; 매수마크 = 0; 매도마크 = 0; if date[1] < date and dayofweek(date[1]) >= dayofweek(date) then { if 주기준고 <= wc[0] or 주기준고 == 0 then 주기준고 = wc[0]; if 주기준저 >= wc[0] or 주기준저 == 0 then 주기준저 = wc[0]; 주방향[1] = 주방향[0]; if 주기준저[1] + 전환가격 > wc[1] and 주기준저[1] + 전환가격 <= wc[0] Then 주방향[0] = 상승; if 주기준고[1] - 전환가격 < wc[1] and 주기준고[1] - 전환가격 >= wc[0] Then 주방향[0] = 하락; if 주방향[0] == 상승 and 주고[0] < wc[0] then 주색깔 = 빨강; if 주방향[0] == 하락 and 주저[0] > wc[0] then 주색깔 = 파랑; if 주방향[1] == 하락 and 주방향[0] == 상승 then { 주저[1] = 주저[0]; 주저[0] = 주기준저; 주기준저 = wc[0]; 주기준고 = wc[0]; if 주저[1] > 주저[0] then 주색깔 = 파랑; } if 주방향[1] == 상승 and 주방향[0] == 하락 then { 주고[1] = 주고[0]; 주고[0] = 주기준고; 주기준저 = wc[0]; 주기준고 = wc[0]; if 주고[1] < 주고[0] then 주색깔 = 빨강; } w = 주방향[0]; for j = 8 downto 0 { wo[j+1] = wo[j]; wh[j+1] = wh[j]; wl[j+1] = wl[j]; wc[j+1] = wc[j]; } wo[0] = o; wh[0] = h; wl[0] = l; } if wh[0] < h then wh[0] = h; if wl[0] > L or wl[0] == o then wl[0] = l; wc[0] = c; if 기준고 <=C or 기준고 == 0 then 기준고 =c; if 기준저 >=C or 기준저 == 0 then 기준저 =c; if C[1] + 전환가격/3 <= C then E = 상승; if C[1] - 전환가격/3 >= C then E = 하락; if ma(v,40)/2.5 >= v then ub = 바닥; if ma(v,40)*2.5 <= v then ub = 천장; if 기준저[1] + 전환가격 > c[1] and 기준저[1] + 전환가격 <=c then 방향 = 상승; if 기준고[1] - 전환가격 < c[1] and 기준고[1] - 전환가격 >= c then 방향 = 하락; if 방향[1] == 하락 and 방향 == 상승 then { for j = 8 downto 0 { 저[j+1] = 저[j]; } 저[0] = 기준저; 꺾은선 = 기준저; 기준저 = c; 기준고 = c; if E == 상승 then {E표시 = 꺾은선 - 전환가격; 매수마크 = 매수마크 + 1; } if UB == 바닥 then {UB표시 = 꺾은선 - 2*전환가격; 매수마크 = 매수마크 + 1; } if w == 상승 then { w표시 = 꺾은선 - 3*전환가격; 매수마크 = 매수마크 + 1; } E = 0; UB = 0; w = 0; if 저[1] > 저[0] then 색깔 = 파랑; if 색깔[1] !=색깔 and 고[1] < 고[0] and 저[1] > 저[0] then 확인 = 0; if 저[1] < 저[0] then { if 저[2] >= 저[1] then 확인 = 바닥; else 확인 = 0; } if 확인 == 바닥 and 확인[1] < 확인 then 확인표시 = 꺾은선 -4*전환가격; if 색깔[1] !=색깔 then 전환 = 0; if 저[1] < 저[0] and 고[1] < 고[0] then 전환 = 상승; if 전환 == 상승 and 전환[1] < 전환 then { 전환표시 = 꺾은선 - 5*전환가격; 진입 = 1; } if 고[1]-저[1] > 고[0]-저[1] and 고[0]-저[1] > 고[0]-저[0] then { 대중소 = 꺾은선 - 6*전환가격; 대중소색깔 = 빨강; } if 고[1]-저[1] < 고[0]-저[1] and 고[0]-저[1] < 고[0]-저[0] then { 소중대 = 꺾은선 -6*전환가격; 대중소색깔 = 파랑; } } a75 = ((고[0]-저[1])-(고[0]-저[0])*0.25)/((고[0]-저[1])+(고[0]-저[0])*0.25); a60 = ((고[0]-저[1])-(고[0]-저[0])*0.4)/((고[0]-저[1])+(고[0]-저[0])*0.4); a50 = ((고[0]-저[1])-(고[0]-저[0])*0.5)/((고[0]-저[1])+(고[0]-저[0])*0.5); a40 = ((고[0]-저[1])-(고[0]-저[0])*0.6)/((고[0]-저[1])+(고[0]-저[0])*0.6); a25 = ((고[0]-저[1])-(고[0]-저[0])*0.75)/((고[0]-저[1])+(고[0]-저[0])*0.75); b = 저[1]-(고[0]-저[0])*2; 상상 = (저[1]-a75+b)/(1-a75); 상 = (저[1]-a60+b)/(1-a60); 중 = (저[1]-a50+b)/(1-a50); 하 = (저[1]-a40+b)/(1-a40); 하하 = (저[1]-a25+b)/(1-a25); if 등락폭[1] == -1 or 등락폭[1] == -2 Then 매수마크 = 매수마크 + 1; if 방향[1] == 상승 and 방향 == 하락 then { for j = 8 downto 0 { 고[j+1] = 고[j]; } 고[0] = 기준고; 꺾은선 = 기준고; 기준고 = c; 기준저 = c; if E == 하락 then {E표시 = 꺾은선 + 전환가격; 매도마크 = 매도마크 + 1;} if UB == 천장 then { UB표시 = 꺾은선 + 2*전환가격; 매도마크 = 매도마크 +1;} if w == 하락 then {w표시 = 꺾은선 +3*전환가격; 매도마크 = 매도마크 +1;} E = 0; UB = 0; W = 0; if 고[1] < 고[0] then 색깔 = 빨강; if 색깔[1] !=색깔 and 고[1] < 고[0] and 저[1] > 저[0] then 확인 = 0; if 고[1] > 고[0] then { if 고[2] <= 고[1] then 확인 = 천장; else 확인 = 0; } if 확인 == 천장 and 확인[1] > 확인 then 확인표시 = 꺾은선 + 4*전환가격; if 색깔[1] !=색깔 then 전환 = 0; if 고[1] > 고[0] and 저[1] > 저[0] then 전환=하락; if 전환 == 하락 and 전환[1] > 전환 then 전환표시 = 꺾은선 + 5*전환가격; if 고[1]-저[1] > 고[1]-저[0] and 고[1]-저[0] > 고[0]-저[0] then { 대중소 = 꺾은선 + 5*전환가격; 대중소색깔 = 파랑; 청산 = 1; } if 고[1]-저[1] < 고[1]-저[0] and 고[1]-저[0] < 고[0]-저[0] then { 소중대 = 꺾은선 + 5*전환가격; 대중소색깔 = 빨강; } if 고[2]-저[1] < 고[1]-저[1] and 고[1]-저[1] < 고[1]-저[0] then 청산 = 2; } a25 = (-(고[1]-저[0])+(고[0]-저[0])*0.75)/((고[1]-저[0])+(고[0]-저[0])*0.75); a40 = (-(고[1]-저[0])+(고[0]-저[0])*0.6)/((고[1]-저[0])+(고[0]-저[0])*0.6); a50 = (-(고[1]-저[0])+(고[0]-저[0])*0.5)/((고[1]-저[0])+(고[0]-저[0])*0.5); a60 = (-(고[1]-저[0])+(고[0]-저[0])*0.4)/((고[1]-저[0])+(고[0]-저[0])*0.4); a75 = (-(고[1]-저[0])+(고[0]-저[0])*0.25)/((고[1]-저[0])+(고[0]-저[0])*0.25); b = 고[1] + (고[0]-저[0])+2; 상상 = (고[1]+a25+b)/(1+a25); 상 = (고[1]+a40+b)/(1+a40); 중 = (고[1]+a50+b)/(1+a50); 하 = (고[1]+a60+b)/(1+a60); 하하 = (고[1]+a75+b)/(1+a75); if 등락폭[1] == 0 or 등락폭[1] == 1 or 등락폭[1] ==2 Then 매도마크 = 매도마크 + 1; if iff(방향=상승, 기준고, 기준저) >= (상상+상)/2 then 등락폭 = 2; else if iff(방향=상승, 기준고, 기준저) >= (상+중)/2 then 등락폭 = 1; else if iff(방향=상승, 기준고, 기준저) > (중+하)/2 then 등락폭 = 0; else if iff(방향=상승, 기준고, 기준저) > (하+하하)/2 then 등락폭 = -1; else 등락폭 = -2; if MarketPosition()==0 then { if 진입 == 1 then buy("눌림목매수"); } if MarketPosition() == 1 then { if 청산 == 1 then ExitLong("대중소"); if 청산 == 2 then ExitLong("소중대"); if 저[0] > C then ExitLong("손절매"); if 고[1]>고[0] then ExitLong("전고점갱신실패"); if 매도마크 >= 3 then exitlong("매도마크"); } 감사^^
프로필 이미지
회원
2013-04-25
329
글번호 62507
시스템
답변완료

보완 부탁드리겠습니다.

input : P1(20), Per1(200); var1 = ma(v,P1); if V >= var1*(1+Per1/100) and C > ma(C, P1) and C > O and var1 >= 100000 Then find(1); 위의 수식에 대해 변수를 하나 추가해서 1일전 종목 2일전 종목 등을 검색해 보고 싶습니다. 만약 변수에 2를 설정하면 2일전에 해당되는 종목만 조회가 되었으면 합니다. 0을 입력하면 오늘에 해당되는 종목만 조회가 되면 됩니다. 감사합니다.
프로필 이미지
엠제이
2013-04-25
260
글번호 62506
검색

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

프로필 이미지
starj5
2013-04-25
54
글번호 62505
지표
답변완료

답변이 없으셔서 끌어올립니다^^

작성하여주신 아래 코딩으로 3분봉 백테스트하니 진입이 전혀 안되네요. 수식검증은 이상이 없습니다. 그리고 검색에서 신호검색을 하면 종전 수식은 있는데 신규 저장한 수식은 목록에 안보이는데 이건 왜 이런건지요. 확인 부탁 드립니다^^ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 도움 주셔서 감사합니다 일봉기준 진입을 3분봉으로.... > 안녕하세요 예스스탁입니다. Input : k(0.15), k2(0.1); input : P1(5),P2(10),P3(20); var : count(0),sumV1(0),sumV2(0),sumV3(0),sumV11(0),cnt(0); sumV1 = 0; sumV11 = 0; sumV2 = 0; sumV3 = 0; for count = 0 to P3{ if count < P1 Then sumV1 = sumV1+CloseD(count); if count < P1 Then sumV11 = sumV11+CloseD(count+1); if count < P2 Then sumV2 = sumV2+CloseD(count); if count < P3 Then sumV3 = sumV3+CloseD(count); } var1 = sumV1 / P1; var11 = sumV11 / P1; var2 = sumV2 / P2; var3 = sumV3 / P3; var4 = 0; var5 = 0; for cnt = 1 to 10{ if DayClose(cnt) > DayClose(cnt+1)*(1 + k) Then var4 = var4+1; if DayHigh(cnt) > DayHigh(cnt+1)*(1 + k2) Then var5 = var5+1; } if var1 > var2 and var2 > var3 and (var4 >= 1 or var5 >= 1) and DayClose(1) < var11 and DayOpen < Var1 and crossup(c,var1) Then buy(); if MarketPosition == 1 Then{ value1 = highest(H,BarsSinceEntry); if CurrentContracts == MaxContracts Then exitlong("bx1",atlimit,EntryPrice*1.05,"",50,1); if CurrentContracts < MaxContracts Then{ exitlong("bx2",atlimit,EntryPrice*1.08); } } SetStopTrailing(1, 5, PercentStop, 1); SetStopLoss(2,PercentStop); 즐거운 하루되세요 > 작은하늘 님이 쓴 글입니다. > 제목 : 도움 주셔서 감사합니다 일봉기준 진입을 3분봉으로.... > 일봉에서 5일선 돌파시 진입하는 조건으로 코딩하니 종가 진입이라 익일 시초가 형성후 매수되어 진입이 늦어지는 단점이 있네요. 그래서 신호 발생은 아래와 같이 일봉 기준으로 동일하게 하고 진입은 3분봉 기준으로 일봉의 5일선 돌파시 매수, 5일선에서 2% 하락하면 스탑로스 되도록 코딩을 수정, 보완 부탁드립니다. 물론 5일선 재돌파시는 재매수 입니다^^ 다시한번 말씀 드리지만 그외의 코딩은 변경 없습니다. 감사합니다^^ Input : k(0.15), k2(0.1); var1 = ma(c,5); var2 = ma(c,10); var3 = ma(c,20); var4 = countif(C>=C[1]*(1 + k),10); var5 = countif(H>=H[1]*(1 + k2),10); var6 = countif(L < var1,5); if var1 > var2 and var2 > var3 and (var4[1] >= 1 or var5[1] >= 1) and #var6[2] == 0 and C[1] < var1[1] and O < Var1 and crossup(c,var1) Then #V >= V[1]*2 Then buy(); if MarketPosition == 1 Then{ value1 = highest(H,BarsSinceEntry); if CurrentContracts == MaxContracts Then exitlong("bx1",atlimit,EntryPrice*1.05,"",50,1); if CurrentContracts < MaxContracts Then{ exitlong("bx2",atlimit,EntryPrice*1.08); } } SetStopTrailing(1, 5, PercentStop, 1); SetStopLoss(2,PercentStop);
프로필 이미지
작은하늘
2013-04-25
265
글번호 62495
시스템

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

프로필 이미지
byseob
2013-04-25
48
글번호 62493
시스템
답변완료

질문드립니다.

챠트에서 자동 추세선을 추가하면 빨간색 화살표가 표시되는데 당일 빨간색 화살표가 나타난 종목들을 검색하는 방법이 없는지 궁금합니다.
프로필 이미지
엠제이
2013-04-25
202
글번호 62492
검색
답변완료

문의(MW)

1. 아래는 이전에 올려주신 식을 검색해서 찾았는데 Buy()는 먹히는데, sell은 한번도 발생이 안되네요. 검색식에서도 표기가 되질 않습니다. 틱차트에서 사용중인데 봉을 제대로 세어서 계산되는지 궁금합니다. 검색식으로 해서 찍어보면 찍히지 않아야 할 부분도 점이 찍힙니다. 검증 부탁드립니다. VARS: LEFT(5),RIGHT(5); VARS: mav(0); VARS: SH1(0), SH2(0), SHi1(0), SHi2(0); VARS: SL1(0), SL2(0), SLi1(0), SLi2(0); mav = ma(C, 33); if (SwingHigh(1, mav, LEFT, RIGHT, LEFT+RIGHT+1) != -1) then { SH1 = mav[RIGHT]; #최근 고점 SH2 = var1[1]; #전고점 SHi1 = index[RIGHT]; #최근고점 인덱스 SHi2 = var1[1]; #전고점 인덱스 } if (SwingLow(1, mav, LEFT, RIGHT, LEFT+RIGHT+1) != -1) then { SL1 = mav[RIGHT]; #최근저점 SL2 = var1[1]; #전저점 SLi1 = index[RIGHT]; #최근 저점 인덱스 SLi2 = var1[1]; #전저점 인덱스 } if ( (Min(SH1, SH2, SL1, SL2) != -1) && (SH1 > SL1) && (SH1 > SL2) #양 저점보다 고점이 크다 && (SLi1 > SHi1) && (SHi1 > SLi2) #전저점 --> 최근고점 --> 최근저점순 발생 && (CrossUp(CLOSE, SH1)) #최근 고점을 상향돌파 && (MAV[0] > MAV[1]) && (CLOSE > MAV) ) then { buy(); } if ( (Min(SH1, SH2, SL1, SL2) != -1) && (SL1 < SH1) && (SL1 < SH2) #양 고점보다 저점이 작다 && (SHi1 > SLi1) && (SLi1 > SHi2) #전고점 --> 최근저점 --> 최근고점순 발생 && (CrossDown(CLOSE, SL1)) #최근 저점을 하향이탈 ) then { sell(); } 2. 위 식은 33이평의 MW을 보여주는 것이 맞는가요? 3. 예스차트는 무엇인가요?? 감사합니다.
프로필 이미지
TRF
2013-04-25
220
글번호 62491
시스템
답변완료

예스스팟 ChartEX 문의 드립니다.

안녕하세요. 예스스팟에서 ChartEX 를 사용하고 있는데요.. 이 차트를 화면에 자동으로 그대로 보이게 하는 방법이 없을까요?
프로필 이미지
공간
2013-04-25
201
글번호 62489
시스템