커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식작성 부탁드립니다.

안녕하십니까. 항상 감사드립니다. 1.매수(매도는반대) 10분봉거래 a.조건1 14일(일봉의값) ADX값이 20이상 b.조건2 ADX의 값이 커지는 추세 c.조건3 단기(5일.일봉)-중(20.일일봉)-장기(60일.일봉) 이평선이 정배열 d.조건1.2.3만족후 5봉뒤에서 매수 e.이평선 정배열된 날의 저점에 손절스탑 f.이평선 정배열 무너지면 청산 2.매수(매도는반대) 10분봉거래 a. 조건1 가격이 20지수이평(EMA)과 100단순이평 아래에 있을것 b. 조건2 MACD가 +로 전환된후 5봉이내일것 c. 조건1.2 만족후 가격이 20지수이평(EMA)과 100단순이평을 모두 돌파후 15핍상승 d. 15핍상승한 가격에서 시장가 매수 2계약 e. 이평선 돌파봉의 저점에 손절스탑설정 f. 매수가격 + (매수가격-손절가격)만큼 상승시 1계약 이익청산후 나머지 1계약 손절스탑을 진입가로 수정 g. 가격이 20지수이평(EMA)-15핍에서 이익 트레일링 스탑설정 3.매수(매도는반대) 당일특정시간 분봉거래. a. 전일까지 7거래일 연속 음봉의 조건 만족시 (일봉기준) b. 금일 특정시간(예 120000)이후 분봉기준 양봉이 나올시 2계약 매수진입 c. 진입가 -30핍아래 손절스탑 d. 진입가 +60핍에서 1계약 이익청산후 나머지 1계약 손절스탑을 진입가로 이동 e. 나머지 1계약은 + 120핍의 이익청산 설정 수고하세요
프로필 이미지
미수예스
2014-09-12
170
글번호 78481
시스템
답변완료

수식 문의합니다...

자동매매에서 진입은 수동으로 청산은 자동으로 매매가 가능할까요.?
프로필 이미지
회원
2014-09-12
146
글번호 78480
시스템

혼자뜨는별 님에 의해서 삭제되었습니다.

프로필 이미지
혼자뜨는별
2014-09-12
4
글번호 78478
시스템
답변완료

문의드립니다.

plot나 tl_new같은 추세선함수를 사용자 함수에 추가해서 지표에 그리기가 가능한가요? 예제) Drawline() { var1 = O; plot(var1); Drawline = true; }
프로필 이미지
창조V
2014-09-12
143
글번호 78469
지표
답변완료

시스템식 부탁합니다

아침 장시작 당일 고가 고가에서 하락하다 반등하여 당일고가 돌파시 매수하는 시스템식 부탁합니다 당일 장시작 후 당일 고가 재돌파시 매수식 부탁합니다 시간 제한 11시 이전
프로필 이미지
미래테크
2014-09-12
148
글번호 78468
시스템

외환달러 님에 의해서 삭제되었습니다.

프로필 이미지
외환달러
2014-09-12
0
글번호 78467
지표
답변완료

연결선물에서 선물만기일 다음날 가격정보관련

연결선물에서 선물만기일 다음날은 가격정보가 차월물로 바뀌기 때문에 전일 가격과 비교하는 수식의 경우 원하는 것과 다른 결과가 나오는데 이를 막을 수 있는 방법을 수식으로 알려주시면 감사하겠습니다. 예를 들어 전일종가와 차이 = Close - CloseD(1) 로 수식을 사용하고 있는데 선물만기일 다음날 차월물과 관계에서 실제 CloseD(1) 값이 아닌 것을 방지하기 위한 방법을 원합니다. 쉽게말해 그래프 데이터 말고 전일대비 등락값을 가져올수 있는 방법을 알려주시면 감사하겠습니다.
프로필 이미지
anyhelp
2014-09-12
185
글번호 78466
시스템
답변완료

시스템식 수정

항상감사드립니다 아래 시스템식은 타주기를 이용한 시스템식입니다,근데 신호가 잘나오질 않습니다 오류수정 부탁드립니다 제가구현하고자 하는 시스템식은 1.타주기적용시스템_A 1-1 아래 시스템식_1 이 주차트(300틱)와 타주기챠트(2분)에서 같은방향으로 신호가 발생시 매수/매도 1-2 주챠트(300틱)에 C > 기하이평 20 고가선((Hma2) 이면 매수진입 주챠트(300틱)에 C < 기하이평 20 저가선(Lma2) 이면 매도진입 1-3 주챠트(300틱)와 타주기챠트(2분)에서 선행스팬2(52) 기준추가(상단에 위치하면매수/ 하단에 위치하면 매도) 1-4 주챠트(300틱)에 MACD_OSC 기준매매 추가 1-5 주챠트(300틱)에 ADX 매수매도식 추가 1-6 주챠트(300틱)에 aroon 매수매도식 추가 *** 시스템식_1 과 선행스팬2(52) 만 주챠트와 타주기챠트에 적용합니다*** ***변형하고자하는 시스템식은 2.타주기적용시스템_B 2-1 시스템식_1 은 주차트(300틱)에만 적용하고(매수/매도) 2-2 주챠트(300틱)에 C > 기하이평 20 고가선((Hma2) 이면 매수진입 주챠트(300틱)에 C < 기하이평 20 저가선(Lma2) 이면 매도진입 2-3 주챠트(300틱)에 MACD_OSC 기준매매 추가 2-4 주챠트(300틱) 및 타주기챠트에(2분) 선행스팬2(52) 기준추가 (상단에 위치하면매수/하단에 위치하면 매도) 2-5 타주기챠트에(2분) C > 기하이평 20 고가선(Hma2) 이면 매수진입 타주기챠트에(2분) C < 기하이평 20 저가선(Lma2) 이면 매도진입 2-6 주챠트(300틱)에 ADX 매수매도식 추가 2-7 주챠트(300틱)에 aroon 매수매도식 추가 를 구현하고 싶습니다 ######################## ##### 시스템식_1 ##### ######################## input:Period(30),ma1(12),ma2(26),shortperiod(9),Longperiod (26),signalperiod(9),baseLine(0); var : A1(0,data1),B1(0,data1),V10(0,data1); var : A2(0,data2),B2(0,data2),V20(0,data2); var : Bcond(false,data1),Scond(false,data1); A1=PVI; B1=data1(ema(A1,period)); if data1(o>c and A1>B1 and Ema(C,MA1) > Ema(C,MA2) and MACD(shortperiod,Longperiod) >= baseLine) Then V10= 1 ; if data1(o<c and A1< B1 and Ema(C,MA1) < Ema(C,MA2)) Then V10= -2 ; if data1(o<c and A1<B1 and Ema(C,MA1) < Ema(C,MA2) and MACD(shortperiod,Longperiod) <= baseLine) Then V10= -1 ; if data1(o>c and A1>B1 and Ema(C,MA1) >Ema(C,MA2)) Then V10= 2 ; A2=PVI; B2=data2(ema(A2,period)); if data2(o>c and A2>B2 and Ema(C,MA1) > Ema(C,MA2) and MACD(shortperiod,Longperiod) >= baseLine) Then V20= 1 ; if data2(o<c and A2< B2 and Ema(C,MA1) < Ema(C,MA2)) Then V20= -2 ; if data2(o<c and A2<B2 and Ema(C,MA1) < Ema(C,MA2) and MACD(shortperiod,Longperiod) <= baseLine) Then V20= -1 ; if data2(o>c and A2>B2 and Ema(C,MA1) >Ema(C,MA2)) Then V20= 2 ; ###################### ### 기하이동평균선 ### ###################### input : P1(5),P2(20)); var : HI(0),LL(0),CC(0),cnt(0); var : Hma1(0),Lma1(0),Cma1(0); var : Hma2(0),Lma2(0),Cma2(0); var : Hma3(0),Lma3(0),Cma3(0); HH = Log(H); LL = Log(L); CC = Log(C); Hma1 = 0; Lma1 = 0; Cma1 = 0; for cnt = 0 to P1-1 begin Hma1 = Hma1 + HI[cnt]; Lma1 = Lma1 + LL[cnt]; Cma1 = Cma1 + CC[cnt]; end; Hma1 = 2.71828182845904^(Hma1/P1); Lma1 = 2.71828182845904^(Lma1/P1); Cma1 = 2.71828182845904^(Cma1/P1); Hma2 = 0; Lma2 = 0; Cma2 = 0; for cnt = 0 to P2-1 begin Hma2 = Hma2 + HI[cnt]; Lma2 = Lma2 + LL[cnt]; Cma2 = Cma2 + CC[cnt]; end; Hma2 = 2.71828182845904^(Hma2/P2); #Hma2 20기하이평 고가# Lma2 = 2.71828182845904^(Lma2/P2); #Lma2 20기하이평 저가# Cma2 = 2.71828182845904^(Cma2/P2); #Cma2 20기하이평 종가# ######################### ### MACD_OSC 기준매매 ### ######################### input: MACDP1(12),MACDP2(26),MACDP3(9); var : MACDV(0),MACDS(0); MACDV = MACD(MACDP1,MACDP2); #MACD_OSC(12,26)_red# MACDS = ema(MACDV,MACDP3); #MACD_OSC(9)_시그널_blue# ########################## ### 선행스팬2(52) 기준 ### ########################## var52 = (Highest(High, 52) + Lowest(Low, 52)) / 2; #선행스팬2_52# ###################### ##### ADX 시스템 ##### ###################### input : Period3(10); var : ADXv(0),DP2(0),DM2(0); ADXv = ADX(Period3); DP2 = DiPlus(Period3); DM2 = DiMinus(Period3); if DP2 > DM2 Then var13= 1 ; if DP2 < DM2 Then var13= -1 ; ###### aroon ###### input : Period4(9); var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ; Lowval= Lowest(Low, Period4+1); Highval = Highest(High, Period4+1); For counter= 0 To Period4 { If Low[counter] == Lowval Then DownVel = counter; If High[counter] == highval Then UpVel = counter; } DnAroon = 100*(Period4-DownVel)/Period4; UpAroon = 100*(Period4-UpVel)/Period4; ########################### ##### 매수/매도 조건식 #### ########################### Bcond = MarketPosition == 0 and ExitDate(1) == sdate and MarketPosition(1) == 1; Scond = MarketPosition == 0 and ExitDate(1) == sdate and MarketPosition(1) == -1; if Bcond == false and c>o and V10 == 1 and V20 == 1 and c>var52[25] and var13==1 and macdv>macds and upAroon > DnAroon Then buy("buy_1"); if Scond == false and c<o and V10 == -1 and V20 == -1 and c<var52[25] and var13==-1 and macdv<macds and upAroon < DnAroon Then exitlong("eB1"); if Scond == false and c<o and V10 == -1 and V20 == -1 and c<var52[25] and var13==-1 and macdv<macds and upAroon < DnAroon Then sell("sell_1"); if Bcond == false and c>o and V10 == 1 and V20 == 1 and c>var52[25] and var13==1 and macdv>macds and upAroon > DnAroon Then exitshort("eS1"); 감사합니다
프로필 이미지
조민철
2014-09-12
186
글번호 78465
시스템
답변완료

전일과 전전일의 지지/저항선을 표시하는 식으로 변경 부탁드립니다.

아래는 당일의 지지와저항선을 구하는 수식입니다. 당일만 나오다 보니 전일과 전전일의 지지와저항선도 보고 싶어지는군요. 제 실력으로 수정이 어려워 부탁드립니다. 주요 지지저항선만 나오면 됩니다. 감사합니다. --------------------------------------------------------- # swingHigh와 swingLow를 이용한 장중 지지선과 저항선 input : Length(10); //SwingHigh와 SwingLow의 기간값 input : LengthMult(2); //기본 기간값에 N배수(굵게 표시되는 중요 지지선과 저항선) input : NdayAgo(0); //N일전(0이면 당일, 1이면 전일, 2이면 전전일...) var : 저항선(0), 지지선(0), Rcount(0), Scount(0); var : 저항선2(0), 지지선2(0), Rcount2(0), Scount2(0); var : R1(0), R2(0), R3(0), R4(0), R5(0), R6(0), R7(0), R8(0), R9(0),R10(0), R11(0), R12(0), R13(0), R14(0), R15(0), R16(0), R17(0), R18(0), R19(0),R20(0); var : S1(0), S2(0), S3(0), S4(0), S5(0), S6(0), S7(0), S8(0), S9(0),S10(0), S11(0), S12(0), S13(0), S14(0), S15(0), S16(0), S17(0), S18(0), S19(0),S20(0); var : R81(0), R82(0), R83(0), R84(0), R85(0), S91(0), S92(0), S93(0), S94(0), S95(0); var1 = DateToJulian(currentdate); var2 = DateToJulian(date); if var1-var2 == NdayAgo && dayindex >= Length-1 then { 저항선 = SwingHigh(1, H, Length, Length, Length*2+1); 지지선 = swingLow(1, L, Length, Length, Length*2+1); if 저항선 == -1 Then 저항선 = 저항선[1]; if 지지선 == -1 Then 지지선 = 지지선[1]; if 저항선 != 저항선[1] then Rcount = Rcount + 1; if 지지선 != 지지선[1] Then Scount = Scount + 1; if Rcount == 1 then R1 = 저항선; if Rcount == 2 Then R2 = 저항선; if Rcount == 3 then R3 = 저항선; if Rcount == 4 Then R4 = 저항선; if Rcount == 5 then R5 = 저항선; if Rcount == 6 Then R6 = 저항선; if Rcount == 7 then R7 = 저항선; if Rcount == 8 Then R8 = 저항선; if Rcount == 9 then R9 = 저항선; if Rcount == 10 Then R10 = 저항선; if Rcount == 11 then R11 = 저항선; if Rcount == 12 Then R12 = 저항선; if Rcount == 13 then R13 = 저항선; if Rcount == 14 Then R14 = 저항선; if Rcount == 15 then R15 = 저항선; if Rcount == 16 Then R16 = 저항선; if Rcount == 17 then R17 = 저항선; if Rcount == 18 Then R18 = 저항선; if Rcount == 19 then R19 = 저항선; if Rcount == 20 Then R20 = 저항선; if Scount == 1 then S1 = 지지선; if Scount == 2 Then S2 = 지지선; if Scount == 3 then S3 = 지지선; if Scount == 4 Then S4 = 지지선; if Scount == 5 then S5 = 지지선; if Scount == 6 Then S6 = 지지선; if Scount == 7 then S7 = 지지선; if Scount == 8 Then S8 = 지지선; if Scount == 9 then S9 = 지지선; if Scount == 10 Then S10 = 지지선; if Scount == 11 then S11 = 지지선; if Scount == 12 Then S12 = 지지선; if Scount == 13 then S13 = 지지선; if Scount == 14 Then S14 = 지지선; if Scount == 15 then S15 = 지지선; if Scount == 16 Then S16 = 지지선; if Scount == 17 then S17 = 지지선; if Scount == 18 Then S18 = 지지선; if Scount == 19 then S19 = 지지선; if Scount == 20 Then S20 = 지지선; if R1 > 0 then plot1(R1, "R1", RED); if R2 > 0 then plot2(R2, "R2", RED); if R3 > 0 then plot3(R3, "R3", RED); if R4 > 0 then plot4(R4, "R4", RED); if R5 > 0 then plot5(R5, "R5", RED); if R6 > 0 then plot6(R6, "R6", RED); if R7 > 0 then plot7(R7, "R7", RED); if R8 > 0 then plot8(R8, "R8", RED); if R9 > 0 then plot9(R9, "R9", RED); if R10 > 0 then plot10(R10, "R10", RED); if R11 > 0 then plot11(R11, "R11", RED); if R12 > 0 then plot12(R12, "R12", RED); if R13 > 0 then plot13(R13, "R13", RED); if R14 > 0 then plot14(R14, "R14", RED); if R15 > 0 then plot15(R15, "R15", RED); if R16 > 0 then plot16(R16, "R16", RED); if R17 > 0 then plot17(R17, "R17", RED); if R18 > 0 then plot18(R18, "R18", RED); if R19 > 0 then plot19(R19, "R19", RED); if R20 > 0 then plot20(R20, "R20", RED); if S1 > 0 then plot51(S1, "S1", BLUE); if S2 > 0 then plot52(S2, "S2", BLUE); if S3 > 0 then plot53(S3, "S3", BLUE); if S4 > 0 then plot54(S4, "S4", BLUE); if S5 > 0 then plot55(S5, "S5", BLUE); if S6 > 0 then plot56(S6, "S6", BLUE); if S7 > 0 then plot57(S7, "S7", BLUE); if S8 > 0 then plot58(S8, "S8", BLUE); if S9 > 0 then plot59(S9, "S9", BLUE); if S10 > 0 then plot60(S10, "S10", BLUE); if S11 > 0 then plot61(S11, "S11", BLUE); if S12 > 0 then plot62(S12, "S12", BLUE); if S13 > 0 then plot63(S13, "S13", BLUE); if S14 > 0 then plot64(S14, "S14", BLUE); if S15 > 0 then plot65(S15, "S15", BLUE); if S16 > 0 then plot66(S16, "S16", BLUE); if S17 > 0 then plot67(S17, "S17", BLUE); if S18 > 0 then plot68(S18, "S18", BLUE); if S19 > 0 then plot69(S19, "S19", BLUE); if S20 > 0 then plot70(S20, "S20", BLUE); } # 중요 지지저항선은 굵게 표시 if var1-var2 == NdayAgo && dayindex >= Length*LengthMult-1 then { 저항선2 = SwingHigh(1, H, Length*LengthMult, Length*LengthMult, Length*LengthMult*2+1); 지지선2 = swingLow(1, L, Length*LengthMult, Length*LengthMult, Length*LengthMult*2+1); if 저항선2 == -1 Then 저항선2 = 저항선2[1]; if 지지선2 == -1 Then 지지선2 = 지지선2[1]; if 저항선2 != 저항선2[1] then Rcount2 = Rcount2 + 1; if 지지선2 != 지지선2[1] Then Scount2 = Scount2 + 1; if Rcount2 == 1 then R81 = 저항선2; if Rcount2 == 2 Then R82 = 저항선2; if Rcount2 == 3 then R83 = 저항선2; if Rcount2 == 4 Then R84 = 저항선2; if Rcount2 == 5 then R85 = 저항선2; if Scount2 == 1 then S91 = 지지선2; if Scount2 == 2 Then S92 = 지지선2; if Scount2 == 3 then S93 = 지지선2; if Scount2 == 4 Then S94 = 지지선2; if Scount2 == 5 then S95 = 지지선2; //아래 plot들은 속성창에서 굵게 표시해야 함 if R81 > 0 then plot81(R81, "R81", rgb(255,89,172)); if R82 > 0 then plot82(R82, "R82", rgb(255,89,172)); if R83 > 0 then plot83(R83, "R83", rgb(255,89,172)); if R84 > 0 then plot84(R84, "R84", rgb(255,89,172)); if R85 > 0 then plot85(R85, "R85", rgb(255,89,172)); if S91 > 0 then plot91(S91, "S91", rgb(9,154,1)); if S92 > 0 then plot92(S92, "S92", rgb(9,154,1)); if S93 > 0 then plot93(S93, "S93", rgb(9,154,1)); if S94 > 0 then plot94(S94, "S94", rgb(9,154,1)); if S95 > 0 then plot95(S95, "S95", rgb(9,154,1)); }
프로필 이미지
회원
2014-09-12
226
글번호 78464
지표