커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

항셍에도 적용되게 지표 수정좀 부탁드립니다.

Var : value1(0) , value2(0), value3(0) ; value1 = DayHigh(1); value2 = DayLow(1); value3 = (value1+value2)/2; Plot1(value1, "상한"); Plot2(value2, "하한"); Plot3(Value3, "중간"); 전일 고점 저점 중간점을 선으로 표시되게 했는데 항셍은 3부타임으로 나뉘어있어서 적용이 잘 안되네요 두가지 버전으로 부탁드릴수있을까요? 1. 10시15분 장시작~ 00시45분 장 종료까지를 하루로 표현한것 2. 1부(10시15분~13시) 2부(14시~17시30분) 3부(18시15분~00시45분)를 각각 하루로 보고 즉 하루에 3번의 저점 고점이 표시되게 표현됐으면 좋겠습니다.
프로필 이미지
dbs1428
2017-04-19
224
글번호 108940
지표
답변완료

수식 문의 드립니다.^^

항상 감사드립니다. ^^ 수식 부탁 문의 드립니다. ========= 당일 중심값 = (Dayhigh()+Daylow())/2 당일 중심값 위에서만, 특정이평선 (ex,5평선,20평선)의 기울기가 양에서 음으로 기울어지는 순간 소리가 울리고 봉위에 표시가 되었으면 합니다. 물론, 당일 중심값 아래에서만 특정 이평선의 기울기가 음에서 양으로 기울어지는 순간에도 소리가 울리고 봉위에 표시가 되는 수식을 부탁드립니다. ========= 봉위에 표시가 어려우면, 소리라도 나는 수식이라면 감사드립니다. ^^
프로필 이미지
하늘선물
2017-04-19
201
글번호 108933
지표
답변완료

수식 의뢰드립니다

키움수식을 에스로 변환부탁드립니다 (참조그림 올려요) 국선 타임프레임 ; 5분 매수: 스토캐스틱(5,3,3)이 50아래에서 시그날 골든크로스하고 지수이평 4와 6이평이 골든크로스시 매수 시그널이 나오게 부탁드립니다 매도: 두 이평이 데드크로스하거나 스토가 80아래로 떨어질 때 매도 시그널이 나오도록 해주세요 <키움용 밴드 수식> 수식1 스토변수값 5, 3, 3 cond=Stochasticsslow(sto1,sto2)<50 and crossup(Stochasticsslow(sto1,sto2),eavg(Stochasticsslow(sto1,sto2),sto3)); valuewhen(1,cond,eavg(c,6)) 부탁드려요!
프로필 이미지
qha71
2017-04-19
301
글번호 108932
시스템
답변완료

안녕하세요

아래 고점저점 처리 식에서 고점 과 저점을 결정짖는 자리가 어디입니까? 주석좀 부탁드립니다. 배열 대로 진행해서 여기가 저점이다 고점이다를 인식해서 그값을 가지개 되는 부분(확정되어지는) 확정되어서 그때의 주가를 가지게 되는부분 Input:length(50); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),T(0), Text1(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); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1], sDate[eBar],sTime[eBar],고점[1,1]); } } 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); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1], sDate[eBar],sTime[eBar],저점[1,1]); } } TL_SetSize(TL1,2); TL_SetColor(TL1,red);
프로필 이미지
자라도
2017-04-19
201
글번호 108931
지표
답변완료

수식문의

첨부와 같은 지표수식을 부탁드립니다 1. 고점선: MACD-sig 데드크로스(b)면 직전 골든크로스(a) 부터 데드크로스(b) 사이의 고점표시(Hv1)를 다음 데드크로스(d) 까지 2. 저점선: MACD-sig 골든크로스(c)면 직전 데드크로스(b) 부터 골든크로스(c) 사이의 저점표시(Lv1)를 다음 골든크로스(e) 까지 첨부는 120틱 차트, MACD short(12), long(26),sig(9) 입니다. 감사합니다
프로필 이미지
정각도원
2017-04-18
289
글번호 108930
지표
답변완료

수정부탁드립니다

수고많으십니다 아래식으로 구현되는 파동선이 메인차트300틱차트에서 120틱(data2)파동선이 나타나도록 수정부탁드립니다 감사합니다 Input:length(10),종가사용여부(0),파동선두께(2),수치표시(1); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 1); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,RED); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLUE); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }
프로필 이미지
bestkim
2017-04-18
217
글번호 108929
지표
답변완료

청산한 프로그램의 수익여부

안녕하세요? 프로그램에서 오늘 청산했는지 , 했으면 수익 이 있었는지를 확인 가능한가요?
프로필 이미지
대가들의매매
2017-04-18
191
글번호 108928
시스템
답변완료

수정 부탁합니다

아래수식에서 #, per1과 per2 진입횟수를 각기 달리 적용하고자 진입횟수 수식추가(변수)해봤는데 per2의 신호발생이 안되거나 시작시간 적용도 불규칙합니다, 잘못된점 수정해주시면 좋겠습니다.(per1의 진입횟수 조절기능과 같이 per2도 별도조절 가능하길 원합니다) #, 또한 per2의 매매시간 적용도 조절가능하면 좋겠습니다,수정부탁합니다. $, 언제나 늘 감사합니다. input : Per1(18.2),시작시간(103000),종료시간(230000),당일최대진입횟수(7),x(5),x1(5); input : Per2(38.2),시작시간1(103000),종료시간1(30000),당일최대진입횟수1(3); Var : S1(0),S2(1),S3(1),S4(1),Tcond(false),T1(0),entry(0),Tcond1(false); if 시작시간 == 0 and sdate != sdate[1] Then{ Tcond = true; T1 = TotalTrades; } if 시작시간 > 0 and (stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간)) Then{ Tcond = true; T1 = TotalTrades; } if 종료시간 == 0 and sdate != sdate[1] Then{ Tcond = false; if MarketPosition == 1 Then exitlong(); if MarketPosition == -1 Then ExitShort(); } if 종료시간 > 0 and (stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간)) Then{ Tcond = false; if MarketPosition == 1 Then exitlong(); if MarketPosition == -1 Then ExitShort(); } if 시작시간1 == 0 and sdate != sdate[1] Then{ Tcond1 = true; } if 시작시간1 > 0 and (stime == 시작시간1 or (stime > 시작시간1 and stime[1] < 시작시간1)) Then{ Tcond1 = true; } if 종료시간1 == 0 and sdate != sdate[1] Then{ Tcond1 = false; if MarketPosition == 1 Then exitlong(); if MarketPosition == -1 Then ExitShort(); } if 종료시간1 > 0 and (stime == 종료시간1 or (stime > 종료시간1 and stime[1] < 종료시간1)) Then{ Tcond1 = false; if MarketPosition == 1 Then exitlong(); if MarketPosition == -1 Then ExitShort(); } if MarketPosition == 0 Then entry = TotalTrades -T1; Else entry = (TotalTrades -T1)+1; S1 = (dayhigh(0)+daylow(0))/2; S2 = (dayhigh(1)+daylow(1))/2; S3 = dayhigh(1); S4 = daylow(1); var1 = dayclose(1)+abs(S3-S4)*(Per1/100); var2 = dayclose(1)-abs(S3-S4)*(Per1/100); var3 = dayclose(1)+abs(S3-S4)*(Per2/100); var4 = dayclose(1)-abs(S3-S4)*(Per2/100); if MarketPosition == 0 and Tcond == true and entry < 당일최대진입횟수 Then{ if NextBarOpen <= var2 Then buy("b1",AtStop,var2,2); Else buy("b2",Atlimit,var2,2); if NextBarOpen >= var1 Then sell("s1",AtStop,var1,2); Else sell("s2",Atlimit,var1,2); } if MarketPosition == 0 and Tcond == true and entry >= 1 and entry < 3 and (IsExitName("bx",1) or IsExitName("sx",1)) Then{ if NextBarOpen <= var2 Then buy("b11",AtStop,var2,2); Else buy("b22",Atlimit,var2,2); if NextBarOpen >= var1 Then sell("s11",AtStop,var1,2); Else sell("s22",Atlimit,var1,2); } if MarketPosition == 0 and Tcond1 == true and entry < 당일최대진입횟수1 Then{ if NextBarOpen <= var4 Then buy("b3",AtStop,var4,2); Else buy("b4",Atlimit,var4,2); if NextBarOpen >= var3 Then sell("s3",AtStop,var3,2); Else sell("s4",Atlimit,var3,2); } if MarketPosition == 0 and Tcond1 == true and entry >= 1 and entry < 3 and (IsExitName("bx",1) or IsExitName("sx",1)) Then{ if NextBarOpen <= var4 Then buy("b33",AtStop,var4,2); Else buy("b44",Atlimit,var4,2); if NextBarOpen >= var3 Then sell("s33",AtStop,var3,2); Else sell("s44",Atlimit,var3,2); } if MarketPosition == 1 Then{ if CurrentContracts == MaxContracts and highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*5 Then exitlong("bx",AtStop,EntryPrice+x*PriceScale); exitlong("bx1",atlimit,EntryPrice+PriceScale*27,"",1,1); exitlong("bx2",atlimit,var1,"",1,1); if CurrentContracts < MaxContracts Then exitlong("bx3",AtStop,EntryPrice+x1*PriceScale,"",1,1); } if MarketPosition == -1 Then{ if CurrentContracts == MaxContracts and Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*5 Then ExitShort("sx",AtStop,EntryPrice-x*PriceScale); ExitShort("sx1",atlimit,EntryPrice-PriceScale*27,"",1,1); ExitShort("sx2",atlimit,var2,"",1,1); if CurrentContracts < MaxContracts Then ExitShort("sx3",AtStop,EntryPrice-x1*PriceScale,"",1,1); } SetStopLoss(PriceScale*15,PointStop);
프로필 이미지
회원
2017-04-18
196
글번호 108927
시스템
답변완료

상한가 종목검색식이 어떻게되나요?

당일 상한가 검색식은 어떻게 짜면 좋을까요?
프로필 이미지
stockric
2017-04-18
218
글번호 108926
종목검색