커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

볼린저밴드 수식

볼린저밴드에서 상단을 벗어난 상태에서 전봉이 양봉일때 그 양봉의 고가를 갱신 후 윗꼬리 단 음봉으로 마무리하는 봉 매도 신호 하단을 벗어난 상태에서 전봉이 음봉일때 그 음봉의 저가를 갱신후 아래꼬리 단 양봉으로 마무리하는 봉 매수 신호 부탁드리립니다.
프로필 이미지
파생청년
2018-07-06
284
글번호 120351
시스템
답변완료

수식문의

안녕하세요 1. 하기 수식에서 몇가지 전략을 추가하고 싶은데, 적용이 되지 않고 있습니다. 검토 부탁드립니다. input : Period(20),dv(2); input : ADXP(14); var : ADXv(0,data1),DP(0,data1),DM(0,data1); var : BBmd1(0,data1),BBdn1(0,data1),bbup1(0,data1); var : BandB1(0,data1),HH1(0,data1),LL1(0,data1); var : BBmd2(0,data2),BBdn2(0,data2),bbup2(0,data2); var : T(0,data1); BBmd1 = data1(ma(C,Period)); BBdn1 = data1(BollBandDown(Period,Dv)); BBUp1 = data1(BollBandUp(Period,Dv)); BandB1 = data1(((C-BBDn1)/(BBUp1-BBdn1))*100); BBmd2 = data2(ma(C,Period)); BBdn2 = data2(BollBandDown(Period,Dv)); BBUp2 = data2(BollBandUp(Period,Dv)); ADXv = data1(ADX(ADXP)); DP = data1(DiPlus(ADXP)); DM = data1(DiMinus(ADXP)); if crossup(BandB1,90) Then HH1 = BandB1; if BandB1 > 90 and BandB1 > HH1 Then HH1 = BandB1; if CrossDown(BandB1,10) Then LL1 = BandB1; if BandB1 < 10 and BandB1 < LL1 Then LL1 = BandB1; if CrossDown(BandB1,90) Then { T = 0; if HH1 > 100 Then T = -1; if BBup2 < BBup1 then T = -2; } if CrossUp(BandB1,10) Then { T = 0; if HH1 < 0 Then T = 1; if BBdn2 > BBdn1 then T = 2; } if T == -1 and BBup2 < BBup1 then T = -2; if T == 1 and BBdn2 > BBdn1 then T = 2; if T == -2 and T != T[1] and DP < ADXv Then { T = 0; sell("s4"); } if T == 2 and T != T[1] and DM < ADXv Then { T = 0; buy("b4"); } if MarketPosition == 1 and CrossDown(C,bbdn1) Then exitlong(); if MarketPosition == -1 and CrossUp(C,bbup1) Then ExitShort(); 상기 수식에 하기 전략을 추가하고 싶습니다. var1 = ADX(P); if H >= BBup and BBup >=L Then Condition1 = true; Else Condition1 = false; if H >= BBdn and BBdn >=L Then Condition2 = true; Else Condition2 = false; if (Condition1 == true or Condition1[1] == true) and abs(C-O) > abs(C[1]-O[1]) and C < O and C[1] > O[1] Then sell("s3"); if (Condition2 == true or Condition2[1] == true) and abs(C-O) > abs(C[1]-O[1]) and C > O and C[1] < O[1] Then buy("b3"); var1 = ADX(P); if var1 >= var1[1]+0.85 and DP > DM and ADXV < 50 and c >= O and H >= BBup and BBup >= L Then { buy("b1"); } if var1 >= var1[1]+0.85 and DP < DM and ADXV < 50 and C <= O and H >= BBdown and BBdown >= L Then { sell("s1"); } value1 = MACD(short, long); value2 = ema(value1, Period); # 매수/매도청산 If CrossUP(value1, value2) and C <= bbmd-PriceScale*10 Then { buy("b2"); } # 매도/매수청산 If CrossDown(value1, value2) and C >= bbmd+PriceScale*10 Then { sell("s2"); } 감사합니다.
프로필 이미지
softtoug
2018-07-08
176
글번호 120350
시스템
답변완료

문의합니다

if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 1 )) and A 수식 then buy("A 매수"); if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 2)) and B 수식 Then buy("B 매수"); if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 3)) and C 수식 Then sell("C 매도"); if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 4)) and D 수식 Then sell("D 매도"); 청산식 #청산완료 if TotalTrades > TotalTrades[1] then { var1 = 0; var2 = 0; if IsEntryName("A 매수",1) == true Then { if PositionProfit(1) > 0 then var1 == 2; else var1 == 4; } if IsEntryName("C 매도",1) == true then { if PositionProfit(1) > 0 Then var1 == 4; Else var1 == 2; } if IsEntryName("B 매수",1) == true then { if PositionProfit(1) > 0 Then { var1 == 1; var1 == 3; } Else { var1 == 1; var1 == 3; } } if IsEntryName("D 매도",1) == true then { if PositionProfit(1) > 0 Then { var1 == 1; var1 == 3; } Else { var1 == 1; var1 == 3; } } } 1. 위의 식은 A 매수해서 이익이나면 B 매수로 손실이나면 D 매도로 진입하고 C 매도해서 이익이나면 D 매도료 손실이나면 B 매수로 진입하고 C 매수해서 이익과 손실이나도 A 매수나 C 매도나 빠른신호로 진입하고 D 매도해서 이익과 손실이나도 A 매수나 C 매도나 빠른신호로 진입하라라고 만든 함수인데 원하는데로 신호가 안나오네요 수정 부탁드립니다 2. 5 이평선과 10 이평선이 골드가 났을때 그때의 종가를 기준으로 이 종가를 201이평선이 돌파하면 5이평선과 10이평선이 골드가 났을때의 종가로 매수하라라는 함수를 알고 싶습니다 감사합니다 늘 승리하세요
프로필 이미지
돌아온스머프
2018-07-09
184
글번호 120349
시스템
답변완료

중심선 질문좀 드릴게요

현재 정배열인 종목이 120일의 고가와 저가의 중심선을 터치했을때 매수 함수좀 부탁드릴게요^^
프로필 이미지
동작맨
2018-07-06
211
글번호 120347
시스템
답변완료

OBV 수식 부탁드립니다

OBV에서 시그널선이 추가되어 상승돌파시 매수 신호,하락 돌파시 매도 신호를 구현하고 싶습니다. 수식 부탁드립니다.
프로필 이미지
marine78
2018-07-06
224
글번호 120342
지표
답변완료

20선 기준 상승 하락 구간 설정

안녕하세요? 20선을 기준으로 현재봉(3분)의 돌파와 이탈을 기점으로(수직선으로) 상승구간과 하락구간을 색상으로 나타낸는 방법을 문의드립니다. 감사합니다.
프로필 이미지
풍재보살
2018-07-06
199
글번호 120341
지표
답변완료

수정 부탁드립니다.

아래 수식을 작성해주셔서 고맙습니다. 차트 우측 끝에 아래 선들이 위치한 가격도 표시되게 해주시면 고맙겠습니다. ------------------------------------ 고정 숫자이므로 추세선으로 출력하시면 됩니다. input : upLine1(7162.20),upLine2(7157.25),upLine3(7089.38),upLine4(7076.82),upLine5(7066.20),upLine6(7060.27),upLine7(6961.80),upLine8(6931.92); var : tl1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0),tl7(0),tl8(0); if index == 1 Then { tl1 = TL_New(sdate[1],stime[1],upline1,sdate,stime,upline1); TL_SetExtRight(tl1,true); tl2 = TL_New(sdate[1],stime[1],upline2,sdate,stime,upline2); TL_SetExtRight(tl2,true); tl3 = TL_New(sdate[1],stime[1],upline3,sdate,stime,upline3); TL_SetExtRight(tl3,true); tl4 = TL_New(sdate[1],stime[1],upline4,sdate,stime,upline4); TL_SetExtRight(tl4,true); tl5 = TL_New(sdate[1],stime[1],upline5,sdate,stime,upline5); TL_SetExtRight(tl5,true); tl6 = TL_New(sdate[1],stime[1],upline6,sdate,stime,upline6); TL_SetExtRight(tl6,true); tl7 = TL_New(sdate[1],stime[1],upline7,sdate,stime,upline7); TL_SetExtRight(tl7,true); tl8 = TL_New(sdate[1],stime[1],upline8,sdate,stime,upline8); TL_SetExtRight(tl8,true); } 즐거운 하루되세요 > 천왕봉 님이 쓴 글입니다. > 제목 : 선 긋는 방법 > input : upLine1(7162.20),upLine2(7157.25),upLine3(7089.38),upLine4(7076.82),upLine5(7066.20),upLine6(7060.27),upLine7(6961.80),upLine8(6931.92); plot1(upline1,"up1",BLACK); plot2(upline2,"up2",BLACK); plot3(upline3,"up3",BLACK); plot4(upline4,"up4",BLACK); plot5(upline5,"up5",BLACK); plot6(upline6,"up6",BLACK); plot7(upline7,"up7",BLACK); plot8(upline8,"up8",BLACK); 위 괄호안의 가격이(예:7162.20) 첨부 그림B 같이 차트 우측 끝까지 선리 그려지고 가격이 표시되게 수정좀 해주세요. 일목균형표 때문에 선이 차트 우측 끝까지 표시가 안되는데 이것을 차트 우측 끝까지 표시되게 하려고 합니다.
프로필 이미지
천왕봉
2018-07-06
176
글번호 120338
지표
답변완료

문의 드립니다.

질문 번호 58495에 관한 것인데 죄송하지만 600분봉 고가와 저가의 누적이평을 10분봉에 나타내고 싶으며 특정한 일부터 현재까지의 일봉의 고가와 저가의 누적이평을 분봉에 나타내고 싶습니다. 감사합니다.
프로필 이미지
동해바다01
2018-07-06
176
글번호 120337
지표
답변완료

문의합니다

var : Buyentry(false); BW_SEVEN = value; if BW_SEVEN >= 7 and BW_SEVEN[1] < 7 Then { T1 = 2; T2 = T1[1]; T3 = T2[1]; } if BW_SEVEN < 7 and BW_SEVEN[1] == 7 Then { T1 = 1; T2 = T1[1]; T3 = T2[1]; } if BW_SEVEN <= -7 and BW_SEVEN[1] > -7 Then { T1 = -2; T2 = T1[1]; T3 = T2[1]; } if BW_SEVEN > -7 and BW_SEVEN[1] == -7 Then { T1 = -1; T2 = T1[1]; T3 = T2[1]; } var1 = ma(c,5); var2 = ma(C,20); Condition1 = T1 != T1[1] and T1 == 2 and T2 == 1 and T3 == 2 and CrossUp(var1,var2); if T != T1[1] and T1 == 2 and T2 == -1 Then Buyentry = true; if MarketPosition <= 0 and C > O and Condition1[1] == true Then buy(); if MarketPosition == 1 then { BuyEntry = false; } 1. 시스템 정말 많은 도움이 됐습니다 그런데 한가지 잘못질문한것이 있는듯해서요 바이너리가 2번째에만 매매를 하고 싶습니다 매번이 아니라.... 다시말해 바이너리가 7을 찍고 -7을 찍지 않고 다시올라가서 7을 찍으면 그때부터 매수(5이평선이 20이평선을 골드크로스)를 하고 다시 7이하로 내려오면 이후에는 매매하지 않고 -7을 찍고 다시 7을 찍고 다시한번 7을 내려가고 -7을 찍지 않고 다시 7을 올라오면 그때 매수(5이평선이 20이평선을 골드크로스)를 하고 제가 말주변이 없어 이렇게 표현을 하네요.... 그림으로 첨부했습니다 if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 1 )) and A 수식 then buy("A 매수"); if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 2)) and B 수식 Then buy("B 매수"); if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 3)) and C 수식 Then sell("C 매도"); if (TotalTrades == 0 or (TotalTrades >= 1 and var1 == 4)) and D 수식 Then sell("D 매도"); 청산식 #청산완료 if TotalTrades > TotalTrades[1] then { var1 = 0; var2 = 0; if IsEntryName("A 매수",1) == true Then { if PositionProfit(1) > 0 then var1 == 2; else var1 == 4; } if IsEntryName("C 매도",1) == true then { if PositionProfit(1) > 0 Then var1 == 4; Else var1 == 2; } if IsEntryName("B 매수",1) == true then { if PositionProfit(1) > 0 Then { var1 == 1; var1 == 3; } Else { var1 == 1; var1 == 3; } } if IsEntryName("D 매도",1) == true then { if PositionProfit(1) > 0 Then { var1 == 1; var1 == 3; } Else { var1 == 1; var1 == 3; } } } 2.위의 식은 A 매수해서 이익이나면 B 매수로 손실이나면 D 매도로 진입하고 C 매도해서 이익이나면 D 매도료 손실이나면 B 매수로 진입하고 C 매수해서 이익과 손실이나도 A 매수나 C 매도나 빠른신호로 진입하고 D 매도해서 이익과 손실이나도 A 매수나 C 매도나 빠른신호로 진입하라라고 만든 함수인데 원하는데로 신호가 안나오네요 수정 부탁드립니다 감사합니다 늘 승리하세요
프로필 이미지
돌아온스머프
2018-07-06
208
글번호 120336
시스템