커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

추세선의 값

TL_Getvalue 하면 추세선 위치값이 아니라 주가를 읽어 오네요! 추세선이 지나는 위치값을 알려면 어떻게 해야 하나요? 테스트를 위해 몇줄 프로그램을 넣어 저장후 전략실행 화면에서 실행하면 실행후 시스템에서 파일명이 사라짐니다. 편집기 화일 관리자에는 존재하는데.... 다시 사라진 화일명으로 다른이름으로 저장하면 전략실행 화면에는 아예 나타나질 않습니다. 사라진 이름으로는 다시는 저장도 안되고요. ㅠㅠ // // Test_f8 // Input : SZ(0); // 선굵기 Input : FD(20220111); // 찾을 날짜시간 Input : FT(120000); Input : SD1(20220111); // 시험 추세선 #1 Input : ST1(090000); Input : SV1(388.00); Input : ED1(20220111); Input : ET1(145000); Input : EV1(389.00); Input : SD2(20220111); // 시험 추세선 #2 Input : ST2(090000); Input : SV2(388.00); Input : ED2(20220111); Input : ET2(145000); Input : EV2(389.00); var : P1V(0); var : TL1(0); var : TL2(0); var : Text1(0); var : PM5(0); var : PM6(0); // #1 첫라인 점 TL1 = TL_New(SD1,ST1,SV1,SD1,ST1,SV1); //TL_SetSize(TL1,SZ); //TL_SetColor(TL1,Red); /* 이동라인 TL_SetBegin(TL1,SD1,ST1,SV1); TL_SetEnd(TL1,ED1,ET1,EV1); TL_SetSize(TL1,SZ); TL_SetColor(TL1,Red); */ //PM5 = TL_Getvalue(TL1,FD,FT); // #2 첫라인 점 TL2 = TL_New(SD2,ST2,SV2,SD2,ST2,SV2); //TL_SetSize(TL2,SZ); //TL_SetColor(TL2,Black); /* 이동라인 TL_SetBegin(TL2,SD2,ST2,SV2); TL_SetEnd(TL2,ED2,ET2,EV2); TL_SetSize(TL2,SZ); TL_SetColor(TL2,Black); */ //PM6 = TL_Getvalue(TL2,FD,FT); If PM5 == PM6 then { Text1 = Text_New(,FD,FT, PM5, NumToStr(PM5,2) + "->"); } Test 프로그램이 정상인지, 왜 사라지는지 답변부탁드립니다. 새벽 5시10분이 되니 끊키네요. 아이고~~~
프로필 이미지
와글이
2022-01-12
1142
글번호 155353
지표
답변완료

종목검색합니다

1) 금일 WILLR(-80)을 상향 돌파하고 종가가 일목균형4개중 가장 작은것보다 큰 종목을 검색하는 식, 2) 금일 WILLR(-80)을 상향 돌파하고 종가가 일목균형4개중 전환선이나 기준선보다 큰 종목을 검색하는 식을 구합니다 감사합니다
프로필 이미지
느림보
2022-01-11
1287
글번호 155345
종목검색
답변완료

함수요청

아래 글번호 75464번 재질문입니다. 글번호 74425번에서 작성주신 지표의 고점(HV)과 저점(LV)은 아래와 같이 정의되었습니다. 따라서 HH와 LL값이 생성되었지만 HV 혹은 LV 값이 생성되지 않을 수 있습니다. [아래] - MACD오실레이터가 9시 3분 완성봉의 첫 히스토그램이 양의 값이면 그 값 포함부터 MACD오실레이터 값이 음으로 반전하고 다시 양의 값으로 재전환할 때까지를 포함하여 (MACD오실레이터 양의 값 포함->음->양으로 변환할 때포함) 주가의 고점(HV)과 저점(LV)을 잡습니다. - MACD오실레이터가 9시 3분 완성봉의 첫 히스토그램이 음의 값이면 그 값 포함부터 MACD오실레이터 값이 양으로 반전하고 다시 음으로 값으로 재전환할 때까지를 포함하여 (MACD오실레이터 음의 포함->양-> 음으로 변환할 때포함) 주가의 고점(HV)과 저점(LV)을 잡습니다. ==================================================================================== 기작성주신 아래 글번호 75023번의 지표와 74425번의 지표를 활용하여 국내선물 3분봉으로 일중거래를 하고자 합니다. - HH = HV이고 LL값이 나왔으나 LV값이 나오지 않은 상태라면 LL 이탈 완성시 익봉 시가에 3계약 매도 진입 -> 매수 진입 이후 LV값이 나오고 LV값을 하향 이탈 완성하면 익봉 시가에 1계약 매도청산 -> 60ma 상향 돌파 완성 익봉 시가에 1계약 매도청산 -> 15시 15분 나머지 포지션 전량 강제청산 (미결제약정 1계약~3계약) - LL = LV이고 HH값이 나왔으나 HV값이 나오지 않은 상태라면 HH 돌파 완성시 익봉 시가에 3계약 매수 진입 -> 매수 진입 이후 HV값이 나오고 HV값을 상향 돌파 완성하면 익봉 시가에 1계약 매수청산 -> 60ma 하향 이탈 완성 익봉 시가에 1계약 매수청산 -> 15시 15분 나머지 포지션 전량 강제청산 (미결제약정 1계약~3계약) : 하루 3계약을 1번 진입하며 당일 모두 청산하여 오버나이트 하지 않습니다. : 매도포지션으로 진입하고 LV값이 나오고 LV값을 하향 이탈 완성하면 익봉 시가에 1계약 매도청산하고자 하는데 LV값에서 횡보하여 이탈과 돌파를 반복하여 이탈할 때마다 포지션을 청산하는 것이 아니라 LV값 하향 이탈로는 1번만 1계약을 청산하고자 합니다. 60ma 상향 돌파시도 마찬가지 입니다. 1번만 1계약 청산하고자 합니다. 매수포지션으로 진입을 해도 같은 논리입니다. ----------------------------------------------------------------------------------- [지표 75023] Input : short(12), long(26), signal(9); Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0); var : d1(0),t1(0),tl1(0),tl2(0); MACDv = MACD(short, long); MACDs = ema(MACDv,signal); macdo = MACDv-MACDs; if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; HH = 0; LL = 0; Condition1 = False; } if d1 > 0 Then { if macdo > hh Then hh = macdo; if macdo < ll Then ll = macdo; if Condition1 == False and hh >= ll+0.5 Then { Condition1 = true; var1 = DayHigh; Var2 = DayLow; TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1); TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2); } if Condition1 == true Then { TL_SetEnd(TL1,sDate,sTime,var1); TL_SetEnd(TL2,sDate,sTime,var2); } } [지표 74425] Input : short(12), long(26), signal(9); Var : MACDv(0), MACDs(0),macdo(0),T(0),HV(0),LV(0); var : d1(0),t1(0),tl1(0),tl2(0); MACDv = MACD(short, long); MACDs = ema(MACDv,signal); macdo = MACDv-MACDs; if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; T = 0; if MACDO > 0 Then { T = 1; HV = H; LV = L; } if MACDO < 0 Then { T = -1; HV = H; LV = L; } } Else { if ABS(T) < 2 Then { if H > HV Then HV = H; if L < LV Then LV = L; } if T == 1 and CrossUp(MACDO,0) Then { T = 2; var1 = HV; Var2 = LV; TL1 = TL_New(d1,t1,var1,sDate,sTime,var1); TL2 = TL_New(d1,t1,var2,sDate,sTime,var2); } if T == -1 and CrossDown(MACDO,0) Then { T = -2; var1 = HV; Var2 = LV; TL1 = TL_New(d1,t1,var1,sDate,sTime,var1); TL2 = TL_New(d1,t1,var2,sDate,sTime,var2); } if T == 2 or T == -2 Then { TL_SetEnd(TL1,sDate,sTime,var1); TL_SetEnd(TL2,sDate,sTime,var2); } }
프로필 이미지
흰둥이아빠
2022-01-11
1145
글번호 155344
시스템

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

프로필 이미지
2wnwn
2022-01-11
5
글번호 155342
지표

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

프로필 이미지
adrien
2022-01-11
0
글번호 155337
사용자 함수
답변완료

함수요청

안녕하세요? 국내선물 일봉으로 조회시 미결제약정값에 미결제약정의 5ma값을 그려넣고 싶습니다.
프로필 이미지
흰둥이아빠
2022-01-11
1009
글번호 155325
지표
답변완료

수식계산이 맞는지 확인해 주세요.

안녕하세요? 예스트레이더(32) 와 예스트레이더(64)가 동일한 수식을 다르게 계산합니다. 예스트레이더(64)가 맞게 계산하고 있구요. 예스트레이더(32)의 수식계산이 맞는지 확인부탁드립니다. 아래는 테스트 지표식입니다. Vars : SumTP(0), Cnt(0),TP(0) ; If BarIndex == 1 then ClearDebug; SumTP = 0; value1 = 10 ; For Cnt = 1 to 5 { SumTP = SumTP + AverageFC(10, cnt); TP = SumTP / 5; } plot1(tp); messageLog("value1 %2.f, sumtp %2.f, tp %2.f", value1,sumtp,tp);
프로필 이미지
오토원
2022-01-11
1404
글번호 155322
지표
답변완료

수식추가 부탁드립니다.

안녕하세요? 아래의 수식에서 추가하고싶은게 두가지가 있는데 잘 안되네요. 1. 당일 시작시간(외부변수) 2. 진입후 바로다음캔들이 진입캔들과 반대가 나올시 청산후 역진입. 부탁드립니다. 감사합니다. input : 진입음봉(5),진입양봉(5); input : P1(5),P2(20),진입횟수(3); input : 익절틱수(50),손절틱수(50); var : entry(0); if bdate != Bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; var1 = ma(C,P1); Var2 = ma(C,P2); if MarketPosition == 0 and entry < 진입횟수 and var1 > Var2 and C[1] == O[1] and C[0] <= O[0]-PriceScale*진입음봉 Then Sell(); if MarketPosition == 0 and entry < 진입횟수 and var1 < Var2 and C[1] == O[1] and C[0] >= O[0]+PriceScale*진입양봉 Then Buy(); SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
프로필 이미지
대구어린울프
2022-01-11
983
글번호 155321
시스템
답변완료

수식변환 부탁드립니다.

Input: pLeng(2), pAtrVal(0.6); //매수 채널 정의 v0 = AvgFast(C, pLeng); v1 = pAtrVal * ATR(pLeng); v2 = v0 + v1; //매수 채널 상방 돌파 Cond1 = CrossUp(C, v2); If Cond1 Then Begin //매수 채널 돌파 시 Cond2 활성화 Cond2 = TRUE; v3 = H; End Else Begin //매수 채널 벗어날 시 Cond2 비활성화 Cond1 = Cond2 And (C < v0 Or H >= v3 + 1); If Cond1 Then Begin Cond2 = FALSE; End; End; //매수 채널 돌파시 매수 If Cond2 Then Buy ("KeltnerChannel BY", AtStop, v3); //매도 채널 정의 v4 = v0 - v1; //매도 채널 하방 돌파 Cond3 = CrossDown(C, v4); If Cond3 Then Begin //매도 채널 돌파 시 Cond4 활성화 Cond4 = TRUE; v5 = L; End Else Begin //매수 채널 벗어날 시 Cond2 비활성화 Cond3 = Cond4 And (C > v0 Or L <= v5 - 1); If Cond3 Then Cond4 = FALSE; End; //매도 채널 돌파시 매도 If Cond4 Then Sell("KeltnerChannel SE", AtStop, v5); //5.0% 수익나면 익절 SetStopProfittarget(5, PercentStop); //2.5% 손실나면 손절 SetStopLoss(2.5, PercentStop); //0.3% 수익이후 고점수익대비 2% 하락하면 익절 SetStopTrailing(2, 0.3, PercentStop); ///////////////////////////////////////////////////////////////////////////// Inputs: MyStoplossPoint(1.0); SetStopPosition; // 포지션 전체 SetStopLoss( MyStoplossPoint );
프로필 이미지
chlangs
2022-01-11
971
글번호 155320
시스템