커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

매번감사합니다. 1. 기타 코드 예스코드로 수정 부탁드립니다. 1-1 지표 inputs: Period1( 40 ), Period2( 60 ) ; variables: a1( 0 ), a2( 0 ), PB( 0 ), count( 0 ), RMS( 0 ) ; a1 = 5 / Period1 ; a2 = 5 / Period2 ; PB = (a1 - a2) * Close + (a2*(1 - a1) - a1 * (1 - a2)) * Close[1] + ((1 - a1) + (1 - a2))*PB[1] - (1 - a1) * (1 - a2)*PB[2] ; RMS = 0; for count = 0 to 49 begin RMS = RMS + PB[count]*PB[count] ; end ; RMS = SquareRoot( RMS / 50 ) ; Plot1( PB, "Super PB" ) ; Plot2( 0, "Zero Line" ) ; Plot3( RMS, "+RMB" ) ; Plot7(-RMS, "-RMS" ) ; 1-2 시스템 inputs: Period1( 40 ), Period2( 60 ), UseZeroLineTarget( true ), UseReversalStop( true ); variables: a1( 0 ), a2( 0 ), PB( 0 ), count( 0 ), RMS( 0 ) ; a1 = 5 / Period1 ; a2 = 5 / Period2 ; PB = (a1 - a2) * Close + (a2*(1 - a1) - a1 * (1 - a2)) * Close[1] + ((1 - a1) + (1 - a2))*PB[1] - (1 - a1) * (1 - a2)*PB[2] ; RMS = 0; for count = 0 to 49 begin RMS = RMS + PB[count]*PB[count] ; end ; RMS = SquareRoot( RMS / 50 ) ; if PB crosses over -RMS then Buy next bar at Market else if PB crosses under RMS then Sell Short next bar at Market ; if UseZeroLineTarget then begin if PB crosses over 0 then Sell next bar at Market else if PB crosses under 0 then Buy to cover next bar at Market ; end ; If UseReversalStop then begin if PB crosses under -RMS then Sell next bar at Market else if PB crosses over RMS then Buy to cover next bar at Market ; end ;
프로필 이미지
잡다백수
2018-02-06
419
글번호 116368
시스템
답변완료

재문의 드립니다.

수고에 감사드립니다. 56548 질의 다시 체크해주시기 바랍니다. 감사합니다.
프로필 이미지
천년대로
2018-02-06
239
글번호 116366
검색
답변완료

수식 부탁합니다

MACD(12,26,9) 골든크로스 발생한 후에 스토캐스틱(12,5,5) 골든크로스 발생한 종목 즉 MACD 골든크로스 발생된 다음 처음으로 발생하는 스토캐스틱 골든크로스 종목검색식 부탁합니다
프로필 이미지
미래테크
2018-02-06
227
글번호 116356
종목검색
답변완료

다시한번 부탁드려요

evelope( 9.26 ) bollinger band (20.2) 볼린져밴드 기준선을 evelope 기준선이 골드크로스 되면 검색 합니다. --------------------------------------------------------------------- evelope( 9.26 ) bollinger band (20.2) 볼린져밴드 기준선을 evelope 기준선이 골드크로스 되면매수신호 반대가 되면 매도신호
프로필 이미지
이카나
2018-02-06
218
글번호 116355
검색
답변완료

문의합니다.

안녕하세요. 추운날씨에 수고가 많으십니다. 특정시간의 종가 또는 특정봉의 종가를 기준으로 진입식을 만들려고 합니다. 예제> 9시30분 종가(=현재가)에서 100틱이상 상승(또는 하락시) 진입주문 상기 내용 가능하다면 함수식 부탁드립니다! 그럼 수고하세요~
프로필 이미지
휴먼
2018-02-06
224
글번호 116353
시스템
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다.매번 감사합니다. 1. 기타 트레이스테이션 코드 예스로 수정 부탁드립니다. Indicator: CAM // TASC JAN 2018 // The CAM Indicator // Barbara Star, PhD. inputs: ADXLength( 10 ), MACDFastLength( 12 ), MACDSlowLength( 26 ), CAMUPColor( Green ), CAMDNColor( Red ), CAMPBColor( Yellow ), CAMCTColor( Blue ) ; variables: MACDValue( 0 ), ADXValue( 0 ), PlotColor( 0 ), MACDRising( false ), ADXRising( false ), intrabarpersist InAChart( false ), PatternLabel( "" ) ; once begin InAChart = GetAppInfo( aiApplicationType ) = cChart ; end ; MACDValue = MACD( Close, MACDFastLength, MACDSlowLength ) ; ADXValue = ADX( ADXLength ) ; MACDRising = MACDValue > MACDValue[1] ; ADXRising = ADXValue > ADXValue[1] ; if ADXRising and MACDRising then begin PlotColor = CAMUPColor ; PatternLabel = "CAM UP" ; end else if not ADXRising and not MACDRising then begin PlotColor = CAMPBColor ; PatternLabel = "CAM PB" ; end else if ADXRising and not MACDRising then begin PlotColor = CAMDNColor ; PatternLabel = "CAM DN" ; end else if not ADXRising and MACDRising then begin PlotColor = CAMCTColor ; PatternLabel = "CAM CT" ; End ; // Format plot style as follows: // Plot1 Bar High // Plot2 Bar Low // Plot3 Left Tic // Plot4 Right Tic Plot1( High, "CAMH", PlotColor ) ; Plot2( Low, "CAML", PlotColor ) ; Plot3( Open, "CAMO", PlotColor ) ; Plot4( Close, "CAMC", PlotColor ) ; // Show current state in RadarScreen If not InAChart then Plot5( PatternLabel, "CAM", PlotColor ) 2. 기타 트레이스테이션 코드 예스로 수정 부탁드립니다. inputs: ChanLength( 20 ), StopDollars( 1 ), MALength( 50 ) ; variables: UpperBand( 0 ), LowerBand( 0 ), MidBand( 0 ), LongOK( false ), ShortOK( false ), LowRef( 0 ), HighRef( 0 ), TriggerLine( 0 ), MAValue( 0 ) ; UpperBand = Highest( High, ChanLength ) ; LowerBand = Lowest( Low, ChanLength ) ; MAValue = Average( Close, MALength ) ; if Low = LowerBand then begin LowRef = Low ; LongOK = false ; ShortOK = true ; end ; if High = UpperBand then begin HighRef = High ; LongOK = true ; ShortOK = false ; end ; // 50% Pull Back Level TriggerLine = .5 * ( HighRef + LowRef ) ; if LongOK[1] and LongOK and Close crosses over TriggerLine and Close > MAValue and MarketPosition( 1 ) < 1 then begin Buy next bar at Market ; LongOK = false ; end else if ShortOK[1] and ShortOK and Close crosses under TriggerLine and Close < MAValue and MarketPosition( 1 ) > -1 then begin SellShort next bar at Market ; ShortOK = false ; end ; Sell next bar at Upperband Limit ; Sell next bar at Lowerband Stop ; Buy to Cover next bar at Lowerband Limit ; Buy to Cover next bar at UpperBand Stop ; SetStopShare ; SetStopLoss( StopDollars ) ; Indicator: MeanReversion inputs: ChanLength( 20 ), MALength( 50 ) ; variables: UpperBand( 0 ), LowerBand( 0 ), MidBand( 0 ), LongOK( false ), ShortOK( false ), LowRef( 0 ), HighRef( 0 ), TriggerLine( 0 ), MAValue( 0 ) ; UpperBand = Highest( High, ChanLength ) ; LowerBand = Lowest( Low, ChanLength ) ; MAValue = Average( Close, MALength ) ; if Low = LowerBand then begin LowRef = Low ; LongOK = false ; ShortOK = true ; end ; if High = UpperBand then begin HighRef = High ; LongOK = true ; ShortOK = false ; end ; TriggerLine = .5 * ( HighRef + LowRef ) ; Plot1( UpperBand, "UpperBand" ) ; Plot2( LowerBand, "LowerBand" ) ; Plot3( TriggerLine, "Trigger" ) ; Plot4( MAValue, "Mov Avg" ) ; if LongOK then begin SetPlotColor( 1, Green ) ; SetPlotColor( 2, Green ) ; end else begin SetPlotColor( 1, Red ) ; SetPlotColor( 2, Red ) ; end ;
프로필 이미지
잡다백수
2018-02-06
382
글번호 116343
시스템

이심전심 님에 의해서 삭제되었습니다.

프로필 이미지
이심전심
2018-02-06
0
글번호 116342
종목검색
답변완료

질문입니다.

선물에서 거래를 분봉에서 진행하려고 합니다. 예를들어 if crossup(c, ma(5)) then {buy("B", atmarket, def, 1); } if crossdown(c, ma(10)) then { sell("S", atmarket, def, 1); } 이라는 수식이 있다고 가정했을때, 이 시스템에 피라미딩을 쌓으려고 합니다. 피라미딩 로직은 다음과 같습니다. 매수진입 후 다음봉의 open가격이 최초매수진입가격보다 높다면 추가로 1계약진입합니다. 그 다음봉의 open가격이 추가로 진입한 1계약 가격보다 높다면 다시 1계약 더 진입합니다. 이렇게 진입을 매도 시그널이 나올때까지 계속 진행합니다. 매도진입도 마찬가지입니다. 매도진입 후 다음봉의 open가격이 최초매도진입가격보다 낮다면 추가로 1계약진입하고, 그 다음봉의 open가격이 추가로 진입한 1계약의 가격보다 낮다면 다시 1계약을 진입합니다. 단, 매수피라미딩을 쌓다가 매도진입시그널이 발생한 봉에서는 매도진입만 발생시키고 싶습니다. 즉, 매수피라미딩 진입과 신호가 겹치게 나오게 하고 싶지 않습니다. 예시로든 위 시스템을 예로들자면, 매수시그널이 나온후 피라미딩을 쌓다가, 매도시그널이 나오는 봉이 있다면, 이 매도봉에서는 매도시그널만 발생시키고, 매수피라미딩 시그널은 발생시키지 않게 하는 것입니다. 간단히 설명하자면, 매수시그널 후 봉이 진행됨에 따라 직전진입가격보다 open가격이 높다면, 몇계약이든 1계약씩 추가로 진입합니다. 매도시그널이 나오기 전까지 말이죠. 마찬가지로 매도시그널 후 봉이 진행됨에 따라 직전진입가격보다 open가격이 낮다면, 몇계약이든 1계약씩 추가로 진입합니다. 역시 매수시그널이 나오기전까지 말이죠. 그리고 매수시그널이나 매도시그널이 발생한 봉에서는 피라미딩진입이 발생하지 않게 하고 싶습니다. 예시로 부탁드립니다. 감사합니다.
프로필 이미지
yanartas
2018-02-06
239
글번호 116340
시스템
답변완료

문의드립니다.

input : period(20); var1 = ma(Volume,period); plot1(round(var1/1000000,1),"거래량"); 틀린게 있나요?? 왜 지표가 나타나지 않는지 모르겠습니다.
프로필 이미지
확실한수익
2018-02-05
223
글번호 116339
지표