커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6526
글번호 230811
답변완료
수식부탁합니다
30분봉 볼린저밴드 상하단선을 90틱 차트에 붙여 넣고 싶은데
수식 부탁합니다.
2015-10-27
115
글번호 91749
회원 님에 의해서 삭제되었습니다.
2015-10-27
9
글번호 91748
싱글 님에 의해서 삭제되었습니다.
2015-10-27
7
글번호 91747
답변완료
시스템식 부탁드립니다.
안녕하세요..
아래 시스템식에서
시가가 갭하락해서 시작할때 좀더 낮은 위치에서 1차매수를 하도록 다음과 같이 수정 부탁드립니다.
시가가 -5%이상 갭하락해서 시작할때,
1) 기본값 P(10)에서 +5를 더해서 즉, P(15)
2) 기본값 매수위치1차(10)에서 +5를 더해서 즉, 매수위치1차(15)
즉, 엔벨로프 10:10 하단선에서 1차매수하던 것을 시가가 -5%이상 갭하락해서 시작할때
좀더 낮은 위치에서 잡기 위해 엔벨로프 15:15 하단선에서 잡기 위한 시스템식입니다.
기존의 시시템식은 다음과 같습니다.
-------------------------------------------------------------------------------------
input : 전략식시작일자(20150422), 전략식시작시간(090000), 전략총매수금액(2000); # 금액은 만원단위
input : 전략식종료일자(20151021);
input : P(10),매수위치1차(10), 매수위치2차(7), 매수위치3차(14);
input : 매수위치보정(1);
input : 매도위치1차(7), 매도위치2차(14);
input : 매수비중1차(20), 매수비중2차(30), 매수비중3차(50);
input : 매도비중1차(50), 매도비중2차(50);
input : 전략식진입횟수(10);
input : 타점보유일수(3);
var : sum(0),mav(0),cnt(0),eup(0),edn(0),Didx(0),LatestEntryDidx(0),Ecnt(0);
var : TimeCond(false),Xcond1(false),Xcond2(false),Loss(0),LatestEntrylow(0);
#일자수 계산
if date != date[1] Then
Didx = Didx+1;
#당일포함 일봉 P개의 종가를 누적
sum = 0;
for cnt = 0 to P-1{
sum = sum+DayClose(cnt);
}
#누적값을 P로 나누어 평균값 산출
mav = sum/P;
#상단
Eup = mav+mav*(매수위치1차/100);
#하단
Edn = mav-mav*(매수위치1차/100);
#지정일 지정시간이 되면 TimeCond는 True(그전에는 false)
if sdate == 전략식시작일자 and (stime == 전략식시작시간 or (stime > 전략식시작시간 and stime[1] < 전략식시작시간 )) then
TimeCond = true;
if sdate > 전략식종료일자 Then
TimeCond = false;
#TimeCond가 True가 된 후
if TimeCond == true then{
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "1차매수" Then
Ecnt = Ecnt+1;
#무포지션 상태에서 매수위치1차에 도달하면 매수
if MarketPosition == 0 and Ecnt < 전략식진입횟수 Then
buy("1차매수",atlimit,Edn*(1+매수위치보정/100),Floor((전략총매수금액*10000/c)*(매수비중1차/100)));
#첫매수이후
if MarketPosition == 1 Then{
#최근 진입시점의 일자수 저장
if CurrentContracts > CurrentContracts[1] Then{
LatestEntryDidx = Didx;
LatestEntrylow = L;
}
#1차매수 발생 후 매수위치2차에 도달하면 매수
if MaxEntries == 1 Then
buy("2차매수",atlimit,Edn[BarsSinceEntry]*(1-매수위치2차/100),Floor((전략총매수금액*10000/c)*(매수비중2차/100)));
#1차매수 발생 후 매수위치3차에 도달하면 매수
if MaxEntries == 2 Then
buy("3차매수",atlimit,Edn[BarsSinceEntry]*(1-매수위치3차/100),Floor((전략총매수금액*10000/c)*(매수비중3차/100)));
#1차매도가 한번 발생하면 더이상 발생못하도록 Xcond1은 true
if LatestExitName(0) == "1차매도" then
Xcond1 = true;
#2차매도가 한번 발생하면 더이상 발생못하도록 Xcond2는 true
if LatestExitName(0) == "2차매도" then
Xcond2 = true;
#Xcond1이 false일때
#진입이후 최저가에서 매도위치1차 만큼 상승하면 일부 청산
if Xcond1 == false Then
exitlong("1차매도",Atlimit,lowest(L,BarsSinceEntry)*(1+매도위치1차/100),"",Floor(MaxContracts*(매도비중1차/100)),1);
#Xcond2가 false일
#진입이후 최저가에서 매도위치2차 만큼 상승하면 전량청산
if Xcond2 == false Then
exitlong("2차매도",Atlimit,lowest(L,BarsSinceEntry)*(1+매도위치2차/100));
#최근 진입후 3일이상 경과(현재 일자수가 최근진입시점의 일자수보다 3이상증가)
if Didx >= LatestEntryDidx+타점보유일수 and Xcond1 == false and CurrentContracts == CurrentContracts[1] Then{
#최근 진입이후 3일되었을때의 최근진입일 포함3일 최저가 계산
if date != date[1] and Didx == LatestEntryDidx[BarsSinceEntry]+3 Then{
Loss = daylow(1);
for cnt = 1 to 타점보유일수{
if daylow(cnt) < Loss Then
Loss = daylow(cnt);
}
}
#Loss값 이하로 가격하락하면 전량 청산
exitlong("손절",AtStop,Loss);
}
#최종 매수일 포함 3일경과되면 다음날 시가에 매도
if Didx == LatestEntryDidx+(타점보유일수-1) and stime == 150000 Then{
exitlong("익절2",AtMarket);
}
#1차매도가 발생한 상황
#가장 최근 진입일의 당일최저가보다 낮은 시세 발생하면 전량청산
# if L < LatestEntrylow and Xcond1 == false Then
# LatestEntrylow = L;
# if Xcond1 == true and CurrentContracts == CurrentContracts[1] Then{
# exitlong("익절1",AtStop,LatestEntrylow);
# }
}
else{#매수포지션이 아니면 false로 초기화
Xcond1 = false;
Xcond2 = false;
}
}
2015-10-27
156
글번호 91746
답변완료
수식 부탁드립니다
조건식에 1 stok 기준선 80 이상은 매수로 인식 + 매도 진입금지
stok 기준선 20 이하는 매도로 인식 +매수진입금지
2 매수진입은 stok 선이 stod를 우상향으로 크로스 +stok 가 기준선 20 이상일때
매도진입은 stok 선이 stod를 우하향으로 크로스 +stok 가 기준선 80 이하일때
3 매수진입은 stok 선이 기준선 20선을 우하향으로 넘어선 후 ,stok 선이 stod를
우상향으로 크로스 +stok 가 기준선 20 이상일때
매도진입은 stok 선이 기준선 80선을 우상향으로 넘어선 후 ,stok 선이 stod를
우하향으로 크로스 +stok 가 기준선 20 이상일때
위의 세가지 조건식 부탁드립니다 .
감사합니다
2015-10-27
138
글번호 91745
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2015-10-27
12
글번호 91743
답변완료
수식부탁드립니다
일정 조건하에서 마지막 이익실현한 매도가격으로 부터 20% 하락한 경우에 매수하라는 식을 구현하고 싶습니다.
부탁드립니다.
2015-10-27
130
글번호 91737
무한질주 님에 의해서 삭제되었습니다.
2015-10-27
0
글번호 91736
답변완료
문의 드립니다.
진입조건
몇시 몇분까지 당일 진폭이 40틱 이상일 때
1.
당일 중심위면
data2의 저항 가격에 2계약 매도
중심 아래면 data2의 지지 가격에 2계약 매수
2. 매도, 매수 진입 가격을 입력 하는 방법
몇시 이후 진입 가격을 입력하고 해당 가격에 도달하면 매도
해당 가격에 도달하면 매수
청산
손절이 없으면 10틱에 1개, 15틱에 1개 각각 익절
손절 및 스위칭
진입가격 대비 -n틱이면 손절하고 스위칭
1. 스위칭 할 때 계약수를 1개씩 증가하는 식으로
2. 스위칭 할 때 계약수를 2개씩 증가하는 식으로 2개의 식으로 부탁 드립니다.
손절 계약수의 1/2을 손절과 함께 스위칭하고, 1/2은 손절가격 -6틱에 진입
2계약을 손절하면서 1계약을 스위칭하고, 2계약은 손절가격 -6틱에 진입합니다.
손절 후 청산방법
손절이 세번(변수처리) 이하인 경우
2계약을 손절하고 1계약만 스위칭 체결됐을 때 당일 누적 손실금 + 15틱에 청산
당일 누적 손실금 + 10틱에 1/2 청산, 당일 누적 손실금 +15틱에 나머지 청산
계약수가 홀수면
3개면 2개 청산, 1개는 +15틱
5개면 3개 청산, 1개는 +15틱
.
.
이런 식입니다.
손절이 세번 이상인 경우
손실금 + 1틱에 1/2 청산, 진입가격 +15틱에 나머지 청산
최대손실 500만원이면 거래 중지.
주석 부탁 드립니다. 감사합니다.
2015-10-27
151
글번호 91735