커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식문의 드립니다

봉이완성된 종가가 특정가격대(EX. 선물250~250.1) 이상일때 진입 봉이완성된 종가가 특정가격대에 도달하면 청산 봉이완성된 종가가 특정가격대 이하일때 손절 부탁드립니다
프로필 이미지
닭튀김
2013-09-17
138
글번호 67646
시스템

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

프로필 이미지
회원
2013-09-17
6
글번호 67636
시스템
답변완료

수식 문의

추석입니다. 항상 감사드리며 아래와 같은 수식을 부탁드리고 싶습니다. ---------- 00시 00분 부터 ~~ AA시 AA분 까지의 최고값, 최저값, 중간값(최고+최저/2) 을 선으로 긋는 수식을 얻고 싶습니다. AA시 AA분이 지나면 더이상 선을 긋지 않습니다. 다음날 00시 00분이 되면 다시 선을 그어 줍니다. -------------- 감사합니다.
프로필 이미지
흑수돌
2013-09-17
178
글번호 67629
지표

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

프로필 이미지
2wnwn
2013-09-17
11
글번호 67628
지표
답변완료

수식 질문입니다

당일 최고가 대비 1피 하락시 매도 당일 최저가 대비 1피 상승시 매수
프로필 이미지
trey94
2013-09-17
141
글번호 67627
지표
답변완료

질문입니다.

1.주식 분봉에서 17봉최고가에서 두틱 아래의 값으로 청산하는 수식부탁드립니다. 2.매수주문에서 시스템 설정이 아닌 주문식에서 매도호가+1 또는 매도호가+2로 주문셋팅 가능한가요? 또한 매수청산 시스템식에서 매수호가+1로 또는 매수호가+2로 주문셋팅이 가능한지요?
프로필 이미지
회원
2013-09-17
137
글번호 67626
시스템
답변완료

간단한 수식문의입니다

20이평 아래에서 1000계약 이상 일목구름대 하단돌파시 매도 20이평 위에서 1000계약 이상 일목구름대 상당돌파시 매수
프로필 이미지
trey94
2013-09-17
139
글번호 67625
시스템
답변완료

다시 봐주세요.

아래식에 추가해 주세요. 감사합니다. <매수 금지> -당일 일봉의 시초가가 5일(일봉) 이동평균선 이격 100 이하이면 매수 금지. <청산> -5일(일봉)이평선 이격 99이하 이고 매수가 대비 -2% 이하까지 하락하면, 매수가를 상향돌파(초과)시 다음 첫봉에 청산 -매수가 대비 -3.5% 이하까지 하락하였다면, 저점대비 80%까지 상승하면, 다음 첫봉에 청산 -매수가 대비 +4% 이상까지 상승하였다면, 상승고점대비 50%이하 까지 하락하면, 다음 첫봉에 청산 ========================================== input : P(5); var : cnt(0),sum(0),sum1(0),mav(0),mav1(0),dis(0),dis1(0),daycnt(0),PredayVol(0); Var : Pivot(0),R1(0),R2(0),S1(0),S2(0); Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3; if date != date[1] Then Daycnt = daycnt+1; sum = 0; sum1 = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); sum1 = sum1+DayClose(cnt+1); } mav = sum/P; mav1 = sum1/P; dis = c/mav*100; dis1 = DayClose(1)/mav1*100; for cnt = 1 to 1000 { if stime == stime[cnt] and sdate != sdate[cnt] then{ PredayVol = DayVolume[cnt]; cnt = 1001; } } if dayopen <= DayClose(1)*1.05 and dayhigh <= dayopen*1.05 and dis1 >= 103 and ExitDate(1) != sdate and DayVolume < PredayVol*1 Then{ if stime >= 90000 and stime < 100000 and dis >= 100.5 and dis < 102.0 Then buy("b1",AtMarket); if stime >= 100000 and stime < 110000 and dis >= 100.5 and dis < 102.5 Then buy("b2",AtMarket); if stime >= 110000 and stime < 120000 and dis >= 100.5 and dis < 103.0 Then buy("b3",AtMarket); if stime >= 120000 and stime < 130000 and dis >= 100.5 and dis < 103.5 Then buy("b4",AtMarket); if stime >= 130000 and stime < 140000 and dis >= 100.5 and dis < 104.0 Then buy("b5",AtMarket); if stime >= 140000 and stime < 144800 and dis >= 100.5 and dis < 104.5 Then buy("b6",AtMarket); if stime >= 143000 and stime < 144800 and c < Pivot and dis >= 100.5 and dis < 105.0 Then buy("b7",AtMarket); } if MarketPosition == 1 Then{ if C >= EntryPrice*1.08 Then exitlong("bx1",AtMarket); if C <= EntryPrice*0.945 Then exitlong("bx2",AtMarket); if sdate == EntryDate and C >= EntryPrice*1.045 then exitlong("bx3",AtMarket); if sdate > EntryDate and daycnt == daycnt[BarsSinceEntry]+2 and stime >= 94000 Then exitlong("bx4",AtMarket); }
프로필 이미지
쌀사비팔
2013-09-17
152
글번호 67624
시스템
답변완료

지표 문의 드립니다.

한꺼번에 여쭤봐야 하는데 번거롭게 해드려 죄송합니다. ADX에서 DIMINUS값의 DIMINUS값을 출력하는 지표 문의드립니다. 즉 주가의 DIMINUS값을 다시 DIMINUS에 넣어서 나오는 값을 출력하는 겁니다. 사용자함수 보고 넣으려해도 어렵습니다. ------ ( diplus 출력문입니다.) 안녕하세요 예스스탁입니다. 식을 완전히 풀어서 작성하셔야 합니다. 아래식 참고하시기 바랍니다. Inputs: Length(14) ; Var : cnt1(0), TRange1(0), MyRange1(0), PlusDM1141(0), PlusDM1(0), MinusDM1(0),DIP1(0); Var : cnt2(0), TRange2(0), MyRange2(0), PlusDM2142(0), PlusDM2(0), MinusDM2(0),DIP2(0); var : TH(0),TL(0),TR(0),idx(0); If index == Length+2 Then { MyRange1 = Length; DIP1 = 0; PlusDM1141 = 0; TRange1 = 0; For cnt1 = 0 To MyRange1 - 1 { If High[cnt1] - High[cnt1+1] < 0 Then PlusDM1 = 0; Else PlusDM1 = High[cnt1] - High[cnt1+1]; If Low[cnt1+1] - Low[cnt1] < 0 Then MinusDM1 = 0; Else MinusDM1 = Low[cnt1+1] - Low[cnt1]; If MinusDM1 >= PlusDM1 Then PlusDM1 = 0; TRange1 = TRange1 + TrueRange[cnt1]; PlusDM1141 = PlusDM1141 + PlusDM1; } If TRange1 <> 0 Then DIP1 = 100 * PlusDM1141 / TRange1; Else DIP1 = 0 ; } Else If index > Length+2 Then { If High[0] - High[1] < 0 Then PlusDM1 = 0; Else PlusDM1 = High[0] - High[1]; If Low [1] - Low [0] < 0 Then MinusDM1 = 0; Else MinusDM1 = Low[1] - Low[0]; If MinusDM1 >= PlusDM1 Then PlusDM1 = 0; If MyRange1 > 0 Then { TRange1 = TRange1[1] - (TRange1[1] / MyRange1) + TrueRange; PlusDM1141 = PlusDM1141[1] - (PlusDM1141[1] / MyRange1) + PlusDM1; } If TRange1 <> 0 Then DIP1 = 100 * PlusDM1141 / TRange1; Else DIP1 = 0 ; } if DIP1 > 0 Then idx = idx+1; if idx >= 2 Then{ If DIP1[1] > DIP1 then TH = DIP1[1]; else TH = DIP1; If DIP1[1] < DIP1 then TL = DIP1[1]; else TL = DIP1; TR = TH-TL; } If idx == Length+2 Then { MyRange2 = Length; DIP2 = 0; PlusDM2142 = 0; TRange2 = 0; For cnt2 = 0 To MyRange2 - 1 { If DIP1[cnt2] - DIP1[cnt2+1] < 0 Then PlusDM2 = 0; Else PlusDM2 = DIP1[cnt2] - DIP1[cnt2+1]; If DIP1[cnt2+1] - DIP1[cnt2] < 0 Then MinusDM2 = 0; Else MinusDM2 = DIP1[cnt2+1] - DIP1[cnt2]; If MinusDM2 >= PlusDM2 Then PlusDM2 = 0; TRange2 = TRange2 + TR[cnt2]; PlusDM2142 = PlusDM2142 + PlusDM2; } If TRange2 <> 0 Then DIP2 = 100 * PlusDM2142 / TRange2; Else DIP2 = 0 ; } Else If idx > Length+2 Then { If DIP1[0] - DIP1[1] < 0 Then PlusDM2 = 0; Else PlusDM2 = DIP1[0] - DIP1[1]; If DIP1[1] - DIP1[0] < 0 Then MinusDM2 = 0; Else MinusDM2 = DIP1[1] - DIP1[0]; If MinusDM2 >= PlusDM2 Then PlusDM2 = 0; If MyRange2 > 0 Then { TRange2 = TRange2[1] - (TRange2[1] / MyRange2) + TR; PlusDM2142 = PlusDM2142[1] - (PlusDM2142[1] / MyRange2) + PlusDM2; } If TRange2 <> 0 Then DIP2 = 100 * PlusDM2142 / TRange2; Else DIP2 = 0 ; } plot1(DIP2); 즐거운 하루되세요
프로필 이미지
한글나라
2013-09-16
173
글번호 67623
지표