커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

RSI 값에 따른 종목의 가격을 나오게 하는 지표수식 문의 드립니다.

RSI 값이 과열 값이 70일때 당일 주식의 가격이 표현되게 해서 미리 과열이나 침체시 가격을 알고 싶습니다. RSI기간: 변수 RSI가격: 변수 표현은 종목의 가격이 나타나게 해보고 싶습니다.
프로필 이미지
오리만두
2020-04-15
218
글번호 137951
지표
답변완료

진입금지와 익절 손절 설정 부탁

다음의 경우의 시스템 수식부탁드립니다. <1> 시스템 식에서 오전4시부터 오전6시까지 진입금지, 익절 50틱, 손절20틱 <2> 시스템 식에서 오후 3시부터 오후 5시까지 진입금지, 익절 50틱, 손절20틱 <3>오전 4시부터 오전6시까지, 오후3시부터 오후5시까지 진입금지, 익절50틱, 손절20틱 <4>그리고 시물레이션에서 <논리값(참/거짓)이나 논리표현식이 와야 합니다>라는 문구가 뜨고 실행이 안되는 이유가 무엇인지요? 변수값 0을 false로 수정해도 수정이 안되고 그냥 0으로 표시가 됩니다.. 일반 실행차트에서는 변수값이 false로 나옵니다. 즉, 같은 시스템을 돌려도 일반 실행차트에서는 정상적으로 구현이 되고 시물레이션 차트에서는 위에서 처럼 <논리값(참/거짓)이나 논리표현식이 와야 합니다>라는 문구가 뜨는 이유가 무엇인지요?
프로필 이미지
임진사댁원장
2020-04-15
348
글번호 137950
시스템
답변완료

시뮬레이션용 trailingstop 수식 문의

trailingstop 전략을 시뮬레이션 하다보니 실전과 차이가 클 수 있어 주의해야 함을 알게 되었습니다. 검색 후, 남겨주신 내용을 근간으로 수정을 하려다 보니 기본이 부족해 도움을 청합니다. ### 검색 답변 내용; 0.5포인트 수익 이후부터 최고(저)가 대비 1포인트 하락(상승)하면 청산하는 trailingStop의 예를 들어보면 아래와 같은 식으로 작성될 수 있습니다. if CrossUp(C, ma(c,20)) Then buy(); if CrossDown(C, ma(C,20)) Then sell(); //매수포지션 상태이고 진입후 최고가가 진입가격+0.5보다 크면 if MarketPosition == 1 and Highest(H,BarsSinceEntry+1) > entryprice+0.5 then //진입후 최고가 - 1포인트를 하향 도달할 때 매수청산 exitlong("EL_trailingStop", atstop, Highest(H,BarsSinceEntry+1) - 1); #질문1; point가 아니고 수익율(예,50%)로 하는 방법 문의. ==>매수청산식을 진입후 "최고가 - (최고가-진입가)*50% " 에 도달할 때 매수청산으로 바꾸려면 어떻게 해야 하는지요? #질문2; 최대수익대비하락에 관련 된 글은 예스스탁 홈페이지 > Q&A > 전문가마당 > 35번 글(시뮬레이션과 실전매매 차이2(최대수익대비하락) 에서 확인하실 수 있습니다. ==>"전문가마당"을 찾을 수가 없는데 없어진 것인지요? 항상 노고에 감사드립니다.
프로필 이미지
theogo66
2020-04-15
266
글번호 137949
시스템

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

프로필 이미지
2wnwn
2020-04-15
19
글번호 137948
지표
답변완료

해외선물 유로 수익 계산법

해외선물 유로FX 같은경우 수익과 손절을 정하려하는데 어떻게 계산해야할지 모르겠어요. 1000틱이면 몇 PT 인가요? 그리구 0.12080 PT는 몇틱인지요? 좀 쉽게 계산할수 있는 방법좀 알려주세요
프로필 이미지
로즈호야
2020-04-15
558
글번호 137947
시스템
답변완료

문의

선물 5분봉 별첨파일 1은 손절 1.00 인데 1.90 청산된 경우입니다 별첨파일 2는 손절 0.80 인데 1.45 청산된 경우입니다. 1. stop주문이므로 손절가격으로 청산되야 하는데 예외가 발생되는 이유가 궁금합니다. 2. 진입시간과 진입제한시간에 대하여 2016년 7월 31일 이전과 2016년 8월 01일 이후 2개로 구분하여 한 번에 시뮬레이션하고 싶습니다. input : 진입시간(090000),진입제한시간(132000); var : tcond(false); if (sdate != sdate[1] and stime >= 진입시간) or (sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then Tcond = true; if (sdate != sdate[1] and stime >= 진입제한시간) or (sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then Tcond = false; if 진입수식 and Tcond == true then **************************************************************************************** input : 고가갱신수2(1),고가갱신수3(1),저가갱신수2(1),저가갱신수3(1); input : uppyra검증1(0),상승pyra1(0),상승N1(0); input : up손절1(1.00),up익절1(99999),upTR1(1.00); input : uppyra검증2(0),상승pyra2(0),상승N2(0); input : up손절2(0.80),up익절2(99999),upTR2(1.00); input : uppyra검증3(0),상승pyra3(0),상승N3(0); input : up손절3(0.60),up익절3(99999),upTR3(1.00); input : dnpyra검증1(0),하락pyra1(0),하락N1(0); input : dn손절1(1.00),dn익절1(99999),dnTR1(1.00); input : dnpyra검증2(0),하락pyra2(0),하락N2(0); input : dn손절2(0.80),dn익절2(99999),dnTR2(1.00); input : dnpyra검증3(0),하락pyra3(0),하락N3(0); input : dn손절3(0.60),dn익절3(99999),dnTR3(1.00); if dayindex == 0 and MarketPosition == 0 Then{ Condition1 = false; if C > O Then{ buy("b1",AtMarket); Condition1 = true; } if c < O Then{ sell("s1",AtMarket); Condition1 = true; } } if MarketPosition == 0 and #현재 무포지션이고 EntryDate(1) == sdate and #직전거래가 오늘 발생한 거래이고 MarketPosition(1) == 1 and #직전거래가 매수거래이고 countif(DayHigh(0) != DayHigh(0)[1],BarsSinceExit(1)) >= 고가갱신수2 Then #청산이후 당일고가 갱신이 n회이상 있었으면 buy("b2"); if MarketPosition == 0 and #현재 무포지션이고 EntryDate(1) == sdate and #직전거래가 오늘 발생한 거래이고 MarketPosition(1) == -1 and #직전거래가 매도거래이고 countif(DayHigh(0) != DayHigh(0)[1],BarsSinceExit(1)) >= 고가갱신수3 Then #청산이후 당일고가 갱신이 n회이상 있었으면 buy("b3"); if MarketPosition == 0 and #현재 무포지션이고 EntryDate(1) == sdate and #직전거래가 오늘 발생한 거래이고 MarketPosition(1) == -1 and #직전거래가 매도거래이고 countif(DayLow(0) != DayLow(0)[1],BarsSinceExit(1)) >= 저가갱신수2 Then #청산이후 당일저가 갱신이 n회이상 있었으면 sell("s2"); if MarketPosition == 0 and #현재 무포지션이고 EntryDate(1) == sdate and #직전거래가 오늘 발생한 거래이고 MarketPosition(1) == 1 and #직전거래가 매수거래이고 countif(DayLow(0) != DayLow(0)[1],BarsSinceExit(1)) >= 저가갱신수3 Then #청산이후 당일저가 갱신이 n회이상 있었으면 sell("s3"); if MarketPosition == 1 and IsEntryName("b1") == true Then { if C >= EntryPrice+uppyra검증1 and MaxContracts < 상승N1 Then buy("bb1",AtStop,LatestEntryPrice(0)+상승Pyra1); ExitLong("bl1",AtStop,EntryPrice-pointstop*up손절1); Exitlong("bp1",AtLimit,EntryPrice+pointstop*up익절1); Exitlong("btr1",AtStop,Highest(h,BarsSinceEntry)-pointstop*upTR1); } if MarketPosition == 1 and IsEntryName("b2") == true then { if C >= EntryPrice+uppyra검증2 and MaxContracts < 상승N2 Then buy("bb2",AtStop,LatestEntryPrice(0)+상승Pyra2); ExitLong("bl2",AtStop,EntryPrice-PointStop*up손절2); Exitlong("bp2",AtLimit,EntryPrice+PointStop*up익절2); Exitlong("btr2",AtStop,highest(h,BarsSinceEntry)-PointStop*upTR2); } if MarketPosition == 1 and IsEntryName("b3") == true then { if C >= EntryPrice+uppyra검증3 and MaxContracts < 상승N3 Then buy("bb3",AtStop,LatestEntryPrice(0)+상승Pyra3); ExitLong("bl3",AtStop,EntryPrice-PointStop*up손절3); Exitlong("bp3",AtLimit,EntryPrice+PointStop*up익절3); Exitlong("btr3",AtStop,highest(h,BarsSinceEntry)-PointStop*upTR3); } if MarketPosition == -1 and IsEntryName("s1") == true Then { if C <= EntryPrice-dnpyra검증1 and MaxContracts < 하락N1 Then sell("ss1",AtStop,LatestEntryPrice(0)-하락Pyra1); ExitShort("sl1",AtStop,EntryPrice+PointStop*dn손절1); ExitShort("sp1",AtLimit,EntryPrice-PointStop*dn익절1); ExitShort("str1",AtStop,Lowest(l,BarsSinceEntry)+PointStop*dnTR1); } if MarketPosition == -1 and IsEntryName("s2") == true Then { if C <= EntryPrice-dnpyra검증2 and MaxContracts < 하락N2 Then sell("ss2",AtStop,LatestEntryPrice(0)-하락Pyra2); ExitShort("sl2",AtStop,EntryPrice+PointStop*dn손절2); ExitShort("sp2",AtLimit,EntryPrice-PointStop*dn익절2); ExitShort("str2",AtStop,Lowest(l,BarsSinceEntry)+PointStop*dnTR2); } if MarketPosition == -1 and IsEntryName("s3") == true Then { if C <= EntryPrice-dnpyra검증3 and MaxContracts < 하락N3 Then sell("ss3",AtStop,LatestEntryPrice(0)-하락Pyra3); ExitShort("sl3",AtStop,EntryPrice+PointStop*dn손절3); ExitShort("sp3",AtLimit,EntryPrice-PointStop*dn익절3); ExitShort("str3",AtStop,Lowest(l,BarsSinceEntry)+PointStop*dnTR3); }
프로필 이미지
좌오비우오비
2020-04-16
657
글번호 137946
시스템

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

프로필 이미지
doilzul
2020-04-15
2
글번호 137945
사용자 함수
답변완료

부탁 드립니다.

.
프로필 이미지
뮬리
2020-04-16
543
글번호 137944
지표
답변완료

매수 수식 문의

안녕하세요 분봉 상태에서 코스닥 지수가 일정범위를 돌파하면 주식 종목을 매수하려고 합니다 문제는 시뮬레이션시 선물에서는 매수가 되나 주식 종목에서는 매수가 전혀 일어나지 않습니다 (data1은 ETF종목이고 data2는 코스닥지수 입니다) 무엇을 수정해야 되는지요? 감사합니다 if data2(stime >= 100000 and crossup(C,(dayopen+(dayhigh(1)-daylow(1))*0.5))) Then buy("L");
프로필 이미지
doilzul
2020-04-15
524
글번호 137943
사용자 함수