커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

함수요청

안녕하세요? 아래 함수의 고점과 저점을 적용하여 글번호 77957번의 전략을 작성하고 싶습니다. 스크립트 수정 부탁드립니다. #HHLL Input : short(12), long(26), signal(9),P(20); Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0); var : d1(0),t1(0),tl1(0),tl2(0),mav(0),entry(0); MACDv = MACD(short, long); MACDs = ema(MACDv,signal); macdo = MACDv-MACDs; mav = ma(C,P); if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; HH = macdo; LL = macdo; Condition1 = False; entry = 0; T = 1; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if d1 > 0 Then { if macdo > hh Then hh = macdo; if macdo < ll Then ll = macdo; if Condition1 == False and hh >= ll+0.5 Then { Condition1 = true; var1 = DayHigh; Var2 = DayLow; TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1); TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2); } if Condition1 == true Then { TL_SetEnd(TL1,sDate,sTime,var1); TL_SetEnd(TL2,sDate,sTime,var2); # 77957번 전략 input : HH(360),LL(350); var : entry(0),T(0); if Bdate != Bdate[1] then { entry = 0; T = 1; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) Or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if CrossUp(C,HH) Then T = 1; if CrossDown(C,LL) Then T = -1; if Bdate == Bdate[3] Then { if T == 1 and CountIf(C > HH and C > O and C > C[1],3) == 3 Then { if entry < 1 Then Buy("b1"); Else ExitShort(); } if T == -1 and CountIf(C < LL and C > O and C > C[1],3) == 3 Then { if entry < 1 Then Buy("b2"); Else ExitShort(); } if T == 1 and CountIf(C > HH and C < O and C < C[1],3) == 3 Then { if entry < 1 Then Sell("s1"); Else ExitLong(); } if T == -1 and CountIf(C < LL and C < O and C < C[1],3) == 3 Then { if entry < 1 Then Sell("s2"); Else ExitLong(); } } ###스크립트 -> 이렇게 작성하면 원하는 신호가 아닙니다 Input : short(12), long(26), signal(9),P(20); Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0); var : d1(0),t1(0),tl1(0),tl2(0),mav(0),entry(0); MACDv = MACD(short, long); MACDs = ema(MACDv,signal); macdo = MACDv-MACDs; mav = ma(C,P); if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; HH = macdo; LL = macdo; Condition1 = False; entry = 0; T = 1; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if d1 > 0 Then { if macdo > hh Then hh = macdo; if macdo < ll Then ll = macdo; if Condition1 == False and hh >= ll+0.5 Then { Condition1 = true; var1 = DayHigh; Var2 = DayLow; TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1); TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2); } if Condition1 == true Then { TL_SetEnd(TL1,sDate,sTime,var1); TL_SetEnd(TL2,sDate,sTime,var2); if Bdate != Bdate[1] then { entry = 0; T = 1; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) Or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if CrossUp(C,HH) Then T = 1; if CrossDown(C,LL) Then T = -1; if Bdate == Bdate[3] Then { if T == 1 and CountIf(C > HH and C > O and C > C[1],3) == 3 Then { if entry < 1 Then Buy("b1"); Else ExitShort(); } if T == -1 and CountIf(C < LL and C > O and C > C[1],3) == 3 Then { if entry < 1 Then Buy("b2"); Else ExitShort(); } if T == 1 and CountIf(C > HH and C < O and C < C[1],3) == 3 Then { if entry < 1 Then Sell("s1"); Else ExitLong(); } if T == -1 and CountIf(C < LL and C < O and C < C[1],3) == 3 Then { if entry < 1 Then Sell("s2"); Else ExitLong(); } } } } SetStopEndofday(151500);
프로필 이미지
흰둥이아빠
2022-07-06
1408
글번호 160500
시스템

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2022-07-06
243
글번호 160496
시스템
답변완료

수식 문의

아래는 일전에 도움을 주신, RSI의 과매도,과매수권을 캔들위에 표현하는 수식입니다. 이를 수정하여, RSI signal 의 과매도 과매수권을 캔들위에 표현하고 싶습니다. RSI signal = ma((RSI(RSI_Period)),시그널); 아래 수식의 rsi를 RSI signal로 수정하면 되지 않을까 싶은데 실력이 천박하여 이렇게 문의드립니다. 부탁 드립니다. 감사합니다. Input : Length(9); Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0),RSIV(0),Current(0); var : cnt1(0),current1(0),UpAmt1(0),DownAmt1(0),UpAvg1(0),DownAvg1(0),RSIv1(0); var : cnt2(0),current2(0),UpAmt2(0),DownAmt2(0),UpAvg2(0),DownAvg2(0),RSIv2(0); var : upPrice(0),dnPrice(0); If CurrentBar == 1 AND Length > 0 Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To Length - 1 Begin UpAmt = C[Counter] - C[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / Length; DownAvg = DownSum / Length; End Else If CurrentBar > 1 AND Length > 0 Then Begin UpAmt = C[0] - C[1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpAvg = (UpAvg[1] * (Length - 1) + UpAmt) / Length; DownAvg = (DownAvg[1] * (Length - 1) + DownAmt) / Length; End; If UpAvg + DownAvg <> 0 Then RSIv = 100 * UpAvg / (UpAvg + DownAvg); Else RSIv = 0; IF rsiv[1] >= 30 AND rsiv[1] <= 70 Then { for cnt1 = 0 to 100 { Current1 = C+PriceScale*cnt1; UpAmt1 = current1 - C[1]; If UpAmt1 >= 0 Then DownAmt1 = 0; Else Begin DownAmt1 = -UpAmt1; UpAmt1 = 0; End; UpAvg1 = (UpAvg[1] * (Length - 1) + UpAmt1) / Length; DownAvg1 = (DownAvg[1] * (Length - 1) + DownAmt1) / Length; If UpAvg1 + DownAvg1 <> 0 Then RSIv1 = 100 * UpAvg1 / (UpAvg1 + DownAvg1); Else RSIv1 = 0; IF rsiv1 >= 70 Then { upPrice = CURRENT1; cnt1 = 101; } } for cnt2 = 0 to 100 { Current2 = C-PriceScale*cnt2; UpAmt2 = current2 - C[1]; If UpAmt2 >= 0 Then DownAmt2 = 0; Else Begin DownAmt2 = -UpAmt2; UpAmt2 = 0; End; UpAvg2 = (UpAvg[1] * (Length - 1) + UpAmt2) / Length; DownAvg2 = (DownAvg[1] * (Length - 1) + DownAmt2) / Length; If UpAvg2 + DownAvg2 <> 0 Then RSIv2 = 100 * UpAvg2 / (UpAvg2 + DownAvg2); Else RSIv2 = 0; IF rsiv2 <= 30 Then { dnPrice = CURRENT2; cnt2 = 101; } } plot1(upPrice); plot2(dnPrice); }
프로필 이미지
부똘이
2022-07-06
1105
글번호 160495
지표

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2022-07-06
208
글번호 160486
지표
답변완료

수식 의뢰 드립니다!

안녕하세요! 수식을 좀 의뢰 드립니다! 항상 노고에 감사드립니다!
프로필 이미지
qha71
2022-07-06
1240
글번호 160485
지표

데로예스 님에 의해서 삭제되었습니다.

프로필 이미지
데로예스
2022-07-06
0
글번호 160484
지표

흰둥이아빠 님에 의해서 삭제되었습니다.

프로필 이미지
흰둥이아빠
2022-07-06
0
글번호 160478
시스템

흰둥이아빠 님에 의해서 삭제되었습니다.

프로필 이미지
흰둥이아빠
2022-07-06
0
글번호 160477
시스템
답변완료

함수요청

안녕하세요? 아래의 전략에 대해 스크립트 작성 요청드립니다. 국내선물 5분봉으로 일중거래를 하고자 합니다. 전영업일의 마지막봉(15시 45분 완성봉)의 저가가 20ma보다 크고 개장 후 첫봉(9시 5분 완성봉)의 고가는 20ma보다 작으면 익봉 시가에 매도 진입 전영업일의 마지막봉(15시 45분 완성봉)의 고가는 20ma보다 작고 개장 후 첫봉(9시 5분 완성봉)의 저가는 20ma보다 크면 익봉 시가에 매수 진입 20ma 상향돌파시 익봉시가에 매도청산 20ma 하향이탈시 익봉시가에 매수청산 당일 저점을 3번 이탈시 매도청산 (3번 이탈의 의미는 이탈->돌파->이탈->돌파->이탈입니다.) 당일 고점을 3번 돌파시 매수청산 (3번 돌파의 의미는 돌파->이탈->돌파->이탈->돌파입니다.) 15시 15분 강제청산
프로필 이미지
흰둥이아빠
2022-07-06
1534
글번호 160476
시스템