커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식추가부탁드림니다

52224관련수식에서 파동의고점(마지막봉)과고점(마지막봉)을 연결하는 윗꼬리선(1종가선+2고가선)과 파동의 저점(마지막봉)과저점(마지막봉)을 연결하는 아랫꼬리선(3종가선+4저가선)4선을 추가해주세요
프로필 이미지
수루지
2017-03-06
167
글번호 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
467
글번호 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
139
글번호 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
127
글번호 107467
시스템

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

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

뭐가잘못됐나요?

안녕하세요 검증되는데 신호 없어 수정의뢰합니다 감사^^ input : Length1(10); input : LengthMult1(2); input : NdayAgo1(0); var : a저항선(0), a지지선(0), aRcount(0), aScount(0); var : a저항선2(0), a지지선2(0), aRcount2(0), aScount2(0); var : aR1(0), aR2(0), aR3(0), aR4(0), aR5(0), aR6(0), aR7(0), aR8(0), aR9(0),aR10(0), aR11(0), aR12(0), aR13(0), aR14(0), aR15(0),aR16(0), aR17(0), aR18(0), aR19(0),aR20(0); var : aS1(0), aS2(0), aS3(0), aS4(0), aS5(0), aS6(0), aS7(0), aS8(0), aS9(0),aS10(0), aS11(0), aS12(0), aS13(0), aS14(0), aS15(0), aS16(0), aS17(0), aS18(0), aS19(0),aS20(0); var : aR81(0), aR82(0), aR83(0), aR84(0), aR85(0), aS91(0), aS92(0), aS93(0), aS94(0), aS95(0); input : Length2(10); input : LengthMult2(2); input : NdayAgo2(0); var : b저항선(0), b지지선(0), bRcount(0), bScount(0); var : b저항선2(0), b지지선2(0), bRcount2(0), bScount2(0); var : bR1(0), bR2(0), bR3(0), bR4(0), bR5(0), bR6(0), bR7(0), bR8(0), bR9(0), bR10(0), bR11(0), bR12(0), bR13(0), bR14(0), bR15(0), bR16(0), bR17(0), bR18(0), bR19(0), bR20(0); var : bS1(0), bS2(0), bS3(0), bS4(0), bS5(0), bS6(0), bS7(0), bS8(0), bS9(0), bS10(0), bS11(0), bS12(0), bS13(0), bS14(0), bS15(0), bS16(0), bS17(0), bS18(0), bS19(0), bS20(0); var : bR81(0), bR82(0), bR83(0), bR84(0), bR85(0), bS91(0), bS92(0), bS93(0), bS94(0), bS95(0); var1 = DateToJulian(currentdate); var2 = DateToJulian(date); if var2 >= var1-NdayAgo1 && dayindex >= Length1-1 then { a저항선 = SwingHigh(1, H, Length1, Length1, Length1*2+1); a지지선 = swingLow(1, L, Length1, Length1, Length1*2+1); if a저항선 == -1 Then a저항선 = a저항선[1]; if a지지선 == -1 Then a지지선 = a지지선[1]; if a저항선 != a저항선[1] then aRcount = aRcount + 1; if a지지선 != a지지선[1] Then aScount = aScount + 1; if aRcount == 1 then aR1 = a저항선; if aRcount == 2 Then aR2 = a저항선; if aRcount == 3 then aR3 = a저항선; if aRcount == 4 Then aR4 = a저항선; if aRcount == 5 then aR5 = a저항선; if aRcount == 6 Then aR6 = a저항선; if aRcount == 7 then aR7 = a저항선; if aRcount == 8 Then aR8 = a저항선; if aRcount == 9 then aR9 = a저항선; if aRcount == 10 Then aR10 = a저항선; if aRcount == 11 then aR11 = a저항선; if aRcount == 12 Then aR12 = a저항선; if aRcount == 13 then aR13 = a저항선; if aRcount == 14 Then aR14 = a저항선; if aRcount == 15 then aR15 = a저항선; if aRcount == 16 Then aR16 = a저항선; if aRcount == 17 then aR17 = a저항선; if aRcount == 18 Then aR18 = a저항선; if aRcount == 19 then aR19 = a저항선; if aRcount == 20 Then aR20 = a저항선; if aScount == 1 then aS1 = a지지선; if aScount == 2 Then aS2 = a지지선; if aScount == 3 then aS3 = a지지선; if aScount == 4 Then aS4 = a지지선; if aScount == 5 then aS5 = a지지선; if aScount == 6 Then aS6 = a지지선; if aScount == 7 then aS7 = a지지선; if aScount == 8 Then aS8 = a지지선; if aScount == 9 then aS9 = a지지선; if aScount == 10 Then aS10 = a지지선; if aScount == 11 then aS11 = a지지선; if aScount == 12 Then aS12 = a지지선; if aScount == 13 then aS13 = a지지선; if aScount == 14 Then aS14 = a지지선; if aScount == 15 then aS15 = a지지선; if aScount == 16 Then aS16 = a지지선; if aScount == 17 then aS17 = a지지선; if aScount == 18 Then aS18 = a지지선; if aScount == 19 then aS19 = a지지선; if aScount == 20 Then aS20 = a지지선; } # 중요 지지a저항선은 굵게 표시 if var2 >= var1-NdayAgo1 && dayindex >= Length1*LengthMult1-1 then { a저항선2 = SwingHigh(1, H, Length1*LengthMult1, Length1*LengthMult1, Length1*LengthMult1*2+1); a지지선2 = swingLow(1, L, Length1*LengthMult1, Length1*LengthMult1, Length1*LengthMult1*2+1); if a저항선2 == -1 Then a저항선2 = a저항선2[1]; if a지지선2 == -1 Then a지지선2 = a지지선2[1]; if a저항선2 != a저항선2[1] then aRcount2 = aRcount2 + 1; if a지지선2 != a지지선2[1] Then aScount2 = aScount2 + 1; if aRcount2 == 1 then aR81 = a저항선2; if aRcount2 == 2 Then aR82 = a저항선2; if aRcount2 == 3 then aR83 = a저항선2; if aRcount2 == 4 Then aR84 = a저항선2; if aRcount2 == 5 then aR85 = a저항선2; if aScount2 == 1 then aS91 = a지지선2; if aScount2 == 2 Then aS92 = a지지선2; if aScount2 == 3 then aS93 = a지지선2; if aScount2 == 4 Then aS94 = a지지선2; if aScount2 == 5 then aS95 = a지지선2; } var1 = DateToJulian(currentdate); var2 = DateToJulian(date); if var2 >= var1-NdayAgo2 && dayindex >= Length2-1 then { b저항선 = SwingHigh(1, H, Length2, Length2, Length2*2+1); b지지선 = swingLow(1, L, Length2, Length2, Length2*2+1); if b저항선 == -1 Then b저항선 = b저항선[1]; if b지지선 == -1 Then b지지선 = b지지선[1]; if b저항선 != b저항선[1] then bRcount = bRcount + 1; if b지지선 != b지지선[1] Then bScount = bScount + 1; if bRcount == 1 then bR1 = b저항선; if bRcount == 2 Then bR2 = b저항선; if bRcount == 3 then bR3 = b저항선; if bRcount == 4 Then bR4 = b저항선; if bRcount == 5 then bR5 = b저항선; if bRcount == 6 Then bR6 = b저항선; if bRcount == 7 then bR7 = b저항선; if bRcount == 8 Then bR8 = b저항선; if bRcount == 9 then bR9 = b저항선; if bRcount == 10 Then bR10 = b저항선; if bRcount == 11 then bR11 = b저항선; if bRcount == 12 Then bR12 = b저항선; if bRcount == 13 then bR13 = b저항선; if bRcount == 14 Then bR14 = b저항선; if bRcount == 15 then bR15 = b저항선; if bRcount == 16 Then bR16 = b저항선; if bRcount == 17 then bR17 = b저항선; if bRcount == 18 Then bR18 = b저항선; if bRcount == 19 then bR19 = b저항선; if bRcount == 20 Then bR20 = b저항선; if bScount == 1 then bS1 = b지지선; if bScount == 2 Then bS2 = b지지선; if bScount == 3 then bS3 = b지지선; if bScount == 4 Then bS4 = b지지선; if bScount == 5 then bS5 = b지지선; if bScount == 6 Then bS6 = b지지선; if bScount == 7 then bS7 = b지지선; if bScount == 8 Then bS8 = b지지선; if bScount == 9 then bS9 = b지지선; if bScount == 10 Then bS10 = b지지선; if bScount == 11 then bS11 = b지지선; if bScount == 12 Then bS12 = b지지선; if bScount == 13 then bS13 = b지지선; if bScount == 14 Then bS14 = b지지선; if bScount == 15 then bS15 = b지지선; if bScount == 16 Then bS16 = b지지선; if bScount == 17 then bS17 = b지지선; if bScount == 18 Then bS18 = b지지선; if bScount == 19 then bS19 = b지지선; if bScount == 20 Then bS20 = b지지선; } if var2 >= var1-NdayAgo2 && dayindex >= Length2*LengthMult2-1 then { b저항선2 = SwingHigh(1, H, Length2*LengthMult2, Length2*LengthMult2, Length2*LengthMult2*2+1); b지지선2 = swingLow(1, L, Length2*LengthMult2, Length2*LengthMult2, Length2*LengthMult2*2+1); if b저항선2 == -1 Then b저항선2 = b저항선2[1]; if b지지선2 == -1 Then b지지선2 = b지지선2[1]; if b저항선2 != b저항선2[1] then bRcount2 = bRcount2 + 1; if b지지선2 != b지지선2[1] Then bScount2 = bScount2 + 1; if bRcount2 == 1 then bR81 = b저항선2; if bRcount2 == 2 Then bR82 = b저항선2; if bRcount2 == 3 then bR83 = b저항선2; if bRcount2 == 4 Then bR84 = b저항선2; if bRcount2 == 5 then bR85 = b저항선2; if bScount2 == 1 then bS91 = b지지선2; if bScount2 == 2 Then bS92 = b지지선2; if bScount2 == 3 then bS93 = b지지선2; if bScount2 == 4 Then bS94 = b지지선2; if bScount2 == 5 then bS95 = b지지선2; } if crossup(c,aR1) Then buy(); if CrossDown(c,bS1) Then exitlong(); if CrossDown(C,aS1) Then sell(); if crossup(C,bR1) Then ExitShort();
프로필 이미지
회원
2017-03-05
158
글번호 107464
시스템
답변완료

부탁 드립니다.

아래 수식의 그림1을 그림2와 같이 나타 내고 십습니다. 미리 감사 드립니다. var1=trix(20); plot1(var1,"trix20"); PlotBaseLine1(0,"0"); PlotBaseLine2(-0.01,"-0.01"); PlotBaseLine3(0.01,"0.01");
프로필 이미지
yes
2017-03-05
197
글번호 107463
지표
답변완료

안녕하세요. 수식 부탁드립니다.

안녕하세요~ 해외선물의 전일 장의 중심가와 당일 시가를 나타내는 수식 부탁드립니다. 그리고 중심가 가격과 시가 가격을 그리고 시가선과 중심가선의 이름을 차트 우측 여백에 표시되게 부탁드립니다. 미리 감사드립니다.
프로필 이미지
태양같이
2017-03-04
146
글번호 107462
지표

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

프로필 이미지
카카
2017-03-04
23
글번호 107461
지표