커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁 드립니다.

그림에서 (유로화) 1,2,3,4와 같이 지표의 값이 65이상인 상태에서 변곡 발생이면 즉시 매도 진입 5와 같이 35 이하인 상태에서 변곡 발생 되면 즉시 매수 진입 손절 10틱 익절 10틱 트레일링 스탑 새벽 5시 무조건 청산 미리 감사 드립니다. input:p1(48),Rsi변동폭(10); Var:j(0),상승(100),하락(-100),양방향(2),추세(0), 파동선(0),Rsi파동선(0),방향(0),RsiV(0),Rsi추세선(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0), Rsi고[20](0),Rsi저[20](0),Rsi고Bar[20](0),Rsi저Bar[20](0); RsiV =RSI(P1); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { Rsi고Bar[j] = Rsi고Bar[j] + 1; Rsi저Bar[j] = Rsi저Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 최근 고,저 갱신 #==========================================# If Rsi고[0] <= RsiV || Rsi고[0] == 0 || IsNaN(Rsi고[0]) == True Then { Rsi고[0] = RsiV; Rsi고Bar[0] = 0; } Else Rsi고Bar[0] = Rsi고Bar[0] + 1; If Rsi저[0] >= RsiV || Rsi저[0] == 0 || IsNaN(Rsi저[0]) == True Then { Rsi저[0] = RsiV; Rsi저Bar[0] = 0; } Else Rsi저Bar[0] = Rsi저Bar[0] + 1; If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then { 고[0] = H; 고Bar[0] = 0; } Else 고Bar[0] = 고Bar[0] + 1; If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then { 저[0] = L; 저Bar[0] = 0; } Else 저Bar[0] = 저Bar[0] + 1; #==========================================# # 추세방향 결정 #==========================================# If Rsi저[0][1] + Rsi변동폭 > RsiV[1] && Rsi저[0][1] + Rsi변동폭 <= RsiV Then 방향 = 상승; If Rsi고[0][1] - Rsi변동폭 < RsiV[1] && Rsi고[0][1] - Rsi변동폭 >= RsiV Then 방향 = 하락; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 방향[1] == 하락 && 방향 == 상승 Then { For j = 18 DownTo 1 { Rsi저[j+1] = Rsi저[j]; Rsi저Bar[j+1] = Rsi저Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RsiV; Rsi저Bar[0] = 0; Rsi고[0] = RsiV; Rsi고Bar[0] = 0; 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; 고[0] = H; 고Bar[0] = 0; } Else If 방향[1] == 상승 && 방향 == 하락 Then { For j = 18 DownTo 1 { Rsi고[j+1] = Rsi고[j]; Rsi고Bar[j+1] = Rsi고Bar[j]; 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RsiV; Rsi고Bar[0] = 0; Rsi저[0] = RsiV; Rsi저Bar[0] = 0; 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; 저[0] = L; 저Bar[0] = 0; } Else If 방향[1] == 하락 && 방향 == 하락 Then { If Rsi고[1] < Rsi고[0] && Rsi고[0][1] - Rsi변동폭 <= RsiV[1] && Rsi고[0][1] - Rsi변동폭 > RsiV Then { Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RsiV; Rsi고Bar[0] = 0; } If 고[1] < 고[0] && 고[0] > H Then { 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; } } Else If 방향[1] == 상승 && 방향 == 상승 Then { If Rsi저[1] > Rsi저[0] && Rsi저[0][1] + Rsi변동폭 >= RsiV[1] && Rsi저[0][1] + Rsi변동폭 < RsiV Then { Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RsiV; Rsi저Bar[0] = 0; } If 저[1] > 저[0] && 저[0] < L Then { 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; } } #==========================================# # 지표식 출력 #==========================================# If Rsi파동선[1] != Rsi파동선 Then Plot1(Rsi파동선,"Rsi파동선"); //적당껏 수평이동 Else If LastBarOnChart == 1 Then { plot1(Iff(방향 == 상승,Rsi고[0],Rsi저[0]),"Rsi파동선"); } PlotBaseLine2(50,"50"); PlotBaseLine3(65,"65"); PlotBaseLine4(35,"35");
프로필 이미지
yes
2015-07-28
240
글번호 88973
시스템
답변완료

질문...

분봉적용할 코드이구요 var1의 장중 최대값과 최소값을 코딩하고 싶습니다 var1 = ma(c,5);
프로필 이미지
9회말2아웃
2015-07-28
145
글번호 88970
지표
답변완료

거래량

선물 30틱챠트에서 한틱 거래량이 100개 이상 발생되면 매수 수식 부탁드립니다
프로필 이미지
미스포터
2015-07-28
150
글번호 88969
시스템
답변완료

동시호가 마감시 옵션과 선물이 동시에 원장에 남아 있을 경우 처리 방법에 대해

안녕하세요 예스스탁입니다. 주문할때 매수호가나 매도호가를 지정해기 위해서는 종목객체가 필요합니다. 주문낼 종목이 옵션종목이면 스크립트 객체설정화면에 옵션객체를 추가하고 함수로 매수호가나 매도호가를 지정해서 주문을 내시면 되며 A1.OrderBuy(A1.Balance.code, A1.Balance.count, Option.GetAsk(A1.Balance.code, 5), 0); 만약 옵션객체가 아니면 주문낼 종목에 대해 종목객체를 추가한 후 아래와 같이 적성하시면 됩니다. A1.OrderBuy(A1.Balance.code, A1.Balance.count, MarketData1.Ask(5), 0); 즉 주문낼 종목에 대해 호가정보를 가져올수 있는 객체를 미리 준비하고 수식에서 각 객체의 함수로 값을 리턴받아 지정가로 지정하시면 됩니다. =============================================================================== 여기서 남아 있는 종목이 옵션일 때는 위의 식으로 선물일 경우는 아래의 식으로 하면 되겠네요. 그런데 그 종목이 선물인지 옵션인지 구별하는 방법을 알려 주시면 더 고맙겠습니다.
프로필 이미지
좋은선물
2015-07-28
169
글번호 88968
시스템
답변완료

수식 문의 드립니다.

............생략................ B_A_CondResult = B_A_TempResult[1]; ............생략............... B_B_CondResult = B_B_TempResult[1]; ............생략................ B_C_CondResult = B_C_TempResult[1]; If ( B_A_CondResult or B_B_CondResult ) and B_C_CondResult Then { Buy("atlimit",atlimit,c[1]); } 이런식으로 수식을 작성하면 각 조건에서 1봉 전 기준으로 해서 하루전 캔들이 if문을 만족하면 오늘 현재가가 어제 종가(C[1])보다 이하이면 매수하라 이런식으로 작성된게 맞나요? 일봉차트를 사용중인데, 일봉 차트에서 사용되는 보조지표의 조건 만족이 봉 완성시에 된다고 하셔서 봉이 완성되는 종가에는 거래할 수가 없어서 다음날에 전일 종가나 종가보다 저렴하게 매수할 수 있도록 하려 합니다. 이 방법이 맞는지 확인 부탁드리고 틀렸다면 방법을 제시하여 주시기 바랍니다.
프로필 이미지
sadfkasf
2015-07-28
141
글번호 88967
시스템

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

프로필 이미지
sadfkasf
2015-07-28
0
글번호 88966
시스템

좋은선물 님에 의해서 삭제되었습니다.

프로필 이미지
좋은선물
2015-07-28
4
글번호 88965
시스템
답변완료

문의드립니다.

항상 도와주셔서 감사합니다. 과거예제를 이용해서 계좌잔고에서 매도포지션이고 매도1호가가 (0.02 or 0.01)이면 0.01에 청산주문을 넣어놓으려고 만들어 보았습니다. 그런데, 매도호가가 0.02인 경우에는 청산이 실현이 되지않아 계속 주문이 반복됩니다. 해결할 참조수식 부탁드립니다. function Main_OnStart() { Main.SetTimer(1, 10000);//10초타이머 } function Main_OnTimer(nEventID) { if (nEventID == 1) { var num = Account1.GetTheNumberOfBalances(); for(var i = 0; i < num; i++) { //잔고셋팅 Account1.SetBalanceIndex(i); //옵션종목이면 if (Account1.Balance.code.substring(0,1) == "2" || Account1.Balance.code.substring(0,1) == "3") { //매도포지션이고 매도1호가가 (0.02 or 0.01)이면 0.01에 청산주문 if (Account1.Balance.position == 1 && ((Option.GetAsk(Account1.Balance.code, 1) == 0.02) || (Option.GetAsk(Account1.Balance.code, 1) == 0.01))) { Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0.01,0); } } } } }
프로필 이미지
연개소문1004
2015-07-28
162
글번호 88964
시스템
답변완료

수식문의 드립니다.

적용 하려는 수식이 크루드오일에 적용 하려는데. (기준시간)한국시간으로 22시 1분 종가가 22시 시가보다 아래면 매도로, 22시 시가보다 위에있으면 매수로, 지정가 진입을 하려는데, 어떻게 수식을 짜야하는지 궁굼합니다. 이익실현은 0.30포인트 손절은 0.40포인트 입니다. 22시 1분부터 시작해서 다음날 05시 까지 합니다. 부탁드립니다~
프로필 이미지
아키
2015-07-28
129
글번호 88959
시스템