커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1465
글번호 230811
러블리 님에 의해서 삭제되었습니다.
2024-01-17
23
글번호 175839
회원 님에 의해서 삭제되었습니다.
2024-01-18
48
글번호 175837
답변완료
문의드립니다
Input:계산시작일(20230101), // 차트 처음부터 계산하려면 0을 입력
차트반영일(20240101),
연장여부(1), // 연장여부가 0이면 차트반영일까지만 계산한다.
// 연장여부가 1이면 현재일까지 누적 계산한다.
// 추세선을 계속 지우고 다시 그리기를 반복하므로 연장여부를 1로 하려면
// 차트반영일을 현재일에 가깝게 입력한다. 연산시간과 관련있음
매물대개수(10),
수치표시(1),
추세선간격(4);
Var:j(0),jj(0),Continue(True),sBar(0),eBar(0),출력매물대개수(0),sIndex(0),Length(0),
TitleBar(0), // 차트제목을 화면에 출력하기 위한 좌표
TitlePrice(0), // 거래량이 가장 많은 매물대의 중간 가격
TitleName(""); // 차트 제목
Array:VolProfileArr[100,5](0), // 열번호 1:가격이상,2:가격미만,3:sBar,4:수량,5:비율
TL[100,4](0),Text[101](0);
#==========================================#
IF 매물대개수 > 98 Then {
Alert("매물대개수는 98까지만 허용합니다.");
Continue = False;
}
If Continue Then {
#----------------------------------------------------------------------------------#
# 시작하기
#----------------------------------------------------------------------------------#
Value1 = 0;
If (Date[1] < 계산시작일 and Date >= 계산시작일) or // 계산시작일이 있으면 날짜 통과 시점에
(계산시작일 == 0 and Index == 0) Then { // 계산시작일이 0이면 첫번째 봉부터
sIndex = Index; // 계산시작일로부터의 봉개수를 계산하기 위해 Index를 저장
}
If (Date[1] < 차트반영일 and Date >= 차트반영일) or
(Date >= 차트반영일 and 연장여부 > 0) Then {
Length = Index - sIndex + 1;
출력매물대개수 = 매물대개수;
// 매물대 개수를 입력하면 적당한 가격단위로 자른 뒤 출력할 매물대개수를 리턴한다.
Value1 = VolumeProfile(Length,출력매물대개수,VolProfileArr,TitleBar,TitlePrice,TitleName);
// 여기 지표식에서는 계산시작일과 차트반영일을 입력받아서 처리했지만
// 조건에 맞는 MRO 값을 Length 대신에 써도 된다.
}
If Value1 == 1 Then {
For j = 1 To 출력매물대개수[1] { // 싹다 지우고 다시 그린다.
// 출력매물대개수는 구간에 따라 바뀌기 때문에 입력값 기준으로 지운다.
For jj = 1 To 4 {
TL_Delete(TL[j,jj]);
}
If 수치표시 > 0 Then Text_Delete(Text[j]);
}
For j = 1 To 출력매물대개수 { // 리턴받은 매물대 개수만큼 그린다.
If VolProfileArr[j,4] > 0 Then {
sBar = VolProfileArr[j,3];
eBar = 0;
TL[j,1] = TL_New(sDate[sBar],sTime[sBar],VolProfileArr[j,1] + 추세선간격 * PriceScale,sDate[eBar],sTime[eBar],VolProfileArr[j,1] + 추세선간격 * PriceScale);
TL[j,2] = TL_New(sDate[sBar],sTime[sBar],VolProfileArr[j,2] - 추세선간격 * PriceScale,sDate[eBar],sTime[eBar],VolProfileArr[j,2] - 추세선간격 * PriceScale);
TL[j,3] = TL_New(sDate[sBar],sTime[sBar],VolProfileArr[j,1] + 추세선간격 * PriceScale,sDate[sBar],sTime[sBar],VolProfileArr[j,2] - 추세선간격 * PriceScale);
}
TL[j,4] = TL_New(sDate[0],sTime[0],VolProfileArr[j,1] + 추세선간격 * PriceScale,
sDate[0],sTime[0],VolProfileArr[j,2] - 추세선간격 * PriceScale);
If 수치표시 > 0 Then {
Text[j] = Text_New(sDate[0],stime[0],(VolProfileArr[j,1] + VolProfileArr[j,2]) / 2, NumToStr(VolProfileArr[j,4],0) + " (" + NumToStr(VolProfileArr[j,5],2) + "%)(" + NumToStr(VolProfileArr[j,1],0) + " ~ " + NumToStr(VolProfileArr[j,2],0) + ")");
Text_SetStyle(Text[j], 1, 2);
}
}
Text_Delete(Text[0]);
sBar = TitleBar;
Text[0] = Text_New(sDate[sBar], stime[sBar],TitlePrice,TitleName);
Text_SetStyle(Text[0], 2, 1);
}
}
plot1(Value1);
위수식을 바탕으로 아래와 같은 지표수식을 추가 부탁드립니다
MavH :최대 매물대의 상한벽의 가격
MavL: 최대 매물대의 하한벽의 가격
2024-01-17
854
글번호 175836
답변완료
시스템식 부탁드립니다.
항상 도움주셔서 감사합니다.
지난번 문의 드린 내용인데 청산들 내용이 모호하다 하셔서
다시 내용수정하여 문의 드립니다.
아래의 조건에 맞는 시스템식 부탁드립다.
종목 : 해외선물
차트 : 1분봉
요청식1
매수조건
매수/매도 : 외부입력변수로 설정
매수진입 이후 가격이 상승하면 일정 간격으로 1계약씩 추가 매수하고
- 불타기
매수진입 이후 가격이 하락하면 일정 간격으로 일정배수 만큼 추가 매수 합니다.
- 물타기(가격 하락시 일정배수로 매수)
불타기 청산은 포지션 전체수익이 일정 금액($) 이상 수익이면 청산(큰 금액으로 설정)
물타기 청산은 포지션 전체수익이 일정 금액($) 이상 수익이면 청산(작은금액으로 설정)
단, 불타기 진입의 경우 트레일링 스탑을 적용하고 싶습니다.
- 전체 포지션 수익금액에서 20$ 하락시 청산
아래와 같이 코딩했는데 제대로 안되는것 같습니다.
시스템식 수정 부탁드립니다.
input : Pst(1);
input : gap(20), tgap(20), pt(25), pt2(100), multi(0.7);
var : vol(0),vol2(0);
value1 = gap/PointValue;
value2 = tgap/PointValue; // 불타기 트레일링 스탑
value3 = pt/PointValue; //물타기 청산
value4 = pt2/PointValue; //불타기 청산
if pst == 1 Then
{
if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then
{
vol = 1;
vol2 = 1;
Buy("b",OnClose,Def,vol);
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
vol = vol+Round(vol*multi,0);
vol2 = vol2+1;
Buy("upb",AtLimit,EntryPrice(0)+(PriceScale*value1)*MaxEntries,vol2);
Buy("dnb",AtLimit,EntryPrice(0)-(PriceScale*value1)*MaxEntries,vol);
exitlong("bx",AtLimit,EntryPrice(0)+PriceScale*Value3);
exitlong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2);
}
}
요청식2
매수조건
매수/매도 : 외부입력변수로 설정
매수진입 이후 가격이 상승하면 일정 간격으로 1계약씩 추가 매수하고(불타기)
매수진입 이후 가격이 하락하면 일정 간격으로 1계약씩 추가 매수 합니다.(물타기)
불타기 매수청산은 포지션 전체수익이 일정금액($) 이상 수익(큰금액)이 나면 청산
단,불타기 진입의 경우 트레일링 스탑을 적용하고 싶습니다.
- 전체 포지션 수익금액에서 20$ 하락시 청산
물타기 진입의 경우 가격이 다시 일정금액(20$) 상승한 경우
진입한 계약별로 포지션 수익이 20$ 이상이면 개별 청산하고 싶습니다.
그러다가 가격이 다시 하락하면 다시 1계약씩 추가 진입합니다.
이런식으로 청산과 진입을 반복하다
현재 포지션 수익과 포지션 오픈이후 청산수익이 일정금액(20$) 이상 수익이면 물타기 전체 포지션을 청산합니다.
제가 올려드린 샘플 코딩을 바탕으로 시스템식 수정 부탁드립니다.
요청식3
매수조건
매수/매도 : 외부입력변수로 설정
매수진입 이후 가격이 상승하면 처음 진입한 1계약만 유지하고
매수진입 이후 가격이 하락하면 일정 간격으로 1계약씩 추가 매수 합니다.(물타기)
매수청산은
가격이 상승한 경우 매수청산은 포지션 전체수익이 일정금액 ($) 이상 수익이 나면 청산합니다.
반대로 가격이 하락하여 물타기 진입한 경우
전체 계약수가 10계약 이내이면 포지션 전체수익이 일정금액($) 이상 수익이 나면 청산합니다.
단, 가격이 계속 하락하여 10계약 이상 진입이 필요한 경우
가격이 하락하여 추가로 진입 할때마다 처음 진입한 계약부터 1계약씩 손절(20$) 하고 싶습니다.
(1계약씩 추가 진입하고 1계약씩 추가 손절하기 때문에 계약수는 10계약씩 유지되다가,
가격이 상승하면 포지션 전체 수익이 일정금액($) 이상 수익이 나면 청산합니다.
제가 올려드린 샘플 코딩을 바탕으로 시스템식 수정 부탁드립니다.
감사합니다.
2024-01-17
829
글번호 175835
답변완료
안녕하세요~ 수식 부탁드립니다~
data1에 원달러선물 1분봉
data2에 코스피선물 일봉
data3에 다우산업지수 일봉
이렇게 넣어두고 하려고 하고요.
원달러 선물 갭을 먹는 전략을 만들어 보려고 합니다.
1. 매수 진입 조건
1) 3시 20분 현재 코스피선물이 음봉
2) 전일 다우산업지수 음봉
3) 3시 20분에 원달러선물 매수 진입
2. 매도 진입 조건
1) 3시 20분 현재 코스피선물이 양봉
2) 전일 다우산업지수 양봉
3) 3시 20분에 원달러선물 매도 진입
3. 청산 조건
1) 익일 시초가에 청산
이렇게 가능할가요?
만약 안되면 코스피선물 일봉을 1분봉으로 변경해서 만들어 주셔도 괜찮습니다.
감사합니다~`
2024-01-17
631
글번호 175832
관리자에 의해 예스스팟 QnA로 이동되었습니다
2024-01-17
13
글번호 175828
중박주식 님에 의해서 삭제되었습니다.
2024-01-17
22
글번호 175827
파워 님에 의해서 삭제되었습니다.
2024-01-16
659
글번호 175826
파워 님에 의해서 삭제되었습니다.
2024-01-16
560
글번호 175825