커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

Entryname 반환값에 대해서 다시 올립니다.

처음 올린 글에 대한 답변이 너무 무성의하고 해결책이 아니기에 다시 질문 드립니다. 먼저 관리자님께 심한 용어좀 사용하겠습니다. 이해해 주시기 바랍니다. 아니 이걸 답변이라고 한 겁니까? Entry명을 모르면, 진입가격도 알 수 없지요. 또한 청산조건은 진입가격대비 트레일링스탑을 하는 것인데, 어떻게 청산을 한단 말입니까? 관리자님이 상상하시는 청산조건은 어떤 것인지 심히 궁금하네요. 예를 들어 스토캐스틱이나, 이평이 변하면 무조건 청산하는 방식인가요? 어이가 없습니다. 또한 EntryPrice도 (N)을 사용할 수 없게 뒤죽박죽으로 리턴됩니다. Entryname이 첫번째 것만 나온다고요? 그렇게라도 규칙성이 있다면 정말 좋겠는데, 아무런 규칙성이 없습니다. 이런 Bug를 가진 툴로서는 절대 피라미딩을 해서는 안 되는 거지요. 피라미딩을 하지 말라고 해야지, 어떻게 피라미딩을 허용하고서 이런 Bug를 방치한단 말입니까? Bug가 있다고 질문을 했더니, 원래 그런게 정상인 것처럼 답변을 한대서야 말이 됩니까? Bug를 언제까지 고칠 것인지, 아니면 피라미딩을 하지 말라고 해야 하는 것 아닌가요? Bug라고 하는 이유는 사용자 설명서("예스 트레이더 구문) 148페이지에 나와 있는 아래 내용입니다. ========================================================================= EntryName 설명: 진입명 리턴 함수 ※ N은 진입 위치. 진입위치는 현재를 기준으로 역순으로 지정. ※ 최근 진입은 0, 직전 진입 1,…… ※ (0)은 생략가능 ※ 피라미딩 상황에서는 포지션이 시작되는 첫 진입의 이름 함수: EntryName(N) == “진입명” or EntryName(N) != “진입명” 예제: 일반적으로 진입별로 청산을 달리하고자 할 때와 같이 진입명칭을 확인해야 할 때 사용된다. ================================================================================== 제가 작성한 프로그램은 아래와 같습니다. =================================================================================== If MarketPosition==1 Then For JJ=0 to CurrentContracts-1 Begin If EntryName(JJ)=="L-Pv1" Then KK=1; Else If EntryName(JJ)=="L-Pv2" Then KK=2; Else KK==99; Max_Profit= Highest(H, BarsSinceEntry(JJ)) - EntryPrice(JJ); Max_Loss = EntryPrice(JJ) - Lowest(L, BarsSinceEntry(JJ)); If CrossDown(StoK,StoD) Then Begin TS_Point= A_Long_TrStPoint_M(DATR, JJ, L1_T1[KK], L1_R1[KK]); If TS_Point >0 Then If KK==1 Then ExitLong("수톱11", atstop, TS_Point, "L-Pv1", 1); Else If KK==2 Then ExitLong("수톱12", atstop, TS_Point, "L-PV2", 1); End If (DIM-DIP)>(DIM[BarsSinceEntry(JJ)]-DIP[BarsSinceEntry(JJ)]) + DIGAP Then Begin TS_Point= A_Long_TrStPoint_M(DATR, JJ, L2_T1[KK], L2_R1[KK]); If TS_Point >0 Then If KK==1 Then ExitLong("수톱21", atstop, TS_Point, "L-Pv1", 1); Else If KK==2 Then ExitLong("수톱22", atstop, TS_Point, "L-PV2", 1); End If CrossDown(MACDv, MACDsig) Then Begin TS_Point= A_Long_TrStPoint_M(DATR, JJ, L3_T1[KK], L3_R1[KK]); If TS_Point >0 Then If KK==1 Then ExitLong("수톱31", atstop, TS_Point, "L-Pv1", 1); Else If KK==2 Then ExitLong("수톱32", atstop, TS_Point, "L-PV2", 1); End If Max_Profit < LSMinPft[KK]*DATR and CrossDown(StoK, StoD) Then If KK==1 Then ExitLong("수절11", Atstop, EntryPrice(JJ)-LSLCPnt[KK]*DATR, "L-Pv1", 1); Else If KK==2 Then ExitLong("수절12", Atstop, EntryPrice(JJ)-LSLCPnt[KK]*DATR, "L-PV2", 1); If Max_Profit < LDMinPft[KK]*DATR and (DIM-DIP)>(DIM[BarsSinceEntry(JJ)]-DIP[BarsSinceEntry(JJ)]) + LLC_DIGAP[KK] Then If KK==1 Then ExitLong("수절21", Atstop, EntryPrice(JJ)-LDLCPnt[KK]*DATR, "L-Pv1", 1); Else If KK==2 Then ExitLong("수절22", Atstop, EntryPrice(JJ)-LDLCPnt[KK]*DATR, "L-PV2", 1); End 이 로직을 엔트리명에 무관하게 처리할 수 있는 방법을 구체적으로 알려 주세요. 부탁드립니다. ============================================================================== > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Entryname > 안녕하세요 예스스탁입니다. entryname은 해당 포지션의 첫번째 진입명만 리턴합니다. 그러므로 피라미딩 상태에서 진입명별로 청산을 하고자 하시면 청산함수에 매개변수 중 진입명을 지정하는 부분이 있습니다. 이름을 지정하시면 해당 이름으로 진입이 있을때만 발생하고 해당 이름으로 들어간 수량만큼만 청산을 합니다. if 매수청산조건1 then exitlong("bx1",onclose,def,"매수1"); if 매수청산조건2 then exitlong("bx1",onclose,def,"매수2"); 즐거운 하루되세요 > 좋은선물 님이 쓴 글입니다. > 제목 : Entryname > 피라미딩으로 들어가서 진입명으로 구분하여 청산하고자 하는데, 진입명이 이상하게 나오네요. 간단한 프로그램 예제를 쓰자면, If Close>Dayopen+0.5 Then Buy("매수1"); If Close>Ma(C,5) Then Buy("매수2"); If sdate==20140602 Then messagelog("%s %s", entryname(0), Entryname(1)); 이렇게 해서 보면 위의 그림과 같이 나옵니다. 해결 방법 부탁드립니다.
프로필 이미지
좋은선물
2014-06-20
267
글번호 75985
시스템
답변완료

선물 주야간장 시작부터 지표식 부탁드립니다

감사합니다 1, 선물주간장 시작 첫째봉부터 적용한 이평식과 야간장 시작 첫째봉부터 적용한 이평식 지표수식 부탁드립니다 2, 선물주간장 시작 첫째봉부터 적용한 Highest(H,Period); Lowest(L,Period);과 야간장 시작 첫째봉부터 적용한 Highest(H,Period); Lowest(L,Period); 지표수식 부탁드립니다 좋은하루 되세요~ //////////////////////////////////////////////////////////// Input : Period(9) var1 = Highest(H,Period); var2 = Lowest(L,Period); var3 = ma(C,Period);
프로필 이미지
감사1
2014-06-19
184
글번호 75982
지표
답변완료

[추가]chaikin Money flow 보조지표를 사용하고 싶습니다! 답변을 보고

안녕하세요 아래와 같이 답변을 주셨는데요.. mfi와 cmf는 마크채킨이 개발한것은 맞습니다만 엄연히 지표의 설정과 표현이 많이 다릅니다. 제가 정확히 여쭈어 본것은 chaikin Money flow 입니다. mfi는 제공하는것을 알고 있습니다.. 다시 한번 수식을 알려주시면 감사하겠습니다. 수고하세요 저희가 검토한 결과 사용자 함수에서 함수를 지정해주고 저장한후 수식을 완성하여 불러다 쓰는 방식인것 같습니다. 아래에 하이투자증권 및 키움. 대신 등 에서 쓰는 수식을 첨부합니다. [개요] - Bomar증권의 Marc Chaikin은 이 chaikin Money flow 를 개발하였다. - 이 지표는 21~22일을 한달로한 개념이 기본이 되어있다. [해석] - CFI 값이 양수일 때 강세장을 나타낸다. - CFI 값이 음수일 때 약세장을 나타낸다. Sum(((((C-L)-(H-C))/(H-L))*V),time)/Sum(V,time) 이트레이드 hts Sum(((((C-L)-(H-C))/(H-L))*V),누적기간)/Sum(V,누적기간) 안녕하세요 예스스탁입니다. 해당 지표는 기본 지표로 제공되고 있습니다. Money flow index라는 이름입니다. 수식의 내용은 아래와 같습니다. Input: Period(14); var : MoneyFlow(0); MoneyFlow = MFI(Period); Plot1(MoneyFlow, "MFI"); PlotBaseLine1(20, "하단기준선"); PlotBaseLine2(80, "상단기준선"); 즐거운 하루되세요 > HI_an***** 님이 쓴 글입니다. > 제목 : chaikin Money flow 보조지표를 사용하고 싶습니다. > chaikin money flow 를 쓰고 싶은데 제공하지 않고 있는듯합니다. 만들어서라도 쓸수 있는 방법이 없을까요? 꼭 필요합니다. 010-3789-8882 빠른 답변 바랍니다. -------------------------------------------------------- 싸이칸플러스에서 제공하고 있습니다. Chaikin Money Flow [개요] - Bomar증권의 Marc Chaikin은 이 chaikin Money flow 를 개발하였다. - 이 지표는 21~22일을 한달로한 개념이 기본이 되어있다. [해석] - CFI 값이 양수일 때 강세장을 나타낸다. - CFI 값이 음수일 때 약세장을 나타낸다. Sum(((((C-L)-(H-C))/(H-L))*V),time)/Sum(V,time)
프로필 이미지
회원
2014-06-19
358
글번호 75981
지표
답변완료

[STAD_04] Mom_Retrcmnt

Input: XMALen(5), Len2(15); Vars: PriceEMA(0), HIghEMA(0), LowEMA(0), MACDSigLine(0), MACDDiff(0); Vars: TrendUp(false), MomentumB(false), RetracementUP(false), ExitPrc(0); Vars: HighestHi(0), HighestRSI(0), LowestRSI(0), Lowestlo(999999), buySwitch(false),SellSwitch(false); Vars: DMISpread(0), Fase1(false), fase2(false); PriceEMA = ema(C,XMALen); HIghEMA = ema(H,Len2); LowEMA = ema(L, Len2); MACDSigLine = ema( MACD(3,10), 15); MACDDiff = MACD(3,10) - MACDSigLine; DMISpread = Diplus(15) - DiMinus(15); TrendUp = PriceEMA > HIghEMA and MACDSigLine > 0; MomentumB = RSI(5) >= 70 AND DMISpread > 15; --------------------------------------------------------------------- If TrendUp and MomentumB then { If Fase1 == False then { HighestHi = 0; HighestRSI = 0; } Fase1 = true; Fase2 = false; If High > HighestHi then HighestHi = high; If RSI(5) > HighestRSI then HighestRSI = RSI(5); } RetracementUp = Fase1 AND PriceEMA < HIghEMA AND MACDDiff < 0 AND (RSI(5)<=50 OR RSI(5)<highestRSI-30); If RetracementUp then { If Fase2 == false then LowestLo = 999999; Fase2 = True; Fase1 = False; buySwitch = false; } If Fase2 then { If Low < LowestLo then LowestLo = Low; BuySwitch = true; } If BuySwitch and MarketPosition<> 1 then { Buy("",atstop,LowestLo + (HighestHi - LowestLo )/3 ); } If MarketPosition == 1 and (PriceEMA < LowEMA OR MACDSigLine < 0) then { BuySwitch = False; Fase1 = False; Fase2 = False; ExitLong("EL", AtMarket); } ----------------------------------------------------------------------- 이부분 설명좀 달아주시면 감사하겠습니다 여러번 읽어 봤지만 이해가 안가서요 부탁드립니다 If MarketPosition <> 1 then ExitLong("EL2",atstop,Low - ATR(10)); else ExitLong("EL3",atstop, EntryPrice - ATR(10)); If SwingLowbar(1,Low,3,3,7) == 3 AND MarketPosition == 1 then ExitPrc = Low[3]; ExitPrc = MinList(LowEMA, ExitPrc); If MarketPosition == 1 then ExitLong("EL4",atstop,ExitPrc);
프로필 이미지
cinamon
2014-06-19
219
글번호 75980
시스템
답변완료

수식부탁드립니다.

안녕하십니까. 수식을 문의 드립니다. 매수잔량-매도잔량 데이터를 구자하고 하는데 1초전잔량데이터 2초전잔량데이타 3초전잔량데이타등 초당으로 데이터를 나눠서 구하고자합니다. 이에 관련한 수식 부탁드립니다.
프로필 이미지
Pooh
2014-06-19
205
글번호 75979
시스템
답변완료

수식작성문의

이번에 하이투자증권 교육수료생입니다. 수식 작성부탁드립니다. 초보이니 하나도 상세하게 빠트리지 말고 작성해 주시면 그대로 테스트하고 사용해 보겠습니다. 그대로 복사해서 붙여넣어서 테스트 해보겠습니다.초보니 주문함수도 같이 해주세요.. 고맙습니다. 예스랭귀지 수식만으로도 가능한가요, 예스스팟까지 해야 하나요,, 문제는 징입조건에서 조정시 진입하는 것이라서 우선1호가 매매를 하니 혹 만의 하나 계약체결이 않될시에 청산주문이 그대로 나갈 수도 있겠네요. 기본챠트 :연결선물 5분봉 차트 사용 1. 진입조건 초기 30분동안(봉6개)동안 최고가와 최저가를 구하고 그 다음부터 최고가나 최저가를 돌파하는 방향으로 진입하되 진입하는 가격은 기다렸다가 최고가나 최저가 돌파후 최고가 또는 최저가가격의 절반의 가격으로 조정받을 때 우선1호가로 진입한다, 단 11시 이전에만 진입한다. (이것이 at limit 주문인가요,1게약기준으로 주문식도 넣어주시면 감사하겠습니다.조정시 진입하니 우선1호가 진입이나 역슬리피지진입도 가능하지 않을까요 ) ,하루에 단 한번만 진입합니다. 2. 청산조건 +-3포인트 손절익절 청산 또는 오후 2시50분 디엔드오브더데이(시스템트레이디이 설정창이 아니라 수식으로도 가능하면 해주세요)
프로필 이미지
수익플러스
2014-06-19
262
글번호 75978
시스템

대발이 님에 의해서 삭제되었습니다.

프로필 이미지
대발이
2014-06-19
0
글번호 75977
지표
답변완료

당일최저가

10봉전이 아니고 10봉이내 당일최저가는 어떻게 표현하는지 알려주시면 감사하겠습니다 꾸벅
프로필 이미지
개미왕초
2014-06-19
213
글번호 75973
시스템
답변완료

macd 다이버전스 수식문의 입니다

먼저 죄송합니다. - macd 기간 : 기간1(12, 26, 6), 기간2, 기간3 - 차트 : 1분봉, 2분봉, 3분봉, 5분봉 외 다수 틱봉 : 3틱, 5틱, 10틱, 30틱 외 다수 = 여러분봉 및 여러틱봉 차트 아래 거래량에 있는 곳에 macd 3개가 그려지며, 다이버전스 나올때 신호가 표기되도록 하고 싶습니다. 부탁드립니다,
프로필 이미지
블루베어
2014-06-19
301
글번호 75971
시스템