커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

손절 말인데요

그 일반적으로 손절이라하면, 일정값 이하로 떨어지면, 그가격에 시장가로 던지는걸 말하는데, 예스에서는 신호이하의 봉이 나온다음 그 다음봉에 나가는건, 진입 청산식과 같나요? 이렇다면, 스탑로스 기능이 그렇게 도움되는게 아닌것 아닌가요. 그냥 일정 가격을 실시간 감시후, 시장가로 즉시 던지는건 불가능합니까? setstoploss 명령이긴한데, 이게 조건만족시 즉시설정창으로는 확실히 되는데, 랭귀지로 명령어 써서 하면, 손실그래프보면 손절값 이상으로 여전히 화살표가있습니다. 그다지 소용없는것같기도하고요. 확실한 명령어를 알려주세요.
프로필 이미지
매매의추억
2014-02-21
164
글번호 72823
시스템
답변완료

지표식 질문입니다

1 1틱 차트에서 1분 동안 마다 그 사이에 틱봉갯수를 나타내고 싶습니다 ------------------------------ 2 1차 진입 시간 100000 를 돌파했을 때의 MA(c,5) 의 값을 기억하여 MA(c,5)가 기억값(MA(c,5))+10 상향돌파할 때 매수 MA(c,5)가 기억값(MA(c,5))-10 하향돌파할 때 매도 1차 진입의청산 매수 포지션일 때 진입 후 MA(c,5)의 최고값을 기억하여 MA(c,5)가 진입후 최고값 기억값(MA(c,5))-5 하향돌파할 때 매수청산 매도 포지션일 때 진입 후 MA(c,5)의 최저값을 기억하여 MA(c,5)가 진입후 최저값 기억값(MA(c,5))+5 상향돌파할 때 매도청산 2차 진입 직전 매수청산/매도청산 할때의 MA(c,5)값을 기억하여 MA(c,5)가 기억값(MA(c,5))+15 상향돌파할 때 매수 MA(c,5)가 기억값(MA(c,5))-15 하향돌파할 때 매도 2차진입청산 매수 포지션일 때 진입 후 MA(c,5)의 최고값을 기억하여 MA(c,5)가 진입후 최고값 기억값(MA(c,5))-5 하향돌파할 때 매수청산 매도 포지션일 때 진입 후 MA(c,5)의 최저값을 기억하여 MA(c,5)가 진입후 최저값 기억값(MA(c,5))+5 상향돌파할 때 매도청산
프로필 이미지
파인애플
2014-02-23
150
글번호 72822
지표
답변완료

시스템식 부탁드립니다

1.매매 기준선 - 0에서 시작해서 0.25포씩 커지는 선이 기준선입니다. 예)오늘기준으로 250 250.25 250.50 250.75 260 ...... 2. 매매 기준 매수기준 종가가 기준선보다 한틱이상 클때 매수 매도기준 종가가 기준선보다 한틱이상 작을때 매도 수고하세요^^
프로필 이미지
림경이랑
2014-02-21
163
글번호 72821
시스템
답변완료

문의 드립니다.

1.문의 밑에처럼 청산이 되면 바로 스위칭으로 진입할려면 어떤 수식이 필요한가요? var66 = Timetominutes(stime); #진입후 60분 경과후 청산 if MarketPosition != 0 and var66 >= var66[BarsSinceEntry]+60 Then{ ExitLong(); ExitShort(); } =========================== 2.문의 a라는 진입조건 b라는 진입조건 c라는 진입조건 . . . 이렇게 여러게 진입조건이 있습니다. 청산은 SetStopTrailing(xx, yy, pointstop,1); 이것으로 통일해서 수식어를 쓰고 있는데요, a,b,c.....진입조건을 각각 따로 셋스탑트레일링청산을 독립적으로 실행시킬려면 어떻게 수식을 적어야 하는지요?
프로필 이미지
엘사간
2014-02-21
161
글번호 72820
시스템

마테호른 님에 의해서 삭제되었습니다.

프로필 이미지
마테호른
2014-02-21
9
글번호 72819
시스템
답변완료

문의 드립니다.

안녕하세요. 검토 부탁드립니다. 1. 현재가가 전일저가 돌파시 매수 손실목표가1 = 매수가 * 0.97 이익목표가1 = 매수가 * 1.03 2. 현재가가 손실목표가 도달시 전량매도 3. 현재가가 이익목표가 도달시 가. 보유수량의 50% 매도 나. 현재가를 기준가로 변경 다. 손실목표가2 = 현재가 * 0.97 라. 이익목표가2 = 현재가 * 1.03 4. 현재가가 기준가보다 크면 현재가를 기준가로 변경 5. 현재가가 손실목표가에 도달시 전량매도 위의 내용을 가지고 식을 만들어 보았습니다. input : getpositionquantity(0) ; var : var1(0), var2(0), var3(0), var4(0), cnt(0) ; var1 = bp ; var5 = getpositionquantity ; if marketposition == 0 and crossup(c,daylow(1)) then { buy("매수",atstop,c) ; cnt = cnt + 5 ; var1 = c ; var2 = c * 0.97 ; var3 = c * 1.03 ; } if marketposition == 1 and c <= var2 then exitlong("손절",atstop,c) ; if marketposition == 1 and c >= var3 then { exitlong("익절",atmarket,보유수량*0.5) ; var1 = c ; cnt = cnt + 5 ; var3 = c * 1.03 ; var4 = c * 0.97 ; } if marketposition == 1 and cnt >= 10 and c <= var4 then exitlong("익절2",atmarket) ;
프로필 이미지
회원
2014-02-21
182
글번호 72817
시스템
답변완료

다시 올립니다.

아래 수직지왕님의 지표식을 시스템식으로 변경해주세요.. 지표를 적용하면 파동선이 나오는데 그 선의 상,하 방향에따른 신호가 나왔으면합니다. #==========================================# # 지 표 명 : 당일파동선 # 작 성 자 : 수식지왕 # 블 로 그 : http://yahoosir.blog.me #==========================================# Input:전환율(0.5),선두께(4),선색(green); //전환율 또는 변동률 Var:j(0),upTr(100),dnTr(-100),upRate(0),dnRate(0),trnd(0), date11(0),date12(0),time11(0),time12(0),TL1(0), date21(0),date22(0),time21(0),time22(0),TL2(0); Array:hiVal[2](0),loVal[2](0),hiBar[2](0),loBar[2](0); upRate = 1 + (전환율/100); //상승률 dnRate = 1 - (전환율/100); //하락률 loBar[1] = loBar[1] + 1; //전저점의 위치. 현재 봉으로부터 떨어져 있는 거리 hiBar[1] = hiBar[1] + 1; //전고점의 위치 if DayIndex == 0 then { if trnd == upTr then { date11 = date[loBar[1]]; //추세선 시작일 time11 = stime[loBar[1]]; //추세선 시작시간 Value11 = loVal[1]; //추세선 시작가격 } else { date11 = date[hiBar[1]]; //추세선 시작일 time11 = stime[hiBar[1]]; //추세선 시작시간 Value11 = hiVal[1]; //추세선 시작가격 } date12 = date[1]; //추세선 종료일 time12 = stime[1]; //추세선 종료시간 Value12 = C[1]; //추세선 종료가격 TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); //TL_New는 신규 추세선을 그려주는 함수 TL_SetSize(TL1,선두께); TL_SetColor(TL1,선색); hiVal[1] = O; hiBar[1] = 0; loVal[1] = O; loBar[1] = 0; hiVal[0] = C; hiBar[0] = 0; loVal[0] = C; loBar[0] = 0; trnd = 0; if hiVal[1] * dnRate > C then trnd = dnTr; else if loVal[1] * upRate < C then trnd = upTr; } if hiVal[0] <= C then { hiVal[0] = C; hiBar[0] = 0; } else { hiBar[0] = hiBar[0] + 1; } if loVal[0] >= C then { loVal[0] = C; loBar[0] = 0; } else { loBar[0] = loBar[0] + 1; } if hiVal[0] * dnRate > C then trnd = dnTr; else if loVal[0] * upRate < C then trnd = upTr; if trnd[1] != dnTr and trnd == dnTr then { //상승추세였다가 하락추세로 바뀌었다면 hiVal[1] = hiVal[0]; //새로운 전고점에 현재 고점을 대입 hiBar[1] = hiBar[0]; hiVal[0] = C; //전고점이 확정되었으므로 전고점 이후 최고가는 현재봉의 고가 hiBar[0] = 0; loVal[0] = C; loBar[0] = 0; //전고점이 새로 생긴 것이니까 전저점에서 전고점까지 추세선을 긋는다. date11 = date[loBar[1]]; //추세선 시작일. 전저점의 날짜 time11 = stime[loBar[1]]; //추세선 시작시간 Value11 = loVal[1]; //추세선 시작가격 date12 = date[hiBar[1]]; //추세선 종료일. 전고점의 날짜 time12 = stime[hiBar[1]]; //추세선 종료시간 Value12 = hiVal[1]; //추세선 종료가격 TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); //TL_New는 신규 추세선을 그려주는 함수 } if trnd[1] == dnTr and trnd == dnTr and //추세는 하락 상태에서 바뀌지 않았는데 hiVal[1] < hiVal[0] and //전고점보다 더 높은 고점이 출현했다면 hiVal[0] * dnRate > C then { hiVal[1] = hiVal[0]; //전고점을 현재의 고점으로 바꿔준다. hiBar[1] = hiBar[0]; hiVal[0] = C; hiBar[0] = 0; loVal[0] = C; loBar[0] = 0; //전고점이 추가된 게 아니고 바뀐 것이므로 종료일,종료시간,종료가격만 바꿔준다. date12 = date[hiBar[1]]; //추세선 종료일 time12 = stime[hiBar[1]]; Value12 = hiVal[1]; TL_SetEnd(TL1, date12,time12,Value12); //TL_SetEnd는 기존추세선의 종료지점을 변경해주는 추세선 함수이다. //TL_Delete 함수를 써서 직전의 추세선을 지우고 다시 TL_New로 추세선을 추가해도 된다. } if trnd[1] != upTr and trnd == upTr then { //추세가 하락에서 상승으로 바뀌었을 경우 loVal[1] = loVal[0]; loBar[1] = loBar[0]; loVal[0] = C; loBar[0] = 0; hiVal[0] = C; hiBar[0] = 0; date11 = date[hiBar[1]]; time11 = stime[hiBar[1]]; Value11 = hiVal[1]; date12 = date[loBar[1]]; time12 = stime[loBar[1]]; Value12 = loVal[1]; TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); } if trnd[1] == upTr and trnd == upTr and //추세는 상승을 유지하고 있는데 loVal[1] > loVal[0] and //전저점보다 낮은 저가가 출현했다면 loVal[0] * upRate < C then { loVal[1] = loVal[0]; //직전의 전저점만 바꿔준다. loBar[1] = loBar[0]; loVal[0] = C; loBar[0] = 0; hiVal[0] = C; hiBar[0] = 0; date12 = date[loBar[1]]; time12 = stime[loBar[1]]; Value12 = loVal[1]; TL_SetEnd(TL1, date12,time12,Value12); } TL_SetSize(TL1,선두께); TL_SetColor(TL1,선색); if trnd == upTr then { date21 = date[loBar[1]]; //추세선 시작일 time21 = stime[loBar[1]]; //추세선 시작시간 Value21 = loVal[1]; //추세선 시작가격 } else { date21 = date[hiBar[1]]; //추세선 시작일 time21 = stime[hiBar[1]]; //추세선 시작시간 Value21 = hiVal[1]; //추세선 시작가격 } date22 = date; //추세선 종료일 time22 = stime; //추세선 종료시간 Value22 = C; //추세선 종료가격 TL_Delete(TL2); TL2 = TL_New(date21,time21,Value21,date22,time22,Value22); TL_SetSize(TL2,선두께); TL_SetColor(TL2,선색);
프로필 이미지
에이텍
2014-02-21
202
글번호 72816
시스템
답변완료

문의 드립니다.

변수 관련해서 문의 드립니다. 예를 들어서 Var : mask(0); mask 라는 변수를 만들었습니다. 그러고 난 후에 mask = O - C; mask = DayOpen - DayClose; 이렇게 입력을 하면 위의 mask 값과 아래의 mask 값은 당연히 틀리겠죠. 그렇지만 시스템이 소스를 읽을때 위에서 아래로 읽기 때문에 mask 의 최종값은 mask = DayOpen - DayClose; 이게 맞는 거죠?? 그러니까 제 말은 mask = O - C; mask = DayOpen - DayClose; 이렇게 입력하나 그냥 mask = DayOpen - DayClose; 이것만 입력하나 결과는 똑같이 나오는것 아닌가요? 위에서 아래로 읽기 때문에 처음에 mask 값은 mask = O - C; 이거였다가 다시 mask = DayOpen - DayClose; 이걸 읽어 들이면서 mask 값에 새로운 값을 넣는 거잖아요. mask = O - C; mask = DayOpen - DayClose; 이렇게 입력하는 것과 그냥 mask = DayOpen - DayClose; 이것만 입력하는것과 차이점이 있는 건가요??
프로필 이미지
무결점
2014-02-21
179
글번호 72812
시스템
답변완료

매매신호의 우선권 설정

그러니까.. 한참 짧은 매수 매도를 반복하다. 어떠한 특정 매수신호가 발생시, 청산전까지, 짧은 매수 매도 신호는 무시할수있게 만드는것이 가능합니까? 될거같은데, 어떠한 개념으로 접근해야할지 모르겠습니다. 예를들어 스토캐스틱 하이 로우 매수매도 반복하다, 이평 크로스 업시, 매수 신호가 발생시, 스토캐스틱 신호는 무시되며, 특정한 청산식 적용되고난후, 에 다른신호를 받는 로직 부탁드립니다.
프로필 이미지
매매의추억
2014-02-21
156
글번호 72804
시스템