커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

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

프로필 이미지
회원
2011-05-03
16
글번호 38263
시스템
답변완료

다시 질문드립니다.

아래 질문에 대한 재질문입니다. 1포인트 이상 수익후 ATR을 이용한 추적청산을 알고 싶습니다. 안녕하세요 예스스탁입니다. 1포인트 이상 수익후 0.5 수익감소하면 청산하는 식입니다. 식 작성에 참고하시기 바랍니다. if marketposition() == 1 Then{ if highest(H,BarsSinceEntry) >= EntryPrice+1 Then exitlong("ChEX",atstop,highest(H,BarsSinceEntry)-0.5); } if marketposition() == -1 Then{ if Lowest(L,BarsSinceEntry) <= EntryPrice-1 Then exitshort("ChSX",atstop,Lowest(L,BarsSinceEntry)+0.5); } 즐거운 하루되세요 > immidas 님이 쓴 글입니다. > 제목 : 문의드립니다. > 친절한 답변에 항상 감사드립니다. 일정수익이상 났을경우에 추적청산을 사용하고 싶은데 어떻게 해야할지 몰라서 질문드립니다. 만약 진입후 1포인트 이상 수익이 났을 경우 그 시점부터 추적청산을 하려면 어떻게 해야 하나요??
프로필 이미지
immidas
2011-05-03
584
글번호 38255
시스템
답변완료

타종목 macd

1.타종목 macd를 적용해서 오실레이터가 3봉연속 상승시 매수 하는식 부탁드립니다. 2.매수후 5분뒤 최대수익대비 50% 이익보존 5분마다 보존율을 10% 씩 높이식식 부탁드립니다. 3.매수후 수익중이였다가 2틱으로 내려왔을경우 매도하는식 부탁드립니다. 4.매수후 10% 이익발생시 수량 50% 청산 식 부탁드립니다.
프로필 이미지
바람의투자자
2011-05-03
629
글번호 38251
시스템
답변완료

Mov Avg Crossover시스템식 문의

안녕하세요. Q&A에서 많은 도움을 얻고 있는 일인입니다^^. 항상 감사합니다. GAMBLER님이 소개해 주신 "Mov Avg Crossover"의 수식중에 이해안되는 부분이 있어서 문의드립니다. ------------------------------------------------------------------------------ Input: FastLen(10), SlowLen(500), ChLen(30), TrailBar(160), ReBars(2), stopPer(1.0); Vars: FastMA(0), SlowMA(0),LEntryPrice(0), SEntryPrice(0), LCount(-999), SCount(-999), ReCnt(0), MP(0); FastMA = ma(C , FastLen ); SlowMA = ma(C , SlowLen ); If CrossUp(FastMA , SlowMA) and index > 1 then { LEntryPrice = Highest(H , TrailBar )[1]; LCount = index; } If MarketPosition <> 1 AND index < LCount + ChLen then Buy ("Cross Over Buy", atstop,LEntryPrice); If CrossDown(FastMA , SlowMA) and index > 1 then { SEntryPrice = Lowest(L , TrailBar )[1]; SCount = index; } If MarketPosition <> -1 AND index < SCount + ChLen then Sell ("Cross Under Sell", atstop,SEntryPrice ); If MarketPosition == 1 then { LCount = -999; ExitLong ("LongTStop", atstop, Lowest(L , TrailBar )); } If MarketPosition == -1 then { SCount = -999; ExitShort ("ShortTStop", atstop, Highest(H , TrailBar )); } // 재진입 /*MP = MarketPosition; If MP == 0 AND MP[1] == -1 then ReCnt = 1; If MP == 0 AND MP[1] == 1 then ReCnt = 1; If MarketPosition == 0 AND MarketPosition(1) == 1 AND ReCnt < ReBars then { ReCnt = ReCnt + 1; Buy ("Long ReEntry", atstop,Highest(H , TrailBar ) ) ; } If MarketPosition == 0 AND MarketPosition(1) == -1 AND ReCnt < ReBars then { ReCnt = ReCnt + 1; Sell ("Short ReEntry", atstop,Lowest(L , TrailBar ) ) ; }*/ SetStopLoss(stopPer, PercentStop); SetStopEndofday(150000); --------------------------------------------------------------------------------- 첫번째 질문은, 위의 수식중에서 아래 이 두가지가 하는 역할이 뭔지 궁금합니다. LCount = -999; SCount = -999; 두번째 질문은, 재진입식에 2번 재진입후 3번째부터는 재진입을 금지하는 식을 알고싶습니다. 세번째는, setstoploss와 setStopProfitTarget를 조건에 맞추어 몇가지로 하고 싶은데, exitlong,exitshort과 atstop을 이용해서 만들려면 어떻게 해야 하나요? 미리 감사드립니다.
프로필 이미지
공감n감사
2011-05-03
643
글번호 38250
시스템
답변완료

문의드려요 ~

안녕하세여 ~ 항상수고하십니다. 이 시스템지표를 당일로만 나오게끔 부탁드립니다 ! 연결해서말고 항상 당일로 수정부탁드립니다. 수고하세여 input:단위호가(14), 단위호가2(14), 타주기구분(1), //분봉(1),일봉(2),주봉(3),월봉(4) 분봉구분(60), //타주기가 분봉일 때 시작일(20090101); var:j(0),상승(100),하락(-100),분봉(1),일봉(2),주봉(3),월봉(4), 벽돌크기(0),벽돌크기2(0),벽돌개수(0),방향(0),방향2(0); array:고[10](0),저[10](0),고2[10](0),저2[10](0); If 단위호가 <= 단위호가2 Then { #==========================================# # 초기 처리 #==========================================# If Index == 0 || Date <= 시작일 Then { 벽돌크기 = PriceScale * 단위호가; 벽돌크기2 = PriceScale * 단위호가2; 고[0] = C; 저[0] = C; 고2[0] = C; 저2[0] = C; } #==========================================# # 렌코 계산 #==========================================# If 방향 == 0 Then { If 저[0] - 벽돌크기 >= C Then { 벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9)); 저[0] = 저[0] - (벽돌크기 * 벽돌개수); 방향 = 하락; } Else If 고[0] + 벽돌크기 <= C Then { 벽돌개수 = Int(Round((C-고[0])/벽돌크기,9)); 고[0] = 고[0] + (벽돌크기 * 벽돌개수); 방향 = 상승; } } Else If 방향 == 하락 Then { If 저[0] - 벽돌크기 >= C Then { 벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9)); 저[0] = 저[0] - (벽돌크기 * 벽돌개수); } If 저[0] + 2*벽돌크기 <= C Then { 벽돌개수 = Int(Round((C-저[0])/벽돌크기,9)); For j = 8 DownTo 0 { 저[j+1] = 저[j]; } 고[0] = 저[0] + (벽돌크기 * 벽돌개수); 방향 = 상승; } } Else If 방향 == 상승 Then { If 고[0] + 벽돌크기 <= C Then { 벽돌개수 = Int(Round((C-고[0])/벽돌크기,9)); 고[0] = 고[0] + (벽돌크기 * 벽돌개수); } If 고[0] - 2*벽돌크기 >= C Then { 벽돌개수 = Int(Round((고[0]-C)/벽돌크기,9)); For j = 8 DownTo 0 { 고[j+1] = 고[j]; } 저[0] = 고[0] - (벽돌크기 * 벽돌개수); 방향 = 하락; } } #==========================================# # 렌코2 계산 #==========================================# If (타주기구분 == 분봉 && Mod(DayIndex(),(분봉구분/BarInterval)) == 0 && C[1] > 0) || (타주기구분 == 일봉 && Date[1] < Date) || (타주기구분 == 주봉 && Date[1] < Date && DayOfWeek(Date[1]) >= DayOfWeek(Date)) || (타주기구분 == 월봉 && Int(Date/100)[1] < Int(Date/100)) Then { If 방향2 == 0 Then { If 저2[0] - 벽돌크기2 >= C[1] Then { 벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9)); 저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수); 방향2 = 하락; } Else If 고2[0] + 벽돌크기2 <= C[1] Then { 벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9)); 고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수); 방향2 = 상승; } } Else If 방향2 == 하락 Then { If 저2[0] - 벽돌크기2 >= C[1] Then { 벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9)); 저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수); } If 저2[0] + 2*벽돌크기2 <= C[1] Then { 벽돌개수 = Int(Round((C[1]-저2[0])/벽돌크기2,9)); For j = 8 DownTo 0 { 저2[j+1] = 저2[j]; } 고2[0] = 저2[0] + (벽돌크기2 * 벽돌개수); 방향2 = 상승; } } Else If 방향2 == 상승 Then { If 고2[0] + 벽돌크기2 <= C[1] Then { 벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9)); 고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수); } If 고2[0] - 2*벽돌크기2 >= C[1] Then { 벽돌개수 = Int(Round((고2[0]-C[1])/벽돌크기2,9)); For j = 8 DownTo 0 { 고2[j+1] = 고2[j]; } 저2[0] = 고2[0] - (벽돌크기2 * 벽돌개수); 방향2 = 하락; } } } #==========================================# # 시스템식 #==========================================# If 방향 == 상승 && 방향2 == 상승 Then Buy(); If 방향 == 하락 && 방향2 == 하락 Then Sell(); If 방향 != 방향2 Then { ExitLong(); ExitShort(); }
프로필 이미지
하루우유
2011-05-03
660
글번호 38248
시스템
답변완료

전일의 봉 갯수

첨부 파일은 전일까지의 총 봉 갯수인 듯합니다 제가 구하고자 하는 것은 2006/03/09 일에만 발생한 봉 갯수 입니다. date=date[1] 을 넣어봤는데 날짜가 바뀌고 해당 조건이 적용되어 원하는 결과가 나오지 않습니다. 금일이 5월3일이면 5월2일에 발생한 봉 갯수.. 5월1일에 발생한 봉갯수를 알수 있는 방법을 알려 주십시오. 감사합니다. //----------------------------------- 안녕하세요 예스스탁입니다. 해당식 전일 봉수를 정확히 가져오는 식입니다. 첨부된 파일과 같이 만기일등 평일과 봉수가 다른날의 다음날도 전일의 봉갯수를 정확히 계산됩니다. 즐거운 하루되세요 > 임다 님이 쓴 글입니다. > 제목 : 전일 봉 갯수 > var1 = dayindex+1; if date != date[1] then var2 = var1[1]; 전일봉 갯수 질의 시 알려주신 수식입니다. 2006/03/09 의 경우 종료시간이 평일과 달라 봉의 갯수가 다른데 적용이 되지 않습니다.. 어찌 해야 할런지요..
프로필 이미지
임다
2011-05-03
721
글번호 38247
시스템

라이벌진 님에 의해서 삭제되었습니다.

프로필 이미지
라이벌진
2011-05-03
15
글번호 38246
시스템
답변완료

문의드립니다.

친절한 답변에 항상 감사드립니다. 일정수익이상 났을경우에 추적청산을 사용하고 싶은데 어떻게 해야할지 몰라서 질문드립니다. 만약 진입후 1포인트 이상 수익이 났을 경우 그 시점부터 추적청산을 하려면 어떻게 해야 하나요??
프로필 이미지
immidas
2011-05-03
719
글번호 38245
시스템
답변완료

타종목 주문 가능한가요?

동양종금의 고수는 타종목 주문이 가능하던데. 예스스탁도 타종목 주문 가능한가요? 예> 선물 시스템식 => 옵션 콜 270.50 종목 주문. 옵션 콜 280.00 종목 시스템식 ==> 옵션 풋 255.50 종목 주문.
프로필 이미지
postdog
2011-05-03
733
글번호 38244
시스템