커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

영웅문 수식을 예스용으로 변환부탁드립니다

//A=(highest(H,shortPeriod)+lowest(L,shortPeriod))/2; //B=(highest(H,midPeriod)+lowest(L,midPeriod))/2; //CrossUp(A,B) ; //CrossDown(A,B) &#8203; //[수식1]매수 - 빨강 -막대 - 화면 A=(highest(H,9)+lowest(L,9))/2; B=(highest(H,26)+lowest(L,26))/2; 매수진입 = A>B AND A(1)<=B(1) AND C>O ; 매도진입 = A<B AND A(1)>=B(1) AND C<O ; 매수 = IF(매수진입,100,0); 매도 = IF(매도진입,-100,0); 매수 //[수식2]매도 - 파랑 -막대 - 화면 매도 참고 파일 첨부합니다! 감사합니다!
프로필 이미지
qha71
2017-03-06
324
글번호 107474
시스템
답변완료

재문의드립니다.

52207번 답을 주신 것에 재문의 드렸습니다. 다시한번 살펴주시기 바랍니다. 감사드려요!!!
프로필 이미지
해암
2017-03-06
172
글번호 107473
검색
답변완료

수식작성

선물, 옵션에서 장 시작 후 시가를 깨고 내려갔다가, 다시 시가를 깨고 오르는 경우 시가에 매수주문 하는 수식 부탁드립니다. 초보라서 죄송합니다..
프로필 이미지
yunmx
2017-03-05
175
글번호 107472
시스템
답변완료

시스템식 부탁드립니다

항상 도움 주셔서 감사합니다. 아래처럼 코딩을 하였는데 매매가 안됩니다. 매매가 될수 있도록 도움 부탁드립니다. //======================================================== // 추세선으로 매매하기 //======================================================== input : 추세선시작일1(20170303),추세선시작시간1(070000); //추세선1-저가 input : 추세선종료일1(20170303),추세선종료시간1(190500); //추세선1-저가2 input : 추세선시작일2(20170303),추세선시작시간2(011000); //추세선2-고가 input : 추세선종료일2(20170303),추세선종료시간2(174500); //추세선2-고가2 input : X1(0.65),X11(-0.65),X2(0.6),X22(-0.6) ;// 추세선 이동 input : loss(10),profit(30),Tp(10),Ts(5); // 수익,손절,트레일링스탑 var : TL1(0),TLL1(0),TLLL1(0),T1(0); //추세선1 var : TL2(0),TLL2(0),TLLL2(0),T2(0); //추세선2 ##### 추세선 그리기 ##### // 추세선1 - 저가 if sdate == 추세선시작일1 and time == 추세선시작시간1 Then{ T1 = 1; var1 = L; } if T1 == 1 and sdate == 추세선종료일1 and time == 추세선종료시간1 Then{ var2 = L; TL1 = TL_New(추세선시작일1,추세선시작시간1,var1,추세선종료일1,추세선종료시간1,var2); TL_SetExtLeft(TL1,true); TL_SetExtRight(TL1,true); TL_SetColor(TL1,BLUE) ; T1 = 2; TLL1 = TL_New(추세선시작일1,추세선시작시간1,var1+x1,추세선종료일1,추세선종료시간1,var2+x1); //추세선 복사 TL_SetExtLeft(TLL1,true); TL_SetExtRight(TLL1,true); TL_SetColor(TLL1,BLUE) ; TLLL1 = TL_New(추세선시작일1,추세선시작시간1,var1+x11,추세선종료일1,추세선종료시간1,var2+x11); //추세선 복사 TL_SetExtLeft(TLLL1,true); TL_SetExtRight(TLLL1,true); TL_SetColor(TLLL1,BLUE) ; } // 추세선2 - 고가 if sdate == 추세선시작일2 and time == 추세선시작시간2 Then{ T2 = 1; var3 = H; } if T2 == 1 and sdate == 추세선종료일2 and time == 추세선종료시간2 Then{ var4 = H; TL2 = TL_New(추세선시작일2,추세선시작시간2,var3,추세선종료일2,추세선종료시간2,var4); TL_SetExtLeft(TL2,true); TL_SetExtRight(TL2,true); TL_SetColor(TL2,RED) ; T2 = 2; TLL2 = TL_New(추세선시작일2,추세선시작시간2,var3+x2,추세선종료일2,추세선종료시간2,var4+x2); TL_SetExtLeft(TLL2,true); TL_SetExtRight(TLL2,true); TL_SetColor(TLL2,RED) ; TLLL2 = TL_New(추세선시작일2,추세선시작시간2,var3+x22,추세선종료일2,추세선종료시간2,var4+x22); TL_SetExtLeft(TLLL2,true); TL_SetExtRight(TLLL2,true); TL_SetColor(TLLL2,RED) ; } ##### 시스템매매 ##### // 진입 시스템 // 매매시간 시작(2개의 추세선 중 늦은시간의 추세선이 그려진 이후 매매) if sdate >= 추세선종료일1 and stime >= 추세선종료시간1 then { // 저가선 하락돌파 if T1 == 2 and MarketPosition == 0 then{ if C < TL_GetValue(TL1,sdate,stime) and C[1] > TL_GetValue(TL1,sdate[1],stime[1]) Then sell("S"); } // 고가선 상승돌파 if T2 == 2 and MarketPosition == 0 then{ if C > TL_GetValue(TL2,sdate,stime) and C[1] < TL_GetValue(TL2,sdate[1],stime[1]) Then Buy("B"); } // 청산 시스템 // 매도청산 if T1 == 2 and MarketPosition == -1 then{ if (C <= TL_GetValue(TLLL1,sdate,stime) and C[1] > TL_GetValue(TLLL1,sdate[1],stime[1])) or (C <= TL_GetValue(TLLL2,sdate,stime) and C[1] > TL_GetValue(TLLL2,sdate[1],stime[1])) Then ExitShort("SX"); } // 매수청산 if T2 == 2 and MarketPosition == 1 then{ if (C >= TL_GetValue(TLL1,sdate,stime) and C[1] < TL_GetValue(TLL1,sdate[1],stime[1])) or (C >= TL_GetValue(TLL2,sdate,stime) and C[1] < TL_GetValue(TLL2,sdate[1],stime[1])) Then ExitLong("BX"); } // 매매시간종료 } ##### 스탑로스 ##### //SetStopProfittarget(Profit*PriceScale,PointStop); SetStopLoss(loss*PriceScale,PointStop); //SetStopTrailing(TS*PriceScale,TP*PriceScale,PointStop); SetStopEndofday(065000) ; - 위 코딩은 오일 4월물로 테스트 부탁드립니다. 그리고 한가지 부탁드립니다. 예스스탁에서 추세선 매매 할수 있는 시스템 개발 좀 부탁드립니다. 추세선 매매가 되면 더 많은 사람들이 예스스탁을 이용할 것이며, 수식작성에 대한 문의도 줄어들것으로 예상됩니다. 추세선 매매만 된다면 정말 훌륭한 시스템매매 툴이 될것으로 생각됩니다. 다시한번 부탁드립니다.
프로필 이미지
양치기
2017-03-06
241
글번호 107471
시스템
답변완료

수식추가부탁드림니다

52224관련수식에서 파동의고점(마지막봉)과고점(마지막봉)을 연결하는 윗꼬리선(1종가선+2고가선)과 파동의 저점(마지막봉)과저점(마지막봉)을 연결하는 아랫꼬리선(3종가선+4저가선)4선을 추가해주세요
프로필 이미지
수루지
2017-03-06
214
글번호 107470
지표
답변완료

문의드립니다.

1. input:p(192),stoch_k(14),stoch_d(5),stoch_s(3),mv(5),kstd(1.618); var:j(1),sum(0),ip(0),n(0),f(0),qq(0),mm(0),tt(0),ii(0),jj(0), kk(0),ll(0),nn(0),mi(0),kstd_internal(0.8); var:sq(0),stdv(0),StoK(0),StoD(0); array:ai[10,10](0),b[10](0),x[10](0),sx[20](0); array:fx[500](0),sqh[500](0),sql[500](0),stdh[500](0),stdl[500](0); //-------------------stochastic------------------- value1 = lowest(L,stoch_k); value2 = highest(H,stoch_k); value3 = (Close - value1) / (value2 - value1) * 100; StoK = ma(value3, stoch_d); StoD = ma(StoK,stoch_s); //-------------------sx--------------------------- sx[1] = p + 1; nn = mv + 1; //5 + 1 = 6 for mi = 1 to nn * 2 - 2 begin //1 ~ 10 sum = 0; for n = j to j + p begin //1 ~ 193 sum = sum + pow(n,mi); end sx[mi + 1] = sum; end //-------------------syx-------------------------- for mi = 1 to nn begin //1 ~ 6 sum = 0; for n = j to j + p begin //1 ~ 193 if mi == 1 then sum = sum + StoK[n]; else sum = sum + StoK[n] * pow(n,mi - 1); end b[mi] = sum; end //===================Matrix======================= for jj = 1 to nn begin //1 ~ 6 for ii = 1 to nn begin //1 ~ 6 kk = ii + jj - 1; //1 ~ 11 ai[ii,jj] = sx[kk]; end end //===================Gauss======================== for kk = 1 to nn - 1 begin //1 ~ 5 ll = 0; mm = 0; for ii = kk to nn begin if abs(ai[ii,kk]) > mm then begin mm = abs(ai[ii,kk]); ll = ii; end end if ll == 0 then kk = 10; else if ll <> kk then begin for jj = 1 to nn begin //1 ~ 6 tt = ai[kk,jj]; ai[kk,jj] = ai[ll,jj]; ai[ll,jj] = tt; end tt = b[kk]; b[kk] = b[ll]; b[ll] = tt; end for ii = kk + 1 to nn begin qq = ai[ii,kk] / ai[kk,kk]; for jj = 1 to nn begin if jj == kk then begin ai[ii,jj] = 0; end else begin ai[ii,jj] = ai[ii,jj] - qq * ai[kk,jj]; end end b[ii] = b[ii] - qq * b[kk]; end end x[nn] = b[nn] / ai[nn,nn]; for ii = nn - 1 downto 1 begin tt =0; for jj = 1 to nn - ii begin tt = tt + ai[ii,ii + jj] * x[ii + jj]; x[ii] = (1 / ai[ii,ii]) * (b[ii] - tt); end end //================================================ for n = j to j + p begin sum = 0; for kk = 1 to mv begin sum = sum + x[kk + 1] * Pow(n,kk); end fx[n] = x[1] + sum; end //-------------------Std-------------------------- sq = 0; for n = j to j + p begin sq = sq + pow(StoK[n] - fx[n],2); end sq = SqRt(sq / (p + 1)) * kstd; stdv = STD(StoK,p)[j] * kstd_internal; for n = j to j + p begin sqh[n] = fx[n] + sq; sql[n] = fx[n] - sq; stdh[n] = fx[n] + stdv; stdl[n] = fx[n] - stdv; end #3 if (crossup(stok,stdl[1]) and stod > stdl[1]) or (CrossUp(stod,stdl[1]) and stok > stdl[1]) Then buy(); if (CrossDown(stok,sqh[1]) and stod < sqh[1]) or (CrossDown(stod,sqh[1]) and stok < sqh[1]) Then ExitLong(); if (CrossDown(stok,stdh[1]) and stod < stdh[1]) or (CrossDown(stod,stdh[1]) and stok < stdh[1]) Then sell(); if (crossup(stok,sql[1]) and stod > sql[1]) or (CrossUp(stod,sql[1]) and stok > sql[1]) Then buy(); 2. input : 기간(20); INPUT: P26(26), PER(1); var : T(0),a1(0),a2(0),V1(0),V2(0),V3(0); var1 = Highest(h,기간); var2 = Lowest(L,기간); var3 = var1-var2; value1 = var1-var3*0.382; value2 = var1-var3*0.500; value3 = var1-var3*0.618; if value2 > value2[1] Then T = 1; if value2 < value2[1] Then T = -1; if T == 1 then{ a1 = value1; a2 = value2; } else{ a1 = value3; a2 = value2; } V1=(Highest(H,P26)+LOWEST(L,P26))/2; V2=V1*(1+PER/100); V3=V1*(1-PER/100); if crossup(a1,v1) Then buy("매수",OnClose,def,2); if CrossDown(a1,v1) Then sell("매도",OnClose,def,2); if MarketPosition == 1 Then{ ExitLong("매수10틱청",atlimit,EntryPrice+PriceScale*10,"",1,1); } if MarketPosition == -1 Then{ ExitShort("매도10틱청",atlimit,EntryPrice-PriceScale*10,"",1,1); } 위 2가지 수식에 추가를 좀부탁드리는 수식입니다 1.거래시간(예: 저녁 6시부터 밤 12시 까지만 그외 시간에는 신호발생금지) 시간 수정 가능하게 부탁드립니다 2.수익설정(예: 크루드오일 경우 0.01=1틱 수익 수정=설정 가능하게) 수익설정(예: 20틱 을 수익으로 설정할경우 더이상 신호발생 금지) 감사합니다
프로필 이미지
곽민수
2017-03-05
695
글번호 107469
시스템
답변완료

검증부탁드립니다.

안녕하세요 아래의 식을 한번 봐주시고 잘못된 부분이 있으면 알려주시기 바랍니다. 감사합니다. ----------------------------------------------------------------------------------- If 조건 then{ EP= C; if MarketPosition == 0 or (MarketPosition == 1 and IsEntryName("B1") == false) then sell("S1"); } if O - C < 0.5 then if MarketPosition == -1 Then{ if IsEntryName("S1") == true Then ExitShort("S1손절",AtStop,EP+Pricescale*10); if IsEntryName("S1") == true Then ExitShort("S1익절",Atlimit,EP-Pricescale*15); } if O - C >= 0.5 then if MarketPosition == -1 Then{ if IsEntryName("S1") == true Then ExitShort("S1손절2",AtStop,EP+Pricescale*6); if IsEntryName("S1") == true Then ExitShort("S1익절2",Atlimit,EP-Pricescale*15); } if MarketPosition == -1 Then{ if IsEntryName("S1") == true Then if lowest(L,BarsSinceEntry)<= EntryPrice - PriceScale*10 and lowest(L,BarsSinceEntry) > EntryPrice - PriceScale*20 Then ExitShort("S1본절",AtStop,EntryPrice-PriceScale*3); }
프로필 이미지
맘속의행복
2017-03-05
184
글번호 107468
시스템
답변완료

문의드립니다

1. 아래식에서 목표수익이 50틱 달성이면 청산하게 부탁드립니다. 청산후에는 동일방향으로 재진입안하고 반대신호 나올때 진입해야합니다. 2. 신호에의해 진입후 반대신호청산시(손실이면) 이번신호는 미진입하고 다음신호에 진입 예) 1.sell(진입) , 2.buy{청산 (이익), 진입} , 3.sell{청산(손실)이면 , sell 진입은 안하게} , 4.buy(이신호에 진입) 단)위의 과정처럼 할시 원래 발생되는 신호자리가 바뀌면 안됩니다. 3.sell 자리에서 손실로 청산만하고 진입을 안한다고 해서 다음 4.buy 신호자리가 다른데서 나오지는 안겟지요 ? 시스템 신호는 buy sell 한묶음으로 처리된다하니 혹시 다른 결과자리가 나오면 안되는데 "^ .^" 3. 신호 진입후 10틱이상 수익진행중이다 진입포지션 이탈시 청산하고 위 2번처럼 신호 한번 건너뛰고 다음신호 진입하게 부탁드립니다. 예) 1. buy 진입 (10틱이상수익진행중이다 다시 진입자리이탈시 청산) 2. sell 자리는 건너뛰고 3. buy 진입 Input : af(0.02), maxAF(0.2); var1 = SAR(af,maxAF); if C < var1 Then Begin sell(); End else Begin buy(); End;
프로필 이미지
자라도
2017-03-05
174
글번호 107467
시스템

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

프로필 이미지
수색대대
2017-03-05
12
글번호 107465
시스템