커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

고저점파동식 수식변경요청

안녕하세요 아래식은 고점저점 중간값을 선으로 표시한 전에 작성해주신식입니다 본래식에서 표시되는 고점저점 수치(text)를 고점저점중간값으로 발생되는 고점저점에서 표시되도록 수식을 수정부탁드립니다 감사합니다 Input:length(2),종가사용여부(0),파동선두께(5),수치표시(1); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),tl2(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL2 = TL_New(고[2,3],고[2,4],고[2,1],고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); PlaySound("F:₩예스트레이더소리₩띠웅.wav"); Text_SetStyle(Text1, 2, 1); Text_SetColor(Text1,BLACK); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,red); TL_SetSize(TL2,파동선두께); TL_SetColor(TL2,red); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); TL_SetEnd(TL2,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL2 = TL_New(저[2,3],저[2,4],저[2,1],저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); Text_SetColor(Text1,BLACK); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,blue); TL_SetSize(TL2,파동선두께); TL_SetColor(TL2,blue); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); TL_SetEnd(TL2,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; } plot1((고[1,1]+저[1,1])/2);
프로필 이미지
bestkim
2018-02-06
242
글번호 116374
지표
답변완료

60분봉에서 지표문의요

매 시간마다 전봉 60분봉 1/2지점 선이 자동으로 생기는 신호 부탁드립니다 항상 감사드립니다.
프로필 이미지
장군777
2018-02-06
184
글번호 116373
지표
답변완료

문의드립니다.

수고하십니다. 위 그림에서 보듯이 전저점을 깰시 매도 하는 수식부탁드립니다. Swinglow 함수는 그림과 같이 양봉의시가 혹은 음봉의 종가가 아닌 저점값으로만 전저점을 찾아내어 제가 원하는 값이랑 다르네요
프로필 이미지
회원
2018-02-06
195
글번호 116372
시스템
답변완료

문의드립니다.

매번감사합니다. 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
341
글번호 116368
시스템
답변완료

재문의 드립니다.

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

수식 부탁합니다

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

다시한번 부탁드려요

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

문의합니다.

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