커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

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

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

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

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

질문드립니다.

늘 친절한 답변 감사드립니다. 이번에 다른 코드와 같은 질문이 아니라 이런것도 말씀해주실 지는 모르겠습니다만.. 먼저 사용자 함수입니다. 개인적인 사견으로는 결국 시장이 변하기때문에 머신러닝 방식으로 가는게 맞다고 생각하는 1人입니다. 그렇다면 if ~~~~~~~~~~~~~~ then 이런 문장으로 짜다보면 시인성이나 효율성이나 모든게 내가 만들어놓은 함수로 정리해놓은것보다 떨어질 것으로 보이는데요. 운영자분들도 자기만의 함수를 쓰시고 있을터인데 빅데이터 방식으로 만들었을때 코드가 길어질 수록 컴퓨터의 성능을 더 요하는지요? 2. 중복신호와 관련해서입니다. if condition1 then이라는 신호와 if condition2 then이라는 신호가 중복되어서 떴습니다. 그러면 결국 1과2중에 더 양질의 신호를 저울질 해서 우선권을 두어야 할텐데요. if condition1 then else condition2 이런식으로 짜서 중복신호를 없애는거 외엔 방법이 없는건가요?
프로필 이미지
stockric
2017-04-18
195
글번호 108925
사용자 함수
답변완료

수식문의

분봉차트에서 개장 후 n번째 이후의 봉부터 신호적용
프로필 이미지
정각도원
2017-04-18
167
글번호 108920
시스템
답변완료

주봉 데이타 지표

종목을 추가하지 않고 3분봉 챠트(틱챠트에서) 1) 주봉의 20일 평균선 2) 이전 13주 동안 고점과 저점 을 표시하고자 합니다. 도움 부탁드립니다
프로필 이미지
스로우
2017-04-18
189
글번호 108915
지표
답변완료

왜 이 수식이 작동을 잘 안할까요?

안녕하세요 관리자님. 이동평균선의 기울기에 따라서 색깔을 다르게 하고싶은데.. 잘안되네요 input : Mid(20); var : 이평(0); 이평 = Ma(C, Mid); if 이평[0] > 이평[1] then plot1(이평[0],"매수",RED); if 이평[0] < 이평[1] then plot2(이평[0],"매도",BLUE); 이렇게 하면 될거같은데 안되네요.. 알려주시면 감사하겠습니다 !!
프로필 이미지
갑부파일럿
2017-04-18
185
글번호 108914
지표
답변완료

수식 부탁드립니다

1. 오전 9시부터 오전 11시까지 천정에서 1포 하락한 상태에서 양봉 발생시 매수 오전 9시부터 오전 11시까지 바닥에서 1포 상승한 상태에서 음봉 발생시 매도 2. 당일 중심에서 1포 하락한 상태에서 양봉 발생시 매수,중심을 아래에서 위로 터치 청산 당일 중심에서 1포 상승한 상태에서 음봉 발생시 매도,중심을 위에서 아래로 터치 청산 3. 당일 중심에서 1포 하락한 상태에서 양봉 발생시 매수,중심을 아래에서 위로 터치 매도 당일 중심에서 1포 상승한 상태에서 음봉 발생시 매도,중심을 위에서 아래로 터치 매수 감사합니다
프로필 이미지
회원
2017-04-19
204
글번호 108908
시스템
답변완료

ask

아래 수식은 kospi200선물이 대상이며 상승 진입을 2번 시도하는 내용입니다. 발생하는 신호(진입과 청산 공통)에 바로 포지션을 잡거나 청산하는 것이 아니고 한차례 눌림과 꺽인 고점 돌파를 필터로 추가하는 수식을 부탁드립니다. 기존 신호에 필터를 적용하므로 진입과 청산은 늦을 수 있으나 FAKE로 인한 진입과 청산을 피하고자 합니다. *1차 진입 -눌림 : 진입신호 후 꺾인 고점에서 0.20(4틱) 이상이어야 합니다. -고점 돌파 : 꺾인 고점을 0.20(4틱) 이상 돌파하면 진입 *1차 청산 -눌림 : 청산신호 후 꺾인 고점에서 0.20(4틱) 이상이어야 합니다. -고점 돌파 : 꺾인 고점을 0.20(4틱) 이상 돌파하면 청산 **2차 진입도 1차 프로세스와 같습니다. ***변수입력 조절에 눌림(R)과 고점돌파(H)를 입력할 수 있게 해주세요. **** 0.2PT 이상의 눌림도 없이 1.0PT 이상의 강한 추세가 발생할 수 있습니다. 진입보다는 청산이 문제인데 시스템설정창의 청산을 이용하면 수식과 충돌없이 사용할 수 있는 지 의견을 구합니다. 항상 고맙습니다. ********************************** input : b1(11),b2(13),X1(13),X2(13); var : T1(0),entry(0),LL(0),EH(0); if Bdate != Bdate[1] Then T1 = TotalTrades; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 and C >= daylow+PriceScale*B1 and C[1] < daylow+PriceScale*B1 Then buy("b1"); if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] Then EH = H; if H > EH Then EH = H; if entry == 1 and C <= EH-PriceScale*X1 Then exitlong("bx1"); } if TotalTrades > TotalTrades[1] Then LL = L; if L < LL Then LL = L; if MarketPosition == 0 and entry == 1 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then buy("b2"); if MarketPosition== 1 and entry == 2 Then exitlong("bx3",AtStop,EntryPrice-PriceScale*13);
프로필 이미지
좌오비우오비
2024-09-02
203
글번호 108904
시스템