커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

진입시간 제한

아래와 같은 수식을 이용해 진입 시간을 통제하는데요. if stime >= 100000 and stime < 235900 then{ 진입조건 } 10시부터 23시59분 까지는 문제가 없는데 새벽2시까지 설정하려면 어떻게 해야합니까? if stime >= 100000 and stime < 020000 then{ --> 이렇게 하니까 인식을 못합니다.
프로필 이미지
천왕봉
2017-09-06
131
글번호 112543
시스템
답변완료

시장 시작시간관련

항셍(홍콩) 지수선물관련 지표가 당일 10:15로 적용이 안되고 전날 18;30(한국시간)에서 시작하는데 해결좀 부탁합니다(시간을 홍콩시간으로바꿔도동일) Inputs: t1(101500); HiHi = DayHigh; LoLo = DayLow; //if sdate == currentdate and stime>t1 Then { Plot5(HiHi); Plot6(LoLo); }
프로필 이미지
챠트미소
2017-09-06
140
글번호 112542
지표
답변완료

시스템 오류검증

항상 감사드립니다. 질의_1. 아래의 시스템_1식은 신호발생후 기준선이나 선행스팬2를 터치할때 진입되도록 만든식인데 장시작후 처음에 다르게 나오고 있습니다. 또한 기준선이나 선행스팬2가 급격히 수직으로 움직일때 고가/저가 가 crossup/crossdown 되지 않고 수평으로 통과하다보니 신호가 발생하지 않습니다 수정부탁드립니다 질의_2. 시스템1과 시스템_2 는 동일한 시스템으로 만들엇는데 결과치는 다르게 나오고 잇습니다 두시스템의 차이점을 알고 싶습니다 1_시스템 1 /**************************************************************************/ Var : 기준선(0), 전환선(0), 선행스팬1(0), 선행스팬2(0),선행스팬3(0); 전환선 = (Highest(H, 9) + Lowest(L, 9)) / 2; 기준선 = (Highest(H, 26) + Lowest(L, 26)) / 2; 선행스팬1 = (전환선[25] + 기준선[25]) / 2 ; 선행스팬2 = (Highest(H, 52)[25] + Lowest(L, 52)[25]) / 2; 선행스팬3 = (highest(H,48)+lowest(L,48))/2; /************************************************************************/ Input : Period1(200),Period2(100); var : CCIv(0),CCIs(0); CCIv = CCI(Period1); CCIs = ema(CCIv,Period2); /***************************************/ Input : short(30),long(65),sig(9); Var : MACDv(0),MACDS(0); MACDv = MACD(short, long); MACDs = ema(MACDv,sig); /*****************************************/ Input: DIP(46); var : DP1(0),DM1(0),ZZ(0); DP1 = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),DIP)/ ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),DIP)*100; DM1 = ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),DIP)/ ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),DIP)*100; ZZ=ema(accum(ema(ema(DP1-DM1, 2), 2)),20); if ZZ > ZZ[1] Then var6 = 1; Else var6 = 0; #BASELINE: 0.5 # /*************************************************/ var: t(0),t1(0),t2(0),t3(0),t4(0),t5(0); if crossup(전환선,선행스팬3) Then T2 = 1 ; if CrossDown(전환선,선행스팬3) Then T2 = -1 ; if T2==1 and CCIv>0 Then T3 = 1 ; if T2==-1 and CCIv<0 Then T3 = -1 ; /*************************************/ ### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ### var : entrycnt(0); if stime == 090000 or (stime > 090000 and stime[1] < 090000) Then Entrycnt = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then Entrycnt = Entrycnt+1; if (stime >= 090000 and stime < 150000) Then{ if T2 == 1 and C > 선행스팬2 and macdv>macds and 기준선>선행스팬2 Then T4 = 1; if T4 == 1 and (crossup(H,선행스팬2) or CrossDown(L,선행스팬2)) Then T5 = 1; if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) and t5==1 and var6==1 then buy("B_1"); if T2 == -1 and C < 선행스팬2 and macdv<macds and 기준선<선행스팬2 Then T4 = -1; if T4 == -1 and (crossup(H,기준선) or CrossDown(L,기준선)) Then T5 = -1; if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) and t5==-1 and var6==0 then sell("S_1"); } ########################## ##### 청산 ##### ########################## if MarketPosition == -1 Then{ if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*50 Then ExitShort("sx2",AtStop,EntryPrice-(EntryPrice-Lowest(L,BarsSinceEntry))*0.75); } ######################################## ##### 손절20틱/매일 15:00 강제청산 ##### ######################################## SetStopLoss(PriceScale*20,PointStop); if stime == 150000 or (stime > 150000 and stime[1] < 150000) Then{ exitlong("당일매수청산"); ExitShort("당일매도청산"); } /*#####################################################*/ 2_시스템2 /*************************************************/ var: t(0),t1(0),t2(0),t3(0),t4(0); if 전환선==선행스팬3 Then # 전환선이 선행스팬3과 같으면 0 T = 0 ; if T==0 and CCIv>0 Then # t=0 인상태에서 cciv>0 이면 t1=1 T1 = 1 ; if T==0 and CCIv<0 Then # t=0 인상태에서 cciv<0 이면 t1=-1 T1= -1 ; /**************************************/ if crossup(전환선,선행스팬3) Then #전환선이 선행스팬3을 상향돌파하면 1 T = 1 ; if CrossDown(전환선,선행스팬3) Then #전환선이 선행스팬3을 하향돌파하면 -1 T = -1 ; if T==1 and CCIv>0 Then T1 = 2 ; if T==-1 and CCIv<0 Then T1 = -2 ; /*************************************/ ### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ### var : entrycnt(0); if stime == 090000 or (stime > 090000 and stime[1] < 090000) Then Entrycnt = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then ### 동일방향 재진입금지 설정식 ### Entrycnt = Entrycnt+1; if (stime >= 090000 and stime < 150000) Then{ /***************************************************************************/ if T1 == 2 and C > 선행스팬2 and macdv>macds and 기준선>선행스팬2 Then T = 2; #t가 2인 상태에서 선행스팬2를 터치하면 3 if T == 2 and (crossup(H,선행스팬2) or CrossDown(L,선행스팬2)) Then T = 3; if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) and #동일방향 재진입금지# t==3 and var6==1 then buy("B_1"); if T1 == -2 and C < 선행스팬2 and macdv<macds and 기준선<선행스팬2 Then T = -2; #t가 -2인 상태에서 선행스팬2를 터치하면 -3 if T == -2 and (crossup(H,기준선) or CrossDown(L,기준선)) Then T = -3; if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) and #동일방향 재진입금지# t==-3 and var6==0 then sell("S_1"); } ########################## ##### 청산 ##### ########################## if MarketPosition == -1 Then{ if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*50 Then ExitShort("sx2",AtStop,EntryPrice-(EntryPrice-Lowest(L,BarsSinceEntry))*0.75); } ######################################## ##### 손절40틱/매일 12:00 강제청산 ##### ######################################## SetStopLoss(PriceScale*20,PointStop); if stime == 150000 or (stime > 150000 and stime[1] < 150000) Then{ exitlong("당일매수청산"); ExitShort("당일매도청산"); }
프로필 이미지
조민철
2017-09-06
137
글번호 112537
시스템
답변완료

진입제한시간문의드립니다.

크루즈오일선물인데요 한국시간 06시에 장이 끝나고 07시에 장이 다시 열리는데요 한국시간 07~09시까지 한국장 열리긴전에 2시간동안 매매를 못하게 제한거는 식을 부탁합니다. 한국시간 07시면 Y/S실행차트에서 기본적으로 나오는 시장시간은 어떻게 되는건지도 궁금합니다. 증권사 hts는 한국시간 07시가 거래소22시로 체결표기 되는데 예스트레이더에서는 다른거 같기도하고..., 감사합니다.
프로필 이미지
몽고메리
2017-09-06
145
글번호 112536
시스템

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

프로필 이미지
carlos
2017-09-05
14
글번호 112535
시스템
답변완료

수식요청(진입명)

* 많은 도움에 고맙습니다. * 진입명을 "22매수" 라고 할 경우 4일 이평선*0.99 크로스 다운 매도 어떻게 하죠? var1= ma(c,4) ; if MarketPosition == 1 then {if countif(LatestEntryName(0) == "22매수", CrossDown(c,var1*0.99) then ExitLong("4일가매도"); } 이것이 아닌가요? * 고맙습니다... ^.^
프로필 이미지
요타
2017-09-05
141
글번호 112534
시스템
답변완료

수식 문의드립니다.

안녕하세요 하기 수식에서 청산을 하는 방식을 몇가지 보완을 하고 싶습니다. 검토 부탁드립니다. 1. var1 = ADX(P); var2= ma(C,60); if var1 >= var1[1]+0.3 and DP > DM Then { buy("b1"); } if var1 >= var1[1]+0.3 and DP < DM Then { sell("s1"); } 상기처럼 진입한 후, 청산을 하기와 같이 몇가지 조건중에 한가지라도 해당이 되면 청산이 되게 부탁드립니다. * MACD ocillator 가 매수 진입 후 음으로 변경 되었을때 청산식 부탁드립니다. - 매도 진입 후는 반대로 양으로 변경 되었을때 청산식 부탁드립니다. * 매수 진입 후, 앞 양봉의 크기보다 큰 음봉이 발생하였을 &#46468; 청산식 부탁드립니다. 매도 진입 후, 앞 음봉의 크기보다 큰 양봉이 발생하였을 때 청산식 부탁드립니다. (상기 두가지 모두 꼬리는 계산하지 않고 오직 몸통의 크기만으로 판단합니다.) * ADX 이 증가가 멈추었을 때, 청산식 부탁드립니다. * 매수 진입 후 볼린져 밴드 상단 밴드와 5일 이평선 두가지 중 한가지라도 몸통 또는 꼬리가 걸쳐져 있다면, 청산 금지 부탁드립니다. - 매도 진입 후 볼린져 밴드 하단 밴드와 5일 이평선 두가지 중 한가지라도 몸통 또는 꼬리가 걸쳐져 있다면, 청산 금지 부탁드립니다. 감사합니다.
프로필 이미지
softtoug
2017-09-05
146
글번호 112533
시스템
답변완료

지표 수정 부탁드립니다.

안녕하세요? 엘리엇파동을 이용한 오실레이터를 사용중입니다. 아래의 수식중에서 plot1(OSC) 값이 0보다 높으면 빨강색 0보다 낮으면 파랑색으로 하고 싶습니다. 가능한가요? INPUTS: LEN(80),TRIG(0.7); VARS: WAVCOUNT(0), OSC(0); OSC = ELLIOTTWAVEOSC; WAVCOUNT = WAVE345ELLIOTT(LEN, TRIG); plot1(OSC); plot2(WAVCOUNT);
프로필 이미지
jyck
2017-09-05
249
글번호 112532
지표
답변완료

문의드립니다.

와 단순한 책에 있는 되돌림 하나 만들어 보려고 해도 머리 엄청 굴려야 하네요. 수식천재 예스스탁님이 새삼 대단하게 보입니다. 수식 좀 부탁드립니다. 1. 예비신호 -종가가 20개(변수A)봉 고가 돌파 필수 필터 -고가대비 현 종가가 3%(변수B) 이상 떨어졌음 -이후 4개(변수C)봉 기간 동안 저가가 20개(변수A)봉 저가를 하향돌파하지 않음 선택 필터 -당일 종가가 당일 시가보다 높음 -당일 종가가 전일 종가보다 높음 -당일 종가가 2일 전 종가보다 높음 -당일 가격이 전일 종가보다 계속 높음 -당일 가격이 전주의 종가보다 계속 높음 -당일 가격이 전달의 종가보다 계속 높음 진입 -필수필터를 충족시킨 상태+선택필터 가운데 3개 이상을 충족시킨 상태에서 신호조건 1의 가격을 고가가 상향돌파시(재돌파) 진입 청산 -저가가 20개봉(변수A)저가를 하향돌파시 *참고로 선택필터는 이전에 만들어 주셨었습니다. 54375 지표 지표 문의드립니다. 2. 예비신호 -고가가 20(변수A)이평+ ATR20(변수B)*3(변수C)을 상향돌파 필수필터 -현 종가가 20이평+ ATR20*1.5(변수D) 아래에 있음 -이후 4개(변수E)봉 기간 동안 저가가 20이평을 하향 돌파하지 않음 선택필터 -당일 종가가 당일 시가보다 높음 -당일 종가가 전일 종가보다 높음 -당일 종가가 2일 전 종가보다 높음 -당일 가격이 전일 종가보다 계속 높음 -당일 가격이 전주의 종가보다 계속 높음 -당일 가격이 전달의 종가보다 계속 높음 진입 예비신호후 필수필터 충족시 진입 청산 저가가 20이평 하향돌파시 청산 3. 이전에 질문드렸던 내용인데요 이걸로 시스템 식 만드는 방법이 궁금합니다. "문의하신 내용은 100개봉동안 양봉비율과 같습니다. var1 = (countif(C>O,100)/100)*100; plot1(var1);" 진입 va1이 30(변수)을 상향돌파하면 진입 청산 var1이 30을 하향돌파하면 청산 4. 진입 var1으로 시그널선 9(변수, RSI 시그널 선 같은 게 만들고 싶습니다.) 상향돌파시 진입 var1으로 시그널선 9 하향 돌파시 청산 5. 지표 40개봉(변수)가운데 2(변수)개봉 연속 양봉일 때 다음날 시가에 사서 종가에 팔았을 때 수익을 낼 확률 6. 시스템 진입 3과 동일 청산 3과 동일 7. 시스템 진입 4와 동일 청산 4와 동일
프로필 이미지
잡다백수
2017-09-06
169
글번호 112531
시스템