커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

거래선 지표식 수정

항상 감사드립니다. 1.아래 거래선지표 수식으로 챠트에 적용해보니 라인이 종가가 아닌 중간값에 그려집니다,오류수정 부탁드립니다. 그리고var20이 상승방향일때는 red,하락방향일때는 blue로 수정부탁드립니다. var : upv21(0),upv22(0),upv23(0); var : dnv21(0),dnv22(0),dnv23(0); If V== highest(V,240) then{ Var21 = (C+H+L)/3; var22 = var21[1]; if var21 > var22 Then{ upv21 = var21; upv22 = upv21[1]; upv23 = upv22[1]; if upv21-upv22 >= 0.2 Then var20 = var21; } if var21 < var22 Then{ dnv21 = var21; dnv22 = dnv21[1]; dnv23 = dnv22[1]; if dnv21-dnv22 <= -0.2 Then var20 = var21; } } plot1(var20,"240_상방",red,def,2.0); plot2(var20,"240_하방",blue,def,2.0); +++++++++++++++++++++++++++++++++++++++++++++++++++ 2_아래식을 dara1,data2 로 표시해주시기 바랍니다 ########################## ### 피봇지지저항_3단계 ### ########################## //저항선_피봇1차저항 var21 = (((dayOpen(1)+dayHigh(1)+dayLow(1)+dayClose(1))/4)*2)-dayLow(1); //라인2_피봇1차지지 var22 = (((dayOpen(1)+dayHigh(1)+dayLow(1)+dayClose(1))/4)*2)-dayHigh(1); //라인3_피봇기준 var23 = (dayOpen(1)+dayHigh(1)+dayLow(1)+3*dayClose(1))/6; 감사합니다
프로필 이미지
조민철
2016-04-03
166
글번호 96791
지표
답변완료

로직문의

1분봉 기준으로 연속 2봉의 종가가 상승하면 매수, 연속 2봉의 종가가 하락하면 매도 수식 부탁합니다. (연결선물지수 기준) 그리고, 매도시에 아래의 경우도 추가합니다. 직전봉(봉1) 종가 대비 다음봉(봉2) 종가 하락하고, 그 다음 봉(봉3)의 실시간 가격이 다음봉(봉2) 종가 아래이면서 직전봉(봉1) 시초가 이하로 떨어질때 즉시 청산. (봉1,2,3은 연속 봉임)
프로필 이미지
초록이
2016-04-02
138
글번호 96790
시스템
답변완료

쌍봉 쌍바닥 수식 문의 합니다.

그림은 5일선 이동평균선입니다. 1.그림에서처럼 쌍바닥일 경우, 전 5일선 변곡점 보다 현재 5일선 변곡점이 높아질 때 매수 싸인 2.쌍봉일 경우, 전 5일선 변곡점 보다 현재 5일선 변곡점이 낮아질 때 매도 싸인 이 수식 좀 알려주세요.
프로필 이미지
럭키필
2016-04-01
307
글번호 96788
시스템
답변완료

수식요청드립니다.

안녕하세요. 작성해주신 수익구분 당일손실제한 수식을 아래 진입횟수제한 당일손실제한 수식에 추가 부탁드립니다. 제가하니까 잘안되네요. input : N(3),당일손실(1.3),진입수량(1),누적진입횟수1(3); var : cnt(0),BCount(0),SCount(0); var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0); var : Bxcond(false),SxCond(false); // 피라미팅 설정수익 NP = NetProfit; if date != date[1] Then{ preNP = NP[1]; Condition1 = false; v1 = 0; Xcond == false; ProfitCond == false; } dayPL = NP-PreNP; BCount = 0 ; SCount = 0 ; for cnt = 0 to 10 { if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then BCount = BCount + 1; if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then SCount = SCount + 1; } if Condition1 == false and TotalTrades > TotalTrades[1] Then{ Condition1 = true; if PositionProfit(1) > 0 Then v1 = PositionProfit(1); } //---------------------------------------------------------------------------------------------- #기본당일손실제한 => #수익구분 당일손실제한으로 변경요청 if MarketPosition == 1 Then{ ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts); } if MarketPosition == -1 Then{ ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts); } //----------------------------------------------------------------------------------------------- #MACD 기준선 진입수식(진입횟수, 기본당일손실제한 수식적용) Input : shortPeriod(12),longPeriod(26); Var : value(0); value = MACD(shortPeriod,longPeriod); # 매수/매도청산 If CrossUP(value, 0) and BCount+SCount < N and dayPL > -당일손실 Then { Buy(); } # 매도/매수청산 If CrossDown(value, 0) and BCount+SCount < N and dayPL > -당일손실 Then { Sell(); } //----------------------------------------------------------------------------------------------- 감사합니다. 안녕하세요 예스스탁입니다. #수익구분 당일손실제한 input : 당일손실1(1.3),당일손실2(1.0),당일손실3(0.5); input : 합산수익1(0.8),합산수익2(1.1),합산수익3(1.5); var : dayLoss(0); if MarketPosition == 1 Then{ if MaxPositionProfit < 합산수익1 then dayLoss = 당일손실1; if MaxPositionProfit >= 합산수익1 and MaxPositionProfit < 합산수익2 then dayLoss = 당일손실2; if MaxPositionProfit >= 합산수익3 then dayLoss = 당일손실3; ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(dayLoss+(dayPL-v1))/CurrentContracts); } if MarketPosition == -1 Then{ if MaxPositionProfit < 합산수익1 then dayLoss = 당일손실1; if MaxPositionProfit >= 합산수익1 and MaxPositionProfit < 합산수익2 then dayLoss = 당일손실2; if MaxPositionProfit >= 합산수익3 then dayLoss = 당일손실3; ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayLoss-v1))/CurrentContracts); } 즐거운 하루되세요 > dandy 님이 쓴 글입니다. > 제목 : 수식요청드립니다. > 안녕하세요. 당일청산 피라미딩 적용하는 아래 당일손실제한 일반수식을 합산수익(PT) 상승 후 하락할경우 당일손실제한 포인트(PT)을 3가지 조건만족 즉시청산 수식으로 변경 요청 드립니다. ( 합산수익 PT는 매도진입의 경우 당일저가, 매수의경우 당일고가을 기준으로하고 손절청산은 당일손실 PT 조건만족 즉시 청산하는 수식으로 요청드립니다.) 1. 매수 매도 후 총진입 합산수익1 이하 상승 후 하락할 경우 당일손실1(1.3PT) 적용 손절청산 2. 매수 매도 후 총진입 합산수익2 이상 상승 후 하락할 경우 당일손실2(1.0PT) 적용 손절청산 3. 매수 매도 후 총진입 합산수익3 이상 상승 후 하락할 경우 당일손실3(0.5PT) 적용 손절청산 ( 매수 매도 후 수익없이 하락하는 경우도 당일손실1(1.3PT) 적용 손절청산 입니다.) #당일손실제한 //and BCount+SCount < N and dayPL > -당일손실 input : 당일손실1(1.3),당일손실2(1.0),당일손실3(0.5); input : 합산수익1(0.8),합산수익2(1.1),합산수익3(1.5); if MarketPosition == 1 Then{ ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts); } if MarketPosition == -1 Then{ ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts); } 감사합니다.
프로필 이미지
dandy
2016-04-02
140
글번호 96786
시스템
답변완료

간단한 시스템 수식 문의

20일 이평선 시스템관련해서 질문드립니다. 사진 첨부와 시스템 매매신호 발생조건을 작성해봅니다. 20일선의 각도에 따른 선색깔 진행 흐름에 따라 매수 및 매도 신호발생을 기본조건으로 유지한뒤 20일선 색깔 방향성에 따른 첫 매매신호가 발생하고난뒤 중복 매매신호가 발생하는 조건은 첫매매신호 발생으로 진입신호가 발생된뒤 재차 5틱 이상의 청산자리가 발생한다면 재차 20일선에 닿을때 매매 신호가 재차 발생할수있게끔 해주세요. 이때 시스템신호 발생조건은 봉이 완성봉진행후 다음봉에서 매매신호가 발생하는것이 아닌 20일이평선에 닿을때 시스템 매매신호가 바로 발생하게 해주셨으면 좋겠습니다. 그리고 첨부된 사진에서 보는바와같이.. 진입신호 발생후 청산자리 해당되는 가격대에 올때에 자동으로 5틱청산,10틱청산,15틱청산,20틱청산 텍스트로 표기되었으면 좋겠습니다. 물론 청산텍스트 말고 손절 텍스트도 발생했으면 좋겠습니다. 그것에 대한 예로 사진을 하나더 첨부해봅니다. 이런식의 표기가 되었으면 좋겠네요. 여기서 진입시점 조건 에 대해서 좀더 세부적으로 살펴보면 20일선 현재가를 기준으로 +/- 1틱 이내에서는 매매 신호가 발생하게해주세요. 예들들어 상승방향에서 20일선 현재가가 37.80 이라고 이것을 기준으로 하면 37.79 / 37.80 / 37.81 이렇게 해당기준가로부터 +/- 1틱 으로 해당되는 매매 신호 발생조건 에 포함되게 해주시면 감사하겠습니다. 사진에서 보이는 20일선각도에 따른 선색깔 수식작성합니다. 아래수식은 20일선의 상승할때 발생하는 흰색상승각도선 강조 표시수식 입니다. input: P5(5); VAR: HC(0), HO(0), HH(0), HL(0), MH(0), ML(0), MMH(0), MML(0); HC= (C+H+O+L)/4; HO= AMA(HC[1], 0.5); HH= MAX(H, HC, HO); HL= MIN(L, HC, HO); MH=MA(HC, P5); ML=MA(HO, P5); MMH= MAX(MH, ML); MML= MIN(MH, ML); if MH>=MH[1] Then Begin PlotPaintBar(MMH, MML, "상승"); End else NoPlot(1); 바로 아래 수식은 20일선의 하락할때 발생하는 파랑하락각도선 강조 표시수식 입니다. input: P5(5); VAR: HC(0), HO(0), HH(0), HL(0), MH(0), ML(0), MMH(0), MML(0); HC= (C+H+O+L)/4; HO= AMA(HC[1], 0.5); HH= MAX(H, HC, HO); HL= MIN(L, HC, HO); MH=MA(HC, P5); ML=MA(HO, P5); MMH= MAX(MH, ML); MML= MIN(MH, ML); if MH<MH[1] Then Begin PlotPaintBar(MMH, MML, "하락"); End else NoPlot(1); 이 강조수식도 수식이 따로 나눠져 보는게 아니라 합쳐져서 한번에 볼수있게 작성 해주시면 좋겠습니다.
프로필 이미지
매매초보
2016-04-07
183
글번호 96781
시스템
답변완료

부탁드립니다.

미결재 약정 전일 종가 값을 알고 싶습니다. 현재값은 openinterest 인데 전일 종가 값은 무엇인가요? 부탁드립니다.
프로필 이미지
635
2016-04-01
150
글번호 96780
사용자 함수
답변완료

부탁 드립니다.

늘 만족한 답변에 감사 드립니다. var2의 색상이 yellow 상태일때 var1 이 var2를 crossup 하면 매수진입 crossdown일때 청산 var2의 색상이 black 상태일때 var1 이 var2를 crossdown 하면 매도진입 crossup일때 청산 시스템식 부탁 드립니다. 미리 감사 드립니다. INPUT: P1(5),P2(20); VAR1=MA(C,P1); VAR2=MA(C,P2); if var1 > var1[1] then Plot1(var1, "P1_이평",red,def,2); else Plot1(var1, "P1_이평",black,def,2); if var2 > Var2[1] then Plot2(var2, "P2_이평",yellow,def,2); else Plot2(var2, "P2_이평",black,def,2);
프로필 이미지
yes
2016-04-01
125
글번호 96779
시스템
답변완료

시스템 문의 드립니다~

수식 작성해 주셔서 감사드립니다~ 그런데 대입을 하려 하는데 아직은 실력이 안되서 자꾸오류가 생기네요, 한번 다시 부탁드립니다~ ------------------------------------------------ 질문은 1, 2, 3번 시스템이 있고 2, 3번 중에서 매수가 나와있을때 1번이 매수 신호 나오면 매수진입, 2, 3번은 매도신호중 일때 1번이 매수가 나오면 대기하고 있다가 2, 3번중 매수 신호가 나오면 매수 진입, 매도는 반대로 입니다,, 그런데 밑에 수식에서는 1번 신호가 매수인데 2, 3번 신호가 매도시 매도 진입이 나오네요, 안나오게 부탁드립니다~ 1번 신호와 같은 신호가 있을때만 진입입니다~ 1번 신호가 우선이고 2, 3번 신호중 1번 신호와 같은 진입신호가 있을때만 신호가 나오게 부탁드립니다. -------------------------------------------------- 밑에 작성해 주신 식입니다 var : T1(0),T2(0),T3(0); #1번 시스템 var1 = ma(C,5); var2 = ma(c,20); if crossup(var1,var2) Then T1 = 1; if CrossDown(var1,var2) Then T1 = -1; #2번 시스템 var3 = StochasticsK(10,5); var4 = StochasticsD(10,5,5); if crossup(var3,var4) Then T2 = 1; if CrossDown(var3,var4) Then T2 = -1; #3번 시스템 var5 = MACD(12,26); var6 = ema(var5,9); if crossup(var5,var6) Then T3 = 1; if CrossDown(var5,var6) Then T3 = -1; if T3 == 1 and T1 == 1 and T1[1] != 1 Then buy(); if T3 == -1 and T1 == 1 and ((T2 == 1 and T2[1] != 1) or (T3 == 1 and T3[1] != 1)) Then buy(); if T3 == -1 and T1 == -1 and T1[1] != -1 Then sell(); if T3 == 1 and T1 == -1 and ((T2 == -1 and T2[1] != -1) or (T3 == -1 and T3[1] != -1)) Then sell(); ---------------------------------------------------------------- 위 식에 1번 input : P1(5),P2(37),RSIP(9); var1 = wma(c,P1); var2 = wma(c,P2); var3 = RSI(RSIP); Condition1 = var1 > var2 and var3 >=70; Condition2 = var1 < var2 and var3 <=40; if Condition1 == true and Condition1[1] == false Then buy(); if MarketPosition == 1 and CrossDown(var1,var2) and var3 <= 40 Then ExitLong(); if Condition2 == true and Condition2[1] == false Then sell(); if MarketPosition == -1 and Crossup(var1,var2) and var3 >= 70 Then ExitShort(); ----------------------------------------------------------- 2번 INPUT : LENGTH(10),N(2),P1(60),P2(40),P3(20); VAR : TCHAN(0), BCHAN(0),T(0),B(0),mav2(0),mav3(0),X(0),Y(0),mav1(0),Z(0); Mav1 = ma(C,P1); MAV2 = ma(C,P2); MAV3 = ma(C,P3); TCHAN = HIGHEST(HIGH, LENGTH)[1]; BCHAN = LOWEST(LOW, LENGTH)[1]; if TCHAN > TCHAN[1] Then T = 1; if TCHAN < TCHAN[1] Then T = -1; if BCHAN > BCHAN[1] Then B = 1; if BCHAN < BCHAN[1] Then B = -1; if mav1 > mav1[1] Then Z = 1; if mav1 < mav1[1] Then Z = -1; if mav2 > mav2[1] Then X = 1; if mav2 < mav2[1] Then X = -1; if T == 1 and T[1] != 1 Then Y = 1; if B == 1 and B[1] != 1 Then Y = 1; if T == -1 and T[1] != -1 Then Y = -1; if B == -1 and B[1] != -1 Then Y = -1; if Z == 1 and B == 1 and CrossDown(L,BCHAN) Then buy(); if X == 1 and Y == 1 and C < mav3 and C > O and C[1] < O[1] Then buy(); if Z == -1 and T == -1 and CrossUp(H,TCHAN) Then Sell(); if X == -1 and Y == -1 and C > mav3 and C < O and C[1] > O[1] Then sell(); if MarketPosition == 1 and mav1 < mav1[3] and C < O Then exitlong(); if MarketPosition == -1 and mav1 > mav1[3] and C > O Then ExitShort(); ------------------------------------------------------------- 3번식은 두개 입니다(매수, 매도 따로) 3-매도 INPUT : LENGTH(10); VAR : TCHAN(0), BCHAN(0),T1(0),T2(0); TCHAN = HIGHEST(HIGH, LENGTH)[1]; BCHAN = LOWEST(LOW, LENGTH)[1]; if TCHAN > TCHAN[1] and BCHAN > BCHAN[1] Then T1 = 1; if TCHAN < TCHAN[1] and BCHAN < BCHAN[1] Then T1 = -1; if T1 == 1 Then exitshort("b",atlimit,BCHAN); if t1 == -1 Then SELL("S",atlimit,TCHAN); 3-매수 INPUT : LENGTH(10); VAR : TCHAN(0), BCHAN(0),T1(0),T2(0); TCHAN = HIGHEST(HIGH, LENGTH)[1]; BCHAN = LOWEST(LOW, LENGTH)[1]; if TCHAN > TCHAN[1] and BCHAN > BCHAN[1] Then T1 = 1; if TCHAN < TCHAN[1] and BCHAN < BCHAN[1] Then T1 = -1; if T1 == 1 Then buy("b",atlimit,BCHAN); if T1 == -1 Then exitlong("bx",atlimit,TCHAN); 이렇게 위의 세개의 식을 가지고 맞춰 보고자 합니다~ 부탁드립니다 ----------------------------------------------------- 그리고 밑에 식에서 이평선의 기울기가 0도 위로 향하면 매수만, 밑으로는 매도만 신호가 나오게 가능할까요? 또 밑에 식에서 고점에서 하락후 매수 신호 자리에서 저점이 갱신되어 나오는 신호로 3, 4, 7번째 신호만 진입신호가 유효하게 나오게도 수정 가능할까요? 매도는 반대입니다~ 가능하다면 부탁드립니다~ Input:전환틱수(15); Var:j(0),상승(100),하락(-100),상승틱수(0),하락틱수(0),기준고(0),기준저(0), 기준고Bar(0),기준저Bar(0),추세(0),ZZ(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0); 상승틱수 = PriceScale*전환틱수; 하락틱수 = -PriceScale*전환틱수; for j = 1 to 19 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Idx[j] = Index - 고Bar[j]; 저Idx[j] = Index - 저Bar[j]; } if 기준고 <= C or 기준고 == 0 then { 기준고 = C; 기준고Bar = 0; } else 기준고Bar = 기준고Bar + 1; if 기준저 >= C or 기준저 == 0 then { 기준저 = C; 기준저Bar = 0; } else 기준저Bar = 기준저Bar + 1; if 기준고 + 하락틱수 <= C[1] and 기준고 + 하락틱수 > C then 추세 = 하락; else if 기준저 + 상승틱수 >= C[1] and 기준저 + 상승틱수 < C then 추세 = 상승; if 추세[1] == 상승 and 추세 == 하락 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 고Idx[j+1] = 고Idx[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 고Idx[1] = Index - 고Bar[1]; ZZ = 기준고; 기준고 = C; 기준고Bar = 0; 기준저 = C; 기준저Bar = 0; } if 추세[1] == 하락 and 추세 == 상승 then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; 저Idx[j+1] = 저Idx[j]; } 저[1] = 기준저; 저Bar[1] = 기준저Bar; 저Idx[1] = Index - 저Bar[1]; ZZ = 기준저; 기준저 = C; 기준저Bar = 0; 기준고 = C; 기준고Bar = 0; } if 추세 == 상승 Then var1 = 기준고; if 추세 == 하락 Then var2 = 기준저; if 추세 == 상승 and 추세 != 추세[1] Then buy("b"); if 추세 == 하락 and 추세 != 추세[1] Then sell("s"); 시스템식 모두 변수 설정 가능하도록 부탁드립니다~
프로필 이미지
phn
2016-04-01
141
글번호 96778
시스템
답변완료

피봇 타주기시스템

항상 감사드립니다 아래 피봇식을 타주기 차트1,챠트2에 적용할수 있도록 변환 부탁드립니다 ########################## ### 피 봇 비 율 ### ########################## var71=DayHigh()-DayLow();##피보비율 기준식## var72=var71*0.236; var73=var71*0.382; var74=var71*0.5; var75=var71*0.618; var76=(DayLow()+var72); var77=(DayLow()+var73); var78=(DayLow()+var74); #매매 중심선# var79=(DayLow()+var75); ########################## ### 피봇지지저항_3단계 ### ########################## //저항선_피봇1차저항 var21 = (((dayOpen(1)+dayHigh(1)+dayLow(1)+dayClose(1))/4)*2)-dayLow(1); //라인2_피봇1차지지 var22 = (((dayOpen(1)+dayHigh(1)+dayLow(1)+dayClose(1))/4)*2)-dayHigh(1); //라인3_피봇기준 var23 = (dayOpen(1)+dayHigh(1)+dayLow(1)+3*dayClose(1))/6; 감사합니다
프로필 이미지
조민철
2016-04-01
149
글번호 96775
시스템