커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4423
글번호 230811
답변완료
시스템식 부탁드립니다.
항상 도움 주셔서 감사합니다.
아래 조건을 만족할 경우 포지션 진입 하는 시스템식 부탁드립니다.
종목 : 오일
타임 : 15분
매매시간 : 오후 14시부터 다음날 새벽 5시까지.
매매환경 : 메인 차트는 15분봉 하나 이지만
30분봉, 45분봉, 60분봉을 참조하여 매매하고 싶습니다.
- 30분,45분, 60분 참조 차트 없이 시간을 계산하여 매매하고 싶습니다.
매수조건 :
1. 전봉 60분봉이 양봉으로 끝나고, 전봉 60분 종가가 당일 전봉들의 종가기준 최고가 일 경우
2. 현재 15분, 30분, 45분, 60분 모두 양봉일 경우 매수진입
3. 30분, 45분, 60분은 계산하여 조건을 체크하고 싶습니다.
매수 청산 :
1. 60분 현재봉 종가에 청산
매도조건 :
1. 전봉 60분봉이 음봉으로 끝나고, 전봉 60분 종가가 당일 전봉들의 종가기준 최저가 일 경우
2. 현재 15분, 30분, 45분, 60분 모두 양봉일 경우 매수진입
3. 30분, 45분, 60분은 계산하여 조건을 체크하고 싶습니다.
매도 청산 :
1. 60분 현재봉 종가에 청산
시스템식 부탁드립니다.
2018-08-19
162
글번호 121443
답변완료
청산 관련
안녕하세요.
글번호 58847번의 연장입니다. (지난 8월 1일 문의함)
항셍과 같이 당일 진입 당일 청산을 하는 종목은 아래와 같이 장 마감 전 모든 포지션을 강제청산하는게 용이합니다.
Var: MP(0);
MP = MarketPosition;
If (MP <> 0) then SetStopEndofday(051430);
문제는 당일 진입 후 익일 청산하는 종목들(CME 거래소 종목)에서는
위와 같은 강제청산 로직을 쓰면 당일 진입을 못하고 익일 자정 이후부터 포지션이 잡힌다는 겁니다.
그래서 지난 번 알려주신 로직을 아래와 같이 잘 쓰고 있습니다.
Inputs: SSTIME(200000), EETIME(050000), XXTIME(051430);
//--------- 써머타임 체크 ---------//
Vars: ST(0), ET(0), Year(0);
Year = Floor(sDate / 10000);
Var18 = DayofWeek( (10000 * Year) + (100 * 3) + 1 );
If Var18 == 0 Then Value98 = 8;
Else Value98 = 15 - Var18; // 3월 두번째 일요일 날짜
Var20 = DayofWeek( (10000 * Year) + (100 * 11) + 1 );
If Var20 == 0 Then Value99 = 1;
Else Value99 = 8 - Var20; // 11월 첫번째 일요일 날짜
If sDate > (10000 * Year) + (100 * 3) + Value98 And sDate < ( 10000 * Year) + (100 * 11) + Value99 Then
Begin
ST = 070000; // 써머타임 적용 시, 장 시작 시간
ET = 060000; // 써머타임 적용 시, 장 종료 시간
End
Else
Begin
ST = 080000; // 장 시작 시간
ET = 070000; // 장 종료 시간
End;
CONDITION1 = ( IntPortion(Time / 10000) > IntPortion(ET / 10000) And IntPortion(Time[1] / 10000) <= IntPortion(ET / 10000) ) Or ST <> ST[1];
//------- 매매 시간대 -------//
Vars: MP(0), TimeCond(False);
MP = MarketPosition;
If (sDate != sDate[1] and sTime >= SSTIME) or (sDate == sDate[1] and sTime >= SSTIME and sTime[1] < SSTIME) Then
Begin
TimeCond = True;
End;
If (sDate != sDate[1] and sTime >= EETIME) or (sDate == sDate[1] and sTime >= EETIME and sTime[1] < EETIME) Then
Begin
TimeCond = False;
End;
If (sDate != sDate[1] and sTime >= XXTIME) or (sDate == sDate[1] and sTime >= XXTIME and sTime[1] < XXTIME) Then
Begin
If MP == 1 Then ExitLong("Exit Buy");
If MP == -1 Then ExitShort("Exit Sell");
End;
//--------- 진입 로직 ---------//
If TimeCond Then
Begin
~~~~~~~~~~~ 중략 ~~~~~~~~~~~~
End;
여기까지는 좋은데 문제는 '시스템 매매 설정'에서 주문 시작 신호를 진입 신호로 안쓰고 모든 신호로 잘못해서 설정할 경우에는
Exitlong 함수에서 매도로 진입하고, Exitshort에서 매수로 진입하는 경우가 있습니다.
이렇게 되면 뒤에 연이어 다른 진입신호가 떴을 때 한번 더 진입을 하게 되어 총 2개의 포지션을 갖게 됩니다.
다음에 나올 청산 로직에서는 진입 포지션을 한 개로만 인식하고 하나만 청산합니다.
그럼 나머지 하나의 포지션은 장 마감 이후에도 포지션이 정리가 안되어 남아 있습니다.
이런 경우를 대비해 SetStopEndofday() 함수를 이용해 남아 있는 당일 모든 포지션을 강제 청산하려는 것인데
CME 거래소 종목에서는 의도하는 시간대부터 진입이 안되는 문제가 있어서 강제청산함수를 못쓰고 있습니다.
이를 대체할 수 있는 청산 로직을 가이드 해주시면 감사하겠습니다.
2018-08-19
163
글번호 121442
답변완료
종목 검색 관련 문의드립니다.
안녕하세요.
특정 종목을 장전에 선택한 후, 그 종목이 시가 대비 -2% 하락하면 매수하는 코드를 짜고 싶습니다.
1. 파워종목 검색의 예스랭귀지 편집기에서 코드를 짤 수 있을까요?
2. 아니면, 예스스팟 전략파일 자체에서 코드를 짜야하나요?
가능하다면 관련해서 예시 코드를 보고싶습니다.
감사합니다!
2018-08-19
140
글번호 121441
답변완료
식 변경 부탁드립니다.
안녕하세요,
아래 식 변경하여 문의드리고자 합니다
1.
1일1진입을 삭제하고 당일청산 삭제
2.
한번 진입에서 추가로
제가 설정한 비율로 두번 더 진입할수있도록 하며(총3번진입)
설정한 비율에서 진입하면 중복진입하지 않습니다.
(설정일부터 설정한 진입값 이후 추가 진입값에 도달하지못해
모두 진입하지 못하고 청산값에 도달하여도 청산,
청산이나 손절이 나오면 더이상 진입안함)
3.
청산,손절은 전량청산
4.
설정날 저점과 고점을 설정후
고점갱신이 아닌 처음 설정한 저점과고점으로 고정
(설정한 날의 당일은 분봉 고점갱신 설정되고 이후날부터 고점갱신없음
, 당일 분봉으로만 고점갱신. 후일 고점갱신없음)
위 내용 부탁드립니다.
감사합니다.
---------------------------------------------------------------
input : ndate(20180601),ntime(90000),수량(1),고점(100),저점(90);
input : 매매구분(1),rate(0.652),청산1(0.7),청산2(0.6),청산조건가격(0.4),손절(0.3);
var : Tcond(false),HH(0),ll(0),t1(0),entrycount(0),dd(0),gap(0);
if bdate != bdate[1] Then
t1 = TotalTrades;
if MarketPosition == 0 Then
entrycount = TotalTrades-t1;
Else
entrycount = TotalTrades-t1+1;
if sdate == ndate and stime == ntime Then
{
Tcond = true;
hh = 고점;
ll = 저점;
dd = sdate;
}
if Tcond == true then
{
if sdate >= dd and H > hh Then
hh = h;
var1 = hh-(hh-LL)*rate;
if 매매구분 == 1 and entrycount < 1 and L > var1 and stime < 144000 Then
buy("b",AtLimit,var1,수량);
if MarketPosition == 1 Then
{
gap = (EntryPrice-var1[BarsSinceEntry])/var1[BarsSinceEntry]*100;
if lowest(L,BarsSinceEntry) > (hh-(hh-LL)*청산조건가격)*(1+gap/100) then
ExitLong("bp1",atlimit,(hh-(hh-LL)*청산1)*(1+gap/100));
Else
ExitLong("bp2",atlimit,(hh-(hh-LL)*청산2)*(1+gap/100));
ExitLong("bl",AtStop,(hh-(hh-LL)*손절)*(1+gap/100));
}
}
SetStopEndofday(151500);
2018-08-20
147
글번호 121440
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 지표
-5분봉
a-일봉크기 절대값의 [200개] 평균
plot1= dayopen + a 표준편차1
plot2= dayopen + b 표준편차1
*[]은 외부변수
2018-08-19
147
글번호 121439
답변완료
문의 드립니다.
안녕하세요.. 문의 드립니다.
해외선물거래 입니다.
매도 진입 : 종가가 볼린저 밴드 (20,2) 상단선 위에 있거나 (or),
볼린전밴드 상단선과 1%이내로 이격 되어 있는 상태에서
macd(5.20.2)선이 시그널선을 crossdown 발생 후 (첫번째 신호)
다시한번 macd(5.20.2)선이 시그널선을 crossdown 발생 (n번째 신호)
macd 기준선과 이격이 n번째신호, 첫번째신호 순이며,(n번째가 가깝고 첫번째가 멀리 있음)
신호발생가격은 첫번째 신호 발생가격보다 n번째 신호 발생가격이 20틱이상 높으면 매도 진입
매수 진입 : 종가가 볼린저 밴드 (20,2) 하단선 아래에 있거나 (or),
볼린전밴드 하단선과 1%이내로 이격 되어 있는 상태에서
macd(5.20.2)선이 시그널선을 crossup 발생 후 (첫번째 신호)
다시 한번 macd(5.20.2)선이 시그널선을 crossup 발생 (n번째 신호)
macd 기준선과 이격이 n번째신호, 첫번째신호 순이며,(n번째가 가깝고 첫번째가 멀리 있음)
신호발생가격은 첫번째 신호 발생가격보다 n번째 신호 발생가격이 20틱 이상 낮으면 매수 진입
청산 : 50틱 수익 발생후 최고수익의 30%하락시 청산
가변 변수 설정은 : macd와 볼린저밴드 변수로 해주십시요.
2018-08-19
153
글번호 121438
답변완료
엑셀로 출력할수있게 부탁드립니다
1.상하한가 30%이후 기준으로
(일봉상)
거래대금 500억 이상의 상한가 출현시
상한가 당일의 시.고.저.종.거래대금.5.10.20.60.120이평값과
상한가이후의 N일까지 (N은 외부변수로 빼주세요)
시.고.저.종.거래대금.5.10.20.60.120이평값을 엑셀로 출력할수 있게 만들어주세요
(거래대금은 꼭 일봉상 완성된봉의 거래대금이 출력될수 있도록 부탁드립니다)
2.위에 조건에서 N일까지가 아니라 일봉상 종가가 20이평아래로 떨어질때까지 엑셀로 출력
하도록 만들어주세요
항상 고맙습니다
수고하세요!
2018-08-20
154
글번호 121437
답변완료
Moving Average Oscllator
MAO(Moving Average Oscllator -기본 변수값)매매수식 부탁합니다
(1) MAO가 상승하면 매수하고 하락하면 매도
(2) MAO가 기준선을 상향 돌파하면 매수, 기준선을 하향 돌파하면 매도
2018-08-19
159
글번호 121436
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2018-08-18
11
글번호 121434