커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

62588 재문의 드립니다

> 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의드려요 > 안녕하세요 예스스탁입니다. 신호가 발생하면 설정창에 지정한 매매가격으로 주문이 집행되므로 설장창의 매매가격으로 해당부분을 제어할수는 없습니다. 설정창의 매매가격은 신호발생에 영향을 줄수 없습니다. atstop이나 atlimit은 신호타입입니다. 감시가격을 지정하고 다음봉의 시세와 비교를 합니다. 다음봉에서 가격조건이 충족되지 않으면 신호가 발생하지 않습니다. If CrossUP(value1, value2) Then buy("b",AtLimit,c-priceScale*3); 그러므로 위 수식은 상향돌파가 발생하면 해당종의 종가-3틱을 감시가격으로 지정하고 다음봉에서 해당 감시가격 이하의 시세가 발생하면 신호가 발생하게 됩니다. 다음봉에서 해당 감시가격 이하의 시세가 발생하지 않으면 신호를 발생하지 않습니다. 만약 골드구간에서 다음봉이 아니라도 골드봉의 종가-틱에 도달하면 신호를 발생하고자 하시면 아래와 같이 작성하셔야 합니다. Input : shortPeriod(5), longPeriod(20); var : T(0); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); If CrossUP(value1, value2) Then { T = 1; var1 = C; } If CrossUP(value1, value2) Then { T = -1; } if T == 1 and MarketPosition <= 0 Then buy("b",AtLimit,var1-priceScale*3); 즐거운 하루되세요 너무너무 감사합니다 위의 식을 참조하여 아래 매수식을 만들어보았습니다 틀린곳이 있으면 수정해주시고 매도부분 식 부탁드립니다 input : shortPeriod(5), longPeriod(20); var : T(0); value1 = ma(Var1, shortPeriod); value2 = ma(var1, longPeriod); var1 = bids/Asks*100; if Value1 > Value2 and C > o and (V[0] > V[1] ) then { T = 1; var2 = C; } if Value1 > Value2 and C > o and (V[0] > V[1] ) then { T = -1; } if T == 1 and MarketPosition <= 0 Then buy("b",AtLimit,var1-priceScale*3); if MarketPosition == 1 and Value1 < Value2 then ExitLong("bx"); 수고하세요
프로필 이미지
달마7
2019-05-21
237
글번호 128847
시스템
답변완료

부탁드립니다.

답변 감사드립니다. 그럼 진입 종료는 진입 후 (익절+손절)의 수익이 목표 틱수에 도달하면 진입을 종료하고 진입 시작은 최고 수익값 대비 하락 틱이 얼마 이상 발생하면 진입을 하는 식으로 부탁드립니다. 간단한 매매 식에서 상기수식을 넣어주시면 반영하겠습니다. 감사합니다. 안녕하세요 예스스탁입니다. 문의하신 내용은 작성해 드리기 어렵습니다. 리포트의 항목은 실제 신호를 기준으로 하는데 손실연속횟수 최대값-1에 도달할때 진입시작과 같은 부분은 가상으로 진입청산을 체크하는 내용을 작성해야 합니다. 해당 부분은 전략 내용에 따라 다르게 작성되어지고 작성해 보는데 시간이 많이 들어 업무상 많은 시간이 요구되는 내용은 저희가 답변드릴 수 없습니다. 도움을 드리지 못해 죄송합니다. 즐거운 하루되세요 > 라떼처럼 님이 쓴 글입니다. > 제목 : 문의드립니다. > 문의드립니다. 전략창에서 시스템 성능 보고서의 [수익손실거래] 의 손실거래 연속 횟수 와 [그래프] 누적손익을 조건으로 매매 진입과 진입 종료를 하고 싶습니다. 진입시작 : (손실연속횟수 최대값 - 1) 에 도달하면 진입 시작 진입종료 : 진입 시작후 그래프의 누적손익이 진입 전 최대 이익대비 20% 이상 시 진입종료 간단한 식에 구현할수 있는 방법을 알려주시면 식에 대입하겠습니다. 감사합니다.
프로필 이미지
라떼처럼
2019-05-21
253
글번호 128844
시스템
답변완료

일봉에서 월봉

일봉에서 월봉 5이평선 위에 있을때 매수 매도 Var:monthavg(0); Monthavg = monthclose(0)+monthclose(1)+monthclose(2)+monthclose(3)+monthclose(3)+monthclose(4); Monthavg = monthavg/5; If (ma(c,5) > ma(c,20) and c > monthavg then Buy("매수"); If c<ma(c,20) then Sell("매도"); Dayclose 라는 함수는 있는데 Monthclose 라는 함수는 없나요 식좀 바르게 고쳐 주셨으면 합니다
프로필 이미지
수학귀신
2019-05-21
240
글번호 128833
시스템
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 이건 그 시간까지 당일 고가, 저가 뚫으면 매수나 매도하는 진입식인데요. 이걸 LongFlag 나 CrossUp이 True가 됐을 때 고가를 저장하고 거기서 n틱 하락했을 때 Atstop(Atlimit으로 해야 하나요? 눌림매매인데)으로 매수 진입하려면 어떻게 해야 하나요? 매도는 반대로요. 감사합니다. Inputs: InitMin(90); Variables: SessStartMin(0), TradeTime(0), SetHigh(0), SetLow(0), LongFlag(False), ShortFlag(False); #conversion of hour-based time to minute-based time SessStartMin = TimeToMinutes(90000); TradeTime = TimeToMinutes(sTime); input : 진입횟수(1), 손절률(1), 익절률(1) ; var : count(0),T1(0); input : 진입시간(90000),제한시간(150000),청산시간(153400); var : Tcond(false); SetStopLoss(손절률,PercentStop); SetStopProfittarget(익절률,PercentStop); if stime == 청산시간 or (stime > 청산시간 and stime < 청산시간) Then{ Tcond = false; if MarketPosition == 1 Then exitlong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= 진입시간) or (sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) then { Tcond = true; T1 = TotalTrades; } if (sdate != sdate[1] and stime >= 제한시간) or (sdate == sdate[1] and stime >= 제한시간 and stime[1] < 제한시간) then { Tcond = false; } if MarketPosition == 0 Then count = TotalTrades-T1; Else count = TotalTrades-T1+1; if Count < 진입횟수 and Tcond == true then { #Setup - establishment of the initial range If TradeTime <= SessStartMin + InitMin Then Begin If Date <> Date[1] Then Begin SetHigh = High; SetLow = Low; LongFlag = True; ShortFlag = True; End Else Begin If High > SetHigh Then SetHigh = High; If Low < SetLow Then SetLow = Low; End; End Else Begin #Entries once the initial period has ended If LongFlag AND CrossUp( Close , SetHigh) Then Buy(); If ShortFlag AND CrossDown(Close , SetLow) Then Sell(); End; } 2. 피라미딩 진입을요. 저렇게 B가 된 지점에서 -ATRV * 2 지점이 되면 추가 매수하게하는 방식을 쓸 때요. 저게 더 떨어지면 또 진입을 하게 될 것 같은데 bb가 나왔으면 또 BB가 나오지는 않게 하는 방법이 있나요? 그러다가 또 고가를 돌파하면 그 가격을 세팅하고(여기선 또 매수 안하고) 거기서 -ATR*2 지점이 되는 지점에서 추가매수. 이렇게 할 수 있나요? 그러다 마지막 고가 돌파 지점에서 ATR * 5되면 전체 포지션 청산하구요.
프로필 이미지
잡다백수
2019-05-21
323
글번호 128832
시스템
답변완료

피라미딩 수량 문의

안녕하세요, 유진에서 해외선물을 거래하고 있습니다. condition1 일때 포지션 1개를 진입 하였을때, 이후 condition2 이면 포지션 2개를 진입하고 싶다고하면 (다른 시점에 1개/1개 진입이 아닌 동일 시점에 2개의 포지션을 진입하고 싶습니다) 어떻게 수식을 짜야 할까요? 감사합니다.
프로필 이미지
라면의비밀
2019-05-21
261
글번호 128831
시스템
답변완료

수정요청

안녕하세요 늘 도움 감사드립니다. 일전에 아래와 같이 수식변경을 해주셨는데.. Ema 가 아닌 Tema 로 변경해주시기를 부탁드립니다. INPUTS: LENGTH1(5),LENGTH2(10); var1 = (3 * Ema(c,LENGTH1)) - (3 * Ema(Ema(c,LENGTH1),LENGTH1)) + (Ema(Ema(Ema(c,LENGTH1),LENGTH1),LENGTH1)); var2 = (3 * Ema(H,LENGTH1)) - (3 * Ema(Ema(H,LENGTH1),LENGTH1)) + (Ema(Ema(Ema(H,LENGTH1),LENGTH1),LENGTH1)); var3 = (3 * Ema(L,LENGTH1)) - (3 * Ema(Ema(L,LENGTH1),LENGTH1)) + (Ema(Ema(Ema(L,LENGTH1),LENGTH1),LENGTH1)); var4 = (3 * Ema(c,LENGTH2)) - (3 * Ema(Ema(c,LENGTH2),LENGTH2)) + (Ema(Ema(Ema(c,LENGTH2),LENGTH2),LENGTH2)); var5 = (3 * Ema(H,LENGTH2)) - (3 * Ema(Ema(H,LENGTH2),LENGTH2)) + (Ema(Ema(Ema(H,LENGTH2),LENGTH2),LENGTH2)); var6 = (3 * Ema(L,LENGTH2)) - (3 * Ema(Ema(L,LENGTH2),LENGTH2)) + (Ema(Ema(Ema(L,LENGTH2),LENGTH2),LENGTH2)); plot1(var1); plot2(var2); plot3(var3); plot4(var4); plot5(var5); plot6(var6); 2 INPUTS: LENGTH1(5); var1 = (3 * Ema(H,LENGTH1)) - (3 * Ema(Ema(H,LENGTH1),LENGTH1)) + (Ema(Ema(Ema(H,LENGTH1),LENGTH1),LENGTH1)); var2 = (3 * Ema(L,LENGTH1)) - (3 * Ema(Ema(L,LENGTH1),LENGTH1)) + (Ema(Ema(Ema(L,LENGTH1),LENGTH1),LENGTH1)); if crossup(C[1],var1[1]) Then buy(); if CrossDown(C[1],var2[1]) Then sell(); 즐거운 하루되세요
프로필 이미지
알리섬
2019-05-21
254
글번호 128830
지표
답변완료

매매시간 설정 오류

예전에 알려주신 수식 매매시간 설정이있는데 이걸로 항셍을 매매하면 오류가 납니다 나스닥은 같은 수식으로 해도 괜찮습니다 Input : P(60),Period(20), sigPeriod(20), P2(470); input : starttime(100000),endtime(015500); Var : mav(0),mav2(0), sarv(0),Bcond(false),Scond(false); var : Tcond(false); mav = ma(c,P); mav2= ma(c,P2); value1 = TRIX(Period); Value2 = ema(value1, sigPeriod); if (sdate != sdate[1] and stime >= starttime) or (sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then { Tcond = true; } if (sdate != sdate[1] and stime >= endtime) or (sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then { Tcond = false; if MarketPosition == 1 Then ExitLong("매수시간청산"); if MarketPosition == -1 Then ExitShort("매도시간청산"); } 이미지와 수식을 첨부합니다 나스닥은 090000 ~ 050000 으로 줘도 저렇게 오류나는일이 전혀없는데 항셍은 예전부터 이수식을 넣으면 종종 저런 상황이 생깁니다 100000 ~ 015500으로요 오류원인과 수정 부탁드려요 Bcond = C > mav and value1 > value1[1] ; Scond = C < mav and value1 < value1[1]; if Tcond == true then { if Bcond == true and C > mav and Bcond[1] == false Then buy("매수진입"); if Scond == true and C < mav and Scond[1] == false Then sell("매도진입"); } 수식은 이건데
프로필 이미지
쩜상쩜하
2019-05-21
266
글번호 128829
시스템
답변완료

수식 부탁드립니다.

변수는, 진입일자 : 2019.01.01 // 매매 시작일을 임의로 지정 청산일자 : 2019.01.31 // 매매 기간을 임의로 지정 횟수제한(0) : // 매매횟수를 지정, "0"이면 무제한, 1이면 1번만, 2이면 2번만 진입.. 이득청산(0) : 0이면 진입가보다 낮은경우에는 청산 금지, 1이면 손해봐도 청산. 시간제한(130000) : 지정된 시간 이후로 진입 금지, 청산은 그대로 진행.. 위 사항은 변수로 부탁하고요, 시스템식, 분봉에서 현재가가 피봇포인트를 이탈하면 매수하고 디마크분봉 상한선을 돌파하면 매도하는 수식 부탁드립니다. 그리고, 종목검색식에서.. 1. 디마크 종목검색식, 2. DEMA(20) 의 종가선이 현재위치가 봉의 2. 디마크분봉 상한선을 돌파하고 피봇 1차저항(2차저항, 둘중에 하나 선택할 수 있도록 변수로 지정)을 돌파한 종목검색식 부탁드립니다. 3. DEMA(40)선이 봉의 시가와 종가 사이 검색, 4. 디마크 상한선, 돌파, 피봇 저항선 돌파, DEMA가 시가와 종가사이 위치한 종목검색식 각각 부탁드립니다. 미리 감사드리고 예스스탁 직원분들, 항상 건강하시길 기원합니다~~
프로필 이미지
하리마우
2019-05-21
290
글번호 128828
시스템

이형지 님에 의해서 삭제되었습니다.

프로필 이미지
이형지
2019-05-20
1
글번호 128827
시스템