커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

타주기분 지표식 부탁드립니다.

수고하십니다. 아래지표식을 타주기분(N배) 로 변환부탁드립니다. //=============== var : xClose(0),xOpen(0),xHigh(0),xLow(0); if index == 0 then { xOpen = open; xClose = (O+H+L+C)/4; xHigh = MaxList( high, xOpen, xClose); xLow = MinList( low, xOpen,xClose); } else { xClose = (O+H+L+C)/4; xOpen = (xOpen [1] + xClose [1])/2 ; xHigh = MaxList(High, xOpen, xClose) ; xLow = MinList(Low, xOpen, xClose) ; } ## input : Length(14),Period(20); var : TR(0),DMPlus(0),DMMinus(0); var : STR(0),SDMPlus(0),SDMMinus(0); var : DIP(0),DIM(0),DX(0),ADXv(0); var : DIPMA(0), DIMMA(0); TR = max(max(xhigh-xlow, abs(xhigh-xclose[1])), abs(xlow-xclose[1])); DMPlus = iff(xhigh-xhigh[1] > xlow[1]-xlow , max(xhigh-xhigh[1], 0) , 0); DMMinus = iff(xlow[1]-xlow > xhigh-xhigh[1] , max(xlow[1]-xlow, 0) , 0); STR = STR - (STR/Length) + TR; SDMPlus = SDMPlus - (SDMPlus/Length) + DMPlus; SDMMinus = SDMMinus - (SDMMinus/Length) + DMMinus; DIP = SDMPlus / STR * 100; DIM = SDMMinus / STR * 100; DX = abs(DIP - DIM) / (DIP + DIM)*100; ADXv = ma(DX, Length); DIPMA = WMa(DIP,Period); DIMMA = WMa(DIM,Period); ### plot1(ADXv,"ADX",White); plot2(DIP,"+DI",magenta); plot3(DIM,"-DI",Lime); plot4(DIPMA,"DIPMA",Cyan); plot5(DIMMA,"DIMMA",Red); PlotBaseLine1(30,"30",Gold); PlotBaseLine2(20,"20",Gold); PlotBaseLine3(10,"10",Gold); //=========== 감사합니다
프로필 이미지
당일선물
2023-04-23
1042
글번호 168418
지표
답변완료

해외선물 (나스닥)지표수식 부탁드립니다.

안녕하세요.키움을예스로변경수식부탁드립니다. 수식1:LL=Lowest(L,기간); HH=Highest(H,기간); NH=Valuewhen(1,H>HH(1),H); BOX1=Highest(H,기간-2)<Highest(H,기간-1); TOP=Valuewhen(1,BarsSince(H>HH(1))==(기간-2) AND,BOX1,NH); BTM=Valuewhen(1,BarsSince(H>HH(1))==(기간-2) AND,BOX1,LL); shift(BTM,이동) 조건설정:기간(5) 이동(-16) 선색상기본색으로 하시고 변경 가능토록 부탁드립니다. 기간값,이동값,선굵기도 변경가능하도록 부탁드립니다.
프로필 이미지
렉스턴
2023-04-23
1313
글번호 168417
지표
답변완료

수식 부탁드립니다.

안녕하세요. 항상 감사합니다. 지난주에 수식 요청드렸었는데 기대했던대로 작동이 안되어 다시한번 요청드립니다. 제가 설명을 잘못 드린 것 같아 보다 자세히 설명드리겠습니다. line1과 line2의 교차 매매인데 교차시에 바로진입을 하는 것이 아니고 위든 아래든 추세가 뚫릴 때 매매하는 것이 핵심입니다. 종목은 나스닥. 매매시간은 21:30~05:50 입니다. line1 = 단기 이평 line2 = 장기 이평 input : 익절틱수(100),손절틱수(50), 진입틱수(50); input : tr_onoff(1),최소수익(50),감소수익(50);#트레일링스탑 사용1, 미사용 0 var : line1(0),line2(0); var : entry1(False) entry2(False; //두 라인이 crossup 또는 crossdown 될 때 entry1 true, 청산시 false. 진입중이면 entry2 true, 청산시 false if entry1 == False and (CrossUp(line1, line2) or CrossDown(line1, line2)) Then { var1 = line1; entry1= True; } // 두 라인이 교차되면 crossup 이든 crossdown이든 일단 진입대기 상태가 된다. if entry1 == True and entry2 == False and 현재가 > var1 + 진입틱수 Then { Buy("b"); entry2 = True; } if entry1 == True and entry2 == False and 현재가 < var1 - 진입틱수 Then { Sell("s"); entry2 = True; // 진입대기 상태에서 두선의 교차가보다 진입틱수가 높으면 매수진입, 낮으면 매도 진입 // 이 상태에서는 아직 entry1을 False 만들면 안 될 듯. entry1이 False면 첫 번째 조건인 entry1 == False에 다시 진입하기 때문. SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); if tr_onoff == 1 Then SetStopTrailing(PriceScale*감소수익,PriceScale*최소수익,PointStop); //예전에 만들어주신건데 이대로 하면 되겠죠? 청산되면 entry1 == False, entry2 == False 이런 수식이면 제가 원하는대로 될 것 같기는 한데. 일단 만들어주시면 확인해봐야겠네요. 가동시간도 확인부탁드립니다. 변수로 조절할 수 있게 만들어 주시면 더 좋을 것 같습니다. 잘부탁드리겠습니다.
프로필 이미지
강장군
2023-04-23
1237
글번호 168416
시스템

강장군 님에 의해서 삭제되었습니다.

프로필 이미지
강장군
2023-04-23
0
글번호 168415
시스템

신대륙발견 님에 의해서 삭제되었습니다.

프로필 이미지
신대륙발견
2023-04-24
202
글번호 168414
지표

질갱이 님에 의해서 삭제되었습니다.

프로필 이미지
질갱이
2023-04-24
681
글번호 168413
지표
답변완료

수식 전환 부탁드립니다

안녕하세요 항상감사드립니다 수식 전환 부탁드립니다 VV=highest(V(1), 240); sumV=sum(V(1), 240); if(V>=VV and C>O, C*2, 0); count=barssince((V>=VV or V>=sumV*0.2) and C>O); count2=barssince(count>0 and count <20 and v<=eavg(v(1), 5)*0.5 and c<=lowest(c(1), 5)); if(count2>0 and count2 <10 and C>highest(C(1), 5), 1, 0)
프로필 이미지
seayun1
2023-04-23
1669
글번호 168412
검색
답변완료

시스템식 요청드립니다.

나스닥 선물 매매 하는데 시스템식 요청 드립니다. 0. 무조건 1계약으로만 진행되고, 포지션 진입상태이면 추가 매수, 매도포지션 진입 x 1. 진입포지션 (1) 매수포지션 ㄱ. 1분봉상 종가가 이동평균선 200선 하향이탈시(crossdown) 현재가에 매수포지션 ㄴ. 매도포지션((2)의 ㄱ포지션)) 청산하고 이후, 30분안에 (봉30개) and 매도포지션 청산한 포인트 - 10 이라면 매수포지션 진입 =>스위칭개념으로 접근, 30분 이후에는 다시 ㄱ 포지션으로 접근.. ㄷ. 매도포지션 손절청산 포인트 - 20 일때 매도포지션 진입 (2) 매도포지션 ㄱ. 1분봉상 종가가 이동평균선 100선 상향돌파후(crossup) 현재가에 매도포지션 ㄴ. 매수포지션((1)의 ㄱ포지션)) 청산하고 이후, 30분안에 (봉30개) and 매수포지션 청산한 포인트 + 10 이라면 매도포지션 진입 =>스위칭개념으로 접근, 30분 이후에는 다시 ㄱ 포지션으로 접근.. ㄷ. 매도포지션 손절청산 포인트 + 20 일때 매도포지션 진입 2. 청산 포지션 (1) 매수포지션 청산 ㄱ. 1분봉상 종가가 이동평균선 100선 상향돌파후(crossup) 현재가에 매수포지션 청산 ㄴ. 매수포지션 진입 현재가 - 100 포인트되면 매수포지션 손절청산 (2) 매도포지션 청산 ㄱ. 1분봉상 종가가 이동평균선 200선 하향이탈시(crossdown) 현재가에 매도포지션 청산 ㄴ. 매도포지션 진입 현재가 + 100 포인트되면 매도포지션 손절청산
프로필 이미지
맴맴잉
2023-04-23
1373
글번호 168411
시스템
답변완료

추세선 반등 순서

input : Period(150); Var:j(0),T(0); Var: date11(0),date12(0),time11(0),time12(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0); Array: HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0); var : tx1(0),tx2(0),tx3(0),tx4(0); var : tx99(0),tx99count(0),l1(0),l2(0),l3(0),L4(0),L5(0); Plot1(value12,"value12",IFf(t==1,Red,Blue)); For j = 0 To 19 { HiBar[j] = HiBar[j] + 1; LoBar[j] = LoBar[j] + 1; } if crossup(c,highest(H,Period)[1]) Then T = 1; if CrossDown(c,Lowest(L,Period)[1]) Then T = -1; If T == -1 Then { If T[1] != -1 Then { For j = 18 DownTo 0 { LoVal[j+1] = LoVal[j]; LoBar[j+1] = LoBar[j]; } LoVal[0] = L; LoBar[0] = 0; date11 = date[HiBar[0]]; time11 = stime[HiBar[0]]; Value11 = HiVal[0]; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; Condition99 = False; tx99count = 0; } Else { If LoVal[0] >= L Then { LoVal[0] = L; LoBar[0] = 0; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; date22 = date[0]; time22 = stime[0]; Condition99 = False; } Else { if Condition99 == False and ((sTime < 93000 and value12 <= value11-0.7) or (sTime >= 93000 and value12 <= value11-0.7)) and C >= value12+PriceScale*2 Then { Condition99 = true; l1 = value12; l2 = l1[1]; l3 = l2[1]; l4 = l3[1]; l5 = l4[1]; tx99count = tx99count+1; if tx99count >= 3 Then { if max(L1,L2,L3) <= min(L1,L2,L3)+PriceScale*5 Then { tx3 = Text_New_Self(date12,time12,L1-PriceScale*3,"■"); Text_SetStyle(tx3,2,2); Text_SetColor(tx3,Blue); Text_SetSize(tx3,20); } } } } } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; } HiVal[0] = H; HiBar[0] = 0; date11 = date[LoBar[0]]; time11 = stime[LoBar[0]]; Value11 = LoVal[0]; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; date32 = date[0]; time32 = stime[0]; } } 위 조건의 하락추세선 하나에서 쓰리반등이 여러번 나올 때, 3번째,6번째,9번째 반등에 세로선. 감사합니다.
프로필 이미지
고성
2023-04-23
1401
글번호 168410
지표