커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7704
글번호 230811
답변완료
시스템식 문의 드립니다.
안녕하세요.
분할매수 시스템식을 구성해 보았는데요.
시뮬레이션을 돌려보면 2차매수, 3차매수, 매도 신호가 발생하지 않습니다.
우선 전략 설명 드릴게요.
1. 주식/선물/옵션 중에 주식에서만 사용할 거구요.
2. 1000만원 투자금으로 40%, 30%, 30% 비중으로 분할 매수합니다.
3. 매수조건
- 엔벨로프 하단선에 닿으면 1차매수
- 1차 매수가 보다 7% 더 떨어지면 2차매수
- 2차 매수가 보다 7% 더 떨어지면 3차매수
4. 청산조건 : 평균 매수가에서 3% 수익 발생 시 매수전량 매도
[ 시스템식 ]
input : 투자총액(500000), 엔벨로프폭(20), 분할매수폭(7), 목표수익률(3) ;
Variables: 매수상태(0),
매수가1(0), 매수량1(0), 평균매수가1(0), 목표가1(0),
매수가2(0), 매수량2(0), 평균매수가2(0), 목표가2(0),
매수가3(0), 매수량3(0), 평균매수가3(0), 목표가3(0) ;
매수가1 = EnvelopeDown( 20,엔벨로프폭 ) ;
매수가2 = 매수가1 / ( 1 + 분할매수폭/100) ;
매수가3 = 매수가2 / ( 1 + 분할매수폭/100) ;
매수량1 = int((투자총액 * 0.4)/C) ;
매수량2 = int((투자총액 * 0.3)/C) ;
매수량3 = int((투자총액 * 0.3)/C) ;
If MarketPosition() == 0 Then 매수상태 = 0 ;
If MarketPosition() == 0 and L > 매수가1 and 1440 > TimeToMinutes(stime)
Then {
Buy("매수1", AtLimit, 매수가1, 매수량1) ;
평균매수가1 = 매수가1 ;
목표가1 = 평균매수가1 * (1+목표수익률/100) ;
if L <= 매수가1 then 매수상태 = 1 ;
ExitLong("매도1",AtLimit,목표가1,"", 매수량1) ; }
If 매수상태 == 1 Then {
Buy("매수2", AtLimit, 매수가2, 매수량2) ;
평균매수가2 = (매수가1 + 매수가2)/2 ;
목표가2 = 평균매수가2 * (1+목표수익률/100) ;
if L <= 매수가2 then 매수상태 = 2 ;
ExitLong("매도2",AtLimit,목표가2,"", 매수량1+매수량2 ; }
If 매수상태 == 2 Then {
Buy("매수3", AtLimit, 매수가3, 매수량3) ;
평균매수가3 = (매수가1 + 매수가2 + 매수가3)/3 ;
목표가3 = 평균매수가3 * (1+목표수익률/100) ;
if L <= 매수가3 then 매수상태 = 3 ;
ExitLong("매도3",AtLimit,목표가3,"", 매수량1+매수량2+매수량3) ; }
[ 질문요지]
아무래도 제가 함수나 수식을 잘못 이해하고 있는 부분이 있는것 같은데,
그게 어딘지 모르겠어요.. ㅠ.ㅠ
분할 매수/매도와 관련한 Q/A도 읽어봤는데, 대부분 관리자님께서는
CurrentContracts 나 CurrentEntries 같은 함수들을 이용하시는것 같더라구요.
근데 전 이 함수들이 정확히 어떤 값을 돌려주는 지 알수 없어서,
(메뉴얼에 "포지션의 청산되지 않은 진입 횟수" 이렇게 나와있지만 정확히 이해가 되지 않고,
"포지션"이라는 말 때문에 선물이 아닌 주식에도 동일하게 적용되는지 확실치 않아서..)
아무튼 그래서 최대한 어려운 함수를 쓰지 않고 작성해 보았는데 잘 안되네요..
왜 2차매수, 3차매수, 매도 신호가 나오지 않는지,
어느 부분이 잘못된 것인지 찾아주시면 정말 감사하겠습니다..
매수상태를 매기는 것에 문제가 있는게 아닌가 추측해 보지만, 단지 추측일 뿐이라..
혹시 너무 엉터리 수식이라 잘못을 수정하기 힘든정도라면,
전략 내용을 보시고 새로 짜 주셔도... -_-;;;
긴 글 읽어 주셔서 감사합니다. 꾸벅.
2011-09-24
597
글번호 42992
하루우유 님에 의해서 삭제되었습니다.
2011-09-26
39
글번호 42991
답변완료
macd와 스토 교차시
안녕하세요
1.macd(12.26.9) 와 스토(12.5.5.) 2개의 식이 상승macd선이 스토상승 선과 교차시 매수
하락macd선이 스토하락 선과 교차시 매도 즉 선이 4개 의 경우을 모두 따로구분 매매식
부탁드립니다.
2011-09-24
491
글번호 42990
답변완료
질문있습니다
수식작성예제-지표를이용한수식-호가잔량-호가잔량이평을이용한매매식
안녕하세요
[시스템식]
Input : Period(5);
Var : 매수이평(0), 매도이평(0);
매수이평 = ma(bids, period);
매도이평 = ma(asks, period);
if crossup(매수이평, 매도이평) then
buy();
if crossdown(매수이평, 매도이평) then
sell();
이수식을 분봉과거차트에 시뮬레이션 할수있나요?
2011-09-24
452
글번호 42989
러블리 님에 의해서 삭제되었습니다.
2011-09-26
42
글번호 42988
선행 님에 의해서 삭제되었습니다.
2011-09-23
79
글번호 42987
답변완료
시스템식 문의드립니다
안녕하세요
아래식을 야간선물에 적용시 다음수식에 오류가 없는 지요
그리고 목표수익 청산에 대신하여 추적청산을 넣는다면 수식을 부탁드립니다
수고하세요
var : HO(0), LO(0), WO(0), W(0), H1(0), H2(0), H3(0), H4(0), L1(0), L2(0), L3
(0), L4(0);
Var : Count(0);
if date <> date[1] Then {
HO = H;
LO = L;
WO = H-L;
}
if WO >= 1.0 Then
W = WO/2;
Else
W = WO;
H1 = HO + W;
H2 = HO + (W*2);
H3 = HO + (W*3);
H4 = HO + (W*4);
L1 = LO - W;
L2 = LO - (W*2);
L3 = LO - (W*3);
L4 = LO - (W*4);
# 진입횟수 제한
Count = 0 ;
For Value1 = 0 To 10 {
If EntryDate(Value1) == date Then
Count = Count + 1;
}
# 진입식
if count < 2 and stime < 040000 then { //익일 04시 이전에 1회 진입?
if MarketPosition != 1 and H[1] < HO + 0.2 Then
buy("매수진입", atstop, HO + 0.2);
if MarketPosition != -1 and L[1] > LO - 0.2 Then
sell("매도진입",atstop, Lo - 0.2);
}
# 손절청산
if MarketPosition == 1 Then
exitlong("매수손절", atstop, HO - W - 0.15);
if MarketPosition == -1 Then
ExitShort("매도손절", atstop, LO + W + 0.15);
# 목표수익 청산
if MarketPosition == 1 Then
exitlong("매수익절", atlimit, H4);
if MarketPosition == -1 Then
ExitShort("매도익절", atlimit, L4);
# 당일청산
SetStopEndofday(0455);
2011-09-23
506
글번호 42986
답변완료
수식문의드립니다
안녕하세요 초보자 인사드립니다
수고 많으십니다
야간CME선물 5분봉에서 적용할 다음 수식을 검토하여 주시기 바랍니다
1. 야간선물시장 시작시간(18시)부터 20분간 고저가를 일정ATR 만큼 돌파하면 매수.매도
22시 30분이내에는 1회만 진입
2. 청산은 매수후 최고가에서 ATR 5.5만큼 빠지면 청산
청산은 매도후 최저가에서 ATR 5.5만큼 오르면 청산
(추가하고 싶은 부분)
매수 및 매도후 5Point 수익발생시 청산
3. 손절을 3point 그리고 종가무렵 (새벽 04시 40분) 당일청산
4. 22시 30분 이전에 진입후 청산되었을 경우
22시30분 이후 18시이후 일정기간 (예 : 22시부터 22시35분간)고저가를 돌파시
1회재진입
기타 의문사항 :
1. 24시에 날자가 바뀌게 되는데 날자변동과 관계없이 계속 시스템이 작동할지 궁금
2. 진입봉에서 크게 요동칠경우 진입과 청산이 될 우려는 없는지도 궁금합니다
==============================================================
//시가대비 돌파전략
//시가대비 일정ATR 상향돌파하면 매수 / 하향돌파하면 매도
Input : ST(180000), ET(181959), Mult(5.5), stoppoint(3);
# 진입
Var1 = TimeHigh(ST,ET);
Var2 = TimeLow(ST,ET);
If EntriesToday(date)<1 and sTime>=182500 Then {
Buy("Buy", AtStop, Var1);
Sell("Sell", AtStop, Var2);
}
# 청산
Var3 = Highest(H,BarsSinceEntry+1)-ATR(20)*Mult;
Var4 = Lowest(L,BarsSinceEntry+1)+ATR(20)*Mult;
If MarketPosition <> 0 Then {
exitlong("EL",Atstop,Var3);
exitshort("ES",Atstop,Var4);
}
# 재진입
SetStopLoss(stoppoint, PointStop);
SetStopEndofday(1440);
감사합니다
2011-09-23
510
글번호 42985
답변완료
간단한 질문.
if highest(H,BarsSinceEntry+1) > entryprice+3 && highest(H,BarsSinceEntry+1) > entryprice+4.2 then
위식에서
highest(H,BarsSinceEntry+1) > entryprice+3 는 무의미하죠??
2011-09-23
506
글번호 42984