커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4528
글번호 230811
답변완료
강세약세 부탁드립니다
강세패턴
A=PVI(C)+NVI(c);
B=avg(PVI(c),period)+avg(NVI(c),period);
A>B
약세패턴
A=PVI(C)+NVI(c);
B=avg(PVI(c),period)+avg(NVI(c),period);
A<B
키움수식변경부탁드립니다 항상 감사합니다
2019-05-03
289
글번호 128387
답변완료
매수 매도 가격 표시
안녕하세요
1,매수===> 2,매도===>3,매수====>4매도 이렇게 순환된다고 할때
새로운 진입이 이루어지면 그 전 단계의 진입가격을 표시하고 싶습니다.
매수 진입했다면 직전에 청산된 매도진입 가격을 표시하는 것이죠
2번이 실행됬다면 1번의 진입가격 표시 또는 저장
3번이 실행됬다면 2번의 진입가격 표시 또는 저장
이렇게 계속반복해서 직전의 진입가격을 표시 또는 저장하고 싶습니다.
2019-05-03
220
글번호 128386
답변완료
수식부탁드려요!
C > highest(c,119)[1] and V == highest(V,120)
이면서 이전80봉은 최고가가 아닌종목 검색식요!
감사합니다~^^
2019-05-03
239
글번호 128383
답변완료
문의 드립니다.
20이평 120이평 정배열에서 20이평을 한번 아래로 깨고/ 20이평을 상승돌파 후/
다시 20이평 아래로 깨지만/ 이전 저점은 깨지 않으면서 다시 20이평 상승 돌파 시 매수
청산은 20이평 아래로 이탈 할 때 할 것.
20이평 120이평 역배열에서 20이평을 한번 위로 돌파하고/ 20이평을 아래로 깬 후/
다시 20이평 위로 돌파 하지만/ 이전 고점은 넘지 않으면서 다시 20이평 하락 돌파 시 매도
청산은 20이평 위로 돌파 할 때 할 것.
부탁드립니다.
2019-05-03
207
글번호 128382
답변완료
수식문의 드립니다
아래 수식1은 - 청산수식 가중삼각이도평균선 (5) 삼각이동평균선 (20)을 하향돌파시
하향돌파 시점의 다음봉에서 봉의 완성시점에 청산 주문이 발생 하는것으로 알고 있습니다
실제 시스템 자동 주문중 예비신호인 - 속이빈 화살표가 생성 되었다 없어지고 -
실제 청산 주문이 나가지않고 계속 보유 하다 스탑 주문이 나가는 현상이 발생 합니다.
확인 부탁 드립니다.
수식1.
input : Period1(5), Period2(20);
var : v99(0),v1(0),v2(0),cond1(false);
v99 = (H + L + C ) / 3;
v1 = wma(v99, Period1);
var1 = Ceiling((Period2 + 1) * .5);
v2 = ma(ma(v99, var1), var1);
Cond1 = CrossDown(v1 , v2);
If Cond1 Then Exitlong("청산");
수식2. 경우도 동일한 현상이 발생 합니다.
input : Period61(10), Period62(20);
var51 = data1(wma(C, Period61));
var52 = data1(wma(C, Period62));
condition50 = CrossDown( var51 , var52);
If condition50 Then Exitlong("청산2");
2019-05-03
213
글번호 128381
답변완료
문의드립니다
아래 수식에서 var1 var3 가 같이 20선 밑 80선 위에 위치 했을때
강조 수식으로 부탁드립니다
Input : P1(25),p2(5),P3(14),p4(5);
input : Period1(20),Period2(10);
input : 익절틱수(20),손절틱수(40);
input : starttime(101600),endtime(173000);
var : Tcond(false);
if (sdate != sdate[1] and stime >= starttime) or
(sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= endtime) or
(sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
var1 = StochasticsK(P1,P2);
var2 = StochasticsK(P3,P4);
var3 = StochasticsK(Period1,Period2);
if Tcond == true then
{
if crossup(var1,var3) and var1 < 20 and var3 < 20 Then
buy("매수");
if CrossDown(var1,var3) and var1 > 80 and var3 > 80 Then
sell("매도");
if crossup(var2,var3) and var2 < 20 and var3 < 20 Then
buy("매수진입");
if CrossDown(var2,var3) and var2 > 80 and var3 > 80 Then
sell("매도진입");
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2019-05-03
203
글번호 128380
답변완료
수식 문의
1.매수
코스닥지수를 참조데이터2, 코스닥개인매수금액을 참조데이터3로 사용
참조데이터2인 코스닥지수가 시가보다 1%이상 상승하고, 코스닥개인매수금액이 순매도를
보이면 매수
2.매도
당일 종가 매도
3.손절매
참조데이터2인 코스닥지수가 당일저가 이탈시 손절매
2019-05-03
208
글번호 128379
답변완료
프로그램사용법에 올린 글도 봐 주십시오.
4일째인데 답이 없어서 그 쪽은 잘 안 보시는 것 같아서 부탁드립니다.
2019-05-03
203
글번호 128374
답변완료
죄송합니다 하나만 더 부탁드립니다.
분할매수 처음매수가 b11이랑 b1둘중 하나로 지정되어있는거 같은데 첫매수는 b11으로만 시작하게 하고 싶구요. +로 시작일때는 그날 매수에 전혀 참여하지 않는걸로 하고 싶은데 제대로 되어있는건지 모르겠습니다 ㅠㅠ 지금 상태는 +시작인데도 b1을 매수하고 있거든요.
그리고 평단가 계산할때 시스템트레이딩 매수매도 수수료도 감안해서 계산 가능한가요?
------------------
Input : 투자금액(10000000),Period(20), MultiD(2), N(1),시작일(20190503),시작시간(090000),청산시간(151500);
Input : loss(5);
var : e(0),x(0),count(0),Tcond(false),BBup(0),BBdn(0);
var : HH(0),Bxcond1(false),Bxcond2(false),Bxcond3(false);
var : LL(0),Sxcond1(false),Sxcond2(false),Sxcond3(false);
Array : VV[5](0),XX[5](0);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
vv[0] = floor((투자금액*0.1)/NextBarOpen);
vv[1] = floor((투자금액*0.2)/NextBarOpen);
vv[2] = floor((투자금액*0.3)/NextBarOpen);
vv[3] = floor((투자금액*0.4)/NextBarOpen);
if sdate >= 시작일 and stime >= 시작시간 Then
Tcond = true;
if bdate != bdate[1] Then
count = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
count = count+1;
if Tcond == true then
{
if (TotalTrades == 0 or MarketPosition == 0 and BarsSinceExit(1) > 2) then
{
if MarketPosition == 0 and count < N and CrossDown(c,bbdn) and C < DayClose(1) Then
{
buy("b1",atmarket,def,vv[MaxEntries]);
}
if MarketPosition == 0 and NextBarSdate != sdate and NextBarOpen <= C Then
{
buy("b11",atmarket,def,vv[MaxEntries]);
}
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
e = e +1;
if e == 1 then
XX[e] = CurrentContracts;
Else
XX[e] = CurrentContracts-CurrentContracts[1];
}
#두번째 매수
if MarketPosition == 1 and e == 1 and count < N and CrossDown(c,bbdn) and C < DayClose(1) Then
{
buy("b2",atmarket,def,vv[MaxEntries]);
}
#세번재매수
if MarketPosition == 1 and e == 2 and count < N and CrossDown(c,bbdn) and C < DayClose(1) Then
{
buy("b3",atmarket,def,vv[MaxEntries]);
}
#네번재매수
if MarketPosition == 1 and e == 3 and count < N and CrossDown(c,bbdn) and C < DayClose(1) Then
{
buy("b4",atmarket,def,vv[MaxEntries]);
}
HH = highest(H,BarsSinceEntry);
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx1" Then
Bxcond1 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx2" Then
Bxcond2 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx3" Then
Bxcond3 = true;
if Bxcond1 == false and HH >= EntryPrice*1.02 and HH < EntryPrice*1.05 Then
ExitLong("Bx1",AtStop,HH-(HH-EntryPrice)*0.1,"",Floor(MaxContracts*(1/5)),1);
if Bxcond2 == false and HH >= EntryPrice*1.06 and HH < EntryPrice*1.10 Then
ExitLong("Bx2",AtStop,HH-(HH-EntryPrice)*0.1,"",Floor(MaxContracts*(2/5)),1);
if Bxcond3 == false and HH >= EntryPrice*1.12 Then
ExitLong("Bx3",AtStop,HH-(HH-EntryPrice)*0.1);
if (stime >= 청산시간 and stime[1] < 청산시간) and C > AvgEntryPrice then
{
ExitLong("bx");
}
}}
2019-05-03
202
글번호 128372