커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

신호발생 후 바로 매수도 진입

많은 도움에 항상 감사드립니다. 아래와 같이 시스템 구현 후 매수 신호발생이 되었는데, 실제 체결은 되지 않습니다. If 매수조건 Then { Buy("BUY"); MessageLog("매수"); } 5분봉 및 onclose 조건이라 해당 신호발생 5분봉이 완성된 다음 봉에서만 체결되나요?? 현재 "시험적용"으로 보고 있는데, 디버깅에는 문자가 찍혀도 체결은 안되네요. 매매 조건은 진입:현재가, 청산:시장가 상태입니다. 강제청산시에는 "조건만족 즉시" 라는 것이 있어 틱 수신시 바로 청산이 되는거 같은데, BUY(매수) 및 SELL(매도)에서는 신호발생 후 바로 틱 수신하면 체결되는 방법은 없나요??
프로필 이미지
tadd
2020-04-01
691
글번호 137416
시스템
답변완료

문의드립니다.

수고하십니다. 거래량이 순차적으로 1000건, 2000건, 3000건 이렇게 증가되는것을 확인하고, 파라볼릭 & macd 오실레이터 매수 신호에 위로 향한 화살표, 매도신호에 아래로 향한 화살표를 표기 하고 싶습니다. 그리고 강조도 가능할까요? 매도 매수 신호시 그 영역을 깜빡 깜빡 하게 한다든지요... (가능하다면요..) 수고하세요.
프로필 이미지
백두에서한라
2020-04-01
671
글번호 137415
지표
답변완료

함수요청

안녕하세요? 아래 전략에 대해 스크립트 작성 요청드립니다. data1: 다우 5분봉 data2: 나스닥 5분봉 data3: 에스앤피 5분봉 7시(써머타임해지시 8시) 개장 이후 당일 셋다 양봉 발생시(7시 시초가 대비로 현재가 크냐 작냐로 계산) 완성 익봉 시가에 매도 진입 7시(써머타임해지시 8시) 개장 이후 당일 셋다 양봉 발생시(7시 시초가 대비로 현재가 크냐 작냐로 계산) 완성 익봉 시가에 매도 진입 거래시간은 7시부터 익일 03시 30분까지 하고자 하며 (03시 30분에 강제청산) 영업일이 달라지면 다시 7시부터 양봉과 음봉을 따져서 거래를 신규 거래를 하고자 합니다. 진입횟수는 당일기준 10회로 제한하고자 합니다.
프로필 이미지
흰둥이아빠
2020-04-01
632
글번호 137414
시스템
답변완료

수식부탁드립니다.

수고 많으십니다. ^^ 수식부탁드립니다. 아래와 같은 수식이 있는경우. 첫번째 질문입니다. 1. 하나는 매수신호만 나오게 해주세요 2. 하나는 매도신호만 나오게 수식 부탁드립니다. # 예를 든 수식입니다. Input : EmaLen(20), macd1(1), stoploss(5); var : emaV(0), MacdV(0), MacdS(0), MacdOsc(0); emaV = ema(C,EmaLen); MacdV = macd(macd1,macd2); LmacdV = macd(Longmacd1,Longmacd2); LmacdS = ema(LmacdV,Longmacd3); LmacdOsc = LmacdV-LmacdS; If LemaV > LemaV[1] and LmacdOsc > LmacdOsc[1] then { buy("매수"); } if MP == 1 and MP[1] <> 1 then Begin ; end; If MP == 1 then begin Sell ("매도", atstop,stopprice ); ================================================================ 두번째 질문입니다. 아래 수식에서 Input : af(0.02), maxAF(0.2); # 이 변수값으로는 매수를 하고 싶고 Input : af(0.05), maxAF(0.4); # 이 변수값으로는 매도를 하고 싶습니다.. 수식 부탁드립니다. 감사합니다. ======================================================= Input : af(0.02), maxAF(0.2); Var : value(0); value = sar(af,maxAF); # 매수/매도청산 If C > value Then { Buy(); } # 매도/매수청산 If C < value Then { Sell(); }
프로필 이미지
바다사당
2020-04-01
629
글번호 137413
시스템
답변완료

수식 부탁드립니다.

안녕하세요 아래의 수식을 부탁드립니다. 1. 0선 아래서 MACD 선이 MACD Signal선을 돌파할 때 (매수) 2. 0선 위에서 MACD Signal선이 MACD 선을 돌파할 때 (매도) 3. Elder Ray Power 의 Bull > 0 (매수진입 조건가능) , Bull < 0 (매도 진입 조건가능) 4. Elder Ray Power 의 Bear > 0 (매수진입 조건가능) , Bear < 0 (매도 진입 조건가능) 5. 신호 발생하는 봉이 이전 5개봉 길이(몸통)의 3배가 넘는경우 진입 금지 6. 진입하려는 봉이 이전 5개봉 평균 길이(몸통,꼬리포함)의 3배가 넘는 경우 진입 금지 7. 위의 조건을 만족할 때, 진입하는데, 최초 신호발생후, 진입 조건봉 6개가 지나면 진입금지 8. 1분봉에서 사용한다고 가정했을때, 매 5번째 봉에서는 진입하지 않게 설정 가능까요 ? ( 예를들번 5번째, 10번째, 15번째,,,,1분봉에서는 진입하지 않음. ) 감사합니다.
프로필 이미지
워싱턴
2020-04-01
672
글번호 137412
시스템
답변완료

수식 수정 부탁드립니다.

안녕하세요 코스피지수선물 거래에서 매주 월요일 시초가에 매수하여 매수 금액보다 3포인트 하락하면 손절 다시 진입은 없으며 손절라인에 걸리지 않으면 계속 포지션 유지 후 금요일 종가에 청산 이걸 매주 반복하는 시스템을 구성 위의 내용으로 아래 수식을 작성하였는데 맞게 작성되었는지 검토 부탁드립니다. var : entry(0); if DayOfWeek(NextBarSdate) < DayOfWeek(sdate) Then { var1 = NextBarOpen; buy("b",AtMarket); ExitLong("bx",AtStop,var1-3); entry = 0; } if DayOfWeek(sdate) == 5 Then SetStopEndofday(153000); Else SetStopEndofday(0);
프로필 이미지
달려
2020-04-01
627
글번호 137411
시스템
답변완료

문의 드립니다.

항상 빠르고 친절한 답변 감사드립니다. 배움이 성장하는게 느껴져 재미가 있네요 ㅎㅎ 일봉상 상한가,하한가 표시를 하고 싶어 게시판 검색을 통해 2008년에 답변을 확인하였으나 15% => 30% 변경 전 지표식인듯 합니다. 30%로 변경된 일봉상 상한가,하한가 지표식을 요청 드립니다. (아래 검색된 지표식) var : uplimit(0),downlimit(0); downlimit = iff(C >= 500000, int((baseprice * 0.85) / 1000 + 0.999) * 1000, iff(C >= 100000, int((baseprice * 0.85) / 500+0.999) * 500, iff(C >= 50000, int((baseprice * 0.85) / 100+0.999) * 100, iff(C >= 10000, int((baseprice* 0.85) / 50+0.999) * 50, iff(C >= 5000, int((baseprice * 0.85) / 10+0.999) * 10, int((baseprice * 0.85) / 5+0.999) * 5))))) ; uplimit = iff(C >= 500000, int((basePrice * 1.15) / 1000 + 0.00001) * 1000, iff(C >= 100000, int((basePrice * 1.15) / 500 + 0.00001) * 500, iff(C >= 50000, int((basePrice * 1.15) / 100 + 0.00001) * 100, iff(C >= 10000, int((basePrice *1.15) / 50 + 0.00001) * 50, iff(C >= 5000, int((basePrice * 1.15) / 10 + 0.00001) * 10, int((basePrice * 1.15) / 5 + 0.00001) * 5))))) ; if C >= uplimit Then plot1(H*1.05,"상한",red); if C <= downlimit Then plot2(L*0.95,"하한",blue); 2. 혹시 3분봉에 시스템식을 적용하고 진입은 1분봉을 참조하여 진입 할 수 있는지요? 가능하다면 예시 요청 드립니다. 3, 추가로 거래량 5이평선이 20이평선 상승돌파식를 공부하다 상승형 체결거래량 UpVol 이라는 함수가 거래량 이평돌파와 비교해서 설명 부탁드리며 거래량 5이평선이 20이평선 상승돌파식도 요청드립니다. 그럼 좋은 하루 되세요^^ 차이점을
프로필 이미지
느와르
2020-04-01
711
글번호 137410
지표
답변완료

분할 매수 및 청산 수식

총 10번 매매(분할매수) 200봉에서 20% 하락했을 1차 매수 진입 1차매수한 금액의 -10% 하락시 2차 추가 매수 1차매수한 금액의 -20% 하락시 3차 추가 매수 ' ' ' 1차 매수한 금액의 -90%하락시 10차 추가 매수 청산은 분할매수한 평균값의 10% 수익시 청산하는 수식입니다. 나름 만들어 봤는데요 아래수식에 수정 요청드림니다. input : n(200),하락퍼센트(0.80); input : 매매수(10),금액1(10),금액2(20),금액3(30),금액4(100),금액5(200),금액6(200),금액7(300),금액8(300),금액9(300);,금액10(300);; input : 일괄청산률(9); var1 = highest(H,n); if stime < 143000 then { if MaxEntries < 매매수 and c < var1*하락퍼센트 and c < o Then buy("b1",OnClose,def,Floor(금액1*10000/c)); if MaxEntries < 매매수 and c < first-enter-price *0.9% and < --- 수식을 잘 모르겠습니다. c < o Then buy("b2",OnClose,def,Floor(금액2*10000/c)); if MaxEntries < 매매수 and c < first-enter-price *0.8% and < --- 수식을 잘 모르겠습니다. c < o Then buy("b3",OnClose,def,Floor(금액3*10000/c)); if MaxEntries < 매매수 and c < first-enter-price *0.7% and < --- 수식을 잘 모르겠습니다. c < o Then buy("b4",OnClose,def,Floor(금액4*10000/c)); if MaxEntries < 매매수 and c < first-enter-price *0.6% and < --- 수식을 잘 모르겠습니다. c < o Then buy("b5",OnClose,def,Floor(금액5*10000/c)); if MaxEntries < 매매수 and c < first-enter-price *0.5% and < --- 수식을 잘 모르겠습니다. c < o Then buy("b6",OnClose,def,Floor(금액6*10000/c)); if MaxEntries < 매매수 and c < first-enter-price *0.4% and < --- 수식을 잘 모르겠습니다. c < o Then buy("b7",OnClose,def,Floor(금액7*10000/c)); if MaxEntries < 매매수 and c < first-enter-price *0.3% and < --- 수식을 잘 모르겠습니다. c < o Then buy("b8",OnClose,def,Floor(금액8*10000/c)); if MaxEntries < 매매수 and c < first-enter-price *0.2% and < --- 수식을 잘 모르겠습니다. c < o Then buy("b9",OnClose,def,Floor(금액9*10000/c)); if MaxEntries < 매매수 and c < first-enter-price *0.1% and < --- 수식을 잘 모르겠습니다. c < o Then buy("b10",OnClose,def,Floor(금액10*10000/c)); SetStopProfittarget(0); ExitLong("bx",atlimit,AvgEntryPrice*(1+일괄청산률*0.01)); } Else SetStopProfittarget(0);
프로필 이미지
이형지
2020-03-31
786
글번호 137409
시스템
답변완료

수식수정좀 부탁드립니다.

수익청산은 제가 원하는데로 되는데 손절청산은 그림처럼 되네요 밑에 수식인데 수정좀 부탁드립니다. Input : af(0.02), maxAF(0.2); input : StartTime(70000),EndTime(230000); Var : value(0),Tcond(false),entry(0); if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; entry = 0; } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { Tcond = False; if MarketPosition == 1 Then ExitLong("bx"); if MarketPosition == -1 Then ExitShort("sx"); } if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry = entry+1; value = sar(af,maxAF); if tcond == true then { If MarketPosition <= 0 and crossup(c,value) and entry < 1 Then { Buy("b1"); } If MarketPosition >= 0 and CrossDown(c,value) and entry < 1 Then { Sell("s1"); } if MarketPosition == 1 then { ExitLong("bp",Atlimit,AvgEntryPrice+PriceScale*20); if MaxEntries == 1 Then Buy("b2",Atlimit,AvgEntryPrice-PriceScale*20); if MaxEntries == 2 Then Buy("b3",Atlimit,AvgEntryPrice-PriceScale*30); if MaxEntries == 3 Then ExitShort("bl",Atlimit,AvgEntryPrice-PriceScale*20); } if MarketPosition == -1 then { ExitShort("sp",Atlimit,AvgEntryPrice-PriceScale*20); if MaxEntries == 1 Then sell("s2",Atlimit,AvgEntryPrice+PriceScale*20); if MaxEntries == 2 Then sell("s3",Atlimit,AvgEntryPrice+PriceScale*30); if MaxEntries == 3 Then ExitLong("sl",Atlimit,AvgEntryPrice+PriceScale*20); } }
프로필 이미지
디얼디어
2020-03-31
1003
글번호 137408
시스템