커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁좀 드리겠습니다.

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
1131
글번호 141755
지표
답변완료

문의 드립니다.

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

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

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

문의드립니다

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

주석요청

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

문의드립니다!

안녕하세요! 1, 지난주에 수정해주신 아래 수식1에서 다음사항을 보완수정 부탁드립니다 즉, 봉과 상대선의 만남의 형태가 1) 하방에서 상방으로 2) 상방에서 하방으로.. 이렇게 2가지 경우가 있는데 현재수식에서는 어느 한가지 방향에서의 만남시에만 신호가 발생되는것같습니다 예를들어서 1) 콜봉이 상대고점과 만남시 하방에서 상방으로 향한경우에는 신호가 발생 상방에서 하방으로 향한경우에는 신호가 미발생됩니다 2) 콜봉이 상대저점과 만남시 하방에서 상방으로 향한경우에는 신호가 미발생 상방에서 하방으로 향한경우에는 신호가 발생됩니다 * 풋봉의 경우도 똑같은 이치로서 한가지 경우에만 신호가 발생됩니다 수고스러우시겠지만 모든경우에 다 신호가 발생토록 보완수정 부탁드리겠습니다 2, 아래 수식2에서 선의 이름이 화면 왼쪽에서 발생되도록 수정 부탁드립니다 매번 도와주심에 진심으로 다시한번 감사드립니다 !!! ------------------------------------------------------------------------------------ (수식 1) input : N(0),굵기(3); var : H1(0,data1),L1(0,data1),H2(0,Data1),L2(0,Data1); var : TL1(0,data1),TL2(0,data1),TL3(0,data1),TL4(0,data1); H1 = data1(DayHigh(0)); L1 = data1(DayLow(0)); H2 = data2(HighD(0)); L2 = data2(LowD(0)); Plot1(H1,"data1 최고"); Plot2(L1,"data1 최저"); Plot3(H2,"data2 최고"); Plot4(L2,"data2 최저"); #data1가격이 상승해 Data2 최고가-N틱을 만날때 if data1(H) >= H2-PriceScale*N and data1(H[1]) < H2[1]-PriceScale*N Then { PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); TL1 = TL_new(sDate,sTime,99999999,sDate,sTime,0); TL_SetSize(TL1,굵기); TL_SetColor(TL1,RED); } #data1가격이 하락해 Data2 최저가+N틱을 만날때 if data1(L) <= L2+PriceScale*N and data1(L[1]) > L2[1]+PriceScale*N Then { PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); TL2 = TL_new(sDate,sTime,99999999,sDate,sTime,0); TL_SetSize(TL2,굵기); TL_SetColor(TL2,BLUE); } #data2가격이 상승해 Data1 최고가-N틱을 만날때 if data2(H) >= H1-PriceScale*N and data2(H[1]) < H1[1]-PriceScale*N Then { PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); TL3 = TL_new(sDate,sTime,99999999,sDate,sTime,0); TL_SetSize(TL3,굵기); TL_SetColor(TL3,MAGENTA); } #data2가격이 하락해 Data1 최저가+N틱을 만날때 if data2(L) <= L1+PriceScale*N and data2(L[1]) > L1[1]+PriceScale*N Then { PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); TL4 = TL_new(sDate,sTime,99999999,sDate,sTime,0); TL_SetSize(TL4,굵기); TL_SetColor(TL4,CYAN); } (수식 2) var : 당일시가(0),전일시가(0),금일종가(0),전일종가(0); var : 금일고가(0),전일고가(0),금일저가(0),전일저가(0); var : 금일중간가격(0),전일중간가격(0),천정대칭가격(0),바닥대칭가격(0); var : Tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0); var : Tx7(0),tx8(0),tx9(0),tx10(0),tx11(0),tx12(0); 당일시가 = dayopen; 전일시가 = dayopen(1); 금일종가 = dayclose; 전일종가 = dayclose(1); 금일고가 = dayhigh; 전일고가 = dayhigh(1); 금일저가 = daylow; 전일저가 = daylow(1); 금일중간가격 = (dayhigh + daylow)/2; 전일중간가격 = (dayhigh(1)+daylow(1))/2; 천정대칭가격 = dayhigh + (dayhigh - dayhigh(1)); 바닥대칭가격 = daylow - (daylow-daylow(1)); Plot1(당일시가); Plot2(전일시가); Plot3(금일종가); Plot4(전일종가); Plot5(금일고가); Plot6(전일고가); Plot7(금일저가); Plot8(전일저가); Plot9(금일중간가격); Plot10(전일중간가격); Plot11(천정대칭가격); Plot12(바닥대칭가격); if Index == 1 or Bdate != Bdate[1] Then { tx1 = Text_New_Self(sDate,sTime,당일시가,"당일시가 "+NumToStr(당일시가,2)); tx2 = Text_New_Self(sDate,sTime,전일시가,"전일시가 "+NumToStr(전일시가,2)); tx3 = Text_New_Self(sDate,sTime,금일종가,"금일종가 "+NumToStr(금일종가,2)); tx4 = Text_New_Self(sDate,sTime,전일종가,"전일종가 "+NumToStr(전일종가,2)); tx5 = Text_New_Self(sDate,sTime,금일고가,"금일고가 "+NumToStr(금일고가,2)); tx6 = Text_New_Self(sDate,sTime,전일고가,"전일고가 "+NumToStr(전일고가,2)); tx7 = Text_New_Self(sDate,sTime,금일저가,"금일저가 "+NumToStr(금일저가,2)); tx8 = Text_New_Self(sDate,sTime,전일저가,"전일저가 "+NumToStr(전일저가,2)); tx9 = Text_New_Self(sDate,sTime,금일중간가격,"금일중간가격 "+NumToStr(금일중간가격,2)); tx10 = Text_New_Self(sDate,sTime,전일중간가격,"전일중간가격 "+NumToStr(전일중간가격,2)); tx11 = Text_New_Self(sDate,sTime,천정대칭가격,"천정대칭가격 "+NumToStr(천정대칭가격,2)); tx12 = Text_New_Self(sDate,sTime,바닥대칭가격,"바닥대칭가격 "+NumToStr(바닥대칭가격,2)); } Else { Text_SetLocation(tx1,NextBarSdate,NextBarStime,당일시가); Text_SetLocation(tx2,NextBarSdate,NextBarStime,전일시가); Text_SetLocation(tx3,NextBarSdate,NextBarStime,금일종가); Text_SetLocation(tx4,NextBarSdate,NextBarStime,전일종가); Text_SetLocation(tx5,NextBarSdate,NextBarStime,금일고가); Text_SetLocation(tx6,NextBarSdate,NextBarStime,전일고가); Text_SetLocation(tx7,NextBarSdate,NextBarStime,금일저가); Text_SetLocation(tx8,NextBarSdate,NextBarStime,전일저가); Text_SetLocation(tx9,NextBarSdate,NextBarStime,금일중간가격); Text_SetLocation(tx10,NextBarSdate,NextBarStime,전일중간가격); Text_SetLocation(tx11,NextBarSdate,NextBarStime,천정대칭가격); Text_SetLocation(tx12,NextBarSdate,NextBarStime,바닥대칭가격); }
프로필 이미지
유로파54
2020-08-24
1013
글번호 141722
지표