커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7704
글번호 230811
답변완료
시스템식 문의합니다.
10시에 콜옵션가격 2.00 에 10개 매도하고 풋옵션 2.00 에 10개를 매도 진입하고
전체 손익이 100만원 손실이 나면 전부 청산하는 식은 어떻게 하나여?
2011-09-26
443
글번호 43055
답변완료
간단한 질문.
if highest(H,BarsSinceEntry+1) > entryprice+3 && highest(H,BarsSinceEntry+1) > entryprice+4.2 then
위식은
고가가 진입가보다 +3이상이고 그리고 고가가 진입가 보다 +4.2 이상이면
이라는 조건인데,
위 조건이 만족하려면
고가가 +4.2 이상이어야 두 조건을 만족하므로
조건에서 +3 이상이면 이라는 조건은 삭제 해도 무방하죠??
2011-09-26
457
글번호 43046
러블리 님에 의해서 삭제되었습니다.
2011-09-26
183
글번호 43040
답변완료
문의드립니다
문의드립니다.
아래의 수식은 일봉에서 월봉 및 주봉의 수식을 불러온 내용입니다.
아래의 내용중 월봉 및 주봉의 볼린저밴드를 0봉전으로 수정코자 합니다.
지표식으로 표기할 때 수식에 문제점이 있는지 의도대로 정확히 표현이
안되네요... 수정부탁합니다.
1. 월봉 및 주봉의 볼린저밴드를 0봉전으로 수정
2. 일봉에서 지표식으로 표기할때 정확이 구현이 안됨
3. 아래내용중 월봉,주봉,일봉의 중간값이 정확한지 확인 부탁드립니다.
input : p1(2),mLENGTH1(20),mLENGTH2(60), ## 월봉
LENGTH11(20),LENGTH12(60), ## 주봉
LENGTH21(20),LENGTH22(60), ## 일봉
mPeriod1(20),mPeriod2(60), ## 월봉
Period11(20),Period12(60), ## 주봉
Period21(20),Period22(60); ## 일봉
var : mTCHAN1(0),mTCHAN2(0), ## 월봉
TCHAN11(0),TCHAN12(0), ## 주봉
TCHAN21(0),TCHAN22(0); ## 일봉
Var : mSum1(0), mCounter1(0), mCSum1(0),mWma1(0),mSumSqrt1(0),mStd1(0); ## 월봉
Var : mSum2(0), mCounter2(0), mCSum2(0),mWma2(0),mSumSqrt2(0),mStd2(0);
Array : mHH[70](0),mCC[70](0),mLL[70](0);
if sdate > sdate[1]+30 Then{
mHH[0] = H;
mLL[0] = L;
for mcnt = 1 to 61{
mHH[mcnt] = mHH[mcnt-1][1];
mCC[mcnt] = mCC[mcnt-1][1];
mLL[mcnt] = mLL[mcnt-1][1];
}
}
if H > mHH[0] Then mHH[0] = H;
if L < mLL[0] Then mLL[0] = L;
mCC[0] = C;
mTCHAN1 = mHH[1]; ## 월봉 price channel[1]
for mcnt = 1 to mLENGTH1 {
if mHH[mcnt] > mTCHAN1 Then
mTCHAN1 = mHH[mcnt];
}
mSum1 = 0; mCSum1 = 0;
For mcounter1 = 1 To mPeriod1{
mSum1 = mSum1 + ((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) * (mPeriod1 - (mcounter1-1));
mCSum1 = mCSum1 + mPeriod1 - (mcounter1-1);
}
mWMA1 = mSum1/mCSum1;
mSumSqrt1 = 0;
For mCounter1 = 1 To mPeriod1 {
mSumSqrt1 = mSumSqrt1 + (((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) - mWMA1) * (((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) - mWMA1);
}
mStd1 = SquareRoot(mSumSqrt1 / mPeriod1);
var1 = mwma1+(p1*mSTD1); ## 월봉 b.b[1]
var2 = (mHH[0]+mLL[0])/2; ## 월봉 중간값
var3 = (HH[0]+LL[0])/2; ## 주봉 중간값
## 주봉
Var : Sum11(0), Counter11(0), CSum11(0),Wma11(0),SumSqrt11(0),Std11(0); ## 주봉
Var : Sum12(0), Counter12(0), CSum12(0),Wma12(0),SumSqrt12(0),Std12(0);
Array : HH[70](0),CC[70](0),LL[70](0);
if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 61{
HH[cnt] = HH[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then HH[0] = H;
if L < LL[0] Then LL[0] = L;
CC[0] = C;
TCHAN11 = HH[1]; ## 주봉 pc
for cnt = 1 to LENGTH11 {
if HH[cnt] > TCHAN11 Then
TCHAN11 = HH[cnt];
}
Sum11 = 0;
CSum11 = 0;
For counter11 = 1 To Period11{
Sum11= Sum11 + ((HH[counter11]+LL[counter11]+CC[counter11])/3) * (Period11 - (counter11-1));
CSum11 = CSum11 + Period11 - (counter11-1);
}
WMA11 = Sum11/ CSum11;
SumSqrt11 = 0;
For Counter11 = 1 To Period11 {
SumSqrt11 = SumSqrt11 + (((HH[counter11]+LL[counter11]+CC[counter11])/3) - WMA11) * (((HH[counter11]+LL[counter11]+CC[counter11])/3) - WMA11);
}
Std11 = SquareRoot(SumSqrt11 / Period11);
var11 = wma11+(p1*STD11); ## 주봉 b.b[1]
var12 = (HH[0]+LL[0])/2; ## 주봉 중간값
var13 = (DayHigh+DayLow)/2; ## 일봉 중간값
2011-09-26
613
글번호 43036
답변완료
문의드립니다.
장시작 후 저점대비 A포인트 상승 시 매도진입
또는 고점대비 A포인트 하락 시 매수진입하여
매도 진입 시에는 진입 이후 저점대비 B포인트 상승 시
매수 진입 시에는 진입 이후 고점대비 B포인트 하락 시
청산하고 싶습니다.
청산 이후에는 그 시점부터 다시 반복되는 시스템식은 어떻게 되나요...
2011-09-26
475
글번호 43035
답변완료
수식부탁드립니다---------------
var: 테마기간(0),채널기간(10),수평(10),이익(7),손절(10),전봉차(1),진입가(1),Per1(0.01),X1(15);
VAR : TCHAN(0), BCHAN(0), aa(0), bb(0), highV(0), LowV(0);
TCHAN = HIGHEST(HIGH, 채널기간)[1];
BCHAN = LOWEST(LOW, 채널기간)[1];
var77 = (3 * Ema(c,테마기간)) - (3 * Ema(Ema(c,테마기간),테마기간)) + (Ema(Ema(Ema(c,테마기간),테마기간),테마기간));
Condition1 = highest(h,x1) >= lowest(L,x1)*(1+(Per1/100));
if stime >= 090100 then {
#매수
if DayIndex>=7 &&
MarketPosition == 0 and stime < 150000 and Condition1 then {
if var77 >= var77[1]+전봉차 and CountIF(Tchan==Tchan[1],수평) == 수평 Then
aa = TCHAN + PriceScale*진입가;
buy("매수",atstop, aa);
}
highV = highest(H,BarsSinceEntry);
if MarketPosition == 1 Then {
ExitLong("수익", atlimit, entryPrice+PriceScale*이익);
exitlong("bxxxxx",atstop,entryPrice-PriceScale*손절);
}
if MarketPosition == 1 or var77 < var77[1] Then
aa = 999999;
#매도
if DayIndex>=7 &&
MarketPosition == 0 and stime < 150000 and Condition1 then {
if var77 <= var77[1]-전봉차 and CountIF(Bchan==Bchan[1],수평) == 수평 Then
bb = BCHAN - PriceScale*진입가;
sell("매도",atstop, bb);
}
LowV = Lowest(L,BarsSinceEntry);
if MarketPosition == -1 Then {
ExitShort("도익", atlimit, entryPrice-PriceScale*이익);
exitshort("sxxxxx",atstop,entryPrice+PriceScale*손절);
}
if MarketPosition == -1 or var77 > var77[1] Then
bb = 0.000001;
}
//시간청산--------------------
var11 = int(date/100)-int(date/10000)*100; //월
var22 = date - int(date/100)*100; //일
var33 = DayOfWeek(date); //요일
if var11%3 == 0 and var22 >= 8 and var22 <= 14 and var33 == 4 then {
SetStopEndofday(144800); //만
}
else {
SetStopEndofday(150100); //평
}
위에다 하루이익이 아침시가의1.2%면 청산
하루손실이 아침시가의0.5%면 청산해주세요
또 스토케스틱 80 이상에서 매수금지 20 이하에서 매도금지 해주세요
2011-09-26
494
글번호 43026
답변완료
시스템식 문의드립니다.
Condition1 = ma(C,2) > ma(C,3) and ma(C,3) > ma(C,5);
Condition2 = C > highest(c,12)[1] And c - o > h - c ;
if Condition1 or Condition2 Then buy();
Condition1 = CrossDown(C,ma(C,20));
Condition2 = c < Lowest(c,9)[1];
if Condition1 or Condition2 Then ExitLong();
위와 같은 buy조건에 12봉 ~ 20봉사이의 종가가 볼린져밴드(2,20)하한선 보다
작을때 매수금지 조건을 덧 붙이려고 합니다. 감사합니다.
2011-09-26
505
글번호 43024
답변완료
문의드립니다.
이전 질문에 이어 다시 문의 드립니다.
호가별로 세분화 되지 않더라도 체결량에 대한 데이터는 제공되나요?
'체결거래량수'와 '체결빈도수'등에 대한 데이터 제공여부 문의드립니다.
예를들어,
1) 호가구분없이 체결거래량이 한번에 '정확히 1,000,000주'로 체결된 종목 검색은 가능한가요?
2) 체결거래의 빈도수 설정 혹은 빈도수 증감관련 수식가능 여부도 답변 부탁드립니다.
체결량에 관해 제공하는 모든 데이타 제공여부를 알려면 무엇을 참고하면 되나요? 메뉴얼에서 찾아볼수 있을까요?
감사합니다.
2011-09-26
591
글번호 43019
답변완료
문의 드립니다
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
input : E1(80),X3(20);
Var : PosHigh(0), PosLow(0);
if crossup(H,highest(H,E1)[1]) Then
buy();
if CrossDown(L,Lowest(L,E1)[1]) Then
Sell();
if MarketPosition == 1 Then{
ExitLong("exitlong",AtStop,lowest(L,X3));
exitlong("B_stop",Atstop,EntryPrice-ATR(20)*3);
if MarketPosition == -1 Then{
ExitShort("exitshort",AtStop,Highest(H,X3));
exitshort("S_stop",Atstop,EntryPrice+ATR(20)*3);
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
1. 위 전략을 통해 벌어들인 net profit의 20%만큼 다음 진입 수량을 늘리려면 어떻게 해야 하나요?
예를 들어, 수익 100pt가 났다면,
다음 진입 시 20pt의 진입risk를 추가 부담하고 싶습니다.
(진입가-손절매가= 진입risk)
여기서 진입가는 80일 고가 돌파 시점이 되겠구요.
손절매가=진입가-ATR(20)*3 이 되겠죠.
자세한 예를 들면, kospi200지수의 80일 고가돌파 가격이 100pt이고 ATR 20일평균이 10pt이며, 지금껏 트레이딩으로 벌어들인 수익이 150pt 발생했다고 가정할 경우,
진입가 = 100pt
ATR 20일평균=10pt
손절매가=3*10pt=30pt
즉 1계약 당 30pt의 진입risk를 지게 됩니다.
그런데 지금껏 트레이딩으로 벌어들인 수익의 20%를 진입risk로 걸고 싶기 때문에
1계약 진입risk 30pt에다가
지금껏 벌어들인 수익의 20%인 30pt를 추가하여
총 2계약 진입이 되는 겁니다.
2. 이건 다른 질문인데요.. 만약 진입해서 포지션을 가지고 있을 경우,
모든 청산가격에서
(손절매 청산가인 ATR20일*3,
수익이 나고 있다면 20일 돌파청산 가격)
청산가격보다 ATR20일*0.5 높을 때,
추가로 진입할 수 있는 수식 부탁 드립니다.
즉 원래대로라면 ATR20일*3의 진입risk를 지게 되는데
거의 손절매가에 가까울 때 추가로 진입하게 되는거죠.
(buy the dips, sell the rips 전략)
자세한 예를 들면,
1만원짜리 주식을 손절매가 7천원으로 정하고 1만원에 1주 진입한 경우
주식가격이 7500원이 되었을 때 (거의 손절 포인트에 가까움)
1주 더 구입할 수 있는지 궁금합니다.
물론 손절매가는 7천원에서 움직이지 않기 때문에
7500원에 추가진입하더라도 7천원인 손절가가 깨지면 모두 청산해야겠죠.
수익이 났을 경우의 예를 들면
주가 1만원에 1주 사서 2만원이 되었는데,
(ATR20일=1천원이며,
20일 하락돌파청산 시점은 주가 15,000원)
주가가 15,500원이 되었을 경우 추가로 1주 더 진입하는 겁니다.
그러다가 15,000원 이하로 빠지면 모두 청산하고,
더 올라가면 냅두고 이렇게 되는거죠.
2011-09-26
589
글번호 43016