커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지표

항상감사합니다. 새해 복많이 받으세요 지표 시가(종가)(지정가격)에서 진동폭을 대입했을때 시가가 중간이 되어 위로 아래로 지표라인 부탁드립니다. *] 시가 292.95 대입진동폭3.5 /나눔[0=시가/0.63/1.25/2.5/3.75/5/6.25/7.50/8.75/9.37/(100=3.5)] 292.95기준[3.5진동폭][3.5/2->1.75/2->0.88/2->0.44->0.22][3.28,3.06,2.62,1.74] 1]시가[2.95] 2.95+[3.5의0.63] [3.5의1.25] [3.5의3.75] [3.5의절반] [3.5의6.25] [3.5의7.50] [3.5의8.75] [3.5의9.37] [3.5] 2.95-[3.5의9.37] [3.5의8.75] [3.5의7.50] [3.5의6.25] [3.5의절반] [3.5의3.75] [3.5의1.25] [3.5의0.63] [3.5] 2]종가 종가[2.95] 2.95+[3.5의0.63] [3.5의1.25] [3.5의3.75] [3.5의절반] [3.5의6.25] [3.5의7.50] [3.5의8.75] [3.5의9.37] [3.5] 2.95-[3.5의9.37] [3.5의8.75] [3.5의7.50] [3.5의6.25] [3.5의절반] [3.5의3.75] [3.5의1.25] [3.5의0.63] [3.5] 3]지정가 지정가[2.95] 2.95+[3.5의0.63] [3.5의1.25] [3.5의3.75] [3.5의절반] [3.5의6.25] [3.5의7.50] [3.5의8.75] [3.5의9.37] [3.5] 2.95-[3.5의9.37] [3.5의8.75] [3.5의7.50] [3.5의6.25] [3.5의절반] [3.5의3.75] [3.5의1.25] [3.5의0.63] [3.5]
프로필 이미지
호정0688
2023-01-02
907
글번호 164995
지표
답변완료

수식 문의

.일전에 도움 주신 수식을 다음과 같이 수정하고 싶습니다. 아래의 수식은 진입 시그널이 발생한 캔들의 기준, N봉의 고/저가에 +_n틱을 더해 레인지를 설정하고 해당 레인지 안에 들어오는 추가 진입 시그널을 걸러내고 손실보는 방향으로 벗어나면 손절대신 햇지로 반대시그널를 추가하는 로직입니다. 위와 같이, 진입 시그널과 / 헷지 시그널을 구분하여 볼 때, 수정 요청 : ㄱ. 해당 레인지 안에서 반대포지션의 '진입시그널'은 허용합니다. (ex : 매수시그널로 만들어진 레인지 안에서 추가 매수 시그널은 걸러내되 매도 진입 시그널은 발생시킴) ㄴ. 매수진입 후 - 햇지매도 시그널이 발생한 상태라면 매도진입 시그널은 걸러내지 않고 발생시킵니다. 그 반대도 마찬가지. (이렇게 되면 레인지 안에서 등락하여 매수-헷지-매도-헷지가 반복되더라도 해당 레인지 안에서의 총 진입 횟수는 4회를 넘지 않을 것입니다) ㄷ. 청산로직 추가 : 현재 포지션이 '진입시그널'일 때 - 설정된 레인지값 * 1 이상 수익나면 모두 청산합니다. 현재 포지션이 '헷지 시그널' 일 때 - 설정된 레인지 값 * 1.5 이상 수익 나면 모두 청산합니다. 끝. 지표나 차트의 조건값이 아닌 포지션 변화에 따라 시그널을 구분해서 조건을 다르게 하는게 꽤 어렵네요. 부탁 좀 드리겠습니다. 새해 복많이 받으시고, 되시는 일 항상 잘 되시기 바랍니다. 감사합니다. ======= 아래 =========== Input : Vector(9), Period(14), 매수선(40), 매도선(60); input : 저가봉(5),고가봉(5),저가폭(10),고가폭(10); Input : shortPeriod(12), longPeriod(26); Var : rsi_(0), rsi_signal(0) ; var : ll(0),hh(0),eh(0),el(0),BuyEntry(False),SellEntry(False); Var : MACDv(0), MACDsig(0), macdosc(0); rsi_ = RSI(Period); rsi_signal = MA(RSI(Period), Vector); MACDv = Data2(MACD(shortPeriod, longPeriod)); //MACDsig = Data2(ema(MACDv,Period)); MACDsig = Data2(ema(Data2(MACD(shortPeriod, longPeriod)),Period)); //macdosc = Data2(MACDv-ema(MACDv,Period)); macdosc = Data2(Data2(MACD(shortPeriod, longPeriod))-ema(Data2(MACD(shortPeriod, longPeriod)),Period)); ll = lowest(l,저가봉); hh = highest(h,고가봉); if MarketPosition != 0 Then { if MarketPosition != MarketPosition[1] or CurrentContracts > CurrentContracts[1] Then { eh = hh; el = ll; } } BuyEntry = true; SellEntry = true; if MarketPosition == 0 Then { if MarketPosition(1) == 1 and (C > ll[BarsSinceEntry(1)]-PriceScale*저가폭 and C < HH[BarsSinceEntry(1)]+PriceScale*고가폭) Then BuyEntry = False; if MarketPosition(1) == -1 and (C > ll[BarsSinceEntry(1)]-PriceScale*저가폭 and C < HH[BarsSinceEntry(1)]+PriceScale*고가폭) Then SellEntry = False; } else { if MarketPosition == 1 and C > el-PriceScale*저가폭 and C < eh+PriceScale*고가폭 Then BuyEntry = false; if MarketPosition == -1 and C > el-PriceScale*저가폭 and C < eh+PriceScale*고가폭 Then SellEntry = false; } if macdosc > 0 && rsi_signal < 매수선 && rsi_ > rsi_signal && rsi_[1] < rsi_signal[1] Then { if BuyEntry == true Then Buy("B"); } if macdosc > 0 && rsi_signal < 매수선 && rsi_[1] < 30 && rsi_ > 30 Then { Buy("1"); } else if macdosc < 0 && rsi_signal > 매도선 && rsi_[1] > 70 && rsi_ < 70 Then { Sell("2"); } if macdosc < 0 && rsi_signal > 매도선 && rsi_ < rsi_signal && rsi_[1] > rsi_signal[1] Then { if SellEntry == true Then Sell("S"); } if MarketPosition == 1 Then Sell("bx",AtStop,ll[BarsSinceEntry]-PriceScale*저가폭); if MarketPosition == -1 Then BUY("sx",AtStop,hh[BarsSinceEntry]+PriceScale*고가폭);
프로필 이미지
부똘이
2023-01-02
916
글번호 164988
시스템
답변완료

도와주세요~

실매수 누적거래량으로 봉차트에 추세선을 그리고자 합니다. 첫 캔들 종가 값을 기준으로 가격추세선 Plot1을 시작(예; 이것을 추세선값 A라고 가정) 실매수 누적거래량(변수B) 산정 ---- 변수B = 변수B + (Upvol-DownVol) 누적거래량(변수B)보다 현(Upvol-DownVol)거래량의 결과값에 대한 상승과 하락의 100분율을 구함.(변수C) 입력변수1 = 0.15 (현 거래량이 전 거래량보다 + 일 때) 입력변수2 = -0.15 (현 거래량이 전 거래량보다 - 일 때) **추세선이 실제거래량과 차이를 보정하기 위함 결론적으로 Plot1 = 전누적거래량비 현 거래량결과값이 +값을 가지면 추세선값A x 100분율을 구한 변수C x 입력변수1 전누적거래량비 현 거래량결과값이 -값을 가지면 추세선값A x 100분율을 구한 변수C x 입력변수2 전누적거래량비 현 거래량결과값이 0값을 가지면 추세선값A = 전추세선값 도와주심에 진심으로 감사드리며 새해 복 많이 받으세요.
프로필 이미지
포보스
2023-01-02
885
글번호 164987
지표
답변완료

지표

항상감사합니다. 1]챠트에 시간표시 부탁드립니다 5분봉챠트라면 5분시가에서 종가까지 시간이 현재봉위치오른쪽에 표시 부탁드립니다. 시,분,초 2]위아래 저점에서 고점까지가격은 표시됩니다. 1.25부터~8.75까지 가격표시도 될까요 저점)0+1.25 2.5 3.75 5.00 6.25 7.50 8.75 고점)100 input:length(10),글자크기(8); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0), Text1(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 { 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); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1], sDate[eBar],sTime[eBar],고점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2)+NewLine+NumToStr((고점[1,1]-저점[1,1]),2)); Text_SetStyle(Text1, 2, 1); Text_SetSize(text1,글자크기); } } If 처리구분 == "저점처리" Then { 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); Text_Delete(Text1); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1], sDate[eBar],sTime[eBar],저점[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2)+NewLine+NumToStr((고점[1,1]-저점[1,1]),2)); Text_SetStyle(Text1, 2, 0); Text_SetSize(text1,글자크기); } } TL_SetSize(TL1,3); TL_SetColor(TL1,Yellow);
프로필 이미지
호정0688
2023-01-01
914
글번호 164986
지표
답변완료

키움증권 수식 변환을 부탁드립니다.

새해 복 많이 받으십시요!!! 키움 수식 변환을 부탁드립니다. B = ((H + L)/2); DnB = B - atr(period) + multiple; UpT = valuewhen(1, highest(DnB(1), period) < DnB, DnB); UpT ----------------------------------------------- 지표설정 period 20 multiple 3
프로필 이미지
질풍이
2023-01-01
1099
글번호 164985
지표
답변완료

예스랭귀지로 변환 부탁드립니다.

Vars : sell_price( 100 ), Buy_price( 100 ); Params : Profit_Target( 100 ), Stop_Loss( 100 ); If c < Buy_price Then Begin Buy("Buy"); End; If c > Sell_price Then Begin Sell("Sell"); End; SetStopProfitTarget( Profit_Target * pricescale ); SetStopLoss( Stop_Loss * pricescale );
프로필 이미지
바둑이
2023-01-01
884
글번호 164984
시스템
답변완료

예스랭귀지로 변환 부탁드립니다.

Params : Profit_Target( 90 ), Stop_Loss( 40 ); param : BuyA_iLen(20) , ExitLongA_iLen(15), SellA_iLen(20), ExitShortA_iLen(15); param : BuyA_ChoiceType(0), ExitLongA_ChoiceType(1) ; param : SellA_ChoiceType(1) , ExitShortA_ChoiceType(0); param : Margin(0.00) , cut_amt(1), loss_limit(-100); // cut_amt param : Time_start(160000) , time_end(050000), time_exit1(051000) ; var : time_now(0) , Trading_time(False), all_exit(False) , Daily_vari(False), Buy_ok(False) , Sell_ok(False) ; var : yesterday_low(0) , yesterday_high(0) ; var : today_low(0) , today_high(0) ; var : yesterday_close(0) ; var : check_01(0), check_02(0),check_03(0),check_04(0),check_05(0); Var : TickSize( 0 ); TickSize = OneTick * PriceScale; ////////////////////////////////////////////////////////////////////////// // 매수진입 [BuyA : 종가봉 20 갱신, ] ////////////////////////////////////////////////////////////////////////// var : BuyA_V1(0), BuyA_V2(0), BuyA_Result(FALSE); BuyA_V1 = Highest(High, BuyA_iLen); BuyA_V2 = Lowest(Low, BuyA_iLen); BuyA_Result = Close > BuyA_V1[1]; if ( BuyA_Result = true ) Then Buy("Buy"); ////////////////////////////////////////////////////////////////////////// // 매수청산 [ExitLongA : 종가봉 15 갱신, ] ////////////////////////////////////////////////////////////////////////// var : ExitLongA_V1(0), ExitLongA_V2(0), ExitLongA_Result(FALSE); ExitLongA_V1 = Highest(High, ExitLongA_iLen); ExitLongA_V2 = Lowest(Low, ExitLongA_iLen); ExitLongA_Result = Close < ExitLongA_V2[1]; if ( ExitLongA_Result = true ) Then ExitLong(""); ////////////////////////////////////////////////////////////////////////// // 매도진입 [SellA : 종가봉 20 갱신, ] ////////////////////////////////////////////////////////////////////////// var : SellA_V1(0), SellA_V2(0), SellA_Result(FALSE); SellA_V1 = Highest(High, SellA_iLen); SellA_V2 = Lowest(Low, SellA_iLen); SellA_Result = Close < SellA_V2[1]; if ( SellA_Result = true ) Then Sell("Sell"); ////////////////////////////////////////////////////////////////////////// // 매도청산 [ExitShortA : 종가봉 15 갱신, ] ////////////////////////////////////////////////////////////////////////// var : ExitShortA_V1(0), ExitShortA_V2(0), ExitShortA_Result(FALSE); ExitShortA_V1 = Highest(High, ExitShortA_iLen); ExitShortA_V2 = Lowest(Low, ExitShortA_iLen); ExitShortA_Result = FALSE; ExitShortA_Result = Close > ExitShortA_V1[1]; if ( ExitShortA_Result = true ) Then ExitShort(""); SetStopProfitTarget( Profit_Target * TickSize ); SetStopLoss( Stop_Loss * TickSize );
프로필 이미지
바둑이
2023-01-01
881
글번호 164983
시스템
답변완료

수식전환 부탁드립니다

늘 건강하시고 도움받음에 다시한번 감사드립니다. 매도 highestsince(1,crossup (avg(c,5),avg(c,20)),avg(c,20)); 매수 lowestsince(1,crossup (avg(c,5),avg(c,20)),avg(c,20)); 이평 avg(c,20) 고맙습니다.
프로필 이미지
라몬
2023-01-01
1082
글번호 164982
지표

쌈팔광땡 님에 의해서 삭제되었습니다.

프로필 이미지
쌈팔광땡
2023-01-01
0
글번호 164981
시스템