커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

45031번 글에 대한 재문의

수고 많으십니다. 수식 중에 이해가 안되는 부분이 있어서 그 부분에 이해되지 않는 내용을 적어보겠습니다. 1. input : N(2); var : cnt(0); Array : V1[20](0),V2[20](0),V3[20](0); if date != date[1] date가 date[1]과 같지 않다는게 무슨 뜻인지 모르겠습니다. 그리고 이렇게 해서 왜 V1,V2,V3에 전일 값이 계속해서 저장되는지 모르겠습니다. Then{ V1[0] = 0; V2[0] = 0; V3[0] = m; for cnt = 1 to 19{ V1[cnt] = V1[cnt-1][1]; V2[cnt] = V2[cnt-1][1]; V3[cnt] = V3[cnt-1][1]; } } V1에는 14시50분의 가격, V2에는 15시의 거래대금, V3에는 09시의 거래대금을 저장하시는 것 같습니다. 그런데 위에 식을 보면 V1에는 '가격'과 14시 50분이라는 '시간'에 대한 지정이 없는 것 같아서, V1에 어떻게 14시 50분의 가격이 저장되는지 이해가 가지 않습니다. V2와 V3도 마찬가지로 어떻게 15시의 거래대금, 09시의 거래대금이 저장되는 건지 이해가 가지 않습니다. 궁금증을 풀어주시면 감사하겠습니다. if stime == 144500 Then V1[0] = C; if stime == 150000 Then V2[0] = m; if V1[N] > 0 Then { var1 = (V1[N]-DayClose(N+1))/DayClose(N+1)*100; if var1 >= 0.15 Then find(var2[N]); } plot1(V1[n],"첫째"); plot2(V2[n],"둘째"); plot3(V3[n],"셋째");
프로필 이미지
회원
2015-11-17
169
글번호 92483
종목검색
답변완료

시스템매매의 정지

당일 중에 진입 및 청산이 3 회이상인 경우는 마지막 3 번째의 청산후 당일 중에는 더이상 진입 및 청산의 단계가 진행이 되지 않도록 시스템 매매가 정지 되도록 하고, 다음(익일) 영업시간부터 시스템의 작동이 다시 시작 할 수 있도록 하는 수식을 부탁 합니다.
프로필 이미지
너무조아
2015-11-17
169
글번호 92481
시스템

너무조아 님에 의해서 삭제되었습니다.

프로필 이미지
너무조아
2015-11-17
2
글번호 92480
시스템
답변완료

문의드립니다.

안녕하세요 항상 도움주심에 감사드립니다. 옵션가격을 이동평균하고 있는데 만기가 지나면 새로 갱신해서 구하고 싶습니다. 이전월물 가격에 영향을 받지 않도록 하는 수식코딩을 예시해 주시길 부탁합니다. 감사합니다.
프로필 이미지
봉자
2015-11-17
172
글번호 92478
지표
답변완료

부탁 드립니다.

안녕하세요. 지난번에 문의한 내용이 제대로 설명이 되지 않은 것 같아서 조건을 다시 적어봤습니다. 부탁 드립니다. 1. 당일 거래량으로만 계산한 OBV 10, 20 이동평균선 부탁 드립니다. 2. 10시 이후 진폭이 40틱 이상 60틱 이하일 때 큰 박스(30틱) 이내의 움직임 안에서(시간을 정해줘야 하면 70분으로 해주세요) 작은 박스(20틱) 이내의 횡보가 지속될 때 작은 박스의 중심을 기준으로 중심 아래에서 중심 위로 올라가는 열틱 이상의 움직임이 있거나 중심 위에서 중심 아래로 내려가는 열틱 이상의 움직임이 있으면 카운트1 작은 박스(20틱)의 highest나 lowest를 갱신하면 카운트 취소 첫 진입과 반대로 중심을 벗어나는 열틱의 움직임이 있으면 카운트2 다시 반대로 중심을 벗어나는 열틱의 움직임이 있으면 카운트3 이렇게 카운트 N을 만족하면 차트에 표시하는 지표식을 부탁 드립니다. 진입식은 10틱의 움직임이 3번 이상 나온 후, 큰 박스(30)틱의 고가나 저가를 돌파할 때 입니다. 큰 박스의 고가 돌파에 매수했으면 저가 이탈에 손절입니다. 감사합니다.
프로필 이미지
고운무지개
2015-11-17
233
글번호 92477
지표
답변완료

문의드립니다

아래식에서 5회 매매횟수로 제한 한다고 하면 일반적으로 기본 신호 위치랑 같게 나온다는 전제하에 프로핏타겟 로직을 넣고 싶습니다 그냥 일반 프로핏타겟 식을 넣어버리면 프로핏타겟이 나오자 마자 같은방향으로 진입해버리는 오류가 나오네요 var : entrycnt(0); if stime == 090000 or (stime > 090000 and stime[1] < 090000 ) Then Entrycnt = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entrycnt=entrycnt+1; Input : STO1(10); Input : Ent_N(5); Input : Period1(20); var : Stok(0); StoK = StochasticsK(Period1,1); if MarketPosition == 0 and entrycnt < Ent_N and StoK > 50+STO1 Then buy("B_En"); if MarketPosition == 1 and IsEntryName("B_En") == true and StoK < 50-STO1 Then exitlong("B_Ex"); if MarketPosition == 0 and entrycnt < Ent_N and StoK < 50-STO1 Then sell("S_En"); if MarketPosition == -1 and IsEntryName("S_En") == true and StoK > 50+STO1 Then ExitShort("S_Ex");
프로필 이미지
파인애플
2015-11-17
171
글번호 92476
시스템
답변완료

시스템 수식 수정 부탁드립니다.

아래의 수식을 1일 N회 거래제한 규정을 삽입 할수 있도록 수정 부탁드립니다. Input : Period(5); Var : 매수이평(0), 매도이평(0); 매수이평 = ma(bids, period); 매도이평 = ma(asks, period); if crossup(매수이평, 매도이평) then buy(); if crossdown(매수이평, 매도이평) then sell();
프로필 이미지
승부사1
2015-11-17
186
글번호 92466
시스템
답변완료

시스템 수식 수정 부탁드립니다.

아래 수식의 오류 수정 부탁드립니다. input: shortPeriod(12), longPeriod(26), Period(9), maPeriod(20), ROCPeriod(10), stoPeriod1(10), stoPeriod2(6), CCIPeriod(10); var: value(0); value = BW_SEVEN(shortPeriod, longPeriod, Period, maPeriod, ROCPeriod, stoPeriod1, stoPeriod2, CCIPeriod); //문장1 # 매수/매도청산 If CrossUp(value,5) Then { Buy(“매수”); } # 매도/매수청산 If CrossDown(value,-5) Then { Sell(“매도”); }
프로필 이미지
승부사1
2015-11-17
183
글번호 92465
시스템
답변완료

함수 검토 요청(11-1_거꾸로)

아래의 식은 완벽하게 손실만 기록하는 시스템입니다. 거꾸로 매매하면 대박 수익을 낼거 같습니다. 즉, 매수신호에 매도를 하고, 매도신호에 매수를 (매수청산에 매도청산을, 매도청산에 매수청산을) 하는 식으로 전환해주세요~ var : entry1(0); var : ho1(0),OL1(0),HL1(0); var : maho1(0),maOL1(0),maHL1(0); var : cnt1(0),sumho1(0),sumOL1(0),sumHL1(0); var : EntryCnt1(0); var : V1(0),V2(0),V3(0),V4(0),V5(0); var : V6(0),V7(0),V8(0),V9(0),V10(0); if bdate != bdate[1] Then entry1 = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry1 = entry1+1; ho1 = Dayhigh-Dayopen; OL1 = DayOpen-DayLow; HL1 = DayHigh-DayLow; sumho1 = 0; sumOL1 = 0; sumHL1 = 0; for cnt1 = 1 to 10{ sumho1 = sumho1 + (dayhigh(cnt1)-dayopen(cnt1)); sumOL1 = sumOL1 + (DayOpen(cnt1)-DayLow(cnt1)); sumHL1 = sumHL1 + (DayHigh(cnt1)-DayLow(cnt1)); } maho1 = sumho1/10; maOL1 = sumOL1/10; maHL1 = sumHL1/10; V1 = V2 = V3 = V4 = V5 = V6 = V7 = V8 = V9 = V10 = if MarketPosition == 0 and entry1 == 0 Then{ if V7 > V8 Then buy("b1",AtLimit,V7-0.02); if V7 < V8 Then buy("b2",AtStop,V8-0.02); } if MarketPosition == -1 and IsEntryName("s1") == true Then{ ExitShort("bp1",AtStop,V9-0.03); ExitShort("bl1",AtLimit,V6); } if MarketPosition == -1 and IsEntryName("s2") == true Then{ ExitShort("bp2",AtStop,V9-0.03); ExitShort("bl2",AtLimit,V6); } var : TF(0); var : Xtime(0), Etime(false),cnt(0),mav1(0),mav2(0); var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0); Array : HH[50](0),LL[50](0),CC[50](0); mav1 = ma(c,5); mav2 = ma(C,20); TF = TimeToMinutes(stime)%30; if Bdate != Bdate[1] Then{ Etime = true; if stime >= 090000 Then Xtime = 050000; Else Xtime = 060000; } if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 49{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; if HH[25+2] > 0 Then{ HV = HH[0]; LV = LL[0]; HV1 = HH[1]; LV1 = LL[1]; HV2 = HH[2]; LV2 = LL[2]; for cnt = 0 to 25{ if HH[cnt] > HV Then HV = HH[cnt]; if LL[cnt] < LV Then LV = LL[cnt]; if HH[cnt+1] > HV Then HV = HH[cnt+1]; if LL[cnt+1] < LV Then LV = LL[cnt+1]; if HH[cnt+2] > HV Then HV = HH[cnt+2]; if LL[cnt+2] < LV Then LV = LL[cnt+2]; } var1 = (HV+LV)/2; var2 = (HV1+LV1)/2; var3 = (HV2+LV2)/2; if Etime == true then{ if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then sell("s",AtMarket); if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then ExitShort("sx",AtMarket); } } if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{ Etime = false; ExitShort(); }
프로필 이미지
통큰베팅
2015-11-17
180
글번호 92464
시스템