커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁드립니다

수고하십니다 아래수식 예스 수식으로 부탁드립니다 *수식1 (avg(C,shortPeriod)-avg(C,longPeriod))/avg(C,shortPeriod)*100 *수식2 상승 A=PriceOsc(shortPeriod,longPeriod); ValueWhen(1, A > A(1), A) *수식3 하락 A=PriceOsc(shortPeriod,longPeriod); ValueWhen(1, A < A(1), A) *지표조건 shortperiod 10 longperiod 20 *라인설정 Price Oscillator 막대 (상승)주홍(하락)하늘색 비교기준;이전값 상승 적선 하락 청선
프로필 이미지
파생돌이
2020-02-09
239
글번호 135759
지표
답변완료

지표문의드립니다.

성실한 답변에 감사드립니다. n봉동안 전일대비 1%갭(상승하락)이 발생한 캔들의 갯수를 지표로 표시합니다. 감사합니다.
프로필 이미지
부양가족
2020-02-09
223
글번호 135758
지표
답변완료

부탁드립니다.

안녕하세요...MACD지표에서 오실레이타 당일고점 당일저점 라인이 데이타1 가격차트에서은 고점종가. 저점종가 그려지게요 (사진그림과같이요. 당일분만 그려지게요.) 수고하세요...꾸벅
프로필 이미지
보인다
2020-02-10
250
글번호 135757
지표
답변완료

문의드립니다

아래 수식이 잘못 되었다고 나오는데.. 어떻게 고쳐야 할지를 모르겠네요... 부탁드립니다 ======= Input:Period(12),Period1(5),레벨(4),선색깔(MAGENTA),선두께(3),수치표시여부(1),수치표시위치(10),폰트크기(13),두껍게(1); Var:StokValue(0),고점(1),저점(-1),신규(1),연장(2),연속(3),삼선(4); Array:고[10,44](0),저[10,44](0), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime 최종상태[5](0),처리구분[5](0),TL[3](0),Text[3](0); //=========================================================// If 레벨 <= 4 Then { Var1 = 레벨 * 10; StokValue = StochasticsK(Period,Period1); Value1 = IndicatorZigZag302(H,L,StokValue,50,고,저,최종상태,처리구분); If 최종상태[레벨] == 고점 Then { If 처리구분[레벨] == 신규 Then { TL[2] = TL_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1],고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]); If 수치표시여부 == 1 Then { Text[2] = Text_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1] + (수치표시위치 * PriceScale), NumToStr(고[1,Var1 + 1],2) + "(+" + NumToStr(고[1,Var1 + 1] - 저[1,Var1 + 1],2) + ", " + NumToStr((고[1,Var1 + 1] - 저[1,Var1 + 1])*100/저[1,Var1 + 1],2) + "%)"); Text_SetStyle(Text[2], 2, 1); Text_SetSize(Text[2],폰트크기); Text_SetBold(Text[2],두껍게); Text_SetColor(Text[2],RED); } } If 처리구분[레벨] == 연장 Then { TL_SetEnd(TL[2],고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]); If 수치표시여부 == 1 Then { Text_SetLocation(Text[2],고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1] + (수치표시위치 * PriceScale)); Text_SetString(Text[2],NumToStr(고[1,Var1 + 1],2) + "(+" + NumToStr(고[1,Var1 + 1] - 저[1,Var1 + 1],2) + ", " + NumToStr((고[1,Var1 + 1] - 저[1,Var1 + 1])*100/저[1,Var1 + 1],2) + "%)"); } } If 처리구분[레벨] == 연속 Then { TL[1] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1],저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]); TL[2] = TL_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1],고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]); If 수치표시여부 == 1 Then { Text[1] = Text_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1] - (수치표시위치 * PriceScale), NumToStr(저[1,Var1 + 1],2) + "(-" + NumToStr(고[2,Var1 + 1] - 저[1,Var1 + 1],2) + ", " + NumToStr((고[2,Var1 + 1] - 저[1,Var1 + 1])*100/고[2,Var1 + 1],2) + "%)"); Text[2] = Text_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1] + (수치표시위치 * PriceScale), NumToStr(고[1,Var1 + 1],2) + "(+" + NumToStr(고[1,Var1 + 1] - 저[1,Var1 + 1],2) + ", " + NumToStr((고[1,Var1 + 1] - 저[1,Var1 + 1])*100/저[1,Var1 + 1],2) + "%)"); Text_SetStyle(Text[1], 2, 0); Text_SetStyle(Text[2], 2, 1); Text_SetSize(Text[1],폰트크기); Text_SetSize(Text[2],폰트크기); Text_SetBold(Text[1],두껍게); Text_SetBold(Text[2],두껍게); Text_SetColor(Text[1],BLUE); Text_SetColor(Text[2],RED); } } If 처리구분[레벨] == 삼선 Then { TL[0] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1],고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1]); TL[1] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1],저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]); TL[2] = TL_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1],고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]); If 수치표시여부 == 1 Then { Text[0] = Text_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1] + (수치표시위치 * PriceScale), NumToStr(고[2,Var1 + 1],2) + "(+" + NumToStr(고[2,Var1 + 1] - 저[2,Var1 + 1],2) + ", " + NumToStr((고[2,Var1 + 1] - 저[2,Var1 + 1])*100/저[2,Var1 + 1],2) + "%)"); Text[1] = Text_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1] - (수치표시위치 * PriceScale), NumToStr(저[1,Var1 + 1],2) + "(-" + NumToStr(고[2,Var1 + 1] - 저[1,Var1 + 1],2) + ", " + NumToStr((고[2,Var1 + 1] - 저[1,Var1 + 1])*100/고[2,Var1 + 1],2) + "%)"); Text[2] = Text_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1] + (수치표시위치 * PriceScale), NumToStr(고[1,Var1 + 1],2) + "(+" + NumToStr(고[1,Var1 + 1] - 저[1,Var1 + 1],2) + ", " + NumToStr((고[1,Var1 + 1] - 저[1,Var1 + 1])*100/저[1,Var1 + 1],2) + "%)"); Text_SetStyle(Text[0], 2, 1); Text_SetStyle(Text[1], 2, 0); Text_SetStyle(Text[2], 2, 1); Text_SetSize(Text[0],폰트크기); Text_SetSize(Text[1],폰트크기); Text_SetSize(Text[2],폰트크기); Text_SetBold(Text[0],두껍게); Text_SetBold(Text[1],두껍게); Text_SetBold(Text[2],두껍게); Text_SetColor(Text[0],RED); Text_SetColor(Text[1],BLUE); Text_SetColor(Text[2],RED); } } } If 최종상태[레벨] == 저점 Then { If 처리구분[레벨] == 신규 Then { TL[2] = TL_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1],저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]); If 수치표시여부 == 1 Then { Text[2] = Text_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1] - (수치표시위치 * PriceScale), NumToStr(저[1,Var1 + 1],2) + "(-" + NumToStr(고[1,Var1 + 1] - 저[1,Var1 + 1],2) + ", " + NumToStr((고[1,Var1 + 1] - 저[1,Var1 + 1])*100/고[1,Var1 + 1],2) + "%)"); Text_SetStyle(Text[2], 2, 0); Text_SetSize(Text[2],폰트크기); Text_SetBold(Text[2],두껍게); Text_SetColor(Text[2],BLUE); } } If 처리구분[레벨] == 연장 Then { TL_SetEnd(TL[2],저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]); If 수치표시여부 == 1 Then { Text_SetLocation(Text[2],저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1] - (수치표시위치 * PriceScale)); Text_SetString(Text[2],NumToStr(저[1,Var1 + 1],2) + "(-" + NumToStr(고[1,Var1 + 1] - 저[1,Var1 + 1],2) + ", " + NumToStr((고[1,Var1 + 1] - 저[1,Var1 + 1])*100/고[1,Var1 + 1],2) + "%)"); } } If 처리구분[레벨] == 연속 Then { TL[1] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1],고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]); TL[2] = TL_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1],저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]); If 수치표시여부 == 1 Then { Text[1] = Text_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1] + (수치표시위치 * PriceScale), NumToStr(고[1,Var1 + 1],2) + "(+" + NumToStr(고[1,Var1 + 1] - 저[2,Var1 + 1],2) + ", " + NumToStr((고[1,Var1 + 1] - 저[2,Var1 + 1])*100/저[2,Var1 + 1],2) + "%)"); Text[2] = Text_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1] - (수치표시위치 * PriceScale), NumToStr(저[1,Var1 + 1],2) + "(-" + NumToStr(고[1,Var1 + 1] - 저[1,Var1 + 1],2) + ", " + NumToStr((고[1,Var1 + 1] - 저[1,Var1 + 1])*100/고[1,Var1 + 1],2) + "%)"); Text_SetStyle(Text[1], 2, 1); Text_SetStyle(Text[2], 2, 0); Text_SetSize(Text[1],폰트크기); Text_SetSize(Text[2],폰트크기); Text_SetBold(Text[1],두껍게); Text_SetBold(Text[2],두껍게); Text_SetColor(Text[1],RED); Text_SetColor(Text[2],BLUE); } } If 처리구분[레벨] == 삼선 Then { TL[0] = TL_New(고[2,Var1 + 3],고[2,Var1 + 4],고[2,Var1 + 1],저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1]); TL[1] = TL_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1],고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1]); TL[2] = TL_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1],저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1]); If 수치표시여부 == 1 Then { Text[0] = Text_New(저[2,Var1 + 3],저[2,Var1 + 4],저[2,Var1 + 1] - (수치표시위치 * PriceScale), NumToStr(저[2,Var1 + 1],2) + "(-" + NumToStr(고[2,Var1 + 1] - 저[2,Var1 + 1],2) + ", " + NumToStr((고[2,Var1 + 1] - 저[2,Var1 + 1])*100/고[2,Var1 + 1],2) + "%)"); Text[1] = Text_New(고[1,Var1 + 3],고[1,Var1 + 4],고[1,Var1 + 1] + (수치표시위치 * PriceScale), NumToStr(고[1,Var1 + 1],2) + "(+" + NumToStr(고[1,Var1 + 1] - 저[2,Var1 + 1],2) + ", " + NumToStr((고[1,Var1 + 1] - 저[2,Var1 + 1])*100/저[2,Var1 + 1],2) + "%)"); Text[2] = Text_New(저[1,Var1 + 3],저[1,Var1 + 4],저[1,Var1 + 1] - (수치표시위치 * PriceScale), NumToStr(저[1,Var1 + 1],2) + "(-" + NumToStr(고[1,Var1 + 1] - 저[1,Var1 + 1],2) + ", " + NumToStr((고[1,Var1 + 1] - 저[1,Var1 + 1])*100/고[1,Var1 + 1],2) + "%)"); Text_SetStyle(Text[0], 2, 0); Text_SetStyle(Text[1], 2, 1); Text_SetStyle(Text[2], 2, 0); Text_SetSize(Text[0],폰트크기); Text_SetSize(Text[1],폰트크기); Text_SetSize(Text[2],폰트크기); Text_SetBold(Text[0],두껍게); Text_SetBold(Text[1],두껍게); Text_SetBold(Text[2],두껍게); Text_SetColor(Text[0],BLUE); Text_SetColor(Text[1],RED); Text_SetColor(Text[2],BLUE); } } } TL_SetColor(TL[0],선색깔); TL_SetSize(TL[0],선두께); TL_SetColor(TL[1],선색깔); TL_SetSize(TL[1],선두께); TL_SetColor(TL[2],선색깔); TL_SetSize(TL[2],선두께); } Else { Alert("4레벨까지만 가능합니다!!"); }
프로필 이미지
삼족오
2020-02-09
225
글번호 135756
지표
답변완료

안녕하세요

input : Period(10); var1 = PVI+NVI; var2 = ma(PVI,period)+ma(NVI,period); if var1 > var2 Then { plot1(999999999,"라인1"); plot2(0,"라인2"); } else { plot1(0,"라인1"); plot2(999999999,"라인2"); } 위 강세약세 수식을 시스템식으로 부탁 드리겠습니다.
프로필 이미지
뚜벅뚜벅
2020-02-09
218
글번호 135755
시스템
답변완료

문의 드립니다

사진에 나오는 보조지표는 스토케스틱 오실레이터 5 20 5 설정한 것입니다. 오실레이터가 0선 위로 첫 돌파하면 매수 진입 오실레이터가 한칸씩 상승하다 한칸 하락 마감 시 매도 청산완료 오실레이터가 0선 아래로 첫 돌파하면 매도 진입 오실레이터가 한칸씩 하락하다 한칸 상승 마감 시 매수 청산완료 부탁드립니다.
프로필 이미지
선물대장
2020-02-09
323
글번호 135754
시스템
답변완료

수식문의합니다.

매수포지션: 무포지션이나 매도포지션에서 현재봉기준으로 과거봉에서 시가 >= 종가 +5틱 조건를 만족하는 조건만족 음봉을 2개 구합니다. 현재봉에서 최근접 음봉 종가 < 현재봉에서 2번째 근접 음봉 종가 이렇게 구한 음봉 중에 매수준비가 = 현재봉에서 2번째 근접 음봉 시가 를 구합니다. 위와 같은 매수준비가가 형성된 후에 종가가 매수준비가를 상방으로 돌파하면 매수합니다. 매수청산 방법: 매수후 누적으로 음봉이 2개 발생하면 청산합니다. 매도포지션: 무포지션이나 매수포지션에서 현재봉기준으로 과거봉에서 종가 >= 시가 +5틱 조건를 만족하는 조건만족 양봉을 2개 구합니다. 현재봉에서 최근접 양봉 종가 > 현재봉에서 2번째 근접 양봉 종가 이렇게 구한 양봉 중에 매도준비가 = 현재봉에서 2번째 근접 양봉 시가 를 구합니다. 위와 같은 매도준비가가 형성된 후에 종가가 매도준비가를 하방으로 돌파하면 매도합니다. 매도청산 방법: 매도후 누적으로 양봉이 2개 발생하면 청산합니다.
프로필 이미지
종호
2020-02-09
236
글번호 135753
시스템
답변완료

지표식 부타드립니다.

항상 도움 주셔서 감사합니다. 아래 지표식 부탁드립니다. 종목 : 해선 타임 : 100틱 지표식1 : 아침 8시 시작시간부터 오후 16시까지 고가를 16시 이후 차트에 고가를 표시 - 익일 다시 초기화 아침 8시 시작시간부터 오후 16시까지 저가를 표시 16시 이후 차트에 저가를 표시 - 익일 다시 초기화 지표식2 : 아침 8시 시작시간부터 오후 10시까지 고가를 10시 이후 차트에 고가를 표시 - 익일 다시 초기화 아침 8시 시작시간부터 오후 10시까지 저가를 표시 10시 이후 차트에 저가를 표시 - 익일 다시 초기화 종목 : 해선 차트 : 100틱 차트 시스템식1 : 해선 매매를 오전 10시부터 오후 밤 23시까지만 매매를 하고싶습니다. 아래와 같이 코딩했는데 실매매는 24시 이후부터 매매가 됩니다. if sTime >= 100000 and stime <= 230000 then { 진입조건시 } 시스템식2 : 해선 매매를 아침 24시부터 아침 06시까지만 매매를 하려면 if sTime >= 000000 and stime <= 060000 then { 진입조건시 } 이런식으로 하면 되나요? 시스템식3 : 해선 매매를 오전 10시부터 다음날 아침 06시까지만 매매를 하려면 if sTime >= 100000 or stime <= 060000 then { 진입조건시 } 이런식으로 하면 되나요? 추가 문의 : 틱차트에서 아침 6시에 포지션 청산하고자 하면 SetStopEndofday(060000); 이런식으로 코딩해도 청산이 되죠? 도움 부탁드립니다. 감사합니다. 감사합니다.
프로필 이미지
양치기
2020-02-09
234
글번호 135752
지표

삼족오 님에 의해서 삭제되었습니다.

프로필 이미지
삼족오
2020-02-09
0
글번호 135751
지표