커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

매집/분산(AD) 지표 표준화 요청드립니다.

매집/분산(AD)지표 = (종가-시가) ÷ (고가-저가) × 거래량 입니다. 위의 지표를 10일 이동 총계를 오실레이터로 그려보고 싶습니다. 즉 연산기간(10일)의 총 거래량으로 나누는 방식으로 표준화를 하고 싶습니다. {(종가-시가) ÷ (고가-저가) × 거래량}의 10일 합 ÷ 10일 거래량 합 또한 일중강도(Ⅱ) = (2 ×종가 - 고가 - 저가) ÷ (고가 - 저가) × 거래량 입니다 이 또한 N기간(21일) 동안으로 표준화하여 오실레이터로 표현 부탁드립니다 감사합니다
프로필 이미지
뽄때
2016-01-10
149
글번호 94261
지표
답변완료

부탁드립니다.

오일 : 1분봉기준 5이평, 17이평, 50이평 A 형 < 매수 원칙 > 처음진입 : 17 < 5 < 50 (단 17,5,50 이평값이 한가지라도 같으면 안됨) "추가진입 : 익청한후 익청한봉부터 15번째봉까지 15개봉모두 17이평을 5틱훼손하지 않았으면 15번째봉 종가에 진입 (단. 15개봉중 하나라도 17이평을 5틱이상 훼손 하면 안됨)" "리버스 : 포지션을 가지고 있는 상태에서 반대신호 ( 17 > 5 > 50) 가 나오면 종가 청산 다음봉 시가에 매도 진입 " * 리버스 신호가 반대신호 나오는 봉에 청산 하고 신규진입을 해야 하는데 그것이 어려우면 다음봉 시가에 신규 진입하는 것으로 요망 정리 : 익절 6틱, 손절 13틱 < 매도 원칙 > 처음진입 : 17 > 5 > 50 (단 17,5,50 이평값이 한가지라도 같으면 안됨) "추가진입 : 익청한후 익청한봉부터 15번째봉까지 15개봉모두 17이평을 5틱훼손하지 않았으면 15번째봉 종가에 진입 (단. 15개봉중 하나라도 17이평을 5틱이상 훼손 하면 안됨)" "리버스 : 포지션을 가지고 있는 상태에서 반대신호 ( 17 < 5 < 50) 가 나오면 종가 청산 다음봉 시가에 매수 진입 " * 리버스 신호가 반대신호 나오는 봉에 청산 하고 신규진입을 해야 하는데 그것이 어려우면 다음봉 시가에 신규 진입하는 것으로 요망 정리 : 익절 6틱, 손절 13틱 "의문점 : 리버스시 정리하고자 또는 진입하고자 하는 봉의 종가 시장가 진입요망 리버스 신호가 한봉에 정리하고 진입하는것이 어려우면 진입은 다음봉 시가에 진입요망" B 형 < 매수 원칙 > "처음진입 : 5 > 17 > 50 (단 5, 17, 50 이평값이 한가지라도 같으면 안됨, 그리고 이평값이 1,2,3, 이격틱수가 30이상 벌어지면 과열이라고 보고 진입포기)" "추가진입 : 익청한후 익청한봉부터 15번째봉까지 15개봉이 17이평을 5틱훼손하지 않았으면 15번째봉 종가에 진입 (단. 15개봉중 하나라도 17이평을 5틱이상 훼손 하면 안됨)" "리버스 : 포지션을 가지고 있는 상태에서 반대신호 ( 5<17<50) 가 나오면 종가 청산 다음봉 시가에 매도 진입 " * 리버스 신호가 반대신호 나오는 봉에 청산 하고 신규진입을 해야 하는데 그것이 어려우면 다음봉 시가에 신규 진입하는 것으로 요망 < 매도 원칙 > "처음진입 : 5 < 17 < 50 (단 5, 17, 50 이평값이 한가지라도 같으면 안됨, 그리고 이평값이 1,2,3, 이격틱수가 30이상 벌어지면 과열이라고 보고 진입포기)" "추가진입 : 익청한후 익청한봉부터 15번째봉까지 15개봉이 17이평을 5틱훼손하지 않았으면 15번째봉 종가에 진입 (단. 15개봉중 하나라도 17이평을 5틱이상 훼손 하면 안됨)" "리버스 : 포지션을 가지고 있는 상태에서 반대신호 ( 5>17>50) 가 나오면 종가 청산 다음봉 시가에 매도 진입 " * 리버스 신호가 반대신호 나오는 봉에 청산 하고 신규진입을 해야 하는데 그것이 어려우면 다음봉 시가에 신규 진입요망 정리 : 익절 12틱, 손절 15틱 * 기존 신호는 청산되면 바로 추가 진입하는 신호로 되어 있음.. 공통사항은 처음진입 1계약, 추가 1계약 총 2계약
프로필 이미지
신나는파파
2016-01-10
123
글번호 94260
시스템

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

프로필 이미지
hm
2016-01-10
11
글번호 94259
종목검색
답변완료

부탁 드립니다

항상 도움 주셔서 감사 드립니다. 스토케스틱 지표의 색상이 변하는 지점에서 그림과 같이 지표1) 종가 AB 차이값을 봉수로 나눈값으로 지표2) 지표 ab차이값을 봉수로 나눈값으로 지표로 부탁드립니다. 미리 감사 드립니다. 수식1) input: s5(20),s3(6); var1 = StochasticsD(s5,s3,s3); if var1 > var1[1] Then plot1(var1,"s1",RED); Else plot1(var1,"s1",BLUE);
프로필 이미지
yes
2016-01-11
218
글번호 94258
지표
답변완료

함수수청요청(11-1, 강제청산조건을 변수로)

안녕하세요? 아래의 함수에서 다음의 강제청산의 조건을 변수로 놓고 변수편집으로 최적화 해보고 싶습니다. 가능할련지요? SetStopLoss( ,PercentStop); SetStopProfittarget( ,PercentStop); SetStopInactivity( , ,PercentStop); ---------------------------------------------------------------------------------------- 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 = dayopen(0)+maho1; V2 = DayOpen(0)-maOL1; V3 = DayOpen(0)+maHL1; V4 = DayOpen(0)-maHL1; V5 = NthMaxList(1,V1,V2,V3,V4); V6 = NthMaxList(2,V1,V2,V3,V4); V9 = NthMaxList(3,V1,V2,V3,V4); V10 = NthMaxList(4,V1,V2,V3,V4); V7 = (V5+V10)/2; V8 = (V6+V9)/2; if MarketPosition == 0 and entry1 == 0 Then{ if V7 > V8 Then sell("s1",AtStop,v7); if V7 < V8 Then sell("s2",Atlimit,v8); } if MarketPosition == -1 and IsEntryName("s1") == true Then{ ExitShort("sp1",atlimit,V9); ExitShort("sl1",AtStop,V6); } if MarketPosition == -1 and IsEntryName("s2") == true Then{ ExitShort("sp2",atlimit,V9); ExitShort("sl2",AtStop,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 buy("b",AtMarket); if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then ExitLong("bx",AtMarket); } } if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{ Etime = false; ExitLong(); }
프로필 이미지
통큰베팅
2016-01-09
150
글번호 94257
시스템
답변완료

부탁드립니다

옵션 종목별 미결제챠트를 만들려고 합니다.. 이를테면..235 콜 미결제..풋 미결제 0선에 가로선을 그어 주시고요.. 4개가 필요 한대요.. 잘 부탁 드립니다..구벅
프로필 이미지
모수
2016-01-10
159
글번호 94256
지표
답변완료

수식 부탁드립니다

안녕하세요 수식 부탁드립니다 1. 1)9시-9시10분까지만 적용 2)당일선물 시가가 야간 종가보다 0.1p 이상으로 높으면 매수 매수가격은 당일시가와 야간종가 간격의 2/3지점의 가격에서 매수 매수청산은 0.8p에서 익절, 0.6p에서 손절 3)당일선물 시가가 야간 종가보다 0.1p 이상으로 낮으면 매도 매도 가격은 두 가격 간 1/3지점에서 매도 매도청산은. 0.8p 익절 0.6p 손절 2. 9시에서9시10분까지만 적용 2)시가+0.9p 가격선을 이탈 시 매도 매도청산은 0.5p 익절 0.5p 손절 3)시가-0.9p 가격선을 돌파시 매수 매수청산 0.5p 익절 0.5p손절 3. 위 두 가지를 한 시스템식으로 표현 가능하면 하나로 부탁드립니다.
프로필 이미지
짱구아빠1234
2016-01-09
166
글번호 94255
시스템
답변완료

수식 수정분탁드려요

안녕하세요. 항상 많은 도움을 받고 있습니다. 캔들스틱 패턴을 이용해 매매을 하고 싶어 질문드립니다. 답글 ; 포아형과 잉태형은 같은 것으로 생각되어 상승장악 하락장악으로 대체했습니다 input : Hbody(2),MSBody(2), MSLength(2),RHbody(2),ESBody(2), ESLength(2); var : Bcond1(0),Bcond2(0),Bcond3(0),Bcond4(0),Bcond5(0); var : Scond1(0),Scond2(0),Scond3(0),Scond4(0),Scond5(0); var : H1(0),H2(0),H3(0),H4(0),H5(0),H6(0),MS1(0),MS2(0),MS3(0),MS4(0),MS5(0); var : RH1(0), RH2(0), RH3(0), RH4(0), RH5(0), RH6(0); var : ES1(0), ES2(0), ES3(0), ES4(0), ES5(0); ##해머조건## H1 = Max(O,C); //윗몸통 값 H2 = Min(O,C); //아랫몸통 값 H3 = H - H1; //윗그림자의 길이 H4 = H2 - L; //아랫그림자의 길이 H5 = H1 - H2; //몸통의 길이 h6 = H5 / H2 *100; //몸통의 길이(시가대비종가의 상승률로 body를 나타냄) ##샛별조건## MS1 = C[2] < O[2] * (1-MSBody/100); // 2일전 종가의 하락률이 시가대비 2% 이상하락 MS2 = C > O * (1+MSBody/100); // 금일 종가의 상승률이 시가대비 2% 이상 MS3 = (max(C[1],O[1])-min(C[1],O[1]))/min(C[1],O[1])*100 < MSLength; // 전일 몸통 길이가 2% 이내 MS4 = C[2] > max(C[1], O[1]); //전일 몸통과 전전일 몸통사이에 갭이 있음을 나타냄 MS5 = O > max(C[1], O[1]); // 당일 몸통과 전일 몸통사이에 갭이 있음을 나타냄 ##역해머조건## RH1 = Max(O,C); //윗몸통 값 RH2 = Min(O,C); //아랫몸통 값 RH3 = H - RH1; //윗그림자의 길이 RH4 = RH2 - L; //아랫그림자의 길이 RH5 = RH1 - RH2; //몸통의 길이 RH6 = RH5 / RH2 *100; //몸통의 길이(시가대비종가의 상승률로 body를 나타냄) ##저녁별조건## ES1 = C[2] > O[2] * (1+ESBody/100); // 2일전 종가의 상승률이 종가대비 2% 이상 ES2 = C < O * (1-ESBody/100); // 금일 종가의 하락률이 시가대비 2% 이상 ES3 = (max(C[1],O[1])-min(C[1],O[1]))/min(C[1],O[1])*100 < ESLength; // 전일 몸통 길이가 2% 이내 ES4 = C[2] < min(C[1], O[1]); //전일 몸통과 전전일 몸통사이에 갭이 있음을 나타냄 ES5 = O < min(C[1], O[1]); // 당일 몸통과 전일 몸통사이에 갭이 있음을 나타냄 ########## 매수조건 ####################### Bcond1 = C[1] <= O[1] and C > O[1] and O < C[1]; //상승장악형 Bcond2 = C[1] < O[1] and C > O and L > c[1] and H < O[1]; //상승잉태형 Bcond3 = C[1] < O[1] and O < L[1] and C < O[1] and C >= (o[1]+c[1])/2; //관통형 Bcond4 = H6 < Hbody and H3 < H5 and H4 > H5 * 2; //해머형 Bcond5 = MS1 and MS2 and MS3 and MS4 and MS5; //샛별형 ########## 매도조건 ####################### Scond1 = C[1] > O[1] and O > C[1] and C < O[1]; //하락장악형 Scond2 = C[1] > O[1] and C < O and L > O[1] and H < C[1]; //하락잉태형 Scond3 = C[1] > O[1] and O > H[1] and C > O[1] and C <= (o[1]+c[1])/2; //흑운형 Scond4 = RH6 < RHbody and RH3 > RH5*2 and RH4 < RH5; //역해머형 Scond5 = ES1 and ES2 and ES3 and ES4 and ES5; //저녁별형 if Bcond1 or Bcond2 or Bcond3 or Bcond4 or Bcond5 then buy(); if Scond1 or Scond2 or Scond3 or Scond4 or Scond5 then sell(); 수식 수정부탁드립니다... 16줄 4열부터 계속 연산자 앞뒤 두 데이터가 같아야 한다는 문구 에러가 납니다.
프로필 이미지
할수있따
2016-01-09
165
글번호 94254
시스템
답변완료

수식 수정 부탁합니다

항상 도움을 주셔서 감사합니다 아래의 수식에서 1차까지 매수되든, 2차까지 매수되든, 3차까지 매수가 되든지 간에 일단 매도1, 매도2, 매도3이 발생하면 당일에 더이상 진입을 하지 못하도록 수식변경 부탁드립니다. input : 금액(2100000),기준일(20151105); var1 = (DayOpen(1)+DayClose(1))/2; var2 = (var1+DayClose(1))/2; var3 = (var1+DayOpen(1))/2; if sdate >= 기준일 then{ if MarketPosition == 0 and NextBarOpen >= var2 # and dayopen > DayClose(1) and stime < 120000 Then buy("1차매수",atlimit,var2,Floor(금액/C)); # 전일 평균가에 오면 2차매수 if MarketPosition == 1 and MaxEntries < 3 Then{ if NextBarOpen >= var1 Then buy("2차매수",AtLimit,var1,Floor(금액/C)); if NextBarOpen >= var3 Then buy("3차매수",AtLimit,var3,Floor(금액/C)); # 각각의 평단가보다 2.4%, 1.5%, 1% 오르면 매도 if MaxEntries == 1 Then ExitLong("매도1",atlimit,AvgEntryPrice*1.024); if MaxEntries == 2 Then ExitLong("매도2",atlimit,AvgEntryPrice*1.015); if MaxEntries == 3 Then{ ExitLong("매도3",atlimit,AvgEntryPrice*1.01); ExitLong("전량매도",AtStop,LatestEntryPrice(0)*0.97); } } } SetStopEndofday(140000);
프로필 이미지
뽄때
2016-01-09
146
글번호 94253
시스템