커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

데이타 확인 요청

* 데이타가 0 부터 시작하는데 이유가 뭐죠? 최초값 부여가 안되서 그런거요? if TimeToMinutes(stime)%60 == 0 Then var2 = o; plot2(var2); if date > date[1]+30 Then var3 = o; plot3(var3); <매수방법> 상기식을가지고.... Var: frame(0),count(0); array: hval[10](0); frame = TimeToMinutes(stime)%60 ; if dayindex==0 or frame < frame[1] then { hval[0] = h; for count =1 to 9 { hval[count] = hval[count-1] [1]; } } if h> hval[0] Then hval[0] = h; plot1(hval[0]) ; if crossup (hval,var3) then buy(); 했는데 틀린 데이타에서 매수가 됨니다. 수정좀 부탁 드립니다.
프로필 이미지
요타
2016-05-15
132
글번호 98086
지표
답변완료

문의드립니다.

항상 감사 드립니다. 1.데이 매매용으로 데이터2의 시가를 3회이상 하향 이탈시, 데이터 1에 진입수량2개씩 매수 진입. 2.진입한 수량이 데이터2의 시가(진입기준가) 5틱 손실되면 데이터 1 손절 처리. 3.진입은 7회 까지 반복으로 4.익절은 데이터 2 기준으로 40.50.70 틱으로 순차 이익실현 5.기존의 질문한 수식에 사용할것 입니다. 데이터 2,3의 input값의 변수를 챠트에 선으로 표시(오렌지색)되었으면 합니다. 현재 input에는 AA(100),BB(100) 표시 되어 있습니다. 감사합니다.
프로필 이미지
회원
2016-05-15
106
글번호 98085
시스템
답변완료

수식 수정 요청

안녕하세요. 전에 작성해주신 수식을 가지고 거래를 하고 있는데 수정을 부탁드립니다. 맨 아래는 제가4.28에 남광토건(1분봉)으로 시뮬을 해본 결과인데 손절이 나왔음에도 불구하고 손절 봉에서 재매수가 나왔습니다. 타 종목으로 해보니까 익일 손절 후 재매수가 나오는 경우도 있었습니다. 그리고 분할 매수 식인데 분할 매수는 적용이 안되고 최초 매수 건이 손절 등으로 처리가 된 후에 2차 매수(BB)가 발생합니다. 1. 손절 발생 시 재매수 금지 2. 분할 매수 3. 매수 진입 시 진입 가격 대비 위 아래 호가 선택 해서 진입(예, 신호가 나오면 그 가격 대비 -5 호가로 진입) 4. 시가가 전일 종가 대비 5%로 시작하면 당일 거래 금지 5. 최초 진입 이후 수익률 5% 이상 넘어가면 trailingstop 5%(예를 들어 수익률 2%시 TS가 발동하면 추가 진입 부분하고 문제가 생길 수 있어서, 5% 수익 발생이전 까지는 TS 발동 금지) 5. 최초 거래 후 5% 이상 상승한 후 하락하여 2차 매수 선까지 올 경우 2차 매수 금지. 6. 매수물량이 남아 있을 경우 진입일 익익일에 전체 청산 / entrydate + 1로 하니까 영업일 기준으로는 안맞네요 ㅠ 요청사항이 너무 많아서 죄송합니다. 이렇게 수식 변경 부탁드리겠습니다. 감사합니다. input: 매수금액1(10000000),매수금액2(10000000),지정일(20160428); var : Ev(0),Xv(0),Xcond(false); if bdate != bdate[1] Then Xcond = false; if TotalTrades > TotalTrades[1] and (LatestExitName(1) == "BL1" or LatestExitName(1) == "BL2") Then Xcond = true; if MarketPosition == 0 and NextBarSdate > sdate and NextBarSdate == 지정일 and Xcond == false Then buy("b",AtMarket,def,Floor(매수금액1/C)); if MarketPosition == 1 Then{ if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BL1" Then{ Condition11 = true; Xcond = true; } if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BL2" Then{ Condition12 = true; Xcond = true; } if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BP1" Then Condition21 = true; if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BP2" Then Condition22 = true; if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "BP3" Then Condition23 = true; if MaxEntries == 1 and CurrentContracts >= CurrentContracts[1] and Condition12 == false Then buy("bb",Atlimit,EntryPrice*0.98,Floor(매수금액2/C)); if CurrentContracts > CurrentContracts[1] Then{ Ev = AvgEntryPrice; Xv = Floor(MaxContracts*(1/3)); } if MaxEntries >=1 Then{ if Condition11 == false Then exitlong("BL1",AtStop,AvgEntryPrice*0.97,"",xv,1); if Condition12 == false Then exitlong("BL3",AtStop,AvgEntryPrice*0.95); if Condition21 == false Then exitlong("BP1",AtLimit,AvgEntryPrice*1.05,"",xv,1); if Condition22 == false Then exitlong("BP2",AtLimit,AvgEntryPrice*1.10,"",xv,1); if Condition23 == false Then exitlong("BP3",AtLimit,AvgEntryPrice*1.20); } if sdate > EntryDate +1 and stime == 144500 Then exitlong(); } else{ Condition11 = false; Condition12 = false; Condition21 = false; Condition22 = false; Condition23 = false; } 진입일시 진입종류 진입명 진입가격(원) 수량 수익률(%) 최대수익(원) 진입효율 봉 개수 청산일시 청산종류 청산명 청산가격(원) 수익(원) 누적수익(원) 최대손실(원) 청산효율 총효율 2016-04-28 9:01 매수 b 13,750 245 -3.47 0 0 1 2016-04-28 9:02 매수청산 BL1 13,300 -116,877 -116,877 -110,250 0 -100 2016-04-28 9:01 매수 b 13,750 490 -5.29 0 0 10 2016-04-28 9:11 매수청산 BL3 13,050 -356,132 -473,009 -343,000 0 -100 2016-04-28 9:11 매수 bb 13,050 251 5.16 175,700 82.35 215 2016-04-28 12:51 매수청산 BP1 13,750 168,973 -304,036 -37,650 100 82.35 2016-04-28 9:11 매수 bb 13,050 251 10.13 338,850 90 220 2016-04-28 12:56 매수청산 BP2 14,400 331,960 27,924 -37,650 100 90 2016-04-28 9:11 매수 bb 13,050 252 4.39 504,000 93.02 1,006 2016-05-02 14:46 매수청산 _ExitLongNo1 13,650 144,471 172,395 -37,800 34.88 27.91
프로필 이미지
깜피
2016-05-15
149
글번호 98084
시스템
답변완료

수식부탁드립니다.

안녕하세요. 수식부탁드립니다. Envelope(20/0.9) 이평(5)일선 매수진입은 5일선이 Envelope 하한선을 &#46775;고 내려갔다가 하한선을 &#46775;고 다시올라올 적에 매수진입 매수청산은 5일선이 Envelope 상한선을 &#46775;고 올라갈 적에 매수청산 매도진입은 5일선이 Envelope 상한선을 &#46775;고 올라갔다가 상한선을 &#46775;고 다시내려갈 적에 매수진입 매도청산은 5일선이 Envelope 하한선을 &#46775;고 내려갈 적에 매도청산 손절10틱 익절10틱 장시작시간 07시00분 부터 끝나는 시간00시30분까지입니다. 부탁드립니다.감사합니다.
프로필 이미지
마르시아
2016-05-16
118
글번호 98083
시스템
답변완료

수식 부탁드립니다

(1) 20 캔들 바닥에서 양 캔들 고가 돌파 양 캔들 매수 20 캔들 천정에서 음 캔들 바닥 붕괴 음 캔들 매도 감사합니다
프로필 이미지
회원
2016-05-14
131
글번호 98082
시스템

미완 님에 의해서 삭제되었습니다.

프로필 이미지
미완
2016-05-14
22
글번호 98081
지표
답변완료

문의드립니다

안녕하세요^^ 3가지의 시스템 신호를 받기위해서문의드립니다~~ 1번 INPUT:P20(20); VAR:BDY(0),MID(0),HB(0); BDY=ABS(C-O); MID=(H+L)/2; HB=Highest(BDY,P20); IF HB == BDY THEN VAR1=MID; Plot1(VAR1[1], "기준 중심값"); 2번 VAR:N(0),N2(0),P2(0); VAR1=0; FOR N=1 TO 50 { VAR1=VAR1+(50-(2*N-1))/2*C[N-1]; } VAR2=MA(C,50); VAR3=VAR2+(6*VAR1)/((50+1)*50); Plot1(VAR3, "평활이평"); 3번 키움증권 수식인데 예스스레이더 수식으로 좀 부탁드립니다 수식1 valuewhen(1,avg(c,period)>avg(c,period,1),avg(c,period)) 수식2 valuewhen(1,avg(c,period)<avg(c,period,1),avg(c,period)) 수식3 avg(c,period) 지표설정조건 period 8 period 2 period 2 이상입니다~ 1번은 중심선을 이용한 매수,매도만을 시스템을 원합니다 2번은 평활이평을 이용한 매수,매도 시스템을 원합니다 2번에 수식 그대로에 수식에 있는 숫자 만 100으로 바뀐뒤 50과 100으로 이용한 교차 시스템을 원합니다 (2번수식에 숫자를 100으로 변경하면됩니다~) 3번. 변동싱지표로 이용한 시스템을 원합니다 선들이 이격이 벌어질경우 매수,매도 신호 발생 이격이 합쳐질때 청산신호를 원합니다 청산후 진입을 했으면좋겠습니다~ 매수 청산 매도 청산 3번은 사진참조 부탁드립니다 (1,2,3번 전체다 외부변수 수정가능하게좀 부탁드립니다~) 항상감사합니다ㅎ
프로필 이미지
곽민수
2016-05-16
208
글번호 98080
시스템
답변완료

지표문의

지표문의 1.아래를 지표로 쓰려니 안되요.좀 고쳐 주세요. 내용은 첫째.최고의 미결을 찾고 그 다음 그 최고의 미결을 오늘 고점에 할당. 둘째 최저의 미결을 찾고 그 다음 그 최저의 미결을 오늘 저점에 할당 이렇게 하는 이유는 지표가 오늘 고점,저점 안에서 놀게 해서 볼려구요. 예를 들면 어제 미결최고가 5,000개인데 선물지수는 242.80 그럼 5000개와 242.80이 너무 괴리가 생기니 미결최고5000개를 오늘 최고 점에 할당해서 미결최고선이랑 최고점 이랑 선이 일치 하게 할려구 아래지표를 작성 해본것임. 2.만약 일치하는선을 표시 안되면 근사하게라두 표시 되게 끔 작성 부닥 드립니다. input : ma1(12); var : cnt(0); var :미결고(0).미결저(0); 미결고=Max(dayOI,dayOI[1]); 미결저=Min(dayOI,dayOI[1]); var1 = Highest(미결고,dayindex()) var2 = Lowest(미결저,dayindex()) for cnt = 0 to ma1-1{ if dayhigh(cnt) > var1 Then var1 = dayhigh(cnt); if DayLow(cnt) < var2 Then var2 = daylow(cnt); plot1(var1); plot2(var2); plot3((var1+var2)/2); 3.그럼 즐거운 하루 되세요.
프로필 이미지
성공예견
2016-05-14
116
글번호 98079
지표
답변완료

부탁 드립니다.

해선용으로 변환 부탁 드립니다. 미리 감사드립니다. Input :Atime(10),Period(14); var : TF(0),MFIv(0),cnt(0),sum1(0),sum2(0); Array : HH[100](0),LL[100](0),CC[100](0),Vv[100](0); Array : val1[100](0),val2[100](0),val3[100](0),val4[100](0); TF = TimeToMinutes(stime)%Atime; if dayindex() == 0 or (TF < TF[1] and stime > stime[1]) or stime >= 151500 Then{ HH[0] = H; LL[0] = L; VV[0] = 0; for cnt = 1 to 99{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; val1[cnt] = val1[cnt-1][1]; val2[cnt] = val2[cnt-1][1]; val3[cnt] = val3[cnt-1][1]; val4[cnt] = val4[cnt-1][1]; } } CC[0] = C; if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; VV[0] = VV[0]+V; val1[0] = HH[0] + LL[0] + CC[0]; val4[0] = VV[0] * Val1[0]/ 3; if val1[0] > val1[1] then val2[0] = val4[0]; else val2[0] = 0; if val1[0] < val1[1] then val3[0] = val4[0]; else val3[0] = 0; if CC[Period-1] > 0 Then{ sum1 = 0; sum2 = 0; for cnt = 0 to Period-1{ sum1 = sum1+val2[cnt]; sum2 = sum2+val3[cnt]; } MFIv = 100 - 100 / (1 + (sum1/sum2)); plot1(MFIv); }
프로필 이미지
yes
2016-05-15
111
글번호 98078
지표