커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 재문의드립니다

아래 시스템 수식을 테스트해본 결과 청산신호가 38틱손실이 안 났는데도 청산되네요. 진입후 38틱 손실시에만 스취칭 되어야 되는데 진입후 시도때도없이 손실청산이 됩니다. 위에 시스템 성능보고서와 적용차트를 첨부하오니 확인후 수식재확인 수정좀 부탁드립니다. 진입후 38틱 손실일때만 스위칭되고,82틱수익청산일때에는 재진입 금지하는 수식. 이후 60일선 크로스 신호가 다시 출현시에만 진입하도록하는 자동매매수식.좀 부탁드립니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 부탁드립니다. ( 55944번입니다 ) > 안녕하세요 예스스탁입니다. var1 = ma(C,60); if MarketPosition == 0 and MarketPosition(1) != 1 and crossup(c,var1) Then buy("b"); if MarketPosition == 0 and MarketPosition(1) != -1 and CrossDown(c,var1) Then sell("s"); if MarketPosition == 1 then{ sell("bs",AtStop,EntryPrice-PriceScale*38); ExitLong("bp",AtStop,EntryPrice+PriceScale*82); } if MarketPosition == -1 then{ Buy("sb",AtStop,EntryPrice+PriceScale*38); ExitShort("sp",AtStop,EntryPrice-PriceScale*82); } 즐거운 하루되세요 > 55944번입니다 알러뷰 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다. > 도움주시는 덕분에 제대로된 시스템을 만드려고 도전하고 있습니다. 매번 감사합니다. 60일이평선을 골드크로스 또는 데드크로스시 첫번째봉종가에 한번만 진입후 38틱손실나면 스위칭(=자동청산후 반대로 재진입)하고, 82틱수익이면 자동청산후 재진입 금지하도록 하는 자동매매수식 (38틱손실과 82틱수익 자동청산되기 전에 60일이평선 크로스는 무시함) 위 자동매매시스템이 반복실행을 계속하도록 하는 자동매매수식 좀 부탁드립니다.
프로필 이미지
알러뷰
2017-12-21
113
글번호 115162
시스템

보인트지지 님에 의해서 삭제되었습니다.

프로필 이미지
보인트지지
2017-12-20
12
글번호 115161
지표
답변완료

부탁 드립니다,

도움 주심에 감사 드립니다. 다음 수식은 급등후 지지저항을 나타내기 위한 수평선입니다. 이것을 급락후 지지저항을 나타내기 위한 수식으로 수정 변경 부탁드리고자 합니다. 미리 감사 드립니다. INPUT:result(1); var:ab1(0),ab2(0),ab3(0),ab4(0),ab5(0),ab6(0); ab1=(dayhigh/dayclose(1)-1)*100; ab2=max(dayhigh(2),dayhigh(1),dayhigh); ab3=min(daylow(2),daylow(1),daylow); ab4=(ab2/dayclose(3)-1)*100; ab6=iff(DayClose>=dayopen and dayclose(1)>=dayopen(1) and dayclose(2)>=dayopen(2),1,0); if ab1>=result then var1=(dayhigh+ daylow)/2; if ab4>result and ab6>0 then var2=(ab2+ab3)/2; plot1(var1,"1양봉",red,def,0); plot2(var2,"3양봉",yellow,def,0);
프로필 이미지
yes
2017-12-21
141
글번호 115160
지표
답변완료

화면에 고점, 저점 등 표시해주는 텍스트 출력하기

안녕하세요. 오랜만에 다시 시작하려니 모르는것 투성이입니다.^^ 매수시에 저점(시작하는 지점), 고점, 저점, 고점 이렇게 N자형 파동이 만들어진다고 할때 파동을 연결하는 선을 그리고 싶은데 swinghigh, swinglow 함수가 고점, 저점 구할때 사용하는것은 알겠지만 직접 보면서 저점, 고점을 찾은 다음에 가격을 변수로 넣어서 고점, 저점을 연결하는 선을 그려주고 파동의 모양을 차트상에 그려주고 싶습니다. 다음과 같이 일단 시작하는 저점과 고점에 대한 표시를 텍스트로 다음과 같이 해봤습니다. # 해당 지점에 텍스트를 출력하는 기능으로 텍스트 함수 사용시 날짜 시간 등 필요한 부분이라서 다음과 같이 작성했습니다. input : L0(0), H0(0), L1(0), H1(0); # 순서대로 저점(시작하는 지점), 고점, 저점, 고점의 가격을 정의해주고 변수로 입력해줌 input : date_L0(0), date_H0(0), date_L1(0), date_H1(0); # 날짜 input ; time_L0(0), time_H0(0), time_L1(0), time_H1(0); # 시간 Text_New(date_L0(0),time_L0(0), L0(0), "A지점"); Text_New(date_H0(0),time_H0(0), H0(0), "B지점"); Text_New(date_L1(0),time_L1(0), L1(0), "C지점"); Text_New(date_H1(0),time_H1(0), H1(0), "D지점"); 위에 한것이 잘 되었는지는 모르겠지만 수식 작성하고 시스템으로 만들었는데 전략실행차트 띄우고 시스템 적용 아이콘 눌러보면 분명히 저장했는데 안 나오네요. 추가로 L0~H0, H0~L1, L1~H1 이렇게 선을 연결하는 수식도 부탁드립니다. 선을 연결해서 그려주는것은 어려운것은 아니겠지만 예전에 했던것 같은데 오랜만에 시작하려니 쉽지가 않네요. 추가로 L0~H0, H0~L1, L1~H1 이렇게 선을 연결하는 수식도 부탁드립니다. 참고하시라고 구리선물 차트 첨부해드립니다.
프로필 이미지
개냥이
2017-12-20
239
글번호 115159
시스템
답변완료

문의 드립니다.

안녕하세요 아래 파동 수식에서 한 파동이 완성되면 1. 완성된 파동의 진폭의 88%선(노랑색)을 파동고점에서 위로 표시 2. 완성된 파동의 진폭의 100%선(검정색)을 파동 고점에서 위로 표시 3. 완성된 파동의 진폭의 123.6%(빨강색)을 파동 고점에서 위로 표시 4. 완성된 파동의 진폭의 88%선*(노랑색)을 파동 저점에서 아래로 표시 5. 완성된 파동의 진폭의 100선(검정색)을 파동 저점에서 아래로 표시 6. 완성된 파동의 진폭의 123.6%선(파랑색)을 파동 저점에서 아래로 표시 이렇게 선을 나타내고 싶습니다. 그리고 각 선에 대한 수치를 오른쪽에 표시하고 싶습니다. 감사합니다. 참고로 차트를 첨부 합니다. ===================== Input:length(15); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""), TL_Val1(0),TL_Val2(0); Var:TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0),TL19(0),TL20(0); Var:TL21(0),TL22(0),TL23(0),TL24(0),TL25(0),TL26(0),TL27(0),TL28(0),TL29(0),TL30(0),mav(0),T(0); Array:고점[10,2](0),저점[10,2](0); 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] Then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } TL_SetSize(TL1,1); TL_SetColor(TL1,white); ============================
프로필 이미지
동해바다01
2017-12-21
156
글번호 115158
지표
답변완료

수식 재문의

그림1은 수정수식 차트인데 피라미딩이 안됩니다.(다른 변수를 입력해도 안됩니다) 진입수량, 피라미딩수 입력에 따라 될 수 있도록 부탁드립니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 피라미딩 수식 요청 > 안녕하세요 예스스탁입니다. input : HighLine(300.50),LowLine(300.00),n(3),시간(90000); input : 진입수량(1),피라미딩수(5),피라미딩누적총량수(5); var : HH(0),LL(0),gap(0),T(0),T1(0),Entry(0),tcond(false); gap = HighLine-LowLine; if Bdate != Bdate[1] Then Tcond = false; if (sdate != sdate[1] and stime >= 시간) or (sdate == sdate[1] and stime >= 시간 and stime[1] < 시간) Then{ Tcond = true; T = 0; T1 = TotalTrades; if O > highLine Then{ var1 = Ceiling(abs(O-HighLine)/Gap); HH = HighLine+gap*var1; LL = HH-gap; } else{ var1 = Floor(abs(O-HighLine)/Gap); HH = HighLine-gap*var1; LL = HH-gap; } } if Tcond == true then{ if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if T == 0 and crossup(C,HH) Then{ T = 1; var2 = HH; HH = var2+gap; LL = var2-Gap; } if T == 0 and CrossDown(C,LL) Then{ T = -1; var2= LL; HH = var2+Gap; LL = var2-Gap; } if T != 0 and crossup(C,HH) Then{ T = 1; var2 = HH; LL = var2-Gap; HH = var2+gap; if entry < n and MaxEntries < 피라미딩수 and MaxContracts < 피라미딩누적총량수 then buy("b",OnClose,def,진입수량); } if T != 0 and CrossDown(C,LL) Then{ T = -1; var2 = LL; HH = var2+Gap; LL = var2-Gap; if entry < n and MaxEntries < 피라미딩수 and MaxContracts < 피라미딩누적총량수 then sell("s",OnClose,def,진입수량); } } 즐거운 하루되세요 > 목마와숙녀 님이 쓴 글입니다. > 제목 : 피라미딩 수식 요청 > 변수조절창 피라미딩 기능 사용이 아래 수식과 충돌되는 부분이 있어 수식을 부탁드립니다. 1. 피라미딩 수식 추가 - 첫진입 후 설정 간격 line 추세 돌파 때 "n" 개씩만 피라미딩 - 1회 포함하여 모든 거래에서 피라미딩 작동 2. input 추가 - 피라미딩 수 : n개 - 피라미딩 누적총량수 : n개 항상 고맙습니다. *************************************************************************** 1)수식 내용 선물 가격 a입력 300.50 선물 가격 b입력 300.00 입력한 gap 0.50 대로 간격 line이 노트 가로줄 처럼 생기게 합니다. 가격이 출발하여 처음 터치하는 라인이 첫거래의 기준라인이 됩니다. 예를 들어 시가 299.95에서 300.00을 터치 그리고 300.50을 터치하면 buy 아래 라인 터치 없이 상승하여 305.50을 터치한 후 305.00을 아래로 터치하면 buy 청산, sell 진입 2) 수식 input : HighLine(300.50),LowLine(300.00),n(3),시간(90000); var : HH(0),LL(0),gap(0),T(0),T1(0),Entry(0),tcond(false); gap = HighLine-LowLine; if Bdate != Bdate[1] Then Tcond = false; if (sdate != sdate[1] and stime >= 시간) or (sdate == sdate[1] and stime >= 시간 and stime[1] < 시간) Then{ Tcond = true; T = 0; T1 = TotalTrades; if O > highLine Then{ var1 = Ceiling(abs(O-HighLine)/Gap); HH = HighLine+gap*var1; LL = HH-gap; } else{ var1 = Floor(abs(O-HighLine)/Gap); HH = HighLine-gap*var1; LL = HH-gap; } } if Tcond == true then{ if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if T == 0 and crossup(C,HH) Then{ T = 1; var2 = HH; HH = var2+gap; LL = var2-Gap; } if T == 0 and CrossDown(C,LL) Then{ T = -1; var2= LL; HH = var2+Gap; LL = var2-Gap; } if T != 0 and crossup(C,HH) Then{ T = 1; var2 = HH; LL = var2-Gap; HH = var2+gap; if entry < n then buy(); } if T != 0 and CrossDown(C,LL) Then{ T = -1; var2 = LL; HH = var2+Gap; LL = var2-Gap; if entry < n then sell(); } }
프로필 이미지
목마와숙녀
2017-12-21
155
글번호 115148
시스템

좌오비우오비 님에 의해서 삭제되었습니다.

프로필 이미지
좌오비우오비
2017-12-20
1
글번호 115146
시스템
답변완료

아래 수식을 부탁드립니다.

일일히 답변 주심에 감사드립니다. 아래 신호들을 차트에 표시하는 수식을 부탁드립니다. CrossUp(MACD(shortPeriod,longPeriod),eavg(MACD(shortPeriod,longPeriod),sigPeriod)) -shortPeriod : 12 - longPeriod :26 - sigPeriod : 9 Crossup(CCI(Period), -100) - Period : 20
프로필 이미지
자아준
2017-12-20
143
글번호 115134
강조
답변완료

수식 부탁드립니다.

아래 조건은 키움의 수식입니다. 아래의 조건을 1번이라도 만족하는 종목을 검색하는 식으로서 각 조건을 만족하는 회수를 10일 기간 동안 누적 시켜서 표시가 되도록 부탁합니다. 가능한 변수는 외부 변수로 부탁드립니다. MACD(shortPeriod,longPeriod) < eavg(MACD(shortPeriod,longPeriod),sigPeriod) 이면서 MACD(shortPeriod,longPeriod)가 2봉이상 연속 상승하면서 eavg(MACD(shortPeriod,longPeriod),sigPeriod) 에 5%이내 근접하고 -shortPeriod : 12 - longPeriod :26 - sigPeriod : 9 CCI(Period) < -100 이면서 CCI(Period) 가 2봉 연속 상승하면서 -100에 5 %이내 근접하고 - Period : 20
프로필 이미지
자아준
2017-12-20
128
글번호 115133
검색