커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

캣피쉬 님에 의해서 삭제되었습니다.

프로필 이미지
캣피쉬
2021-04-23
0
글번호 148308
시스템
답변완료

수정 의뢰 드립니다!

안녕하세요! 아래는 어제 만들어 주신 지표인데 빠트린 부분이 있어서 제가 직접 한번 만들어 보았는데 데이터가 안불러와지는 걸 확인했습니다. 1. 제가 원하는건 data1 = 콜427 현재가 라고 가정 했을때 data2 = 풋430 현재가 / data3 = 풋427 현재가 / data4 = 풋425 현재가 입니다. 즉, 수식조건은 = (data1 현재가+ data2 현재가 / 2) , (data1 현재가+ data3 현재가 / 2) , (data1 현재가+ data4 현재가 / 2) 이렇게 3종류선 + 시가 + 전일 고가와 저가, 당일 상대등가격의 고가와 저가를 선으로 나타내고 싶습니다. 2. 그리고 챠트에 어제 날짜의 선들도 계속 화면에 나타나서 복잡한데, 당일의 선들만 화면에 표시 되면 매매에 많은 도움이 될것 같습니다! 수정 좀 부탁드립니다! var : cnt(0,Data1); var : v1(0,Data1),v2(0,Data1),v3(0,Data1),v4(0,Data1); var : tl1(0,Data1),tl2(0,Data1),tl3(0,Data1),tl4(0,Data1); var : tx1(0,Data1),tx2(0,Data1),tx3(0,Data1),tx4(0,Data1); #(Data1+Data2)/2; v1 = (Data1(c)+Data2(c))/2; #(Data1+Data3)/2; v2 = (Data1(c)+Data3(c))/2; #(Data1+Data4)/2; v3 = (Data1(c)+Data4(c))/2; #(Data1+Data4)/2; v4 = (Data1(c)+Data5(c))/2; For cnt = 0 to 10 { Text_Delete(tx1[cnt]); Text_Delete(tx2[cnt]); Text_Delete(tx3[cnt]); Text_Delete(tx4[cnt]); TL_Delete(tl1[cnt]); TL_Delete(tl2[cnt]); TL_Delete(tl3[cnt]); TL_Delete(tl4[cnt]); } tx1 = Text_New(NextBarSdate,NextBarStime,v1,NumToStr(v1,2)); tx2 = Text_New(NextBarSdate,NextBarStime,v2,NumToStr(v2,2)); tx3 = Text_New(NextBarSdate,NextBarStime,v3,NumToStr(v3,2)); tx4 = Text_New(NextBarSdate,NextBarStime,v4,NumToStr(v4,2)); tl1 = TL_New(sDate,sTime,v1,NextBarSdate,NextBarStime,v1); tl2 = TL_New(sDate,sTime,v2,NextBarSdate,NextBarStime,v2); tl3 = TL_New(sDate,sTime,v3,NextBarSdate,NextBarStime,v3); tl4 = TL_New(sDate,sTime,v4,NextBarSdate,NextBarStime,v4); TL_SetColor(tl1,BLACK);#콜427+ 풋430/2 TL_SetColor(tl2,BLUE);#콜427+풋427/2 중심가 TL_SetColor(tl3,BLACK);#콜427+풋425/2 TL_SetColor(tl4,BLACK);##콜427+풋432/2 TL_SetExtLeft(TL1,true); TL_SetExtLeft(TL2,true); TL_SetExtLeft(TL3,true); TL_SetExtLeft(TL4,true); TL_SetExtRight(TL1,true); TL_SetExtRight(TL2,true); TL_SetExtRight(TL3,true); TL_SetExtRight(TL4,true); Plot1(DayOpen); plot2(data3(highd(1)));//타종목의 전일 고가 plot3(data3(LowD(1)));//타종목의 전일 저가 Plot4((DayHigh+DayLow)/2); Plot5(DayHigh(1)); Plot6(DayLow(1));
프로필 이미지
qha71
2021-04-23
1140
글번호 148307
지표
답변완료

문의드립니다...

안녕하세요 먼저 화면구성을 말씀드리면 모두 일봉기준 data1(주종목)~data10(참조종목) >> 모두 10종목...더 추가될수도 있음 data1의 진입일1,퇴출일1 을 변수로 놓고 진입일1과 퇴출일1 사이 구간에서만 가격(C)를 지표로 표현하고자합니다. 진입일1이전과 퇴출일1이후는 지표값이 0으로 표현되게요... 이렇게 data2종목에서도 진입일2,퇴출일2.....data3종목에도 똑같이... data10까지.... 그렇게 되면 변수값이 종목수 10개면 20개의 변수값이 생기겠죠. 그 변수마다 진입일과 퇴출일들이 같을수도 다를수도 있을껍니다. 하지만 결국은 진입일과 퇴출일사이에서만 가격을 지표로 표현하고자하면 됩니다 그 이전과 이후는 전부 0으로 표현합니다. 여기서 본격적인 질문 질문 1번 그렇게 10개의 지표값(즉, 각 구간별 종목별 가격)을 총 합계를 1개의 지표로 표현해주세요 질문 2번 1. data1의 지표값 * P1(변수) 2. data2의 지표값 * P2(변수)...... ........................................... 10. data10의 지표값 * P10(변수) P1,P2등의 변수값이 곱해진 10개의 값들을 총합계를 1개의 지표로 표현해주세요 참고로 추가질문 참조종목은 최대 몇개까지 추가할수있나요?
프로필 이미지
9회말2아웃
2021-04-23
1050
글번호 148303
지표
답변완료

수식어 부탁드립니다

input : StartTime(140000),EndTime(055000),xtime(055500); Input : Period(20); Input : 당일수익틱수(120); Var : N1(0),dayPl(0),당일수익(0),Xcond(false); Var : value(0),Tcond(false); if sDate != sDate[1] then SetStopEndofday(xtime); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; SetStopEndofday(0); Xcond = false; N1 = NetProfit; } 당일수익 = PriceScale*당일수익틱수; daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 Then Xcond = true; if (IsExitName("dbp",1) == true or IsExitName("dsp",1) == true ) then Xcond = true; } value = VR(Period); var1 = ma(C,5); var2 = ma(C,200); If CrossUP(value, 100) and Xcond == False Then { Buy("b"); } If CrossDown(value, 300) and Xcond == False Then { Sell("s"); } if marketposition == 1 then { if isentryname("b") == true and crossdown(var1,var2) then sell("bs"); if crossdown(var2,var3) Then Exitlong("sbx",onclose,def,"sb"); ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); if EntryTime >= 140000 or EntryTime < Endtime Then ExitLong("bpx",AtLimit,EntryPrice+PriceScale*20); } if marketposition == -1 then { if isentryname("s") == true and crossup(var1,var2) then buy("sb"); if crossup(var2,var3) Then ExitShort("bsx",onclose,def,"bs"); ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); if EntryTime >= 140000 or EntryTime < Endtime Then ExitShort("spx",AtLimit,EntryPrice-PriceScale*20); } ------------------------------------------ 아래는 위수식어 하단의 특정시간 매매수익에 관한것 입니다 if marketposition == 1 then { if isentryname("b") == true and crossdown(var1,var2) then sell("bs"); if crossdown(var2,var3) Then Exitlong("sbx",onclose,def,"sb"); ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); if EntryTime >= 140000 or EntryTime < Endtime Then ExitLong("bpx",AtLimit,EntryPrice+PriceScale*20); } if marketposition == -1 then { if isentryname("s") == true and crossup(var1,var2) then buy("sb"); if crossup(var2,var3) Then ExitShort("bsx",onclose,def,"bs"); ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); if EntryTime >= 140000 or EntryTime < Endtime Then ExitShort("spx",AtLimit,EntryPrice-PriceScale*20); } 위의 수식어의 시간을 14시부터 19시까지 그리고 수익은 20틱 손실은 20틱으로 변경하고자 합니다
프로필 이미지
푸른
2021-04-23
1030
글번호 148298
시스템
답변완료

시스템 수식으로 자동매매실현 하고자 합니다

안녕하세요 사장님~!!! 오랫만이군요~아래 내용을 만족할 수 있는 수식을 부탁드려요 매수매도 진입시점에서 몇틱수익인지 숫자도 출현시켜 주세요 1.10이평선돌파신호 and 2.macd 기준선 상향돌파 and 3.stochastic 상향돌파 4.이평선이격도 수렴상태에서 신호 발생 시켜주세요 ----------------(수식) 1)매수신호 Crossup(C ,avg(C, Period)) and (StochasticsSlow(Period1,Period2)- eavg(StochasticsSlow(Period1,Period2),Period3))>=0 and (MACD(shortPeriod,longPeriod)-eavg(MACD(shortPeriod,longPeriod),sigPeriod))<=0 2)매도신호 Crossdown(C ,avg(C, Period)) and (StochasticsSlow(Period1,Period2)- eavg(StochasticsSlow(Period1,Period2),Period3))<=0 and (MACD(shortPeriod,longPeriod)-eavg(MACD(shortPeriod,longPeriod),sigPeriod))>=0 여기까지하고 ----이평선 이격도 수렴수식과 진입시 수익틱 숫자표시하는것은 수식을 만들어야 합니다 수고하십시요---항상 감사합니다
프로필 이미지
정밀타격수
2021-04-23
1760
글번호 148297
시스템
답변완료

수정 부탁드립니다.

안녕하세요? 아래 수식에서 두가지를 고치고싶습니다. 1) 진입봉포함 세봉이 연달아서 나올시에만 진입되게 하고싶습니다. 현재 진입수식은 아래와 같습니다. 역배열시, 양양+음봉 매도진입(단,첫번째양봉의 시가와 진입음봉의 종가가 같거나 작은 음봉일시) 정배열시, 음음+양봉 매수진입(단,첫번째음봉의 시가와 진입봉의 종가가 같거나 큰 양봉일시) 근데 양양 나오고 진입음봉과 중간에 다른캔들이 들어가있는 경우가 많습니다. 진입봉포함 세봉이 연달아서 나올시에만 진입되게 하고싶습니다. 2) 진입봉이 간혹 도지일때에도 들어가는경우가 있습니다. 도지는 진입에 제외시키고 싶습니다. 감사합니다. input : P1(5),P2(20); input : 익절틱수(50),손절틱수(50); var1 = ma(C,P1); Var2 = ma(C,P2); if MarketPosition == 0 and var1 > Var2 and C[2] > O[1] and C[1] > O[1] and C < O and C <= O[2] Then Sell(); if MarketPosition == 0 and var1 < Var2 and C[2] < O[1] and C[1] < O[1] and C > O and C >= O[2] Then Buy(); SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
프로필 이미지
대구어린울프
2021-04-22
1023
글번호 148296
시스템
답변완료

수식 제작 부탁드립니다.

안녕하세요^^ 아래의 조건에 해당하는 수식을 부탁드리고자 합니다. 골든데드크로스 지표에 대한 변형입니다. 이평선 단기선(20), 중기선(60), 장기선(120)을 놓고, <골든크로스 : 매수진입의 경우> 1) 단기선(20)이 장기선(120)을 상향돌파시 매수진입하고 2) 매수유지 하다가 단기선(20)이 중기선(60)을 하향돌파할 경우 청산하고, 3-1) 단기선(20)이 장기선(120)까지 하향돌파시 매도진입합니다. 3-2) 하지만, 단기선(20)이 장기선(120)을 하향돌파 하지 못한 채, 다시 중기선(60)을 상향돌파시 매수재진입합니다. 이 패턴의 반복이며, 매도진입은 역으로 진행합니다. 수식으로 표현 가능할지 모르겠습니다. 꼭 부탁드립니다. 정말 감사합니다.
프로필 이미지
minve
2021-04-22
1131
글번호 148295
사용자 함수
답변완료

수식 의뢰 부탁드립니다.

안녕하세요 1. 아래 수식에서 3연속 손실이 발생할 경우 N분 매매정지를 할 수 있도록 수정 부탁드립니다 2. 그리고 매매가 끝나면 지정한 시간만큼 매매중지되어야 하는데 위 그림처럼 포지션 청산되자마자 다시 진입과 청산이 이루어집니다 항상 감사합니다 input : N(4),익절(0.03),손절(0),진입(10),StartTime(070000),EndTime(070000),매매정지(20),lb(0),lp(2),sb(0),sp(-2); var : LL(0),HH(0),tx1(0),tx2(0),cnt(0),Tx3(0),sum(0),CL(0),CS(0); Array : VV[20](0); var : Tcond(false),S1(0),D1(0),TM(0),b_vv(0),Condition4(False),최고점(0),최저점(0); Condition1 = L[4]>L[3] and L[3] >L[2] and H>H[1] and H[1]>H[2]; Condition2 = H[4]<H[3] and H[3]<H[2] and L<L[1] and L[1]<L[2]; if ( ( var2 == 0 and C > CS and vv[0] == -1 ) or LL == 0 or C > CL ) and condition1 == true and Condition1[1] == False Then { var1 = var1+1; LL = L[2]; CL = C; VV[0] = 1; For cnt = 1 to 19 { VV[cnt] = VV[cnt-1][1]; } if VV[N-1] != 0 Then { sum = 0; For cnt = 0 to N-1 { sum = sum + VV[cnt]; } } } else { if L < LL Then { var1 = 0; } } if (( var1 == 0 and C < CL and vv[0] ==1) or hh == 0 or C < CS) and condition2 == true and Condition2[1] == False Then { var2 = var2+1; HH = H[2]; CS = C; VV[0] = -1; For cnt = 1 to 19 { VV[cnt] = VV[cnt-1][1]; } if VV[N-1] != 0 Then { sum = 0; For cnt = 0 to N-1 { sum = sum + VV[cnt]; } } } Else { if H > HH Then { var2 = 0; } } #전봉과 현재봉의 영업일이 다르면 당일청산조건 if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; Condition4 = False; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; } if TotalTrades > TotalTrades[1] Then { Condition4 = False; if IsExitName("xl",1) == true or IsExitName("xs",1) == true or IsExitName("stopprofittarget",1) == true then Condition4 = true; } b_vv = vv[4]+vv[3]+vv[2]+vv[1]; 최고점 = highest(h,진입); 최저점 = lowest(l,진입); if sTime > starttime or sTime < Endtime and marketposition == 0 Then { if (b_vv == lb and sum == lp) Then { if condition4 == False Then Buy("b"); if (condition4 == true and TM >= TM[BarsSinceExit(1)]+매매정지) Then Buy("b1"); } if (b_vv == sb and sum == sp) Then { if condition4 == False Then Sell("s"); if (condition4 == true and TM >= TM[BarsSinceExit(1)]+매매정지) Then Sell("s1"); } } if MarketPosition(0) > 0 and C < LL Then ExitLong("xl"); if MarketPosition(0) < 0 and C > HH Then ExitShort("xs"); #타겟청산 SetStopProfittarget(익절,pointstop); SetStopLoss( 손절 ,PointStop);
프로필 이미지
산이보리
2021-04-22
938
글번호 148294
시스템
답변완료

수식 부탁 합니다.

1. 계좌당 한종목만 진입하게 해주세요 한종목이 진입되어 있으면 다른종목 신호가 떠도 진입 안하게요. 2. 계좌당 잔고대비 풀로 진입하는 함수 부탁합니다.
프로필 이미지
영산강
2021-04-22
810
글번호 148293
시스템