커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식문의 드립니다(갭보정)

Inputs: FastLen(5), MedLen(20), SlowLen(60); Variables: FastAvg(0), MedAvg(0), SlowAvg(0); FastAvg = MA(Close, FastLen); MedAvg = MA(Close, MedLen); SlowAvg = MA(Close, SlowLen); If (FastAvg[1] < MedAvg[1] OR MedAvg[1] < SlowAvg[1]) AND (FastAvg > MedAvg AND MedAvg > SlowAvg) Then Buy ("MAC3_LE"); If (FastAvg[1] > MedAvg[1] OR MedAvg[1] > SlowAvg[1]) AND (FastAvg < MedAvg AND MedAvg < SlowAvg) Then Sell ("MAC3_SE"); 평범한 MA3 정배열 역배열 함수입니다 이식을 갭보정하고 싶습니다 참고로 3분봉에서 사용하려 합니다 추가로 Macd 베이스라인도 갭보정 부탁드립니다
프로필 이미지
paranstr
2020-08-25
1114
글번호 141756
시스템
답변완료

부탁좀 드리겠습니다.

TRIXv = TRIX(period); emav = ema(c,Period); if crossup(TRIXv,0) Then { value1 = emav; value3 = emav; } if CrossDown(TRIXv,0) Then value2 = emav; if value1 > 0 and emav > value1 Then value1 = emav; if value2 > 0 and emav < value2 Then value2 = emav; if value3 > 0 and emav < value3 Then value3 = emav; plot1(value1); plot2(value2); plot3(max(value1,emav)); plot4(max(value3,emav)); 2) 변환부탁드립니다 highest(high,기간) lowest(low,기간) ((highest(high,기간))+(lowest(low,기간)))/2 3) highest(h,period) HIL=valuewhen(1,(highest(h(1),period)<highest(h,period)),((highest(high,Period)+lowest(low,Period))/2)); highest(H, period)-(((highest(H, period)-HIL)/3)*1) HIL=valuewhen(1,(highest(h(1),period)<highest(h,period)),((highest(high,Period)+lowest(low,Period))/2)); highest(H, period)-(((highest(H, period)-HIL)/4)*3) HIL=valuewhen(1,(highest(h(1),period)<highest(h,period)),((highest(high,Period)+lowest(low,Period))/2)); highest(H, period)-(((highest(H, period)-HIL)/5)*3) HIL=valuewhen(1,(highest(h(1),period)<highest(h,period)),((highest(high,Period)+lowest(low,Period))/2)); highest(H, period)-(((highest(H, period)-HIL)/6)*4) period = 300 4) 수식1> highest(h, period) 수식2> A = (highest(h, period) + lowest(l, period))/2; B = highest(h, period); A + (B-A)*4/6 수식3> A = (highest(h, period) + lowest(l, period))/2; B = highest(h, period); A + (B-A)*3/4 수식4> A = (highest(h, period) + lowest(l, period))/3; B = highest(h, period); A + (B-A)*2/5 수식5> (highest(h, period) + lowest(l, period))/4 period=2000
프로필 이미지
회원
2020-08-25
1045
글번호 141755
지표
답변완료

문의 드립니다.

수식 문의드립니다. *최고가 대비 지정한 틱 수까지 하락(상승)할 때마다 해당 틱수 캔들에 수평선이 그어질 수 있도록 수식이 가능한지요. 가능하다면 부탁드립니다. *캔들에 선이 그어지는 가격에 대한 수치는 외부변수로 조정 가능하게 부탁드립니다. *예를 들어 크루드오일의 경우 최고점이 42.60이고 지정 틱수가 30틱이면 고점 대비 30틱 하락(상승)한 지점에 수평선이 그려지고 다시 30틱 하락할 때 캔들에 계속 수평선이 그려지게 부탁드립니다. 항상 감사드립니다.
프로필 이미지
태양같이
2020-08-24
1076
글번호 141754
지표
답변완료

buy 함수를 for 문과 함께 사용하는 방법이 있을까요?

Input : base_price(1000); Arrays : b_price[4](0), b_qty[4](0); Vars: cnt(1); For cnt = 1 to 3 { b_price[cnt] = base_price * (1 - cnt * 0.02); //가격 배열 만들기 b_qty[cnt] = cnt; //수량 배열 만들기 } If sdate == 20200824 && sTime == 100000 Then //한줄씩 buy 사용 /* { MessageLog("Price:%.0f, Qty:%.0f, Close:%.0f", b_price[1], b_qty[1], Close); Buy("Buy1", AtLimit, b_price[1], b_qty[1]); MessageLog("Price:%.0f, Qty:%.0f, Close:%.0f", b_price[2], b_qty[2], Close); Buy("Buy2", AtLimit, b_price[2], b_qty[2]); MessageLog("Price:%.0f, Qty:%.0f, Close:%.0f", b_price[3], b_qty[3], Close); Buy("Buy3", AtLimit, b_price[3], b_qty[3]); } */ { //For문 사용 For cnt = 1 to 3 { MessageLog("Price:%.0f, Qty:%.0f, Close:%.0f", b_price[cnt], b_qty[cnt], Close); Buy("Buy", AtLimit, b_price[cnt], b_qty[cnt]); } } For 문 없이 사용하면 작동하는데 For 문을 쓰면 매수 이름이 같아져 작동이 안되는듯 합니다. For 문을 사용해서 buy 함수를 쓰는 방법이 있을까요? 항상 감사합니다. ^^!
프로필 이미지
매너모드
2020-08-24
1031
글번호 141753
시스템
답변완료

부탁 드립니다.

도움에 깊이 감사 드립니다. ADX지표에 사용되는 DIPLUS함수의 타주기 즉 1)분봉 차트에서 예를 들어 10분봉에서 60분봉지표 2)60분봉 차트에서 일봉 지표 장시간 번거로우시겠지만 부탁드리오며 미리 경배로 깊이 감사 드립니다. Inputs: Length(NumericSimple) ; Variables: Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0); If CurrentBar == 1 Then Begin MyRange = Length; DIPlus = 0; PlusDM14 = 0; TRange = 0; For Counter = 0 To MyRange - 1 Begin If High[Counter] - High[Counter+1] < 0 Then PlusDM = 0; Else PlusDM = High[Counter] - High[Counter+1]; If Low[Counter+1] - Low[Counter] < 0 Then MinusDM = 0; Else MinusDM = Low[Counter+1] - Low[Counter]; If MinusDM >= PlusDM Then PlusDM = 0; TRange = TRange + TrueRange[Counter]; PlusDM14 = PlusDM14 + PlusDM; End; If TRange <> 0 Then DIPlus = 100 * PlusDM14 / TRange; Else DIPlus = 0 ; End Else If CurrentBar > 1 Then Begin If High[0] - High[1] < 0 Then PlusDM = 0; Else PlusDM = High[0] - High[1]; If Low [1] - Low [0] < 0 Then MinusDM = 0; Else MinusDM = Low[1] - Low[0]; If MinusDM >= PlusDM Then PlusDM = 0; If MyRange > 0 Then Begin TRange = TRange[1] - (TRange[1] / MyRange) + TrueRange; PlusDM14 = PlusDM14[1] - (PlusDM14[1] / MyRange) + PlusDM; End; If TRange <> 0 Then DIPlus = 100 * PlusDM14 / TRange; Else DIPlus = 0 ; End ; 참조1) TrueRange = TrueHigh - TrueLow; 참조2) If C[1] > H then TrueHigh = C[1]; else TrueHigh = H; 참조3) If C[1] < L then TrueLow = C[1]; else TrueLow = L;
프로필 이미지
뮬리
2020-08-24
917
글번호 141751
지표
답변완료

외인 누적 선물평균가를 표시

90틱 챠트에 외국인 선물 누적 평균가를 수평선으로 표시하고 싶습니다.
프로필 이미지
오늘도수익
2020-08-24
844
글번호 141748
지표
답변완료

문의드립니다

data2 차트에서 60 봉 기간내 첫번째로 가장 낮은값 두번째로 가장 낮은값 세번째로 가장 낮은값 각각 지표식을 얻고 싶습니다 감사합니다
프로필 이미지
파인애플
2020-08-24
815
글번호 141743
지표
답변완료

수정 부탁드립니다.

안녕하세요? 아래 수식에 하루매매횟수를 외부변수로 넣고싶습니다. 감사합니다. Input : 단기(5), 장기(20), profit_pt(0.5), loss_pt(0.5), 장종료청산(151000); Variable : ent_position(0); if MarketPosition == 0 Then { var1 = 0; ent_position = 0; } If ma(C,단기)>ma(C,장기) and ( C>O and L==O ) and ent_position == 0 Then { Buy("매수",AtMarket); Var1 = NextBarOpen; ent_position = 1; } If ma(C,단기)<ma(C,장기) and ( C<O and H==O ) and ent_position == 0 Then { Sell("매도",AtMarket); Var1 = NextBarOpen; ent_position = -1; } SetStopProfittarget(profit_pt,PointStop); SetStopLoss(loss_pt,PointStop); SetStopEndofday(장종료청산);
프로필 이미지
대구어린울프
2020-08-24
735
글번호 141738
시스템
답변완료

주석요청

안녕하세요? 아래 전략이 의미하는 바가 무엇인지요? countif(C > mav1,5)[1] == 5
프로필 이미지
흰둥이아빠
2020-08-24
783
글번호 141734
시스템