커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4348
글번호 230811
답변완료
재문의 드립니다.
Input : 당일수익틱수(30);
var : Tcond(false),T1(0),entry(0),Xcond(false),N1(0),daypl(0),당일수익(0);
var : HH(0),LL(0),HLTime(0);
var1 = ma(C,5);
var2 = ma(C,10);
당일수익 = PriceScale*당일수익틱수;
if stime == 080000 or (stime > 080000 and stime[1] < 080000) Then
{
HLTime = 1;
Tcond = true;
T1 = TotalTrades;
Xcond = false;
N1 = NetProfit;
}
if stime == 055000 or (stime > 054500 and stime[1] < 055000) Then{
Tcond = false;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == -1 Then
ExitShort();
}
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = TotalTrades-T1+1;
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbp",1) == true or IsExitName("dsp",1) == true) then
Xcond = true;
#오전 10시에서 오후9시(21시) 사이의 최고가/최저가 계산
if stime == 100000 or (stime > 100000 and stime[1] < 100000) Then{
HLTime = 2;
HH = H;
LL = L;
}
if stime == 210000 or (stime > 210000 and stime[1] < 210000) Then
HLTime = 3;
if HLTime == 2 then{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
}
if Tcond == true and Xcond == false and HLtime >= 3 then
{
if MarketPosition <= 0 and H < HH+PriceScale*1 Then
buy("b",AtStop,HH+PriceScale*1,1+entry*2);
if MarketPosition >= 0 and L > LL-PriceScale*1 Then
sell("s",AtStop,LL-PriceScale*1,1+entry*2);
}
if MarketPosition == 1 then{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
}
실매매를 했을 경우
매도진입은 표시는 되고 실제는 진입을 안하고
매수진입은 실제진입되게 했으면 합니다.
다른 모든건 다 똑같이 하면 되고요.
그럼 부탁드리겠습니다.
2018-02-04
134
글번호 116302
coralre2 님에 의해서 삭제되었습니다.
2018-02-04
4
글번호 116301
답변완료
문의 드립니다
매주 금요일 15시 50분에 강제청산을 하려구 하는데
수식을 어떻게 해야하는지요?
2018-02-03
139
글번호 116300
text
text
2018-02-03
142
글번호 116299
답변완료
예스랭귀지와 이지랭귀지는 거의 똑같은가요?
이지랭귀지로 된 코드 책 사서 보고 있는데... 이거 예스랭귀지로 변환좀 하려 하는데요.
예스랭귀지와 이지랭귀지는 거의 똑같은가요?
2018-02-02
148
글번호 116298
답변완료
감사 또 감사 3분봉에서 사용 할수 있도록 부탁드립니다
감사합니다 꾸벅
1,아래검색 종목검색식을 일봉 3분봉에서 사용할수 있도록 부탁드려요
3 분봉에서는 검색이 안되네요
2,가중이평 33 ,42,52 수렴후 (5%) 범위 변수처리
120일 선을 골드하거나 120일선 위에서 수렴한 종목
3,매수가 라인위에서 33 42 52 수렴 5%이네 변수처리부탁
4, 매수가 매도가 라인 간격이 5%이내 즉 두라인간격 범우가 매우근접
매수가 매도가 정배열
부탁 드립니다
저는 논산시 연무읍 논산훈련소 직업 군인 입니다
내년 전역을 앞두고 있습니다
돌려려보시고 부족한것이 있으면 손질두 부탁드려요
## 감사합니다
참조종목 2월2일 디젠스 참조하시여 부탁 들립니다 3분봉 경인전자
input : 단기(5),장기(60),P(120),수렴1(5);
input : 이격도1(80),이격도2(100),이격도3(120),수렴2(5);
var : DParity1(0),DParity2(0),DParity3(0),mav(0);
var : 단기이평(0),장기이평(0),매수가(0),매도가(0);
DParity1 = Disparity(이격도1);
DParity2 = Disparity(이격도2);
DParity3 = Disparity(이격도3);
단기이평 = ma(C,단기);
장기이평 = ma(C,장기);
mav = ma(C,P);
if crossup(단기이평,장기이평) Then
매수가 = C;
if CrossDown(단기이평,장기이평) Then
매도가 = C;
if max(매수가,매도가,mav) <= min(매수가,매도가,mav)*(1+수렴1/100) and
max(DParity1,DParity1,DParity2) <= 100+수렴2 and
max(DParity1,DParity1,DParity2) >= 100 and
Upvol/DownVol*100 >= 120 then
find(1);
2018-02-04
217
글번호 116297
답변완료
질문
아래 수식을 사용해 선물거래를 할때, kospi200지수를 보조지표로 해서 kospi200지수신호로 선물거래를 하려하려며는 수식을 어떻게 바꾸어야하나요? 감사합니다.
Inputs: Length(10), ATRs(1.5), Pval(0.05);
Variables: KUpper(0), BuySetup(False), BuyBase(0);
Variables: KLower(0), SellSetup(False), SellBase(0);
KUpper = KeltnerChannel(Close, Length, ATRs);
KLower = KeltnerChannel(Close, Length, -ATRs);
Condition1 = Crossup(Close, KUpper);
Condition2 = CrossDown(Close, KLower);
If MarketPosition() == 1 OR Close < MA(close, Length) Then
BuySetup = False;
Else
If Condition1 Then Begin
BuySetup = True;
BuyBase = High;
End;
If MarketPosition() == -1 OR Close > MA(Close, Length) Then
SellSetup = False;
Else
If Condition2 Then Begin
SellSetup = True;
SellBase = Low;
End;
//Description : Keltner Channel Long Entry
If BuySetup Then
Buy ("KC_LE", AtStop, BuyBase + Pval);
//Description : Keltner Channel Short Entry
If SellSetup Then
Sell ("KC_SE", AtStop, SellBase - Pval);
2018-02-02
138
글번호 116295
답변완료
시스템에서 이동평균선 2개중에 하나더 추가할려면
이동평균(단순) 60선을 하나더 추가할려면 어떻게 해야 하나요.
수식좀 알려주세요. 총 5일선,20일선, 60일선 이렇게 말입니다.
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
2018-02-02
139
글번호 116293
답변완료
문의드립니다.
수고가 많으십니다.
고점갱신후 조건에 맞으면 매수신호 1차 2차 진입
저점갱신후 조건에 맞으면 매도신호 1차 2차 진입 전략입니다.
12시~새벽05시까지 신호가 나오게 하는데....
고점과 저점 갱신되지 않고 지수가 박스에서 움직일시에는 신호발생되지 않고 저점 고점 갱신후 지수가 조건에 맞는 부분에 왔을때만 신호가 나오게 하고 싶습니다.
Else 부분때문에 에러가 나네요 부탁드립니다.
//////////////////////////////////////////
Var : Bcond1(False), Scond1(False), TT(0), HH(0), LL(0);
TT = TotalTrades;
// 장 첫봉에서 초기화
If condition1 Then
Begin
Bcond1 = False;
scond1 = False;
End;
HH = dayhigh(0); // 당일 고점선
LL = daylow(0); // 당일 저점선
// 고점 갱신 여부 확인
If HH > HH[1] Then Bcond1 = true
Else if TT <> TT[1] Then Bcond1 = False;
// 매수 진입// 고점갱신된후 발생되는 신호
If Bcond1 = true Then {
If 조건 Then
Buy("1차매수);
If MarketPosition == 1 And 조건2 Then
Buy("2차매수); }
/////////////////////////////////
// 저점 갱신 여부 확인
If LL < LL[1] Then Scond1 = true
Else if TT <> TT[1] Then Scond1 = False;
// 매수 진입//저점갱신된후 발생되는 신호
If Scond1 = true Then {
If 조건 Then Sell("1차매도);
If marketPosition == -1 And 조건2 Then sell("2차매도);
}
2018-02-02
150
글번호 116279