커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

질문드립니다

시가선 기준으로 매매하는 식을 만들고있습니다 시가선 돌파나 위에서 완성봉이되었을때 진입조건이 완성되는데 그 완성봉의 길이를 지정해주고싶습니다 그 기준을 잡는 방법이 뭐가있을까요? 예를들어 완성된 양봉 틱수가 10틱이상 이런식으로요 매매식은 어제답변받아서 안적어주셔도됩니다 그리고 추가로 질문부탁드립니다 고저점을 잡고싶습니다 예를 들어서 1, 영업일이지나서 생긴 고저점 볼밴상단을 돌파한고점 하단을 돌파해서 생긴 저점 2, 영업일과 상관없이 볼밴기준으로 생기는 고저점을 지정해주고싶습니다 감사합니다
프로필 이미지
하늘이여o
2017-07-21
121
글번호 111497
시스템
답변완료

수식 부탁드립니다

1. 오전 9시부터 9시 30분까지 당일 저가(daylow)를 표시한다 오전 9시부터 9시 30분까지 당일 고가(dayhigh)를 표시한다 오전 9시부터 9시 30분까지 당일 저가(daylow)와 당일 고가(dayhigh)의 상방 대칭을 표시한다 오전 9시부터 9시 30분까지 당일 저가(daylow)와 당일 고가(dayhigh)의 하방 대칭을 표시한다 2. 오전 9시부터 9시 30분까지 당일 고가를 돌파하는 가격에 매수하여 오전 9시부터 9시 30분까지 당일 저가(daylow)와 당일 고가(dayhigh)의 상방 대칭 가격에 청산 오전 9시부터 9시 30분까지 당일 저가를 붕괴하는 가격에 매도하여 오전 9시부터 9시 30분까지 당일 저가(daylow)와 당일 고가(dayhigh)의 하방 대칭 가격에 청산 3. 오전 9시부터 9시 30분까지 당일 고가를 돌파하는 양봉에 매수하여 오전 9시부터 9시 30분까지 당일 저가(daylow)와 당일 고가(dayhigh)의 상방 대칭 가격에 청산 오전 9시부터 9시 30분까지 당일 저가를 붕괴하는 음봉에 매도하여 오전 9시부터 9시 30분까지 당일 저가(daylow)와 당일 고가(dayhigh)의 하방 대칭 가격에 청산 감사합니다
프로필 이미지
회원
2017-07-21
155
글번호 111492
지표

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

프로필 이미지
회원
2017-07-21
0
글번호 111491
지표
답변완료

수식요청

1. 전주의 중심선이 필요합니다 2. 아랫식 변형 부탁드립니다 아랫식은 당일기준인데 해당주기준으로 바꾸었으면 합니다 input : 텍스트소수점자리수(5); var : TL1(0),TL2(0),TL3(0),TL4(0); var : TL5(0),TL6(0),TL7(0),TL8(0); var : Tx1(0),Tx2(0),Tx3(0),Tx4(0); var : Tx5(0),Tx6(0),Tx7(0),Tx8(0); var : Tx11(0),Tx12(0),Tx13(0),Tx14(0); var : Tx15(0),Tx16(0),Tx17(0),Tx18(0); if L == DayLow Then{ TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); TL2 = TL_New(sdate[1],stime[1],DayLow+PriceScale*65,sdate,stime,DayLow+PriceScale*65); TL3 = TL_New(sdate[1],stime[1],DayLow+PriceScale*135,sdate,stime,DayLow+PriceScale*135); TL4 = TL_New(sdate[1],stime[1],DayLow+PriceScale*120,sdate,stime,DayLow+PriceScale*120); TL_SetExtRight(TL2,true); TL_SetExtLeft(TL2,true); TL_SetExtRight(TL3,true); TL_SetExtLeft(TL3,true); TL_SetExtRight(TL4,true); TL_SetExtLeft(TL4,true); TL_SetColor(TL2,RED); TL_SetColor(TL3,RED); TL_SetColor(TL4,RED); TL_SetSize(TL2,2); TL_SetSize(TL3,2); TL_SetSize(TL4,2); } if H == DayHigh Then{ TL_Delete(TL6); TL_Delete(TL7); TL_Delete(TL8); TL6 = TL_New(sdate[1],stime[1],DayHigh-PriceScale*65,sdate,stime,DayHigh-PriceScale*65); TL7 = TL_New(sdate[1],stime[1],DayHigh-PriceScale*135,sdate,stime,DayHigh-PriceScale*135); TL8 = TL_New(sdate[1],stime[1],DayHigh-PriceScale*120,sdate,stime,DayHigh-PriceScale*120); TL_SetExtRight(TL6,true); TL_SetExtLeft(TL6,true); TL_SetExtRight(TL7,true); TL_SetExtLeft(TL7,true); TL_SetExtRight(TL8,true); TL_SetExtLeft(TL8,true); TL_SetColor(TL6,BLUE); TL_SetColor(TL7,BLUE); TL_SetColor(TL8,BLUE); TL_SetSize(TL6,2); TL_SetSize(TL7,2); TL_SetSize(TL8,2); } Text_Delete(Tx2); Text_Delete(Tx3); Text_Delete(Tx4); tx2 = Text_New(sdate,stime,DayLow+PriceScale*65,"당일저점+65틱("+NumToStr(DayLow+PriceScale*65,텍스트소수점자리수)+")"); tx3 = Text_New(sdate,stime,DayLow+PriceScale*135,"당일저점+135틱("+NumToStr(DayLow+PriceScale*135,텍스트소수점자리수)+")"); tx4 = Text_New(sdate,stime,DayLow+PriceScale*120,"당일저점+120틱("+NumToStr(DayLow+PriceScale*120,텍스트소수점자리수)+")"); Text_SetColor(tx2,red); Text_SetColor(tx3,red); Text_SetColor(tx4,red); text_setStyle(tx2,2,1); text_setStyle(tx3,2,1); text_setStyle(tx4,2,1); Text_Delete(Tx12); Text_Delete(Tx13); Text_Delete(Tx14); tx12 = Text_New(sdate,stime,DayHigh-PriceScale*65,"당일고점-65틱("+NumToStr(DayHigh-PriceScale*65,텍스트소수점자리수)+")"); tx13 = Text_New(sdate,stime,DayHigh-PriceScale*135,"당일고점-135틱("+NumToStr(DayHigh-PriceScale*135,텍스트소수점자리수)+")"); tx14 = Text_New(sdate,stime,DayHigh-PriceScale*120,"당일고점-120틱("+NumToStr(DayHigh-PriceScale*120,텍스트소수점자리수)+")"); Text_SetColor(tx12,blue); Text_SetColor(tx13,blue); Text_SetColor(tx14,blue); text_setStyle(tx12,2,1); text_setStyle(tx13,2,1); text_setStyle(tx14,2,1);
프로필 이미지
렉쳐
2017-07-21
132
글번호 111489
지표
답변완료

질문드립니다.

그림처럼 2차매도진입을 할 때 동시에 1차계약만 청산되어서 문제가 발생하는것같습니다. 청산할 때 1,2차 모두 같은 값에 청산인데 늦게 2차가 들어가 꼬이는 것 같습니다. 어떻게 하면 될까요? 수식 Input : Period4(120), shortPeriod(12), longPeriod(26); var : Lma(0), Sma(0), MACDv(0); Input : Period(20), D(2) ; Var : value1(0),value2(0); var : Benefit(0), Loss(0), addPrice(0); var : 날짜(20170501),진입시간(70000), 종료시간(190000),진입시간2(200000),종료시간2(213000);//16 17 ,12 16 var : Tcond1(false),Tcond2(false),S(0); var : Flag1(0),Flag11(0),Flag2(0),Flag22(0); Lma = ma(C, Period4); // 120일 선 value1 = BollBandUp(Period,D); //볼린져 상단밴드 value2 = BollBandDown(Period,D); //볼린져 하단밴드 if sdate >= 날짜 and ((stime >= 진입시간 and stime <= 종료시간))/* or (sTIme>=진입시간2 and sTime<=종료시간2)) */ Then Tcond1 = true; Else {Flag1=0; Flag11=0; Flag2=0; Flag22=0; Tcond1 = false;} if sdate >= 날짜 and ((stime >= 진입시간2 and stime <= 종료시간2))/* or (sTIme>=진입시간2 and sTime<=종료시간2)) */ Then Tcond2 = true; Else {Flag1=0; Flag11=0; Flag2=0; Flag22=0; Tcond2 = false;} addPrice = 50/100; Benefit = 70/100; Loss = 450/100; if (V>=2000 and H >= value1 and Tcond1 == true and MarketPosition == 0) or (V>=4000 and H >= value1 and Tcond2 == true and MarketPosition == 0) /*and Flag2==0 and Flag22==0*/ Then sell("매도진입1",OnClose); else if (V>=2000 and L <= value2 and Tcond1 == true and MarketPosition == 0) or (V>=4000 and L <= value2 and Tcond2 == true and MarketPosition == 0) /*and Flag1==0 and Flag11==0*/ Then buy("매수진입1",OnClose); if (LatestEntryName=="매수진입1") Then{ Flag1=1;Flag11=1; } if (LatestEntryName=="매도진입1") Then{ Flag2=1;Flag22=1; } //추가진입 if MarketPosition == -1 and CurrentEntries == 1 then{ Sell("매도진입2",AtLimit,LatestEntryPrice + addPrice); } if MarketPosition == -1 and CurrentEntries == 2 then{ Sell("매도진입3",AtLimit,LatestEntryPrice + addPrice); } if MarketPosition == -1 and CurrentEntries == 3 then{ Sell("매도진입4",AtLimit,LatestEntryPrice + addPrice); } if MarketPosition == -1 and CurrentEntries == 4 then{ Sell("매도진입5",AtLimit,LatestEntryPrice + addPrice); } if MarketPosition == -1 and CurrentEntries == 5 then{ Sell("매도진입6",AtLimit,LatestEntryPrice + addPrice); } if MarketPosition == -1 and CurrentEntries == 6 then{ Sell("매도진입7",AtLimit,LatestEntryPrice + addPrice); } if MarketPosition == -1 and CurrentEntries == 7 then{ Sell("매도진입8",AtLimit,LatestEntryPrice + addPrice); } //==============================매수 추가진입===================================// if MarketPosition == 1 and CurrentEntries == 1 then{ Buy("매수진입2",AtLimit,LatestEntryPrice - addPrice); } if MarketPosition == 1 and CurrentEntries == 2 then{ Buy("매수진입3",AtLimit,LatestEntryPrice - addPrice); } if MarketPosition == 1 and CurrentEntries == 3 then{ Buy("매수진입4",AtLimit,LatestEntryPrice - addPrice); } if MarketPosition == 1 and CurrentEntries == 4 then{ Buy("매수진입5",AtLimit,LatestEntryPrice - addPrice); } if MarketPosition == 1 and CurrentEntries == 5 then{ Buy("매수진입6",AtLimit,LatestEntryPrice - addPrice); } if MarketPosition == 1 and CurrentEntries == 6 then{ Buy("매수진입7",AtLimit,LatestEntryPrice - addPrice); } if MarketPosition == 1 and CurrentEntries == 7 then{ Buy("매수진입8",AtLimit,LatestEntryPrice - addPrice); } ////청산 //매도 //1,2차 if MarketPosition==-1 and CurrentEntries < 3 Then{ ExitShort("매도익절1",AtLimit,EntryPrice-Benefit,"매도진입1"); ExitShort("매도익절2",AtLimit,EntryPrice-Benefit,"매도진입2"); } if MarketPosition==-1 and CurrentEntries ==3 Then{ ExitShort("매도익절1.",AtLimit,EntryPrice,"매도진입1"); ExitShort("매도익절2.",AtLimit,EntryPrice,"매도진입2"); ExitShort("매도익절3",AtLimit,EntryPrice,"매도진입3"); } if MarketPosition==-1 and CurrentEntries ==4 Then{ ExitShort("매도익절1..",AtLimit,EntryPrice+addPrice,"매도진입1"); ExitShort("매도익절2..",AtLimit,EntryPrice+addPrice,"매도진입2"); ExitShort("매도익절3.",AtLimit,EntryPrice+addPrice,"매도진입3"); ExitShort("매도익절4",AtLimit,EntryPrice+addPrice,"매도진입4"); } if MarketPosition == -1 and CurrentEntries >= 5 then{ ExitShort("매도평균1",AtLimit,AvgEntryPrice,"매도진입1"); ExitShort("매도평균2",AtLimit,AvgEntryPrice,"매도진입2"); ExitShort("매도평균3",AtLimit,AvgEntryPrice,"매도진입3"); ExitShort("매도평균4",AtLimit,AvgEntryPrice,"매도진입4"); ExitShort("매도평균5",AtLimit,AvgEntryPrice,"매도진입5"); ExitShort("매도평균6",AtLimit,AvgEntryPrice,"매도진입6"); ExitShort("매도평균7",AtLimit,AvgEntryPrice,"매도진입7"); ExitShort("매도평균8",AtLimit,AvgEntryPrice,"매도진입8"); ExitShort("매도손절1",AtStop,EntryPrice+Loss,"매도진입1"); ExitShort("매도손절2",AtStop,EntryPrice+Loss,"매도진입2"); ExitShort("매도손절3",AtStop,EntryPrice+Loss,"매도진입3"); ExitShort("매도손절4",AtStop,EntryPrice+Loss,"매도진입4"); ExitShort("매도손절5",AtStop,EntryPrice+Loss,"매도진입5"); ExitShort("매도손절6",AtStop,EntryPrice+Loss,"매도진입6"); ExitShort("매도손절7",AtStop,EntryPrice+Loss,"매도진입7"); ExitShort("매도손절8",AtStop,EntryPrice+Loss,"매도진입8"); } //매수 if MarketPosition==1 and CurrentEntries <3 Then{ ExitLong("매수익절1",AtLimit,EntryPrice+Benefit,"매수진입1"); ExitLong("매수익절2",AtLimit,EntryPrice+Benefit,"매수진입2"); } if MarketPosition== 1 and CurrentEntries==3 Then{ ExitLong("매수익절1.",AtLimit,EntryPrice,"매수진입1"); ExitLong("매수익절2.",AtLimit,EntryPrice,"매수진입2"); ExitLong("매수익절3",AtLimit,EntryPrice,"매수진입3"); } if MarketPosition== 1 and CurrentEntries==4 Then{ ExitLong("매수익절1..",AtLimit,EntryPrice-addPrice,"매수진입1"); ExitLong("매수익절2..",AtLimit,EntryPrice-addPrice,"매수진입2"); ExitLong("매수익절3.",AtLimit,EntryPrice-addPrice,"매수진입3"); ExitLong("매수익절4",AtLimit,EntryPrice-addPrice,"매수진입4"); } if MarketPosition == 1 and CurrentEntries >= 5 then{ ExitLong("매수평균1",AtLimit,AvgEntryPrice,"매수진입1"); ExitLong("매수평균2",AtLimit,AvgEntryPrice,"매수진입2"); ExitLong("매수평균3",AtLimit,AvgEntryPrice,"매수진입3"); ExitLong("매수평균4",AtLimit,AvgEntryPrice,"매수진입4"); ExitLong("매수평균5",AtLimit,AvgEntryPrice,"매수진입5"); ExitLong("매수평균6",AtLimit,AvgEntryPrice,"매수진입6"); ExitLong("매수평균7",AtLimit,AvgEntryPrice,"매수진입7"); ExitLong("매수평균8",AtLimit,AvgEntryPrice,"매수진입8"); ExitLong("매수손절1",AtStop,EntryPrice-Loss,"매수진입1"); ExitLong("매수손절2",AtStop,EntryPrice-Loss,"매수진입2"); ExitLong("매수손절3",AtStop,EntryPrice-Loss,"매수진입3"); ExitLong("매수손절4",AtStop,EntryPrice-Loss,"매수진입4"); ExitLong("매수손절5",AtStop,EntryPrice-Loss,"매수진입5"); ExitLong("매수손절6",AtStop,EntryPrice-Loss,"매수진입6"); ExitLong("매수손절7",AtStop,EntryPrice-Loss,"매수진입7"); ExitLong("매수손절8",AtStop,EntryPrice-Loss,"매수진입8"); }
프로필 이미지
hanwoon
2017-07-21
150
글번호 111488
시스템

몽고메리 님에 의해서 삭제되었습니다.

프로필 이미지
몽고메리
2017-07-21
1
글번호 111487
시스템
답변완료

수식문의

예를들어서 설명하겠습니다. 한종목을 포지션이 없을 때 무포지션이며 주가가 현재가가 12,050 이라고 할 때 현재가에 진입하는 것이 아니라 100원위에 올려서 12,150에 1차 매수가가 되도록 하고 그다음단계 매수가 부터는 200원 터울로 12.350 2차 매수가 12,550 3차 매수가 12,750 4차 매수가 12,950 5차 매수가 되도록 현재 무포지션일 때 주가 급변에 유리하기 위해서 피리미딩식이 아니라 동시에 ATSTOP을 이용해서( 또는 다른방법으로) 동시에 한꺼번에 걸어두고 주가가 움질일 때 총이익이 100만원이라면 주문이 들어간 모든 미결제 주문들을 청산하고 ATSTOP을 이용해서 주문이 걸린 모든 미체결 주문들을 동시에 취소하고 또다시 무포지션이 되었을 때의 현재가를 기준으로 다시 매수가 위의 방법되로 자동으로 들어가는 수식을 예를 들어서 자세히 수식을 부탁드립니다.
프로필 이미지
종호
2017-07-21
107
글번호 111486
시스템
답변완료

수정좀 부탁합니다

안녕하세요 반갑습니다 아래 식으로 만들어 보았습니다 하지만 제가 원하는식은 아니라서요 수정좀 부탁합니다 value2 = DayHigh(0); value3 = DayLow(0); plot2(value2,"당일고"); plot3(value3,"당일저"); 첨부파일을 보시면 당일 최고점 선이 직전 고점과 연결이 되어서 나오고 있습니다 제가 원하는것은 직전봉 고점과 연결을 원하지 않습니다 올라가다가 음봉2개가 나오면 당일 최고점선이 그려지고(도지 포함) 내려가다가 양봉2개가 나오면 당일 최저저점선이 그려지고(도지 포함) 만약에 음봉 양봉 2개가 나와도 당일 최고점 최저점이 변화가 없으면 기존에 그려진 선을 유지하고 이렇게 원합니다 참고로 당일 최고점 최저점선을 위 아래 한선만 늘 유지 해야 합니다
프로필 이미지
상영중
2017-07-21
174
글번호 111485
지표
답변완료

부탁드립니다.

안녕하세요? ADX_DT2식에서요 ADX선이 20 아래에서 20을 돌파하여 40에 도달할때까지 구간에는 Cyan색으로 표시하고, ADX선이 40위에 있다가 40을 이탈하여 20에 도달할때까지의 구간에는 Gray색으로 표시하고자 합니다. 아래의 식에 추가해서 완성 좀 부탁드립니다. 감사합니다. ====================================================================================== Input : Period(14); var : ADXv(0,Data2),DP(0,Data2),DM(0,Data2); ADXv = Data2(ADX(Period)); DP = Data2(DiPlus(Period)); DM = Data2(DiMinus(Period)); If ADXv > 40 Then Plot1(ADXv,"ADX",MAGENTA); If ADXv < 20 Then Plot1(ADXv,"ADX",BLACK); If ADXv < 20 Then { Alert("국선ADX음영_추세기대_추세선진입."); } PlotBaseLine1(20); PlotBaseLine2(40);
프로필 이미지
매버릭
2017-07-21
130
글번호 111484
지표