커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

이동평균의 평균

안녕하세요. 특정구간의 모든 ema에 대해서 평균을 구하려고 합니다. 아래와 같이 작성했는데, 평균이 구해지지 않네요. 무엇이 잘못됬을까요? ema대신 ma를 사용하면 평균이 잘 구해집니다.. value1 = 0; For count = StartMaPeriod to StartMaPeriod+NumPeriod-1 { value1 = value1 + ema(Close, count); } value1 = value1 / NumPeriod;
프로필 이미지
시지푸스
2017-04-06
206
글번호 108520
지표
답변완료

수식부탁합니다

안녕하세요- 아래수식에서 #,조건만족시 매수 진입후 1차청산을 못하고 진입자리로 되돌림시 진입자리에서 매수 청산 매도 진입후 1차청산을 못하고 진입자라로 되돌림시 진입자리에서 매도 청산 하는식을 추가하면 좋겠습니다.(다른조건은 기존수식과 동일 유지) #,위의 되돌림 청산이후 기존수식(추가수식포함) 조건으로 매매시간 범위내에서 3회(변수)만 연속 재 진입하는 수식 부탁합니다. input : Per1(28.2),시작시간(103000),종료시간(40000); Var : S1(0),S2(1),S3(1),S4(1),Tcond(false),T1(0),entry(0); if 시작시간 == 0 and sdate != sdate[1] Then{ Tcond = true; T1 = TotalTrades; } if 시작시간 > 0 and (stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간)) Then{ Tcond = true; T1 = TotalTrades; } if 종료시간 == 0 and sdate != sdate[1] Then{ Tcond = false; if MarketPosition == 1 Then exitlong(); if MarketPosition == -1 Then ExitShort(); } if 종료시간 > 0 and (stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간)) Then{ Tcond = false; if MarketPosition == 1 Then exitlong(); if MarketPosition == -1 Then ExitShort(); } if MarketPosition == 0 Then entry = TotalTrades -T1; Else entry = (TotalTrades -T1)+1; S1 = (dayhigh(0)+daylow(0))/2; S2 = (dayhigh(1)+daylow(1))/2; S3 = dayhigh(1); S4 = daylow(1); var1 = dayclose(1)+abs(S3-S4)*(Per1/100); var2 = dayclose(1)-abs(S3-S4)*(Per1/100); if MarketPosition == 0 and Tcond == true and entry < 1 Then{ if NextBarOpen <= var2 Then buy("b1",AtStop,var2,2); Else buy("b2",Atlimit,var2,2); if NextBarOpen >= var1 Then sell("s1",AtStop,var1,2); Else sell("s2",Atlimit,var1,2); } if MarketPosition == 1 Then{ exitlong("bx1",atlimit,EntryPrice+PriceScale*27,"",1,1); exitlong("bx2",atlimit,var1,"",1,1); if CurrentContracts < MaxContracts Then exitlong("bx3",AtStop,var2,"",1,1); } if MarketPosition == -1 Then{ ExitShort("sx1",atlimit,EntryPrice-PriceScale*27,"",1,1); ExitShort("sx2",atlimit,var2,"",1,1); if CurrentContracts < MaxContracts Then ExitShort("sx3",AtStop,var1,"",1,1); } SetStopLoss(PriceScale*15,PointStop); ##,언제나 늘 감사합니다.
프로필 이미지
회원
2017-04-06
209
글번호 108519
시스템
답변완료

문의 드립니다.

안녕하세요 아래 파동 수식에서 지나간 고점과 고점, 저점과 저점들은 계속 연결되고 오른쪽 연장은 되지 않고 현재고점과 전고점 추세선과 전고점과 전전고점 추세선 2개 현재 저점과 전저점 추세선, 전저점과 전전저점 추세선 2개만 오른쪽으로 연장되게 부탁드립니다. 미리 감사 드립니다 ========================== Input:length(5); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),처리구분(""), TL_Val1(0),TL_Val2(0); var : T(0),LTL1(0); var : HTL1(0); Array:고점[10,2](0),저점[10,2](0); 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { T = 1; lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); if T[1] != 1 Then{ TL_SetExtRight(LTL1,False); LTL1 = TL_New(sDate[index-저점[2,2]],sTime[index-저점[2,2]],저점[2,1],sDate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1]); TL_SetExtRight(LTL1,true); } If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { T = -1; lastLoVal = L; If 저점[1,2] < 고점[1,2] Then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); if T[1] != -1 then{ TL_SetExtRight(HTL1,false); HTL1 = TL_New(sDate[index-고점[2,2]],sTime[index-고점[2,2]],고점[2,1],sDate[index-고점[1,2]],sTime[index-고점[1,2]],고점[1,1]); TL_SetExtRight(HTL1,true); } If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } TL_SetSize(TL1,0.5); TL_SetColor(TL1,white); TL_SetColor(LTL1,green); TL_SetColor(HTL1,yellow); TL_SetSize(LTL1,1); TL_SetSize(HTL1,1); =================================
프로필 이미지
동해바다01
2017-04-05
317
글번호 108518
지표
답변완료

문의드립니다.

안녕하세요. 차트에 표시되는 최저점과 최고점을 기준으로 진입하는 시스템 수식을 여쭈어 봅니다. 가능 하다면 힘드시드라도 아래 2가지 수식으로 부탁을 드리겟습니다. 당일 종가기준 캔들에 최저점 표시이후 <=> 최고점 표시이후 매수 및 매도진입 방법 1번수식 매수진입::최저점 표시이후 가중이평(wma) 5일선이 10일선을 상승돌파할때 매수 매도진입::최고점 표시이후 가중이평(wma) 5일선이 10일선을 하락 돌파할때 매도 공통 => 진입 후 종가기준 캔들갯수 카운터 후 15개이후부터 매수가 대비 고점 또는 저점 대비 50% 하락시 청산 후 다음 신호에서 재진입 진입가대비 손절은 25틱으로 하고싶습니다. 2번수식 당일 종가기준 최저점이 표시된캔들 다음 2번째 캔들에서 매수진입 당일 종가기준 최고점이 표시된캔들 다음 2번째 캔들에서 매도진입 공통=> 진입후 고점 또는 저점대비 50% 하락 또는 상승시 청산 후 다음 신호에서 진입 진입후 손절 25틱으로 하고싶습니다. 감사합니다.
프로필 이미지
천년의사랑
2017-04-05
193
글번호 108517
시스템

마르뚝 님에 의해서 삭제되었습니다.

프로필 이미지
마르뚝
2017-04-05
1
글번호 108516
지표
답변완료

수식부탁드립니다.

input : 텍스트소수점자리수(5); Var:jjjjj(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),Tx(0),trnd(0),tx22(0); var : TL11(0),TL22(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); For jjjjj = 0 To 9 { barArr[jjjjj] = barArr[jjjjj] + 1; } Condition1 = Highest(H,26) == H and lastHiVal <> H; Condition2 = Lowest(L,26) == L and lastLoVal <> L; If Condition1 Then lastHiVal = H; If Condition2 Then lastLoVal = L; // 전환점구분 null값으로 초기화; turnPntBit = ""; If Condition1 and Condition2 Then { If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then turnPntBit = "HiLo"; Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi"; Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo"; } Else If Condition1 Then turnPntBit = "Hi"; Else If Condition2 Then turnPntBit = "Lo"; If turnPntBit <> "" Then { If turnPntBit == "HiLo" Then { valArr[1] = IFF(turnPntArr[1] == "Hi",H,L); barArr[1] = 0; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); If turnPntArr[1] == "Hi" Then turnPntBit = "Lo"; Else turnPntBit = "Hi"; } If turnPntBit <> turnPntArr[1] Then { for jjjjj = 8 downto 1 { valArr[jjjjj+1] = valArr[jjjjj]; barArr[jjjjj+1] = barArr[jjjjj]; turnPntArr[jjjjj+1] = turnPntArr[jjjjj]; } } If turnPntBit <> turnPntArr[1] or (turnPntBit == turnPntArr[1] and ((turnPntBit == "Hi" and valArr[1] < H) or (turnPntBit == "Lo" and valArr[1] > L))) Then { valArr[1] = IFF(turnPntBit == "Hi",H,L); barArr[1] = 0; turnPntArr[1] = turnPntBit; If turnPntArr[1][1] <> turnPntArr[1][0] Then { Tx = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],NumToStr(valArr[2],텍스트소수점자리수)); if turnPntArr[1][0] == "Hi" then Text_SetStyle(tx,0,0); Else Text_SetStyle(tx,0,1); //TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]); PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav"); var1 = valArr[1]; var2 = valArr[2]; var3 = valArr[3]; TL11 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[3],sDate[barArr[1]],sTime[barArr[1]],valArr[3]); TL_SetSize(TL11,1); if turnPntArr[1][0] == "Hi" Then TL_SetColor(TL11,RED); Else TL_SetColor(TL11,blue); } if turnPntArr[1][0] == "Lo" Then trnd = -1; if turnPntArr[1][0] == "hi" Then trnd = 1; } } TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); TL_SetEnd(TL11,sDate[barArr[1]],sTime[barArr[1]],valArr[3]); Text_Delete(tx22); tx22 = Text_New(sDate[barArr[1]],sTime[barArr[1]],valArr[1],NumToStr(valArr[1],텍스트소수점자리수)); TL_Delete(TL22); if turnPntArr[1][0] == "Lo" Then{ TL22 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate,sTime,valArr[2]); TL_SetSize(TL22,1); TL_SetColor(TL22,RED); } if turnPntArr[1][0] == "hi" Then{ TL22 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate,sTime,valArr[2]); TL_SetSize(TL22,1); TL_SetColor(TL22,blue); } TL_SetSize(TL1[1],1); TL_SetColor(TL1[1],BLACK); 첨부한 그림은 위 수식을 적용했을 때 나오는 지표입니다. 첨부파일에 나오는 적색라인과 청색라인을 plot으로 나타낼 수 있도록 부탁드립니다. 감사합니다.
프로필 이미지
해와달
2017-04-05
271
글번호 108515
지표
답변완료

수식의뢰 드려요

해보다가 안되서 전문가님께 도움을 받으려고 합니다! 국선, 해선, 상관없이 30분 챠트에서 변곡점을 찾아보려고 합니다! 위꼬리나 아래 꼬리가 길개 달린 패턴식 봉챠트를 만들고 조건에 성립된다면 강조식으로 표시도 되고 신호도 같이 나타나게 부탁드립니다! 첨부파일에 최대한 상세히 적었습니다! 만약에 꼭 아래 조건되로 안된다면 비슷한 상황이라도 진입식을 부탁드립니다! 부탁드립니다!
프로필 이미지
qha71
2017-04-05
240
글번호 108514
시스템
답변완료

오류메세지

예스트레이드 로그인 후 오류메세지가 계속 반복해서 뜨는데 처리방법 좀 알려주시면 감사하게습니다 4월 이후 교육 일정은 어떻게 되나요? 일요일에 하실 예정이면 좋겠습니다^^
프로필 이미지
mirror05
2017-04-05
194
글번호 108512
시스템
답변완료

시스탬식

안녕하세요 시스템식 부탁좀 드립니다 교차기법 매수=해외오일기준 입니다 현재1분봉 종가가 볼린저 밴드 중심선 위에있고 이평30선이 75선 교차돌파 거래량이 1분봉기준 30봉이내 1000개이상 발생(양봉 거래량) 30봉합산 거래량이 아니고 1분봉 개별 기준임 그리고 30분봉이 양봉상태 거래시작시간-오후18시 매도=매수의 반대 익절천산=0.8프로 감사합니다
프로필 이미지
아트정
2017-04-06
209
글번호 108511
시스템