커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 변환부탁드립니다.

키움 신호수식 전환 부탁드립니다. 해당 조건만족시 ▲ 신호 발생하게 수식변경 부탁드립니다. 도움 감사합니다~ A=sum(avg(c,40,1)*1.3<=C and avg(거래대금/C, 40,1)*6<=avg(거래대금/C,2) and avg(((h-l)/((h+l)/2)),40,1)*1.5<=avg(((h-l)/((h+l)/2)),2) and C(1)<C); B=valuewhen(1,A(1)!=A,C); if(A(1)-A(11)>=1,B(1)<C and A(1)!=A,0)
프로필 이미지
유빈
2023-08-07
1289
글번호 171297
지표

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

프로필 이미지
회원
2023-08-07
0
글번호 171296
지표
답변완료

추세선 이용 가능 할까요?

* 더운날씨에 수고 많습니다. * 아래 수식에서 1.상선 과 하선에 가격을 좀 넣어 주십시요, 2.네모 박스 추세선을 굵기(3정도)하고 색상을 LIME 로 지정하는 수식 좀 부탁드립니다. * 그리고 추세선을 이용 하여 대각선으로 줄긋기 가능 한가요? 즉 사각형 네모 박스의 대각선이 필요 합니다. * 가로 대각선, 세로대각선 두개로 해주셔도 됨니다. ## 아래 수식 input : P(5); var : box(0); if H > highest(H,P-1)[1] and L < Lowest(L,P-1)[1] Then { box = Box_New(sDate[P-1],sTime[P-1],highest(H,P),sDate,sTime,lowest(L,P)); Box_SetColor(box,Blue); } * 매번 많은 도움에 고맙습니다.
프로필 이미지
요타
2023-08-07
1291
글번호 171270
지표
답변완료

양봉 종가 매수 다음날 시가매도 수식 부탁드립니다.

제가 만든 수식으로는 #매수 if MarketPosition ==0 and o<c Then Buy("b"); #청산 if MarketPosition == 1 and NextBarSdate != sdate Then ExitLong("bx1",atmarket); 이상하게 매수후 2일뒤에 청산되는 거처럼 나옵니다. 일봉상 양봉 종가 매수, 다음날 시가 매도 수식부탁드립니다.
프로필 이미지
오리만두
2023-08-07
1334
글번호 171267
시스템
답변완료

식 추가변경 부탁드립니다.

안녕하세요 아래 식 추가변경부탁드립니다. 1. 아래식은 매수 발생- 손절 발생(익절 발생) 하면 더이상 매매가 안되도록 되어있는데 2. 추가변경 부탁드리는 부분은 손절 발생시(익절 발생은 해당되지않음) 손절한 당일에만 한번 더 같은 설정가에 매수 발생 (익일에는 매수 발생 안됨) 매수 발생되었으면 손절or익절 발생(당일부터 발생, 손절or 익절가가 될때까지) 부탁드립니다. ------------------------------------------------------------------- input : 날짜(20230302),매수가격(1000),익절가격(1200),손절가격(800); if NextBarSdate >= 날짜 Then { if NextBarSdate != sDate Then { if MarketPosition == 0 and TotalTrades == 0 and NextBarOpen <= 매수가격 Then Buy("b1",AtStop,매수가격); } Else { if MarketPosition == 0 and TotalTrades == 0 and DayHigh < 매수가격 Then Buy("b",AtStop,매수가격); } if MarketPosition == 1 Then { ExitLong("bp",AtLimit,익절가격); ExitLong("bl",AtStop,손절가격); } }
프로필 이미지
스누피독
2023-08-07
1145
글번호 171266
시스템
답변완료

문의 드립니다

input:p1(48),Rsi변동폭(20); Var:j(0),상승(100),하락(-100),양방향(2),추세(0), 파동선(0),Rsi파동선(0),방향(0),RsiV(0),Rsi추세선(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0), Rsi고[20](0),Rsi저[20](0),Rsi고Bar[20](0),Rsi저Bar[20](0); RsiV =RSI(P1); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { Rsi고Bar[j] = Rsi고Bar[j] + 1; Rsi저Bar[j] = Rsi저Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 최근 고,저 갱신 #==========================================# If Rsi고[0] <= RsiV || Rsi고[0] == 0 || IsNaN(Rsi고[0]) == True Then { Rsi고[0] = RsiV; Rsi고Bar[0] = 0; } Else Rsi고Bar[0] = Rsi고Bar[0] + 1; If Rsi저[0] >= RsiV || Rsi저[0] == 0 || IsNaN(Rsi저[0]) == True Then { Rsi저[0] = RsiV; Rsi저Bar[0] = 0; } Else Rsi저Bar[0] = Rsi저Bar[0] + 1; If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then { 고[0] = H; 고Bar[0] = 0; } Else 고Bar[0] = 고Bar[0] + 1; If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then { 저[0] = L; 저Bar[0] = 0; } Else 저Bar[0] = 저Bar[0] + 1; #==========================================# # 추세방향 결정 #==========================================# If Rsi저[0][1] + Rsi변동폭 > RsiV[1] && Rsi저[0][1] + Rsi변동폭 <= RsiV Then 방향 = 상승; If Rsi고[0][1] - Rsi변동폭 < RsiV[1] && Rsi고[0][1] - Rsi변동폭 >= RsiV Then 방향 = 하락; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 방향[1] == 하락 && 방향 == 상승 Then { For j = 18 DownTo 1 { Rsi저[j+1] = Rsi저[j]; Rsi저Bar[j+1] = Rsi저Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RsiV; Rsi저Bar[0] = 0; Rsi고[0] = RsiV; Rsi고Bar[0] = 0; 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; 고[0] = H; 고Bar[0] = 0; } Else If 방향[1] == 상승 && 방향 == 하락 Then { For j = 18 DownTo 1 { Rsi고[j+1] = Rsi고[j]; Rsi고Bar[j+1] = Rsi고Bar[j]; 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RsiV; Rsi고Bar[0] = 0; Rsi저[0] = RsiV; Rsi저Bar[0] = 0; 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; 저[0] = L; 저Bar[0] = 0; } Else If 방향[1] == 하락 && 방향 == 하락 Then { If Rsi고[1] < Rsi고[0] && Rsi고[0][1] - Rsi변동폭 <= RsiV[1] && Rsi고[0][1] - Rsi변동폭 > RsiV Then { Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RsiV; Rsi고Bar[0] = 0; } If 고[1] < 고[0] && 고[0] > H Then { 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; } } Else If 방향[1] == 상승 && 방향 == 상승 Then { If Rsi저[1] > Rsi저[0] && Rsi저[0][1] + Rsi변동폭 >= RsiV[1] && Rsi저[0][1] + Rsi변동폭 < RsiV Then { Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RsiV; Rsi저Bar[0] = 0; } If 저[1] > 저[0] && 저[0] < L Then { 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; } } If Rsi파동선[1] != Rsi파동선 Then{ if 방향 == 하락 and Rsi파동선 >= 65 then sell(); if 방향 == 상승 and Rsi파동선 <= 35 then buy(); } ---------------------- 위 수식어에 추가 하고자 합니다. 1. 이동평균선 300선 위에서 매도 신호는 매수로 전환 2. 이동평균선 300선 아래에서 매수 신호는 매도로 전환 3. 익절 100틱 손절 100틱 4. 위 수식어를 해외선물에 적용하고 있습니다. 중복체결로 계약수가 늘어 나는데 수식어나 설정하는 별도의 방법이 있는지 문의 드립니다.
프로필 이미지
푸른
2023-08-08
959
글번호 171265
시스템
답변완료

수식문의

수고하십니다. 아래수식으로 30분기준,검색기간 500봉으로 검색하였는데 검색이 안됩니다. 수정 또는 조언 부탁드립니다 Input : DayPeriod(20),P1(60),P2(120),NC(12), Mult(1.01),SV(100000);//Nc=60일선과 120일선 사이의 횡보캔들 수 Var : T(0),S(0),Cnt(0),Sum(0),Dayma(0); Sum = 0; For cnt = 0 to Dayperiod-1 { Sum = Sum + DayClose(Cnt); } Dayma = Sum/DayPeriod; Var1 = Ma(C,P1); Var2 = Ma(C,P2); if CrossDown(C,Var1) Then { T = 1; if Var1 > Var2 and T[1] == -1 and Index <= S+NC and C >= DayClose(1)*Mult and C > Dayma and C>O and DayVolume(0)>SV Then Find(1); } if CrossDown(c,var1) Then { T = -1; S = Index; } if T == -1 and C < Var2 Then T = -2;
프로필 이미지
심홍
2023-08-07
751
글번호 171264
종목검색
답변완료

해외선물 긴급상황

나스닥 골드 오일... 호가창과 캔들이 따로놀아요..... 호가는 정상 / 캔들은 멈춰있어요 도와주세요 껐다켜도 안되네요
프로필 이미지
joojoo
2023-08-07
738
글번호 171263
시스템
답변완료

다른 신호 손절개별로

안녕하세요. 아래와 같이 알려주신대로 다른 신호에 대한 손절을 구분해서 문제없이 사용해오고 있었는데, 두 신호가 동시에 발생해서 진입하게 되는 경우 각각 손절이 작동하지 않는것을 발견했습니다. latestEntryName이 애매해져서 그런거 같은데, 다르게 구분하는 방법이 없을까요? ---------------------------------------------------------- if CurrentContracts > CurrentContracts[1] or MarketPosition != MarketPosition[1] Then { if LatestEntryName(0) == "A" Then var6 = LatestEntryPrice(0); if LatestEntryName(0) == "B" Then var7 = LatestEntryPrice(0); } if var6 > 0 Then ExitShort("A손절",AtStop,var6*(1+cut_s1/100),"A"); if var7 > 0 Then ExitShort("B손절",AtStop,var7*(1+cut_s2/100),"B");
프로필 이미지
건곤대
2023-08-07
755
글번호 171262
사용자 함수