커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
수급돌파
2018-10-15
7
글번호 122709
지표
답변완료

지표문의

안녕하세요 하기 지표식 문의 드립니다. 1. 볼린져 밴드 중앙이평과 상단사이에서 연속된 음봉이 세개가 발생시, 지표에 표시가 되도록 부탁드립니다. 세번째 종가가 중앙 이평 위에서 형성이 되어야 합니다. 중앙이평과 같거나 아래에서 종가가 형성되면 지표식으로 표현하지 않습니다. 2. 볼린져 밴드 중앙 이평과 하단사이에서 연속된 양봉이 세개가 발생시, 지표에 표시기 되도록 부탁드립니다. 세번째 종가가 이평 아래에서 형성이 되어야 합니다. 중앙이평과 같거나 위에서 종가가 형성되면 지표식에 표현하지 않습니다. 감사합니다.
프로필 이미지
softtoug
2018-10-15
128
글번호 122708
지표
답변완료

수식 문의 드립니다.

안녕하세요 아래 수식은 항셍 개장 시간을 한국 시간에 맞춘 수식입니다. 이 수식을 홍콩장 정식 영업일 변경 시간인 18:30(한국시간)으로 변환 부탁드립니다. ---------------------- input: p(1); var: HH(0),LL(0),RR(0); var : month(0),nday(0),week(0),DD(0); if stime >= 100000 and stime[1] < 100000 Then{ //if Stime == 100000 or (stime > 100000 and stime[1] < 101500) Then{ DD = sdate; month = int(dd/100)-int(dd/10000)*100; nday = dd - int(dd/100)*100; week = DayOfWeek(dd); if month%1 == 0 and nday >= 8 and nday <= 14 and week == 4 then Condition1 = True; Else Condition1 = false; . . . . 수고하세요~
프로필 이미지
태양같이
2018-10-15
138
글번호 122707
지표
답변완료

수식작성 관련입니다.

해외선물에서 08:30에 시작가, 15:00에 종가를 배열로 저장하는 수식 부탁드립니다. 당일, 전일, 전전일 등... 해외선물 나스닥100에서 dayopen, dayclose는 어떤 시간에 값을 의미하나요 dayopen을 08:30의 시작가로하고 dayclose를 15:00로 종가로 하려면 어떻게 해야하나요? 이전 값들 dayopen(1), dayopen(2).. 등의 처리는 어떻게 해야하나요?
프로필 이미지
라스트전투
2018-10-16
137
글번호 122706
시스템
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 기타 변환부탁드립니다. Indicator: Stiffness Indicator // The Stiffness Indicator // Markos Katsanos // TASC Nov 2018 inputs: MALength( 100 ), StiffnessLength( 60 ), Threshold( 90 ) ; variables: MAValue( 0 ), MACorValue( 0 ), NumAboveMA( 0 ), Stiffness( 0 ), StiffnessEMA( 0 ) ; MAValue = Average( Close, MALength ) ; MACorValue = MAValue - .2 * StdDev( Close, MALength ) ; NumAboveMA = CountIf( Close > MACorValue, StiffnessLength ) ; Stiffness = NumAboveMA * MALength / StiffnessLength ; StiffnessEMA = XAverage( Stiffness, 3 ) ; Plot1( Threshold, "Threshold" ) ; Plot2( StiffnessEMA, "Stiffness" ) ; Indicator: Corrected Moving Average // The Stiffness Indicator // Markos Katsanos // TASC Nov 2018 inputs: MALength( 100 ), StiffnessLength( 60 ), Threshold( 90 ) ; variables: MAValue( 0 ), MACorValue( 0 ), NumAboveMA( 0 ), Stiffness( 0 ), StiffnessEMA( 0 ) ; MAValue = Average( Close, MALength ) ; MACorValue = MAValue - .2 * StdDev( Close, MALength ) ; Plot1( MACorValue, "MA COR" ) ; Plot2( MAValue, "MA" ) ; Strategy: Stiffness Strategy // The Stiffness Indicator // Markos Katsanos // TASC Nov 2018 // Requires Data2 Symbol for Market // inputs: MALength( 100 ), StiffnessLength( 60 ), BuyThreshold( 90 ), SellThreshold( 50 ), ExitAfterBars( 84 ), MarketTrendEMALength( 100 ) ; variables: MAValue( 0 ), MACorValue( 0 ), NumAboveMA( 0 ), Stiffness( 0 ), StiffnessEMA( 0 ), MarketTrendAvg( 0, Data2 ), MarketTrendOK( false, Data2 ) ; MAValue = Average( Close, MALength ) ; MACorValue = MAValue - .2 * StdDev( Close, MALength ) ; NumAboveMA = CountIf( Close > MACorValue, StiffnessLength ) ; Stiffness = NumAboveMA * MALength / StiffnessLength ; StiffnessEMA = XAverage( Stiffness, 3 ) ; MarketTrendAvg = XAverage( Close of Data2, MarketTrendEMALength ) of Data2 ; MarketTrendOK = MarketTrendAvg >= MarketTrendAvg[2] ; if StiffnessEMA crosses over BuyThreshold and MarketTrendOK then Buy ( "X Over LE" ) next bar at Market ; if StiffnessEMA crosses under SellThreshold then Sell ( "X Under LX" ) next bar at Market ; if BarsSinceEntry >= ExitAfterBars then Sell ( "Num Days LX" ) next bar at Market ;
프로필 이미지
잡다백수
2018-10-15
175
글번호 122705
시스템
답변완료

목표수익 도달후 당일 거래청산 로직 문의

첨부파일상의 로직에 목표수익에 도달한 이후에는 거래를 청산하여 진입을 제한하는 로직과 지정해놓은 최대손실 도달시 진입을 제한하여 당일 거래를 청산하는 로직을 덧붙이고 싶습니다.
프로필 이미지
고민중
2018-10-16
175
글번호 122704
시스템
답변완료

문의 드립니다.

안녕하세요. 59611번 질문에 답을 주셨는데 안 돼서 다시 질문 드립니다. 틱차트에서 data2의 첫번째봉의 고가, 저가라인을 나타내고 싶습니다. 현재 주가가 고가라인 위에 있으면 빨간색, 저가라인 아래에 있으면 파란색으로 그려지고, 텍스트로 고가, 저가라고 표시되길 원합니다. 텍스트 위치는 현재가 위 15틱에서 나타나면 좋겠습니다. 아래와 같이 답변을 주셨는데, 텍스트가 여러개가 나옵니다. 고가 저가를 갱신할 때마다 텍스트가 나오는 것 같습니다. 그리고 현재 주가가 저가 아래에 있어도 파란색으로 바뀌지 않습니다. 고가 저가 텍스트 옆에 값도 출력되도록 하려면 수식을 어떻게 작성해야 할까요? 감사합니다. var :v1(0,data2),v2(0,data2),tx(0,data1); if data2(bdate != bdate[1]) Then { v1 = data2(h); v2 = data2(l); } plot1(v1); plot2(v2); Text_Delete(tx); if C > v1 Then { plot3(c,"현재가",RED); tx = Text_New(sdate,stime,C+PriceScale*15,"고가"); } Else if C < v2 Then { plot3(c,"현재가",BLUE); tx = Text_New(sdate,stime,C-PriceScale*15,"저가"); } Else plot3(c,"현재가",BLACK);
프로필 이미지
무지개빛
2018-10-15
163
글번호 122703
지표
답변완료

스탑로스 질문드립니다.

var : BLcnt(0),SLcnt(0),추격횟수(0), 피라미딩매수(0); if Bdate != Bdate[1] Then{ BLcnt = 0; SLcnt = 0; } if MarketPosition != MarketPosition[1] and MarketPosition(1) == 1 and TotalTrades > TotalTrades[1] and LatestExitName(1) == "StopLoss" Then BLcnt = BLcnt+1; if MarketPosition == 1 and CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "StopLoss" Then BLcnt = BLcnt+1; if BLcnt < 2 and 매수식 then 이면 스탑로스2회 발생시 매매X였습니다. If MarketPosition == 0 Then if BLcnt < 2 Then{ if 조건 then buy if 조건 then buy } 스탑컷이 유효하지가 않네요. 근데 이게 안되더군요. 무엇이 문제인지... 실험한 로직첨부합니다. 일3회 스탑이 나온것을 확인할 수 있습니다. ///////// var : BLcnt(0),SLcnt(0); if Bdate != Bdate[1] Then{ BLcnt = 0; SLcnt = 0; } if MarketPosition != MarketPosition[1] and MarketPosition(1) == 1 and TotalTrades > TotalTrades[1] and LatestExitName(1) == "StopLoss" Then BLcnt = BLcnt+1; if MarketPosition == 1 and CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "StopLoss" Then BLcnt = BLcnt+1; if MarketPosition != MarketPosition[1] and MarketPosition(1) == -1 and TotalTrades > TotalTrades[1] and LatestExitName(1) == "손절" Then SLcnt = SLcnt+1; if MarketPosition == -1 and CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "손절" Then SLcnt = SLcnt+1; MessageLog("BLcnt %.f SLcnt %.f",BLcnt,SLcnt); If blcnt < 2 and CrossUp(Close,Ma(c,5)) Then{ Buy(); } SetStopLoss(20*PriceScale,PointStop); SetStopProfittarget(20*PriceScale,PointStop); ////////////////////나스닥100 2분봉 캔들갯수10000개 하신뒤 확인해보시길 바랍니다. 사진1입니다. 그래서 보안책으로 윗 로직을 지운뒤 Vars : 시작시간(070100),종료시간(070000); Input : 당일누적손실틱수(120); Var : N1(0),dayPl(0),당일누적수익(0),당일누적손실(0),Xcond(false),Tcond(false); 당일누적손실 = PriceScale*당일누적손실틱수; if (sdate != sdate[1] and stime >= 종료시간) or (sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then { Tcond = false; } if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then { Tcond = true; Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] and IsExitName("누적손실제한",1) == true then Xcond = true; if Xcond == False then If MarketPosition == 0 Then{ if 조건식 then buy 로 해도 일최대손실 틱수를 인식하지 못합니다. 가령100틱을 설정해도 100틱이 누적되었음에도 불구하고 한번더 주문이 나간뒤 If marketposition == -1 then { ExitShort("누적손실제한",AtStop,EntryPrice+((당일누적손실+daypl)/CurrentContracts));} 이 작동합니다. 120틱째에 누적손실제한이 걸린다거나 하는것이죠. 대체 뭐가 문제일련지요? 1. 그저 저는 하루에 스탑2번 발생시 매매금지 이것만 하고싶을 뿐인데... 참고로 제 진입식은 총5개입니다. 2. 일최대 손실틱수를 100틱으로 하고싶습니다. 토탈 100틱이상 손실이 났을 경우 매매중지이죠. 설정은 외부변수로 선택할 수 있게하고싶습니다.
프로필 이미지
stockric
2018-10-16
195
글번호 122702
시스템
답변완료

부탁 드립니다.

항상 도움주심에 감사 드립니다. 다음의 타주기 틱용 수식을 1)일봉에서의 지표를 분용 차트에 2)주봉에서의 지표를 분용 차트에 3)월봉에서의 지표를 분용 차트에 표시되도록 부탁 드립니다. 주)참고수식을 덧붙입니다. 미리 경배로 감사 드립니다. /* Inputs: 전환선기간(9),sig(5); Variables: 전환선(0); 전환선 = (Highest(High, 전환선기간) + Lowest(Low, 전환선기간)) / 2; var1=c-전환선; var2=ma(var1,sig); plot1(var2); */ input : Nbars(3),전환선기간(9),sig(26); var : TF(0),S1(0),D1(0),TM(0),cnt(0),idx(0); var : H1(0),L1(0),전환선(0),sum(0),mav(0); Array : HH[100](0),LL[100](0),diff[100](999999999); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; idx = 0; } Else idx = idx+1; if D1 > 0 then { TF = idx%Nbars; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then { HH[0] = H; LL[0] = L; for cnt = 1 to 99 { HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; diff[cnt] = diff[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; if HH[전환선기간-1] > 0 and LL[전환선기간-1] > 0 then { H1 = HH[0]; L1 = LL[0]; for cnt = 0 to 전환선기간-1 { if HH[cnt] > H1 Then H1 = HH[cnt]; if LL[cnt] < L1 Then L1 = LL[cnt]; } 전환선 = (H1 + L1)/2; diff[0] = C-전환선; } if diff[sig-1] < 999999999 Then { sum = 0; for cnt = 0 to sig-1 { sum = sum + diff[cnt]; } mav = sum/sig; plot1(mav); } } 참고수식) Input : Period(5),sig(20); Var : Ep1(0),Ep2(0); var : didx(0),emad(0),sigd(0),pred(0),preds(0),emads(0); var : widx(0),emaw(0),sigw(0),prew(0),prews(0),emaws(0); var : midx(0),emam(0),sigm(0),prem(0),prems(0),emams(0); Ep1 = 2/(Period+1); Ep2 = 2/(sig+1); if bdate != bdate[1] then { didx = didx + 1; pred = emad[1]; preds = sigd[1]; } if didx <= 1 then { emad = C; sigd = emad; } else { emad = C * EP1 + pred * (1-EP1); sigd = emad * EP2 + preds * (1-EP2); } if DayOfWeek(bdate) < DayOfWeek(bdate[1]) then { widx = widx + 1; prew = emaw[1]; prews = sigw[1]; } if widx <= 1 then { emaw = C; sigw = emaw; } else { emaw = C * EP1 + prew * (1-EP1); sigw = emaw * EP2 + prews * (1-EP2); } if bdate > bdate[1]+30 then { midx = midx + 1; prem = emam[1]; prems = sigm[1]; } if midx <= 1 then { emam = C; sigm = emam; } else { emam = C * EP1 + prem * (1-EP1); sigm = emam * EP2 + prems * (1-EP2); } plot1(sigd,"일봉"); plot2(sigw,"주봉"); plot3(sigm,"월봉");
프로필 이미지
yes
2018-10-15
169
글번호 122701
지표