커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

이격도지표8

안녕하세요 관리자님 즐거운 추석되시길 기원합니다. 아래 서식은 전주의 최고,최저가에서 시작하는 이격도의 수식입니다. 근데 이를 전일(1일전)~전전일(2일전) 사이의 가격중 최고, 최저가에서 오늘의 주가가 시작되는 이격도를 표현하고 싶습니다. 도와주시가 바랍니다. 감사합니다. -아래- var : wo(0),wh(0),wl(0); var : wo1(0),wh1(0),wl1(0); if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then { WO = O; WH = H; WL = L; WO1 = WO[1]; WH1 = WH[1]; WL1 = WL[1]; } if h > wh Then wh = h; if l < wl Then wl = l; if WO1 > 0 then { var1 = C/WO1*100-100; plot1(var1,"시가"); } if WH1 > 0 then { var2 = -(C/WH1*100-100); plot2(var2,"고가"); } if WL1 > 0 then { var3 = C/WL1*100-100; plot3(var3,"저가"); } PlotBaseLine1(0,"중심선");
프로필 이미지
카카
2018-09-21
280
글번호 122226
지표
답변완료

시스템 수식 부탁드려요

아래 수식에 추가로 하고 싶습니다. 아래식은 1회만 매수-매수청산 매도-매도청산으로 되어 있습니다. 5회까지 분할매수진입 /매도진입이 될수 있도록 요청합니다. ( 신호시마다 매수가 아니라 1회매수후 다음신호는 건너고 다다음 신호때 추가 매수될수있게요) 그럼 수고하세요~~ PS 그리고 신호가 뜰때마다 매수하는거 말고 한신호 skip하고 매수하는 식과 두신호 skip하고 매수 그리고 3,4,5신호 skip하고 다음신호에 매수하는식을 알려주시면 잘 활용하겠습니다. -------------------------------------------------------------------------------------- Input : Period(14), LPercent(20), SPercent(90), P1(10),P2(20),P3(30); Var : value(0),count(0); var : sumV1(0),sumV2(0),sumV3(0); var : mav1(0),mav2(0),mav3(0),T(0); sumV1 = 0; sumV2 = 0; sumV3 = 0; for count = 0 to P3{ if count < P1 Then sumV1 = sumV1+DayClose(count); if count < P2 Then sumV2 = sumV2+DayClose(count); if count < P3 Then sumV3 = sumV3+DayClose(count); } maV1 = sumV1 / P1; maV2 = sumV2 / P2; maV3 = sumV3 / P3; if mav1 > mav2 and mav2 > mav3 Then T = 1; Else if mav1 < mav2 and mav2 < mav3 Then T = -1; Else T = 0; value = MFI(Period); # 매수/매도청산 if T >= 0 then { If value <= LPercent Then { Buy("매수"); } } # 매도/매수청산 if T >= 0 then { If value >= SPercent or rsi(14)>80 Then { Sell("매도"); } }
프로필 이미지
이형지
2018-09-25
249
글번호 122225
시스템
답변완료

문의 드립니다

안녕하세요 input : 금액(100000); exitlong ("bx01",atstop,(dayclose*1.00)*1.017,"",(금액/C)); buy("b300",atstop,dayclose*1.020,(금액/C));} exitlong ("bx02",atlimit,(dayclose*1.00)*1.037,"",(금액/C)); 위식을 일봉 전략시스템차트에서 자동적용을 시키면 전일 보다 +2% 상승시 매수하고 메수가격에서 +1.7% 이상 상승시 매도되고 -0.3% 손실시 매수청산이 되는걸로 알고 종목을 전략차트에 자동을 실제적용 하고있는데 손실에서 청산이 되는 종목도있고 안되는 종목경우에는 -10% 등 계속손실을 보다가 상승시에 +1.7% 수익시 매도됩니다 (전락차트 성능보고서에는 -0.20% 손절청산이 나오는데 실제로는 손절이 안됨) 1, 손실발생시 손절청산이 안되는 이유와 손절청산이 확실히되는 식을 부탁합니다 (손절청산이 안되는 이유가 주가에 따라 0.3% 범위가 안맞아 그런것인지) setstoploss(0.3, PercentStop); 식을 적용하면 되는지요 2. 손절범위를 정하는 방법은 어떤기준으로 하는것이 가장좋은것입니까(-0.5% -1% 등)
프로필 이미지
llsswon5
2018-09-27
230
글번호 122224
시스템
답변완료

고가 저가 지표

고가 저가 지표 적용중인데요...... 사진과 같이 1...고가(파란색 선이 유지되는동안) 음봉양봉 상관없이 파란점이 나오게 검색식으로 부탁드립니다.. 2...저가(빨간색이 유지되는 동안) 반대로 빨간점 유지되게 부탁드립니다... 3..파란점 빨간점 봉의 고/저를 떠나서 일정한 간격으로 나타나게 해주시구요.. 4..봉과 점이 분리할수 있도록 해주시면 더욱더 감사하겠습니다... 늘 감사드립니다..오늘도 행복한 하루 되세요~~
프로필 이미지
대박대박
2018-09-21
329
글번호 122223
지표
답변완료

문의드립니다.

일목균형표의 변수값을 수정할 수 있게 수식이 가능하면 수식을 부탁드립니다. 항상 감사드립니다. 수고하세요!!!
프로필 이미지
해암
2018-09-21
225
글번호 122222
지표
답변완료

함수식

안녕하세요 항상 감사드려요 첨부파일처럼 체결강도100 을 하향이탈한 음봉(기준봉)발생후 일정시간 감시하다 그 음봉의 싯가(기준봉)을 상향돌파한 양봉이 발생하면 양봉종가기준으로 매수진입 / 매도는 반대 이렇게 함수시를 만들고 싶어요 외부변수로 부탁드려요 즐거운 명절 보내세요 ㅎㅎ
프로필 이미지
달마7
2018-09-21
277
글번호 122221
시스템

하늘거지 님에 의해서 삭제되었습니다.

프로필 이미지
하늘거지
2018-09-21
8
글번호 122220
지표
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 즐거운 명절 되세요. 1. 기타 59300 수식(추가답변에 달린 추가진입하는 버전으로) sell도 가능하게 수정 부탁드립니다. 2. 기타 59300수식을 선물에다가도 적용가능한가요? 3. 예스로 수정부탁드립니다. // Indicator: Fisherized Deviation Scaled Oscillator inputs: Period( 40 ), OverBought( 2 ), OverSold( -2 ), OutPutData( false ), FilePath( "C:ProbabilityDensity.CSV" ) ; variables: a1( 0 ), b1( 0 ), c1( 0 ), c2( 0 ), c3( 0 ), Zeros( 0 ), Filt( 0 ), RMS( 0 ), count( 0 ), ScaledFilt( 0 ), FisherFilt( 0 ), Idx( 0 ), J( 0 ), K( 0 ) ; arrays: Bin[61](0); if CurrentBar = 1 Then //once begin //Smooth with a Super Smoother a1 = expvalue( -1.414 * 3.14159 / ( .5 * Period ) ) ; b1 = 2 * a1 * Cosine( 1.414 * 180 / ( .5 * Period ) ) ; c2 = b1 ; c3 = -a1 * a1 ; c1 = 1 - c2 - c3 ; end ; //Produce Nominal zero mean with zeros in the transfer response at //DC and Nyquist with no spectral distortion //Nominally whitens the spectrum because of 6 dB per octave rolloff Zeros = Close - Close[2] ; //SuperSmoother Filter Filt = c1 * ( Zeros + Zeros[1] ) / 2 + c2 * Filt[1] + c3 * Filt[2] ; //Compute Standard Deviation RMS = 0; For count = 0 to Period - 1 begin RMS = RMS + Filt[count] * Filt[count] ; end; RMS = SquareRoot( RMS / Period ) ; //Rescale Filt in terms of Standard Deviations If RMS <> 0 then ScaledFilt = Filt / RMS ; //Apply Fisher Transform to establish real Gaussian Probability //Distribution If AbsValue( ScaledFilt ) < 2 then FisherFilt = .5 * Log( ( 1 + ScaledFilt / 2 ) / ( 1 - ScaledFilt / 2 ) ) ; Plot1( FisherFilt, "Fisher Filt" ) ; Plot2( 0, "ZL" ) ; Plot3( OverBought, "OB" ) ; Plot4( OverSold, "OS" ) ; //Bin the indicator values in Bins from -3 to +3 if OutPutData then begin For Idx = 1 to 60 begin J = (Idx - 31) / 10; K = (Idx - 30) / 10; If FisherFilt > J and FisherFilt <= K then Bin[Idx] = Bin[Idx] + 1; end; //Output the Bin measurements to a file once ( LastBarOnChartEx ) begin FileDelete( FilePath ) ; For Idx = 1 to 61 begin FileAppend( FilePath, NumToStr( .1 * ( Idx - 31 ), 1 ) + "," + NumToStr( Bin[Idx], 0 ) + NewLine ) ; end; end ; end ; Strategy: Fisherized Deviation Scaled Oscillator // TASC OCT 2018 // Ehlers FDSA inputs: Period( 40 ), OverBought( 2 ), OverSold( -2 ), OutPutData( false ), FilePath( "C:DataProbabilityDensity.CSV" ) ; variables: a1( 0 ), b1( 0 ), c1( 0 ), c2( 0 ), c3( 0 ), Zeros( 0 ), Filt( 0 ), RMS( 0 ), count( 0 ), ScaledFilt( 0 ), FisherFilt( 0 ), Idx( 0 ), J( 0 ), K( 0 ) ; arrays: Bin[61](0); if CurrentBar = 1 Then //once begin //Smooth with a Super Smoother a1 = expvalue( -1.414 * 3.14159 / ( .5 * Period ) ) ; b1 = 2 * a1 * Cosine( 1.414 * 180 / ( .5 * Period ) ) ; c2 = b1 ; c3 = -a1 * a1 ; c1 = 1 - c2 - c3 ; end ; //Produce Nominal zero mean with zeros in the transfer response at //DC and Nyquist with no spectral distortion //Nominally whitens the spectrum because of 6 dB per octave rolloff Zeros = Close - Close[2] ; //SuperSmoother Filter Filt = c1 * ( Zeros + Zeros[1] ) / 2 + c2 * Filt[1] + c3 * Filt[2] ; //Compute Standard Deviation RMS = 0; For count = 0 to Period - 1 begin RMS = RMS + Filt[count] * Filt[count] ; end; RMS = SquareRoot( RMS / Period ) ; //Rescale Filt in terms of Standard Deviations If RMS <> 0 then ScaledFilt = Filt / RMS ; //Apply Fisher Transform to establish real Gaussian Probability //Distribution If AbsValue( ScaledFilt ) < 2 then FisherFilt = .5 * Log( ( 1 + ScaledFilt / 2 ) / ( 1 - ScaledFilt / 2 ) ) ; if FisherFilt crosses below OverBought then Sell Short next bar at Market else if FisherFilt crosses over OverSold then Buy next bar at Market ; if FisherFilt crosses below 0 then Sell next bar at Market else if FisherFilt crosses over 0 then Buy to Cover next bar at Market ;
프로필 이미지
잡다백수
2018-09-21
764
글번호 122216
시스템
답변완료

기준선 수식 수정 부탁드립니다.

아래의 수식을 적용해 보았습니다. 첨부드리는 그림상에 검은색 선이 일목균형표 기준선을 26에서 120으로 수정한 선이구요. 챠트는 1분봉입니다. 그림상의 첫번째 화살표에서 매수진입 두번째 화살표에서 매수청산 및 매도진입 세번째 화살표(정확한 값은 아닙니다. 개념상의 위치이며 실제로 50틱이 되지는 않습니다.)에서 매도청산이 나와서 당일 매매가 종료되도록 만들어 볼려고 하였습니다. 현재 발생되는 시그널은 일목균형표 기준선과 전혀 다른 위치에서 발생됩니다. 그림상의 날짜에는 그래도 위치가 비슷하게라도 나오는데 다른 날짜에서 보면 완전히 다른 위치입니다. 어디가 문제인지 점검 좀 부탁드립니다. - 아 래 - Input : 당일누적수익틱수(50),당일누적손실틱수(50); input : starttime(101500),endtime(020000); VARS: Tcond(false),N1(0),dayPl(0),당일누적수익(0),당일누적손실(0),Xcond(false); 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("bx"); if MarketPosition == -1 Then ExitShort("sx"); } if (sdate != sdate[1] and stime >= starttime) or (sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then { Xcond = false; N1 = NetProfit; Tcond = true; } 당일누적수익 = PriceScale*당일누적수익틱수; 당일누적손실 = PriceScale*당일누적손실틱수; daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] and (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; var1 = (highest(H,26)+lowest(L,26))/2; if Tcond == true and Xcond == false then { if crossup(c,var1) Then buy(); if CrossDown(c,var1) Then sell(); } if MarketPosition == 1 then{ ExitLong("dbp",atlimit,EntryPrice+((당일누적수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일누적손실+daypl)/CurrentContracts)); } if MarketPosition == -1 then{ ExitShort("dsp",atlimit,EntryPrice-((당일누적수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일누적손실+daypl)/CurrentContracts)); }
프로필 이미지
승부사1
2018-09-20
408
글번호 122212
시스템