커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

감사합니다.

우선 감사드립니다. 이익 실현 및 손절매 후 일정기간 동안(예들 들면 손절매 후 15동안은 매수신호 발생하더라도 매수금지)은 자동매수주문을 금지하는 수식은 어떻게 되는지 궁금합니다. 감사합니다.
프로필 이미지
huhboo99
2013-09-09
151
글번호 67327
시스템
답변완료

식문의 드립니다

노고 많으십니다. 1. 매수: Positive Volume index (52)의 signal선이 기준선을 상향시 매수 2. 매도: Positive Volume index (52)의 signal선이 기준선을 하향시 매도 3. 매수: Positive Volume index (52)의 signal선이 0선을 상향시 매수 4. 매도: Positive Volume index (52)의 signal선이 0선을 하향시 매도 감사 드립니다.
프로필 이미지
회원
2013-09-08
166
글번호 67326
시스템
답변완료

수정 부탁 드립니다

수고 많으십니다 바로 밑에 식은 매수식이구요 매수식은 정상으로 돌아 가는거 같은데 매수식 아래레 매도식을 넣어 놨습니다 매도식은 y,x,q,w가 있는 맨 아래쪽 수식들이 반영이 되질 않는거 같습니다 보시고 한번 수정 부탁 드립니다 그리고 매수 매도 둘다 수식에 보시면 최초 매수쪽과 최초 매도 쪽 그리고 끝쪽에 보시면 z와 n값이 and로 묶여져 있습니다 둘중 하나만 만족해도 되도록 하고 싶습니다 특히 이쪽 부분 if MarketPosition == 1 and C <= DayLow+q and C < dayopen+w and C >= DayLow+N and C > dayopen+z Then{ if highest(h,BarsSinceEntry) >= EntryPrice+Y Then ExitLong("청산7",AtStop,highest(H,BarsSinceEntry)-x); } (q or w) and (n or z) 이렇게 되야 하거든요 요것도 같이 좀 부탁 드립니다 input : StartTime(90200); input : RSVValue(60); input : LossPoint(0.65),재매수횟수(10),재매수청산횟수(10),ProfitPoint(10); input : 청산양봉갯수(20),청산음봉갯수(3); input : z(1.35); input : N(1.75); input : y(3.7); input : x(3.7); input : q(3.7); input : w(3.7); var : cnt(0),count(0),rebuy(0),ReEL(0); var : cond1(false),cond2(false); input : RSIP(9),RSIvalue1(30),RSIvalue2(50); var : RSIV(0); RSIV = RSI(RSIP); //ma1 input : maPeriod1(7); var : MAv1(0); MAv1 = ma(C,maPeriod1); //ma2 input : maPeriod2(22); var : MAv2(0); MAv2 = ma(C,maPeriod2); //ma3 input : maPeriod3(29); var : MAv3(0); MAv3 = ma(C,maPeriod3); //ma4 input : maPeriod4(60); var : MAv4(0); MAv4 = ma(C,maPeriod4); //ma5 Input : maPeriod5(56); var : MAv5(0); MAv5 = ma(C,maPeriod5); //ma6 Input : maPeriod6(2); var : MAv6(0); MAv6 = ma(C,maPeriod6); //RSI input : rsiPeriod(3); var : RSV(0); RSV = RSI(rsiPeriod); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if date != date[1] Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매수") == true Then{ Rebuy = 0; ReEL = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("재매수") == true Then Rebuy = Rebuy+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매수청산4",1) == true Then ReEL = ReEL+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if stime >= StartTime and MarketPosition <= 0 and (count == 0 or (count > 0 and IsExitName("매수청산4",1) == false) or (count > 0 and countif(C < mav5,BarsSinceExit(1)) >= 1)) and C <= DayLow+N and MAv1 > MAv2 && MAv2 > MAv3 && MAv3 > MAv4 && RSV > RSVValue && C > MAv5 && C < dayopen+z Then { Buy("최초매수", OnClose, DEF); } if MarketPosition == 1 Then{ ExitLong("매수청산2",AtStop,EntryPrice-Losspoint); ExitLong("매수청산3",AtLimit,EntryPrice+Profitpoint); } if MarketPosition == 1 and C < MAv5 Then Exitlong("매수청산1"); /* if count >= 1 Then{ if MarketPosition == 0 and (IsEntryName("최초매수",1) == true or IsEntryName("재매수",1) == true) and IsExitName("매수청산4",1) == True and BarsSinceExit(1) >= 3 and (Countif(cond1 == true,진입양봉갯수) == 진입양봉갯수 ) and rebuy < 재매수횟수 and C > MAv6 and countif(C < mav5,BarsSinceExit(1)) < 1 Then buy("재매수"); }*/ if MarketPosition == 1 and ReEL < 재매수청산횟수 then{ if (BarsSinceEntry >= 청산양봉갯수 and Countif(cond1 == true,청산양봉갯수) == 청산양봉갯수) or RSIV < RSIvalue1 or (BarsSinceEntry >= 청산음봉갯수 and Countif(cond2 == true,청산음봉갯수) == 청산음봉갯수) and C <= DayLow+N and C < dayopen+z Then ExitLong("매수청산4"); } if MarketPosition == 0 and IsExitName("매수청산4",1) == true and count > 0 and RSIV > RSIvalue2 and rebuy < 재매수횟수 and C > MAv6 and C > MAv5 and close > open and countif(C < mav5,BarsSinceExit(1)) < 1 and C <= DayLow+N and C < dayopen+z then buy("재매수"); if MarketPosition == 1 and C <= DayLow+q and C < dayopen+w and C >= DayLow+N and C > dayopen+z Then{ if highest(h,BarsSinceEntry) >= EntryPrice+Y Then ExitLong("청산7",AtStop,highest(H,BarsSinceEntry)-x); } input : StartTime(90200); input : RSVValue(32); input : LossPoint(0.6),재매도횟수(10),재매도청산횟수(10),ProfitPoint(2.5); input : 청산양봉갯수(3),청산음봉갯수(20); input : z(1.35); input : N(-1.7); input : y(3.7); input : X(0.5); input : q(3.7); input : w(-3.7); var : cnt(0),count(0),resell(0),ReES(0); var : cond1(false),cond2(false); input : RSIP(9),RSIvalue1(60),RSIvalue2(42); var : RSIV(0); RSIV = RSI(RSIP); //ma1 input : maPeriod1(10); var : MAv1(0); MAv1 = ma(C,maPeriod1); //ma2 input : maPeriod2(12); var : MAv2(0); MAv2 = ma(C,maPeriod2); //ma3 input : maPeriod3(15); var : MAv3(0); MAv3 = ma(C,maPeriod3); //ma4 input : maPeriod4(18); var : MAv4(0); MAv4 = ma(C,maPeriod4); //ma5 Input : maPeriod5(47); var : MAv5(0); MAv5 = ma(C,maPeriod5); //ma6 Input : maPeriod6(2); var : MAv6(0); MAv6 = ma(C,maPeriod6); //RSI input : rsiPeriod(6); var : RSV(0); RSV = RSI(rsiPeriod); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if date != date[1] Then{ ReSell = 0; ReES = 0; } if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("최초매도") == true Then{ ReSell = 0; ReES = 0; } if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("재매도") == true Then ReSell = ReSell+1; if BarsSinceExit(1) == 1 and MarketPosition != MarketPosition[1] and IsExitName("매도청산4",1) == true Then ReES = ReES+1; cond1 = C > O or (C==O and C >= C[1]); cond2 = C < O or (C==O and C < C[1]); if stime >= StartTime and MarketPosition >= 0 and (count == 0 or (count > 0 and IsExitName("매도청산4",1) == false) or (count > 0 and countif(C > mav5,BarsSinceExit(1)) >= 1)) and C >= dayhigh+N and MAv1 < MAv2 and MAv2 < MAv3 and MAv3 < MAv4 and RSV < RSVValue and C < MAv5 and C > dayopen-z Then{ Sell("최초매도"); } if MarketPosition == -1 Then{ ExitShort("매도청산2",AtStop,EntryPrice+Losspoint); ExitShort("매도청산3",AtLimit,EntryPrice-Profitpoint); } if MarketPosition == -1 and C > MAv5 Then ExitShort("매도청산1"); /* if count >= 1 Then{ if MarketPosition == 0 and (IsEntryName("최초매도",1) == true or IsEntryName("재매도",1) == true) and IsExitName("매도청산4",1) == True and BarsSinceExit(1) >= 3 and (Countif(cond2 == true,진입음봉갯수) == 진입음봉갯수 ) and reSell < 재매도횟수 and C < MAv6 and countif(C > mav5,BarsSinceExit(1)) < 1 Then Sell("재매도"); }*/ if MarketPosition == -1 and ReES < 재매도청산횟수 then{ if (BarsSinceEntry >= 청산양봉갯수 and Countif(cond1 == true,청산양봉갯수) == 청산양봉갯수) or RSIV > RSIvalue1 or (BarsSinceEntry >= 청산음봉갯수 and Countif(cond2 == true,청산음봉갯수) == 청산음봉갯수) and C >= dayhigh+N and C > dayopen-z Then Exitshort("매도청산4"); } if MarketPosition == 0 and IsExitName("매도청산4",1) == true and count > 0 and RSIV < RSIvalue2 and reSell < 재매도횟수 and C < MAv6 and C < MAv5 and close < open and countif(C > mav5,BarsSinceExit(1)) < 1 and C >= dayhigh+N and C > dayopen-z then sell("재매도"); if MarketPosition == -1 and C >= dayhigh+q and C > dayopen-w and C <= dayhigh+N and C < dayopen-z Then{ if Lowest(L,BarsSinceEntry) <= EntryPrice-Y Then ExitShort("청산7",Atstop,Lowest(L,BarsSinceEntry)+x); }
프로필 이미지
난정욱
2013-09-09
188
글번호 67325
시스템

수다리 님에 의해서 삭제되었습니다.

프로필 이미지
수다리
2013-09-11
26
글번호 67324
지표
답변완료

한가지만 바꿔 주십시요.

청산, 한가지 바꿔 주세요... *오늘 매수되었고, 14:40시에 매수가 대비 5% 이상 상승했다면 다음 첫봉에 청산.을 *오늘 매수되었고, 매수가 대비 주가가 6% 상승시 다음 첫봉에 청산. 으로 바꿔 주십시요. 감사합니다. ================================================= input : P(5); var : cnt(0),sum(0),sum1(0),mav(0),mav1(0),dis(0),dis1(0),daycnt(0); if date != date[1] Then Daycnt = daycnt+1; sum = 0; sum1 = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); sum1 = sum1+DayClose(cnt+1); } mav = sum/P; mav1 = sum1/P; dis = c/mav*100; dis1 = DayClose(1)/mav1*100; if date != date[1] Then var1 = O/mav*100; if ExitDate(1) != sdate and MarketPosition == 0 and var1 > 100 and dayhigh <= DayClose(1)*1.10 and dayopen <= DayClose(1)*1.06 and dis1 >= 104 then{ if daylow <= DayClose(1)*0.99 and daylow > DayClose(1)*0.96 and dis >= 100 and dis <= 102.5 Then buy("매수1"); if daylow <= DayClose(1)*0.96 and daylow > DayClose(1)*0.93 and dis >= 100 and dis <= 102.75 Then buy("매수2"); if daylow <= DayClose(1)*0.93 and daylow > DayClose(1)*0.90 and dis >= 100 and dis <= 103 Then buy("매수3"); if daylow <= DayClose(1)*0.90 and daylow > DayClose(1)*0.87 and dis >= 100 and dis <= 103.25 Then buy("매수4"); if daylow <= DayClose(1)*0.87 and dis >= 100 and dis <= 103.5 Then buy("매수5"); } if MarketPosition == 1 Then{ exitlong("Profit",Atlimit,EntryPrice*1.135); exitlong("bx1",AtStop,EntryPrice*0.865,"매수1"); exitlong("bx2",AtStop,EntryPrice*0.87,"매수2"); exitlong("bx3",AtStop,EntryPrice*0.875,"매수3"); exitlong("bx4",AtStop,EntryPrice*0.88,"매수4"); exitlong("bx5",AtStop,EntryPrice*0.885,"매수5"); if daycnt >= daycnt[BarsSinceEntry]+3 and (stime == 140000 or (stime > 141000 and stime[1] < 141000)) Then ExitLong("x"); }
프로필 이미지
쌀사비팔
2013-09-08
193
글번호 67323
시스템
답변완료

함수문의

안녕하세요 팝업 경고창에문의합니다 경고창의크기조절하고 상하좌우 위치 바탕색조정등의 수식을부탁합니다
프로필 이미지
백진강
2013-09-08
156
글번호 67322
사용자 함수

세발낚지 님에 의해서 삭제되었습니다.

프로필 이미지
세발낚지
2013-09-08
40
글번호 67321
지표

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

프로필 이미지
회원
2013-09-09
14
글번호 67320
지표

토라 님에 의해서 삭제되었습니다.

프로필 이미지
토라
2013-09-08
25
글번호 67319
지표