커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

함수요청

안녕하세요? 함수요청드립니다. - 종목: 크루드오일 - 주기: 60분 - 매수: 당일제외 과거 10영업일 (고가-종가) 평균값 < 당일제외 과거 10영업일 (종가-저가) 평균값 완성시 익봉 시가 - 매도: 당일제외 과거 10영업일 (고가-종가) 평균값 > 당일제외 과거 10영업일 (종가-저가) 평균값 완성시 익봉 시가
프로필 이미지
통큰베팅
2017-12-15
225
글번호 115022
시스템
답변완료

문의드립니다.

안녕하세요~ 추운날씨에 고생많으십니다. => 혹시 수식으로 두번째 진입신호시에만 들어가게 만들수 있을까요? (추가로 1일 매매회수 제한) ex> if ma1 > ma2 and c > c[1] then buy() 이런식의 수식에서 두번째, 네번째등 두번째 나오는 신호에만 진입하고, 총 진입 회수는 3회로 설정. 위에 내용이 수식으로 가능하다면 부탁드립니다. 그럼 즐거운 주말 보내세요~
프로필 이미지
휴먼
2017-12-15
222
글번호 115014
시스템
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 지표 피봇 피봇+2틱 피봇+4틱 피봇+6틱 피봇+8틱 피봇+10틱 피봇-2틱 피봇-4틱 피봇-6틱 피봇-8틱 피봇-10틱 2. 기타 그 상품의 라운드 피겨를 지표로 만들 수 있을까요? 가령 10만원을 넘어가면 1만원당 라운드피겨 1000원이면 100원당 라운드피겨 이런 식으로 지표를 만들 수 있는지요. 3. 기타 최근 n개봉간 2번이상 고가가 상향돌파했다가 하향돌파한 swinghigh선같은 것을 구할 수 있는지요. 4. 기타 -var1선을 상향돌파한 고가봉이 n개봉인 가운데 n개봉내에 var1선+ n틱을 상향돌파하면 매수진입 -var1선을 상향돌파한 고가봉이 n개봉인 가운데 n개봉내에 var1선을 종가가 하향돌파하거나 var1선-n틱을 저가가 하향돌파하면 매도진입 -매도진입은 매수진입조건의 반대로 5. -n거래일간 n회 진입 제한 -당일 nb회 진입 제한 이평선 매수매도 전략 예제로 코딩 부탁드립니다. 이전에 만들어주신게 있는데 두개 합쳐서 쓰려고 하니 어떻게 짜야 할 지 모르겠네요.
프로필 이미지
잡다백수
2017-12-15
300
글번호 115013
시스템
답변완료

부탁드립니다.

도움주심에 감사 드립니다 타주기에서(분용,틱용)지표를 보고자 부탁 드립니다. 미리 감사 드립니다. inputs: bd(20),g(1); var:wn(0),ab(0),b1(0),c1(0),c2(0),c3(0),filt(0),peak(0),universal(0),universal_m(0); wn=(c-c[2])/2; ab=ExpValue(-1.73*3/bd); b1=2*ab*cosine(1.4*180/bd); c2=b1; c3=-ab*ab; c1=1-c2-c3; if accum(1)>3 then { filt=c1*(wn+wn[1])/2+c2*filt[1]+c3*filt[2]; } peak=0.73*peak[1]; if CurrentBar==1 then peak=0.0001; if AbsValue(filt)>peak then peak= absvalue (filt); if peak <> 0 then universal= ema(filt/peak,g);
프로필 이미지
yes
2017-12-15
277
글번호 115012
지표
답변완료

문의드립니다.

아래 수식을 실행하면 차트에서 일간 갭 선택하고 하면 정상으로 매수매도가 되는데 차트에서 일간 갭 선택안하면 처음에 매수만 실행됩니다. 수식 수정 부탁드립니다. ----의심부분 : AtLimit 에 이어지는 수식 / 이곳을 약간 수정하면 정상인거 같습니다.------------- if A_SIG == 1 and bs1 == 1 and entry < 당일거래횟수 then {buy("매수",AtLimit,TCHAN-PriceScale*TICK); } if A_SIG == 1 and ss1 == 1 and entry < 당일거래횟수 then {sell("매도",AtLimit,BCHAN+PriceScale*TICK); } ----시스템 수식-------------------------------- INPUT : LENGTH(10), PRO(100), LOSS(10),T(132000),TICK(4),하루손실(-5.5),당일거래횟수(2),TIK(0.05),P1(2),P2(1),P3(1),ST(090000),ET(144900); VAR : TCHAN(0), BCHAN(0),TCHAN1(0), BCHAN1(0); var : bs1(0),ss1(0); var : NP(0),Pre(0),DayPL(0),Xcond(false); var : TT(0),T1(0),Entry(0); var : Tcond(false); var : gap(0),sumgap(0),GO(0),GH(0),GL(0),GC(0),R(0),MI(0); //PRICE 갭 if bdate != bdate[1] Then{ gap = Open-Close[1]; //일간갭 계산 sumGap = sumGap+gap; //일간갭 누적 } GO = O - sumGap; //갭보정 시가 - 현재봉 시가에서 누적된 갭만큼 가감 GH = H - sumGap; //갭보정 고가 - 현재봉 고가에서 누적된 갭만큼 가감 GL = L - sumGap; //갭보정 저가 - 현재봉 저가에서 누적된 갭만큼 가감 GC = C - sumGap; //갭보정 종가 - 현재봉 종가에서 누적된 갭만큼 가감 NP = NetProfit; TT = TotalTrades; if Bdate != Bdate[1] Then{ Pre = NP[1]; Xcond = false; T1 = TT[1]; } DayPL = NP-Pre; if MarketPosition == 0 Then entry = TT-T1; Else entry = TT-T1+1; if TotalTrades > TotalTrades[1] and (IsExitName("DBx",1) == true or IsExitName("DSx",1) == true) Then Xcond = true; TCHAN = HIGHEST(GH, LENGTH)[P1]; BCHAN = LOWEST(GL, LENGTH)[P1]; // 매수매도 진입조건 1단계 if TCHAN[P2]+TIK < H then {bs1 = 1;} if BCHAN[P2]-TIK > L then {ss1 = 1;} // 매수매도 초기화 if bs1 == 1 and BCHAN > GL then {bs1=0;} if ss1 == 1 and TCHAN < GH then {ss1=0;} TCHAN1 = HIGHEST(HIGH, LENGTH)[P3]; BCHAN1 = LOWEST(LOW, LENGTH)[P3]; //진입 if bs1 == 1 and entry < 당일거래횟수 then {buy("매수",AtLimit,TCHAN1-PriceScale*TICK); } if ss1 == 1 and entry < 당일거래횟수 then {sell("매도",AtLimit,BCHAN1+PriceScale*TICK); } if MarketPosition == 1 Then ExitLong("DBx",AtStop,EntryPrice+하루손실-dayPL); if MarketPosition == -1 Then ExitShort("DSx",AtStop,EntryPrice-하루손실+daypl ); SetStopProfittarget(PRO,PointStop); SetStopLoss(LOSS,PointStop); SetStopEndofday(T);
프로필 이미지
비류천
2017-12-15
380
글번호 115011
시스템
답변완료

시스템식 작성 부탁드립니다.

안녕하세요 답변 항상 잘 이용하고 있습니다. 아래식은 매도만 나오는 식인데 반대의 경우일때 매수식 나오게 부탁드립니다. //아래는 수식 Var: DivShortCond(False), PrevTop(0), PrevTopInd(0), FirstBar(0); Var: StoLength(12), StoPeriod(5), StoK(0), StoD(0), StoTOP(80), StoBOTTOM(20); StoK = StochasticsK(StoLength, StoPeriod); StoD = StochasticsD(StoLength, StoPeriod, StoPeriod); If Date<>Date[1] then Begin FirstBar = Barindex; DivShortCond = False; PrevTop = 0; PrevTopInd = 0; End; If ((High[1]==HighD(0) and Close[1]>Open[1]) or (High==HighD(0) and Close<Open)) and Barindex <> FirstBar Then begin If (High[1]>PrevTop and StoK[1]>StoTOP) or (High>PrevTop and StoK>StoTOP) Then begin PrevTop = High[1]; PrevTopInd = StoK[1]; End Else if PrevTop <> 0 and StoK < PrevTopInd and StoK < StoK[1] and StoK[1]<StoTOP then DivShortCond = True; End; If DivShortCond then If StoK > StoTOP then DivShortCond = False; If DivShortCond Then { If (CrossDown(StoK, StoD) and Close<Low[1]) Then begin Sell("다이버전스 매도"); DivShortCond = False; PrevTop = 0; PrevTopInd = 0; End; } //이상입니다.
프로필 이미지
탄젠트80
2017-12-15
232
글번호 115010
시스템
답변완료

문의드립니다

input : T(100),Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8),Per5(76.4); var : HV(0),LV(0),HV1(0),LV1(0),D1(0),T1(0); var : TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0); var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0); if Bdate != Bdate[1] Then{ D1 = sdate; T1 = stime; HV1 = dayhigh(1); LV1 = DayLow(1); var11 = 10^(LOG10(HV1)-(LOG10(HV1)-LOG10(LV1))*(Per1/100)); var21 = 10^(LOG10(HV1)-(LOG10(HV1)-LOG10(LV1))*(Per2/100)); var31 = 10^(LOG10(HV1)-(LOG10(HV1)-LOG10(LV1))*(Per3/100)); var41 = 10^(LOG10(HV1)-(LOG10(HV1)-LOG10(LV1))*(Per4/100)); var51 = 10^(LOG10(HV1)-(LOG10(HV1)-LOG10(LV1))*(Per5/100)); if dayhigh(1) >= daylow(1)+PriceScale*T then{ TL11 = TL_New(D1,T1,HV1,sdate,stime,HV1); TL12 = TL_New(D1,T1,var11,sdate,stime,var11); TL13 = TL_New(D1,T1,var21,sdate,stime,var21); TL14 = TL_New(D1,T1,var31,sdate,stime,var31); TL15 = TL_New(D1,T1,var41,sdate,stime,var41); TL16 = TL_New(D1,T1,var51,sdate,stime,var51); TL17 = TL_New(D1,T1,LV1,sdate,stime,LV1); TL_SetColor(TL11,blue); TL_SetColor(TL12,blue); TL_SetColor(TL13,blue); TL_SetColor(TL14,blue); TL_SetColor(TL15,blue); TL_SetColor(TL16,blue); TL_SetColor(TL17,blue); } } if dayhigh(1) >= daylow(1)+PriceScale*T then{ TL_SetEnd(TL11,sdate,stime,HV1); TL_SetEnd(TL12,sdate,stime,var11); TL_SetEnd(TL13,sdate,stime,var21); TL_SetEnd(TL14,sdate,stime,var31); TL_SetEnd(TL15,sdate,stime,var41); TL_SetEnd(TL16,sdate,stime,var51); TL_SetEnd(TL17,sdate,stime,LV1); } HV = dayhigh; LV = daylow; var1 = 10^(LOG10(HV)-(LOG10(HV)-LOG10(LV))*(Per1/100)); var2 = 10^(LOG10(HV)-(LOG10(HV)-LOG10(LV))*(Per2/100)); var3 = 10^(LOG10(HV)-(LOG10(HV)-LOG10(LV))*(Per3/100)); var4 = 10^(LOG10(HV)-(LOG10(HV)-LOG10(LV))*(Per4/100)); var5 = 10^(LOG10(HV)-(LOG10(HV)-LOG10(LV))*(Per5/100)); if Condition1 == false and HV >= LV+PriceScale*T then{ Condition1 = true; TL1 = TL_New(D1,T1,HV,sdate,stime,HV); TL2 = TL_New(D1,T1,var1,sdate,stime,var1); TL3 = TL_New(D1,T1,var2,sdate,stime,var2); TL4 = TL_New(D1,T1,var3,sdate,stime,var3); TL5 = TL_New(D1,T1,var4,sdate,stime,var4); TL6 = TL_New(D1,T1,var5,sdate,stime,var5); TL7 = TL_New(D1,T1,LV,sdate,stime,LV); TL_SetColor(TL1,red); TL_SetColor(TL2,red); TL_SetColor(TL3,red); TL_SetColor(TL4,red); TL_SetColor(TL5,red); TL_SetColor(TL6,red); TL_SetColor(TL7,red); } if Condition1 == true and HV >= LV+PriceScale*T then{ TL_SetBegin(TL1,D1,T1,Hv); TL_SetBegin(TL2,D1,T1,var1); TL_SetBegin(TL3,D1,T1,var2); TL_SetBegin(TL4,D1,T1,var3); TL_SetBegin(TL5,D1,T1,var4); TL_SetBegin(TL6,D1,T1,var5); TL_SetBegin(TL7,D1,T1,Lv); TL_SetEnd(TL1,sdate,stime,Hv); TL_SetEnd(TL2,sdate,stime,var1); TL_SetEnd(TL3,sdate,stime,var2); TL_SetEnd(TL4,sdate,stime,var3); TL_SetEnd(TL5,sdate,stime,var4); TL_SetEnd(TL6,sdate,stime,var5); TL_SetEnd(TL7,sdate,stime,Lv); } ================================================================================== 상기수식은 전일변폭 100틱이상시 피보수치인데 100틱변폭이 아닌 전일은 고가 저가 따른 피보과 당일에는 변폭에따라 피보의 수식을 부탁드립니다
프로필 이미지
럭키잭팟
2017-12-15
244
글번호 115009
지표
답변완료

문의드립니다

안녕하세요? 1. 당일 일봉차트의 5, 10, 20, 30, 60, 120, 240, 360, 480 이평선의 값을 60분봉 차트에 수평선으로 표시하고 수평선 좌측끝에 '5 이평'과 같은 이름 표시하기 1. 당일 일봉차트의 5, 10, 20, 30, 60, 120, 240, 360, 480 이평선의 값을 300틱 차트에 수평선으로 표시하고 수평선 좌측끝에 '5 이평'과 같은 이름 표시하기 각 수평선의 색깔: 5 이평선의 값(검정색) 10 이평선의 값(분홍색) 20 이평선의 값(주황색) 30 이평선의 값(녹색) 60 이평선의 값(빨강색) 120 이평선의 값(파랑색) 240 이평선의 값(하늘색) 360 이평선의 값(연두색) 480 이평선의 값(노랑색) 위의 내용을 구현하는 수식이 가능한지요? 가능하면 수식 부탁드립니다. 색깔은 제가 임의로 넣었습니다. 해당색이 없으면 겹치지 않게 다른색으로 해도 괜찮습니다. 감사합니다.
프로필 이미지
커맨더
2017-12-15
267
글번호 115008
지표
답변완료

55612번글 답변 수식의 추가질문입니다

안녕하세요. 작성해 주신 수식을 응용해서 잘 사용하고 있습니다. 그런데 또 다른 오류가 발생 했습니다. 진입대기가 1분씩 밀려나네요. 설명드리자면... 60분봉기준으로 진입조건이 충족하면 60분 캔들이 완성되고 나서 다음 60분동안(딱 60분 동안이죠) 진입대기를 하는 조건이니까... 1분봉도 마찬가지라고 생각했습니다. 예를 들어 22:00완성 캔들에서 진입조건이 충족되었다면, 바로 직후인 22:01캔들부터 23:00캔들까지 진입대기를 하다가, 23:01캔들이 시작되는 순간부터는 진입대기를 풀어야 하는데 여전히 예비신호가 들어오고 23:01캔들에서도 진입이 이루어 지더군요. 진입대기는 23:02캔들이 생성되어야 풀리는 것으로 확인하였습니다. 수식을 읽어나가면서 생기는 약간의 오차가 생긴것 같습니다. 수정 부탁드릴게요. 감사합니다.
프로필 이미지
마인드마스터
2017-12-15
237
글번호 115007
시스템