커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7523
글번호 230811
답변완료
문의 드립니다.
안녕하세요?
아래는 진입식 입니다.
청산후 같은 방향으로 재진입 금지식 부탁 드립니다.
if marketposition() == 0 then{
If value1 == 1 and value2 == 1 and value3 == 1 and value4 == 1 and value5 == 1 and
dis6[10]<100 and C>O and stime < 145000 Then
buy("매수8",AtLimit,C-pricescale*2);
}
감사합니다.
2014-01-26
143
글번호 71877
혼자뜨는별 님에 의해서 삭제되었습니다.
2014-01-25
26
글번호 71876
답변완료
문의드립니다
수고하십니다
당일거래(10시 시작) 및 당일청산으로 하고 싶고
1. 매수진입은 볼린저 밴드폭이 얇을때 진입하지 말고
과거 10개봉의 밴드폭의 평균값보다 2배 커지면서
현재가가 상단을 터치하면서
ADX 가 상승일때 진입하고
매수 청산은 ADX 가 하락할때 청산하도록 식을 부탁드립니다.
위와 같이 식을 부탁드립니다..
항상 수고에 감사합니다..^^
2014-01-27
127
글번호 71875
답변완료
꺼꾸로 해보고싶은데요
안녕하세요
예스스탁 운영자님 테스트중 마이너스 -105 pt 네요
아래식 에서 모든 시스템 전체를 꺼꾸로 작성하려는데요
제가 실력이 안되어 부탁드립니다 수정은 어떻게하면 되나요? 감사드립니다
input : N(5);
var : unit(0);
var : entry(0),sumPL(0),Win(0),unitPL(0),cnt(0),count(0);
var : entry1(0),sumPL1(0),Win1(0),unitPL1(0);
var : sumdayentry(0),sumdayUnitPL(0),sumdaySumPL(0),sumdayWin(0);
Array : dayentry[30](0),daysumPL[30](0),dayWin[30](0),dayunitPL[30](0);
if ema(c,20) > ema(c,60) then
unit=2 ;
else if ema(c,50) > ema(c,20) and ema(C,20) >ema(c,60) then
unit=3 ;
else
unit=1;
if crossup(c,ema(c,20)) then
buy("b1",atmarket,def,unit);
if crossdown(c,ema(c,20)) then
sell("s1",atmarket,def,unit);
if marketposition == 1 then
exitlong("b1x",atstop,Highest(H,barsSinceEntry+1)-atr(20)*2);
if marketposition == -1 then
exitshort("s1x",atstop,lowest(L,barsSinceEntry+1)+atr(20)*2);
if date > date[1]+30 Then{
entry = 0;
UnitPL = 0;
SumPL = 0;
Win = 0;
}
if BarsSinceExit(1) == 1 Then{
entry = entry+1;
unitPL = unitPL + (PositionProfit(1)/CurrentContracts[BarsSinceEntry(1)]);
sumPL = sumPL + PositionProfit(1);
if PositionProfit(1) > 0 Then
Win = win+1;
}
if date != date[1] Then{
entry1 = entry[1];
UnitPL1 = UnitPL[1];
SumPL1 = SumPL[1];
Win1 = Win[1];
}
if date != date[1] Then{
dayentry[0] = 0;
dayUnitPL[0] = 0;
daySumPL[0] = 0;
dayWin[0] = 0;
for count = 1 to 29{
dayentry[count] = dayentry[count-1][1];
dayUnitPL[count] = dayUnitPL[count-1][1];
daySumPL[count] = daySumPL[count-1][1];
dayWin[count] = dayWin[count-1][1];
}
}
if MarketPosition != MarketPosition[1] and MarketPosition[1] != 0 Then{
dayentry[0] = dayentry[0]+1;
dayunitPL[0] = dayunitPL[0] + (PositionProfit(1)/CurrentContracts[BarsSinceEntry(1)]);
daysumPL[0] = daysumPL[0] + PositionProfit(1);
if PositionProfit(1) > 0 Then
dayWin[0] = daywin[0]+1;
}
sumdayentry = 0;
sumdayUnitPL = 0;
sumdaySumPL = 0;
sumdayWin = 0;
for cnt = 1 to N {
sumdayentry = sumdayentry+dayentry[cnt];
sumdayUnitPL = sumdayUnitPL+dayUnitPl[cnt];
sumdaySumPL = sumdaySumPL+daysumPL[cnt];
sumdayWin = sumdayWin+Daywin[cnt];
}
MessageLog("월거래수 %.f 1당누적손익 %.2f 전체손익 %.2f 수익거래횟수 %.2f 승률 %.f",entry1,unitPL1,sumPL1,Win1,Win1/entry1*100);
MessageLog("N일거래수 %.f 1당누적손익 %.2f 전체손익 %.2f 수익거래횟수 %.2f 승률 %.f",sumdayentry,sumdayunitPL,sumdaysumPL,sumdayWin,sumdayWin/sumdayentry*100);
2014-01-25
209
글번호 71874
답변완료
지표 에서 시스템으로
안녕하세요
운영자님 제가 실력이안되어 미안해요
지표식 에서 시스템식으로 서로 교차 식 부탁합니다
input : Len(10);
var1 = (high+low)/2;
var2 = highest(var1,Len);
var3 = lowest(var1,Len);
if var2-var3 == 0 Then
var2 = var3+0.001;
if CurrentBar >= 1 Then{
var4 = 0.5*2*((var1-var3)/(var2-var3)-0.5)+0.5*var4[1];
if var4 > 0.999 Then
var4 = 0.999;
if var4 < -0.999 Then
var4 = -0.999;
var5 = 0.5*log((1+var4)/(1-var4))+0.5*var5[1];
}
plot1(var5,"fisher");
plot2(var5[1],"signal");
2014-01-25
163
글번호 71873
답변완료
검색식 부탁합니다
DMI지표.
DMI가 DIPLUS를 상향돌파.
ADX지표.
ADX > -DI. +DI > -DI. +DI > ADX > -DI. ADX우상향.
Chaikin,s Oscillator 이 0선이상.
9일간 평균 거래량이 15만주이상.
9일간 평균거래대금이 15억원이상.
오늘의 봉이 양봉.
2014-01-25
141
글번호 71872
답변완료
질문있습니다.
atstp은 지정된 가격이하이면 매도하라는 의미입니다.
a가 100이라면 b가 2라면
100터치시 진입하게 되고
102에 청산합니다. 이때 102라는 가격은 100보다 크므로 바로 또
매도진입하게 됩니다.
if L > a then
sell ("매도1",ATSTOP,a);
if H < a then
sell ("매도2",ATSTOP,a);
setStopProfitTarget (b,Pointstop);
와 같이 작성하여
진입은 가격이 a라는 가격이상에 있다가 밑으로 터치하거나
가격이 a보다 아래에 있다가 위로 터치하는 경우만 발생하게 작성하셔야 합니다.
아래로 터치할때만 염두에 두시면 매도2는 삭제하시면 됩니다.
----------------------------------------
위와 같은 글을 발견하였는데요, 시초가+0.5과 시초가-0.5 이렇게 두개를 기준으로 잡아서 그 사이에 있을 때는 샀다 팔았다 하면서 시초가에서 익절하고 그 사이를 벗어나서 위로가면 매수진입 아래로 가면 매도진입하는 하나의 식을 만들고 싶어서 아래와 만들어봤는데 잘 안되는군요. 수정 좀 부틱드립니다.
input : b(0);
if L > DayOpen+0.5 then
sell ("매도1",ATSTOP,DayOpen+0.5);
if H < DayOpen+0.5 then
sell ("매도2",ATSTOP,DayOpen+0.5);
if H > dayOpen - 0.5 then
Buy ("매수1",ATSTOP,dayOpen - 0.5);
if L < dayOpen - 0.5 then
Buy ("매수2",ATSTOP,dayOpen - 0.5);
if MarketPosition ==1 Then {
exitlong("매수익절",Atlimit,DayOpen,"매수2",1,1);
}
if MarketPosition ==-1 Then {
exitshort("매도익절",Atlimit, DayOpen,"매도1",1,1);
}
SetStopProfitTarget(b,Pointstop);
SetStopEndofDay(150400);
친절한 답변에 미리 감사드립니다.
2014-01-26
122
글번호 71871
러블리 님에 의해서 삭제되었습니다.
2014-01-25
12
글번호 71870
답변완료
문의드립니다
아래식에서 추가하고 싶은부분이있어서 문의드립니다
if L > highest(H,5)[1] Then
거래량을 알고 싶은데요
highest(H,5)[1] 에서부터 현재봉 까지 거래수량을 알고 싶습니다
2014-01-25
128
글번호 71869