커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

진입만 발생

안녕하세요.. 다음이 가능한지 문의드립니다. 예를들어 5분봉 if C > ma(C,20) then Buy(); if C < ma(C,20) then Sell(); 이라는 수식이 있을 때 위의 수식은 리버스이므로 진입과 청산이 동시에 발생하는데, 여기서 청산부분은 제외하고 해당조건이 만족되면 진입부분만 계속 발생하게 할 수 있는 방법이 있는지요? --> 단, 해당 조건이 만족하는 구간에서 진입은 첫번째 만족봉 한번만 합니다. --> 피라미딩은 가능합니다. 그럼 부탁드리겠습니다. 감사합니다.
프로필 이미지
새로운세상
2011-05-12
592
글번호 38518
시스템
답변완료

질문드립니다~

일반종목 차트의 분봉에다가 걸어놓고 매매하는 식인데요. 여기에다가 일봉상 전일종가대비 당일시가가 2%~5% 사이일때만 아래식의 1차 매수가 일어나게 하고 싶습니다. 수식은 분봉에다가 걸어놓을꺼구요. 1차매수가 일봉상 전일종가대비 당일시가가 2~5%일때 작동하게 하고 싶습니다. 2차매수와 3차매수는 상관없습니다. 그리고 1차매수시간을 09~14시 까지안에서만 일어나게 하는 수식을 넣고 싶습니다. input : P1(10),Capital(3000000); var : sumv(0),count(0),mav(0),EntryP(0); Condition1 = date==exitdate(1) And MarketPosition(1) == 1; #진입수량 if CodeCategory == 1 Then{ if BasePrice < 50000 Then{ Var1 = int(int((Capital*0.1)/C)/10)*10; Var2 = int(int((Capital*0.2)/C)/10)*10; Var3 = int(int((Capital*0.7)/C)/10)*10; } Else{ Var1 = int((Capital*0.1)/C); Var2 = int((Capital*0.2)/C); Var3 = int((Capital*0.7)/C); } } if CodeCategory == 2 Then{ Var1 = int((Capital*0.1)/C); Var2 = int((Capital*0.2)/C); Var3 = int((Capital*0.7)/C); } #일봉이평 sumV = 0; for count = 1 to p1-1 { sumV = sumV+DayClose(count); } maV = (sumV+dayopen()) / p1; #1차매수 if condition1 == false Then{ if MarketPosition == 0 and L <=mav and H >= mav Then buy("b1",OnClose,def,var1); } if MarketPosition == 1 Then{ #매수후 분할수량계산 if CurrentContracts > CurrentContracts[1] Then{ EntryP = C[1]; if CodeCategory == 1 Then{ value1 = int(int((CurrentContracts*0.5)/10)*10); value2 = CurrentContracts-value1; } if CodeCategory == 2 Then{ value1 = int(CurrentContracts*0.5); value2 = CurrentContracts-value1; } } #2차매수 if CurrentEntries == 1 and CrossDown(c,EntryPrice*0.97) then buy("b2",OnClose,def,var2); #3차매수 if CurrentEntries == 2 and CrossDown(c,EntryPrice*0.95) then buy("b3",OnClose,def,var3); #1차매수 후 청산 if MaxEntries == 1 Then{ if CurrentContracts == MaxContracts Then ExitLong("bx1_1",AtLimit,EntryPrice*1.05,"",value1,1); if CurrentContracts < MaxContracts Then{ ExitLong("bx1_2",AtLimit,EntryPrice*1.10,"",value2,1); ExitLong("bx1_3",AtStop,EntryPrice*1.02); } } #2차매수 후 청산 if MaxEntries == 2 Then{ if CurrentContracts == MaxContracts Then ExitLong("bx2_1",AtLimit,EntryP*1.07,"",value1,1); if CurrentContracts < MaxContracts Then{ ExitLong("bx2_2",AtLimit,EntryP*1.12,"",value2,1); ExitLong("bx2_3",AtStop,EntryP*1.05); } } #3차매수 후 청산 if MaxEntries == 3 Then{ if CurrentContracts == MaxContracts Then ExitLong("bx3_1",AtLimit,EntryP*1.05,"",value1,1); if CurrentContracts < MaxContracts Then{ ExitLong("bx3_2",AtLimit,EntryP*1.10,"",value2,1); ExitLong("bx3_3",AtStop,EntryP*1.04); } } #손절 exitlong("loss",AtStop,EntryPrice*0.90); }
프로필 이미지
부자청년28
2011-05-12
542
글번호 38516
시스템
답변완료

다시 질문드립니다 ㅠㅠ

안녕하세요 수고가 많으십니다!! 제가 어제도 여쭈었는데 그땐 이것이 사용자 함수가 포함되어있어서 바꿔주실수가 없다고 하셨는데 위의 것이 _IsNewBar_1m 이 파일이고 Inputs: Interval(NumericSimple); Variables: IsNewBar(false), Hour(0), Minute(0), CheckTime(0), PrevTime(0); IsNewBar = false; if Date <> Date[1] then begin Hour = IntPortion(TimeToMinutes(Time) / 60); Minute = TimeToMinutes(Time) - Hour * 60; if Mod(Minute, Interval) = 0 then CheckTime = MinutesToTime(Hour * 60 + (IntPortion(Minute / Interval) - 1) * Interval) else CheckTime = MinutesToTime(Hour * 60 + IntPortion(Minute / Interval) * Interval); end; if Time <> PrevTime then begin PrevTime = Time; while Time >= CalcTime(CheckTime, Interval) begin if Time[1] > CheckTime then IsNewBar = true; CheckTime = CalcTime(CheckTime, Interval); end; end; 밑의 이 파일이 _SlowD_1m입니다. 이렇게 있으면 변환할수 있지 않을까요???;; 이게 안된다면 사용자함수? 를 지정할 수 있는 방법을 좀 알려주시거나 아니면 사용자함수 부분은 빼고라도 변환을 좀 부탁드립니다!! Inputs: Interval(NumericSimple), Length(NumericSimple); Variables: Factor(.5), BarCount(0), Counter(0); Arrays: FastDArray[2](0), SlowDArray[2](0); if _IsNewBar_1m(Interval) then begin BarCount = BarCount + 1; for Counter = 2 downto 1 begin FastDArray[Counter] = FastDArray[Counter - 1]; SlowDArray[Counter] = SlowDArray[Counter - 1]; end; if BarCount <= 1 then begin FastDArray[0] = FastK(Length * Interval); SlowDArray[0] = FastDArray[0]; end else begin FastDArray[0] = FastDArray[1] + (Factor * (FastK(Length * Interval) - FastDArray[1])); SlowDArray[0] = ((SlowDArray[1] * 2) + (FastDArray[1] + (Factor * (FastK(Length * Interval) - FastDArray[1])))) / 3; end; end; if BarCount > 0 then _SlowD_1m = SlowDArray[0] else _SlowD_1m = 0;
프로필 이미지
sdfxwe
2011-05-12
569
글번호 38515
시스템

하루우유 님에 의해서 삭제되었습니다.

프로필 이미지
하루우유
2011-05-12
41
글번호 38514
지표
답변완료

질문드립니다

만약 1시에서 2시 사이에 매수가 있었으면 2시에 매수청산하고 2시에서 3시 사이에 진입이 되었으면 3시에 매수청산을 한다를 어떻게 표현하나요?
프로필 이미지
이지컷
2011-05-12
482
글번호 38513
시스템
답변완료

setstoptrailing 청산조건

질문 1) 수식을 setstoptrailing(5,10,percentstop)으로 작성하고, 강제청산을 목표수익 20%, 최소가격변화 5% 로 설정하였을 경우에, 실행우선순위가 어떻게 되는지요.. 질문 2) .강제청산에서 청산시점을 '조건만족시 즉시'로 선택 .시뮬레이션으로 setstoptrailing(5,10,percentstop)을 실행 .진입분봉의 고가가 setstoptrailing의 floor 10%보다는 크되 .진입분봉의 종가가 setstoptrailing의 drop 5%보다 큰 6% 위와 같이 가정할 경우 시뮬레이션 청산가격은 수식과 동일한 값으로 실행되는지요.. 질문 3) 위 질문2)에서 .진입분봉의 종가가 setstoptrailing의 drop 5%보다 작은 4% 인 경우에는 청산값이 어떻게 되는지요.. 요청사항: setstoptrailing이 처음접하는 경우에는 이해하기가 쉽지가 않습니다. 관련된 세부사항이 일괄적으로 정리된 자료가 있다면 이해하는데 많은 도움이 되겠습니다. 감사합니다.
프로필 이미지
빅터
2011-05-12
676
글번호 38512
시스템
답변완료

질문드립니다^^

fx 1계약 매도 매수 진입후 최고가격 대비 15핍하락 하면 강제청산되고 (그러니깐 20핍이하만 해당되겠죠) 여기에 20핍이상 수익이 났을 경우에는 5핍이상 하락하면 청산되는 예쁜식이 있는지요(30핍수익이 나고 있고 있나가 5핍 떨어지면 청산) 그리고 08~12 15~20시 23~03시 조건만족시 특정 시간대만 거래가 가능한지 가능하면 식 부탁드립니다^^ 항상 성실한 답변 감사합니다.
프로필 이미지
조성댁
2011-05-11
608
글번호 38511
시스템
답변완료

질문할게요

리버스 시스템으로 하는대 옵션에다가 할경우 리버스라서 매도도 나와서 증거금이 너무너무너무 많이필요해서 매도는 없이 매수만 뜨게끔 하구싶은대요 밑에 매도식을 삭제하니까 매수했다가 청산은 않하고 그대로 있내요 즉 월래대로 매수를 했다가 매도로바껴서 매도 시그널이 나오늘것을 청산으로 변경하구싶어요 if stime >= j and var7>var7[1] and var7[1]>var7[2] and var6>var6[1] and value4>value4[1] and var3>var3[1] and var3[1]>var3[2] and var5>var5[1] and var5[1]>var5[2] and var11>r then buy("BUY"); if stime >= j and var7<var7[1] and var7[1]<var7[2] and var6<var6[1] and value4<value4[1] and var3<var3[1] and var3[1]<var3[2] and var5<var5[1] and var5[1]<var5[2] and var11>r then sell("SELL");
프로필 이미지
먹튀르기니
2011-05-12
512
글번호 38510
시스템

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

프로필 이미지
회원
2011-05-11
256
글번호 38507
지표