커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수정좀 부탁드립니다...

어제 질문드려서 식은 하나 완성하기는했는데 아직 완전하지가 않은거 같아서 몇가지 수정좀 부탁드립니다.. 1차매수후 분할매도 5프로에서 절반 10프로에서 나머지중에 절반매도 주가가 다시 떨어지면 5프로수익권에서 전체매도 1차매수후 매수가대비 주가가 10프로이상 상승하지 않으면 2차매수가 진행... 2차매수후 평단가대비 3프로에서 총수량에 절반매도 5프로에서 나머지절반매도 주가가 다시떨어지면 1프로에서 전체매도 2차매수후 평단가대비 5프로이상 상승하지 않으면 3차매수진행... 3차매수후 평단가대비 1프로에 전체매도.... 그리고 가장중요한거 1차매수가 처음으로 들어갈때 앞에봉갯수가 2400개 이상으로 고쳐주세요...자꾸 귀찮게해서 죄송합니다..^^* input : Atime(10),P1(60),P2(120),P3(240); var : cnt(0),count(0),sum1(0),mav1(0),sum2(0),mav2(0),sum3(0),mav3(0); Array : CC[2400](0); var1 = TimeToMinutes(stime)%Atime; if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{ value1 = value1+1; for cnt = 1 to 299{ CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; sum1 = 0; sum2 = 0; sum3 = 0; for count = 0 to P3{ if count < P1 and value1 >= P1 Then sum1 = sum1+CC[count]; if count < P2 and value1 >= p2 Then sum2 = sum2+CC[count]; if count < P3 and value1 >= P3 Then sum3 = sum3+CC[count]; } inputs : 투입금액1(2000000),투입금액2(4000000); if CodeCategory == 1 Then{ #코스피 if BasePrice < 50000 Then{ Var5 = int(int(투입금액1/C)/10)*10; Var6 = int(int(투입금액2/C)/10)*10; } Else{ Var5 = int(투입금액1/C); Var6 = int(투입금액2/C); } } if CodeCategory == 2 Then{ Var5 = int(투입금액1/C); Var6 = int(투입금액2/C); } if CodeCategory == 6 Then{ Var5 = int(투입금액1/(C*BigPointValue)); Var6 = int(투입금액2/(C*BigPointValue)); } mav1 = sum1/P1; mav2 = sum2/P2; mav3 = sum3/P3; if TotalTrades < 1 and MarketPosition == 0 and ((l < mav1*1.005)and(c < mav1*1.015) or ( c < mav1*1.006 )) Then buy("1차매수",atmarket,DEF,var5); if MarketPosition == 1 and CurrentEntries ==1 Then{ exitlong("1차수익실현",atlimit,AvgEntryPrice*1.05); } if MarketPosition == 1 and CurrentEntries == 1 and ((l < mav2*1.01)and(c < mav2*1.02) or ( c < mav2*1.009 )) Then buy("2차매수",atmarket,DEF,var6); if MarketPosition == 1 and CurrentEntries == 2 Then{ exitlong("2차수익실현",atlimit,AvgEntryPrice*1.035); } if MarketPosition == 1 and CurrentEntries == 2 and (((l < mav3*1.005)and(c < mav3*1.01) or ( c < mav3*1.006 )) and (C < AvgEntryPrice*0.97))Then buy("3차매수",atmarket,DEF,var6); if MarketPosition == 1 and CurrentEntries == 3 Then{ exitlong("3차수익실현",atlimit,AvgEntryPrice*1.03); }
프로필 이미지
상위1프로되기
2012-02-24
491
글번호 48148
시스템
답변완료

Binary wave macd

수고하십니다. 문의사항은 Binary wave macd 에 대한 자세한 설명부탁드립니다. 감사합니다.
프로필 이미지
ksh003
2012-02-23
590
글번호 48147
지표
답변완료

수정 부탁드립니다.

아래의 수식을 적용해보니 (고가+저가)/2 의 평균값 즉, 고가와 저가의 평균중간값이 나오는거 같은데요... 제가 얻고자 하는 것은 (고가-저가)의 평균값입니다. 단순히 (HH+LL)/2 부분을 HH-LL 로 바꿔도 값이 이상하게 나오네요.. 정확한 수정 부탁드립니다. input : 조회갯수(5000),N(7); var : cnt(0),count(0),sum1(0),mav1(0),HH(0),LL(0); Array : HL[500](0); if index == 0 or date != date[1] Then var3 = TimeToMinutes(stime); var1 = (TimeToMinutes(stime)-var3)%(BarInterval*N); var2 = int(조회갯수/(BarInterval*N)); if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{ value1 = value1+1; HH = H; LL = L; for cnt = 1 to 499{ HL[cnt] = HL[cnt-1][1]; } } if H > HH Then HH = H; if L < LL Then LL = L; HL[0] = (HH+LL)/2; if HL[var2] > 0 Then{ sum1 = 0; for count = 0 to var2-1{ sum1 = sum1+HL[count]; } mav1 = sum1/var2; plot1(mav1); }
프로필 이미지
9단
2012-02-23
498
글번호 48145
지표
답변완료

문의드립니다

INPUTS: LENGTH(26); VARS: TEMA1(0); TEMA1 = (3 * Ema(c,LENGTH)) - (3 * Ema(Ema(c,LENGTH),LENGTH)) + (Ema(Ema(Ema(c,LENGTH),LENGTH),LENGTH)); PLOT1(TEMA1,"TEMA1"); 예스 제공하는 테마 입니다 위 테마선에 연동하는 선을 변수만 조금 다르게 해서 하나 더 만들어 넣을수 있습니까? 님 같은 분이 계셔서 예스만 보게 됐니다 항상 감사합니다
프로필 이미지
cjfdk
2012-02-23
484
글번호 48144
지표
답변완료

다시한번 자세히좀 부탁드립니다.

어제 이 식을 해주셨습니다. 안된다고 나와요 다시 정확하게좀 말해주세여 다시 검토 부탁드립니다. 왜 안되는지 ㅠㅠ 다시한번 자세히좀 부탁드립니다. 질문 내용 "5분봉챠트에서 일봉의 5ema ,10ema, 20ema, 40ema 평균선을 보고 매수 조건 입니다. 5분봉 지수5이평이 일봉 10ma를 상향교차시 매수하고 분봉5이평이 일봉 5이평을 하향이탈하면 청산합니다. 매도조건입니다. 분봉5이평이 일봉 10이평을 하향 이탈하면 매도하고 분봉5이평이 일봉 5이평을 상향돌파시 청산합니다. 강제청산은 0.10로 반대 매매의 경우 강제 청산하게 해주세요 일봉정배열이 나올때 노래신호 나오게 해주세요^^ 역시 반대 역배열시에도 ^^ (반복으로 10회정도)" 1, 시스템식 Input : Period1(5),Period2(10),Period3(10),Period4(10); var : DINDEX(0); Var : Ep1(0),JISU1(0),PreJISU1(0); Var : Ep2(0),JISU2(0),PreJISU2(0); Var : Ep3(0),JISU3(0),PreJISU3(0); Var : Ep4(0),JISU4(0),PreJISU4(0); #일봉 지수이평 계산 Ep1 = 2/(Period1+1); Ep2 = 2/(Period2+1); Ep3 = 2/(Period3+1); Ep4 = 2/(Period4+1); if date != date[1] then { DINDEX = DINDEX + 1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; PreJISU3 = JISU3[1]; PreJISU4 = JISU4[1]; } if DINDEX <= 1 then{ JISU1 = C; JISU2 = C; JISU3 = C; JISU4 = C; } else{ JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); JISU3 = C * EP3 + PreJISU3 * (1-EP3); JISU4 = C * EP4 + PreJISU4 * (1-EP4); } #분봉지수이평 var1 = ema(c,5); var2 = ema(c,10); if crossup(var1,Jisu2) Then buy(); if CrossDown(var1,Jisu1) Then ExitLong(); if CrossDown(var1,Jisu2) Then Sell(); if crossup(var1,Jisu1) Then ExitShort(); SetStopLoss(0.10,PointStop); 2, 지표식 일봉 5ema ,10ema, 20ema, 40ema을 그리는 지표식입니다. 지표식안에 정배열,역배열시 소리출력되게 수식 추가했습니다. 다만 그 횟수등은 조절할 수 없습니다. 조건만족하면 계속 발생하게 됩니다. 소리를 출력하는 함수인 playsound는 함수안에 직접 듣고자 하시는 wav파일을 지정하셔야 합니다. 아래수식은 기본으로 제공되는 wav를 파일의 경로와 파일명을 지정해 드렸습니다. 다른음를 듣고자 하시면 직접경로와 파일명을 지정해 주셔야 합니다. Input : Period1(5),Period2(10),Period3(10),Period4(10); var : DINDEX(0); Var : Ep1(0),JISU1(0),PreJISU1(0); Var : Ep2(0),JISU2(0),PreJISU2(0); Var : Ep3(0),JISU3(0),PreJISU3(0); Var : Ep4(0),JISU4(0),PreJISU4(0); #일봉 지수이평 계산 Ep1 = 2/(Period1+1); Ep2 = 2/(Period2+1); Ep3 = 2/(Period3+1); Ep4 = 2/(Period4+1); if date != date[1] then { DINDEX = DINDEX + 1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; PreJISU3 = JISU3[1]; PreJISU4 = JISU4[1]; } if DINDEX <= 1 then{ JISU1 = C; JISU2 = C; JISU3 = C; JISU4 = C; } else{ JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); JISU3 = C * EP3 + PreJISU3 * (1-EP3); JISU4 = C * EP4 + PreJISU4 * (1-EP4); } plot1(Jisu1); plot2(Jisu1); plot3(Jisu1); plot4(Jisu1); #소리출력부분 if Jisu1 > Jisu2 and Jisu2 > Jisu3 and Jisu3 > Jisu4 Then PlaySound("C:₩예스트레이더31₩Data₩alert.wav"); if Jisu1 < Jisu2 and Jisu2 < Jisu3 and Jisu3 < Jisu4 Then PlaySound("C:₩예스트레이더31₩Data₩alert.wav");
프로필 이미지
이카나
2012-02-24
500
글번호 48143
시스템
답변완료

차트에서 왜 신호가 안보이나요?

MACD오실레이터로 30분을 참조로 해당봉이 그 전봉보다 값이 크고 다음봉도 해당봉보다 값이 크고 그 다음봉도 값이 클 때 매수할려고 아래와 같이 했는데 싸인이 안나오네요 봉값은 30분기준 종값입니다. Input : shortPeriod(12), longPeriod(26), Period(5), Price(close); Var : value1(0); value1=MACD(shortPeriod, longPeriod, Price)-ema(MACD(shortPeriod,longPeriod,Price),Period); condition=value1[1]<value1; if condition == true and C> C[1] and C[1]>C[2] then buy(); 감사합니다
프로필 이미지
장안
2012-02-23
429
글번호 48142
검색
답변완료

수식 좀 만들어 주세요

장시작 후 풋옵션 모든 행사가 거래량 총합계에서 콜옵션 모든 행사가 거래량 총합계를 뺀 값을 나타내는 지표를(선이건 막대그래프건) 만들고 싶습니다. 지표이름 옆에 현재 값을 숫자로 나타낼수도 있으면 좋겠습니다.
프로필 이미지
회원
2012-02-23
477
글번호 48141
지표
답변완료

문의 드립니다.

다음식으로 합성매매를 만들고자합니다. 추세매매(추수1,추도1)는 돌파 진입 후 다시 변동성 채널안으로 들어와서 5개봉 이상 하락 또는 상승시(다시 재돌파 못할시) 청산 역추세매매(역수1,역도1)는 변동성 채널을 돌파후 다시 변동성 채널안으로 들어온 후 몇십분이 지났건간에 진입조건(골든크로스)이 발생되면 진입(아래 진입식 참고) <----- 이게 제일 중요합니다. 청산은 데드크로스 발생시 청산 또는 반대 변동성채널(예를 들자면 chup에서 chdn) 도달시 청산 목표수익후 더이상 역추세만 진입금지 감사합니다. input : P1(1), Mult(0.5), AtrMult(4), stopPer(0.7); var : sumV(0), DailyVol(0), count(0), ChUp(0), ChDn(0); # 분봉에서 구현한 일봉의 고가-저가 변동폭의 N일 평균 sumV = 0; for count = 1 to P1 { sumV = sumV+(DayHigh(count)-DayLow(count)); } DailyVol = sumV / P1; # 시초가를 기준으로한 상단과 하단의 두개의 채널을 만듬 ChUp = dayOpen + DailyVol*Mult; ChDn = dayOpen - DailyVol*Mult; # 진입식 if CrossUp(C, ChUp) Then buy(추수1); if Crossdown(C, ChDn) Then sell(추도2); if Crossdown(C, ChDn) 발생후 CrossUp(C, chdn) 발생후 골든크로스 Then buy(역수1); if CrossUp(C, ChUp) 발생후 Crossdown(C, Chup) 발생후 데드크로스 Then sell(역도1);
프로필 이미지
비츠로
2012-02-23
434
글번호 48140
시스템
답변완료

봉크기 세기

안녕하세요 수고하십니다 분봉크기를 계속 세는 식을 만들려고 하는데 잘 안되네요 당일 장시작후 양봉과 음봉의 크기를 계속 세어서 현재까지 더 큰 봉이 음봉인지 양봉인지 판단하고 그 봉크기를 기억하는 식입니다 설명이 잘 되었는지 모르겠네요;; 부탁드립니다
프로필 이미지
youngnam
2012-02-23
462
글번호 48138
시스템