커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다

수고에 감사드립니다. A. *당일시가 + 전일봉 위꼬리 = 즉시 매수진입 *당일시가 - 전일봉 아래꼬리 = 즉시 매도진입 *모두 당일시가에 즉시 손절 B. *당일시가 + (전일봉 위꼬리+아래꼬리)/2 = 즉시 매수진입 *당일시가 - (전일봉 위꼬리+아래꼬리)/2 = 즉시 매도진입 *모두 당일시가에 즉시 손절 A, B 두가지 식으로 각각 부탁드립니다. 감사합니다.
프로필 이미지
군고구마
2018-12-18
308
글번호 124586
시스템
답변완료

수식 부탁드립니다.

차트사진 붙여넣기 어떻게 해야 하나요? (내사진에 저장된 사진입니다.) 차트사진대로 차트를 구성하고 싶은데요?
프로필 이미지
강속구
2018-12-18
306
글번호 124585
시스템
답변완료

수식 요청 드립니다.

안녕하세요. 진입수식(예제)을 금일 12월18일 항생 차트적용시 그림1 신호 발생, 수정 작성해주신 수식 적용시 그림2 신호가 발생합니다. 작성해주신 수식은 하루 1~2회 신호만 발생 합니다. 최소한 그림3 기준 진입 청산 신호가 최소 각각 5~6회 이상 나와야 합니다. 진입회수 제한없이 진입시 마다 손절청산 또는 익절청산이 적용되면 최소한 오전 오후 합산 하루 5회~6회 이상 당일목표수익 90틱, 당일목표손실 50틱 중 하나가 달성 될때까지 신호가 발생 되도록 수정 요청 드립니다. (예 12/18 항생 차트적용시 그림1 기준으로 1차 매수진입 익절15틱 청산, 2차 매도진입 익절15틱 청산, 3차 매수진입 익절15틱 청산, 4차 매도진입 손절10틱 청산, 5차 매수진입 익절15틱 청산, 6차 매도진입 익절15틱 청산으로 적용시 당일목표수익 합계 90틱이 먼저 달성 하고 매매가 종료 됩니다. 항생 차트에 적용해 보시고 수정 요청 드립니다.) 감사합니다. //------------------------------------------------------------------------------------------------------- 안녕하세요 예스스탁입니다. 손절식의 타입이 잘못지정되어 있었습니다. 식을 수정했습니다. Input : 익절(15),손절(10),당일목표수익(90),당일목표손실(50); input : 시작시간1(101500),종료시간1(125500),시작시간2(140000),종료시간2(151500); Input : Period(12), sigPeriod(9); var : Tcond(false); Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false); 당일수익 = PriceScale*당일목표수익; 당일손실 = PriceScale*당일목표손실; daypl = NetProfit-N1; if (sdate != sdate[1] and stime >= 시작시간1) or (sdate == sdate[1] and stime >= 시작시간1 and stime[1] < 시작시간1) Then { Tcond = true; Xcond = false; N1 = NetProfit; } if (sdate != sdate[1] and stime >= 종료시간1) or (sdate == sdate[1] and stime >= 종료시간1 and stime[1] < 종료시간1) Then { Tcond = false; if MarketPosition == 1 Then ExitLong("bx1"); if MarketPosition == -1 Then ExitShort("sx1"); } if (sdate != sdate[1] and stime >= 시작시간2) or (sdate == sdate[1] and stime >= 시작시간2 and stime[1] < 시작시간2) Then { Tcond = true; } if (sdate != sdate[1] and stime >= 종료시간2) or (sdate == sdate[1] and stime >= 종료시간2 and stime[1] < 종료시간2) Then { Tcond = false; if MarketPosition == 1 Then ExitLong("bx2"); if MarketPosition == -1 Then ExitShort("sx2"); } if TotalTrades > TotalTrades[1] then { if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; if daypl >= 당일수익 or daypl <= -당일손실 Then Xcond = true; } value1 = TRIX(Period); value2 = ema(value1, sigPeriod); if Tcond == true and Xcond == false then { If CrossUP(value1, value2) Then Buy("b"); If CrossDown(value1, value2) Then Sell("s"); } if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts)); ExitLong("bp",Atlimit,EntryPrice+PriceScale*익절); ExitLong("bl",AtStop,EntryPrice-PriceScale*손절); } if MarketPosition == -1 then { ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts)); ExitShort("sp",Atlimit,EntryPrice-PriceScale*익절); ExitShort("sl",AtStop,EntryPrice+PriceScale*손절); } 즐거운 하루되세요 > dandy 님이 쓴 글입니다. > 제목 : 수식 요청 드립니다. > 안녕하세요. 진입수식(예제)을 항생 차트적용시 그림1 신호가 발생합니다. 작성해주신 수식적용시 그림2 신호가 발생합니다, 1일 2회 신호만 발생 하내요. 진입회수 제한없이 진입시마다 손절틱수, 익절틱수가 적용되고 합산 당일목표수익 틱수, 당일목표손실 틱수가 달성될때까지 오전 오후 매매가 계속되고 당일매매가 종료 될수 있도록 차트에 적용 수정 요청 드립니다. 감사합니다. //------------------------------------------------------------------------------------------------------- 안녕하세요 예스스탁입니다. Input : 익절(15),손절(10),당일목표수익(90),당일목표손실(50); Input : Period(12), sigPeriod(9); var : Tcond(false); Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false); 당일수익 = PriceScale*당일목표수익; 당일손실 = PriceScale*당일목표손실; daypl = NetProfit-N1; if (sdate != sdate[1] and stime >= 101500) or (sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then { Tcond = true; Xcond = false; N1 = NetProfit; } if (sdate != sdate[1] and stime >= 125500) or (sdate == sdate[1] and stime >= 125500 and stime[1] < 125500) Then { Tcond = false; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if (sdate != sdate[1] and stime >= 140000) or (sdate == sdate[1] and stime >= 140000 and stime[1] < 140000) Then { Tcond = true; } if (sdate != sdate[1] and stime >= 151500) or (sdate == sdate[1] and stime >= 151500 and stime[1] < 151500) Then { Tcond = false; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if TotalTrades > TotalTrades[1] then { if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; if daypl >= 당일수익 or daypl <= -당일손실 Then Xcond = true; } value1 = TRIX(Period); value2 = ema(value1, sigPeriod); if Tcond == true and Xcond == false then { If CrossUP(value1, value2) Then{ Buy(); } If CrossDown(value1, value2) Then{ Sell(); } } if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts)); ExitLong("bp",Atlimit,EntryPrice+PriceScale*익절); ExitLong("bl",Atlimit,EntryPrice-PriceScale*손절); } if MarketPosition == -1 then { ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts)); ExitShort("sp",Atlimit,EntryPrice-PriceScale*익절); ExitShort("sl",Atlimit,EntryPrice+PriceScale*손절); } 즐거운 하루되세요 > dandy 님이 쓴 글입니다. > 제목 : 수식요청 드립이다. > 안녕하세요. 항생 분봉 틱봉 당일청산 스윙 시스템에서 아래 진입수식(예제) 기준으로 1. 당일 매매 시간 10:15(매매시작) ~ 12:55(진입된 포지션이 있으면 전량 청산) 14:00(매매시작) ~ 15:15(진입된 포지션이 있으면 전량 청산 당일 매매종료) 2. 진입수식 진입 익절 손절 회수 제한 없음, 당일목표수익 또는 당일목표손실 달성시까지 매매 3. 진입수식 매수 매도 진입할 경우 익절 15틱, 손절 10틱 진입한 포지션 청산 4. 당일목표수익 90틱 - 익절 + 손절 합산, 당일목표수익 달성시 포지션 전량 청산 당일 매매종료 5. 당일목표손실 50틱 - 익절 + 손절 합산, 당일목표손실 달성시 포지션 전량 청산 당일 매매종료 6. 당일목표수익 과 당일목표손실 중 어느 쪽이든 먼저 달덩하는경우 당일 매매 종료 수식요청 드립이다. 감사합니다. //------------------------------------------------------------------------------------------------------- #진입수식(예제) Input : 익절(15),손절(10),당일목표수익(90),당일목표손실(50); (외부변수로 지정) Input : Period(12), sigPeriod(9); value1 = TRIX(Period); value2 = ema(value1, sigPeriod); If CrossUP(value1, value2) Then{ Buy(); } If CrossDown(value1, value2) Then{ Sell(); } //-------------------------------------------------------------------------------------------------------
프로필 이미지
dandy
2018-12-20
352
글번호 124584
시스템
답변완료

S-ROC 라는 보조지표 문의

1. S-ROC 라는 보조 지표를 이용해서 수식을 만들고 있습니다. S-ROC : 10, 20 / 시그널 8 2. 시그널이 위로 돌파시 매수, 하향시 매도 3. 추가로 일목균형표 기준선 26일선일 기준으로 기준선 위에 있어야 매수 신호발생 현재가격이 기준선 위 and S-ROC 상향 파 시 매수 현재가격이 기준선 아래 and S-ROC 상향 돌파 시 아무신호도 안나옴 현재 가격이 기준선 아래 and S-rock 하향 돌파시 매도 현재가격이 기준선 위 and S-ROC 상향 돌파 시 아무신호도 안나옴 .
프로필 이미지
개미주주
2018-12-18
505
글번호 124583
시스템
답변완료

피라미딩 전체청산?? 부탁드립니다.

수고 많으십니다. 피라미딩을 해서 익절값을 두고 전체청산을 하고 싶습니다. 예를 들어 매수 1계약이든 매수 총 10계약이든 평단가에서 10틱수익나면 전체청산을 하고 싶습니다. 익절값은 변수설정에서 쉽게 변경할수 있게 해줄수 있나요? 이제 배워보는거라 잘 부탁합니다.^^
프로필 이미지
베르나
2018-12-18
318
글번호 124582
시스템
답변완료

문의드립니다

Input:length(10); Var:lastHi(0),lastLo(0),lastVertex(""),procBit(""); //ssssssssssssssssssssssssssssssssss Var:sBar(0),TL1(0); //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee Var:PK1(0),PK2(0),PK3(0),PK4(0),PK5(0),PK6(0),PK7(0),PK8(0),PK9(0),PK10(0), VL1(0),VL2(0),VL3(0),VL4(0),VL5(0),VL6(0),VL7(0),VL8(0),VL9(0),VL10(0), pkBN1(0),pkBN2(0),pkBN3(0),pkBN4(0),pkBN5(0), pkBN6(0),pkBN7(0),pkBN8(0),pkBN9(0),pkBN10(0), vlBN1(0),vlBN2(0),vlBN3(0),vlBN4(0),vlBN5(0), vlBN6(0),vlBN7(0),vlBN8(0),vlBN9(0),vlBN10(0); //========================================== Condition1 = Highest(H,length) == H and lastHi <> H; Condition2 = Lowest (L,length) == L and lastLo <> L; procBit = ""; If Condition1 and Condition2 Then Begin If lastVertex == "Valley" Then Begin If VL1 > L Then procBit = "Valley"; Else procBit = "Peak"; End Else If lastVertex == "Peak" Then Begin If PK1 < H Then procBit = "Peak" ; Else procBit = "Valley"; End; End Else If Condition1 Then procBit = "Peak"; Else If Condition2 Then procBit = "Valley"; //========================================== If procBit == "Peak" Then Begin lastHi = H; If lastVertex == "Valley" Then Begin PK9 = PK8; pkBN9 = pkBN8; PK8 = PK7; pkBN8 = pkBN7; PK7 = PK6; pkBN7 = pkBN6; PK6 = PK5; pkBN6 = pkBN5; PK5 = PK4; pkBN5 = pkBN4; PK4 = PK3; pkBN4 = pkBN3; PK3 = PK2; pkBN3 = pkBN2; PK2 = PK1; pkBN2 = pkBN1; PK1 = C; pkBN1 = index; //ssssssssssssssssssssssssssssssssss // 직전저점에서 현재의 고점까지 잇는 추세선을 생성 // 추세선생성 함수 TL_New(시작점 일자,시작점 시각,시작점 값,끝점 일자, 끝점 시각,끝점 값) // 시작점의 일자와 시각을 구하기 위해 현재 봉에서 얼마나 떨어졌나를 계산 // 끝점은 현재 봉이므로 Date[0], Time[0]이라 [0]을 생략 sBar = index - vlBN1; TL1 = TL_New(Date[sBar],Time[sBar],VL1,Date,Time,PK1); // TL1은 추세선의 번호를 결과로 돌려받는다. // 리턴된 추세선 번호를 이용해서 선의 두께와 색깔을 설정 TL_SetSize(TL1,2); TL_SetColor(TL1,MAGENTA); //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee End Else If PK1 < H Then Begin PK1 = H; pkBN1 = index; //ssssssssssssssssssssssssssssssssss // 신규 고점이 생긴게 아니라 고점의 위치가 바뀐 것이므로 추세선의 끝점만 바꿔주면 된다. // 여기서 끝점은 현재 봉이다. TL_SetEnd(TL1,Date,Time,PK1); //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee End ; lastVertex = "Peak"; End ; //========================================== If procBit == "Valley" Then Begin lastLo = L; If lastVertex == "Peak" then Begin VL9 = VL8; vlBN9 = vlBN8; VL8 = VL7; vlBN8 = vlBN7; VL7 = VL6; vlBN7 = vlBN6; VL6 = VL5; vlBN6 = vlBN5; VL5 = VL4; vlBN5 = vlBN4; VL4 = VL3; vlBN4 = vlBN3; VL3 = VL2; vlBN3 = vlBN2; VL2 = VL1; vlBN2 = vlBN1; VL1 = L; vlBN1 = index; //ssssssssssssssssssssssssssssssssss sBar = index - pkBN1; TL1 = TL_New(Date[sBar],Time[sBar],PK1,Date,Time,VL1); TL_SetSize(TL1,2); TL_SetColor(TL1,BLUE); //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee End Else If VL1 > L then Begin VL1 = L; vlBN1 = index; //ssssssssssssssssssssssssssssssssss TL_SetEnd(TL1,Date,Time,VL1); //eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee End ; lastVertex = "Valley"; End ; Plot2(highest(H,length)); plot3(lowest(L,length)); 지그재그마지막선을찍을때 수평으로 선이나오게 하고십습니다.(마지막만수평선이나오게,고점찍을때는 저점수평은 나오지않고고점수평선만나오게,, 반대로 저점찍을&#46468;는 고점수평선은사라지고 저점수평선만나오게 .즉한개수평선만나오게,)색상은 고점선은레드색 저점선은 블루색으로 부탁드립니다.미리감사드립니다~~
프로필 이미지
장군
2018-12-18
373
글번호 124581
지표
답변완료

질문입니다.

안녕하세요. 여러가지 도움을 주셔서 감사드립니다. 궁금한데요. Text_Delete(var1); var1 = Text_New(sdate,stime,L-PriceScale,NumToStr((H-O)/PriceScale,0)+NewLine+"0"+NewLine+NumToStr(abs(L-O)/PriceScale,0)); Text_SetStyle(var1,2,0); 여기서 완성봉만 나오게 하셨는데 혹시 실시간은 안되나요? 완성봉 말고 완성봉 다음 시가 나오고 그다음 고가 저가 움직임을 실시간으로 숫자 보기 가능한가요?
프로필 이미지
스오어스
2018-12-18
321
글번호 124579
지표
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 변환 부탁드립니다. inputs: Price( Close ), BandsPeriod( 20 ), BandsDeviation( 2.4 ), LowBandAdjust( .9 ), MidLineLength( 20 ) ; variables: HighBand( 0 ), LowBand( 0 ), MidLine( 0 ), ATRVal( 0 ), WtdAvgVal( 0 ) ; ATRVal = AvgTrueRange( BandsPeriod * 2 - 1 ) * BandsDeviation ; WtdAvgVal = WAverage( Price, BandsPeriod ) ; HighBand = WtdAvgVal + WtdAvgVal * ( AtrVal / Price ) ; LowBand = WtdAvgVal - WtdAvgVal * ( AtrVal * LowBandAdjust / Price ) ; MidLine = WAverage( TypicalPrice, MidLineLength ) ; Plot1( HighBand, "Upper Band" ) ; Plot2( LowBand, "Lower Band" ) ; Plot3( MidLine, "Mid Line" ) ;
프로필 이미지
잡다백수
2018-12-18
287
글번호 124571
시스템
답변완료

수정의뢰 드려요

안녕하세요! 아래 수식은 일전에 만들어 주신 콜과 풋의 교챠챠트 전일 고가와 저가 수식 입니다! 아래 수식에 콜과 풋의 월저 와 월고, 월물 첫날 저가 수식을 합쳐보고 싶습니다! 만들어 주신 수식들을 합쳐보았는데 자꾸 에러가 생기네요! 부탁합니다! plot1(data1(highD(1)),"d1전일고가"); plot2(data1(LowD(1)),"d1전일저가"); plot3(data2(highD(1)),"d2전일고가"); plot4(data2(LowD(1)),"d2전일저가");
프로필 이미지
qha71
2018-12-18
293
글번호 124570
지표