커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5545
글번호 230811
답변완료
문의드립니다.
도움주시는 덕분에 도전 하고 있습니다. 매번 감사합니다.
1. 기타
ATM일 때만 매수
ATM + 1 호가(행사가 더 위에 있는 것) 일 때만 매수
이런 것 예스트레이너 내에서 수식으로 짤 수 있는 건가요?
2.
아래 수식 보면 절대 10시 이하에 진입할 수 없게 되 있거든요. 다른 날도 보면 10시 이후에 진입하구요. 그런데 신기하게 P 1905 285.0 4월 26일 차트를 보면 첫봉부터 진입합니다. 딴 곳은 안 그런데 저기만 그러니 영문을 모르겠네요 .
input: ATR기간(14),ATR곱셈(2),n(20),당일진입횟수(1);
var : 매수단위(0),투입금액(0),ATRV(0),count(0),HH(0);
ATRV = atr(ATR기간);
매수단위 = 1;
#진입회수제한
Count = 0 ;
for Value1 = 0 to 10
{
if EntryDate( Value1 ) == sdate then
Count = Count + 1;
}
#당일첫번째 진입(기존조건으로 진입)
if MarketPosition <= 0 and Count == 0 and stime > 100000 and C < 4 then
buy("b1",AtStop,dayopen + n * PriceScale, 매수단위);
#당일 두번째 진입부터 당일 N번째 진입까지
#직전 매수거래의 최고가 아래에서 가격이 상승해 최고가 이상의 시세 발생시 매수진입
if MarketPosition <= 0 and Count >= 1 and Count < 당일진입횟수
and stime > 100000 and H < HH and PositionProfit(1) >= 0 then
buy("b2",AtStop, H + n * PriceScale, 매수단위);
if MarketPosition == 1 Then
{
//진입이후 최고가
HH = highest(H,BarsSinceEntry);
buy("bb",AtStop,LatestEntryPrice(0)+ATR곱셈*ATRV*2 ,매수단위);
ExitLong("bx2",AtStop,LatestEntryPrice(0)-ATR곱셈*ATRV );
}
3.
2번 수식이요. 제가 생각한 건 저 피라미딩을 쌓는 동안의 최고가(저기서는 bb4)를 n틱 이상 돌파할 때, 그리고 이전 피라미딩 손익이 수익일 때만 들어가려고 한 건데요. 진입횟수를 2로 해실행해보니 그림처럼 b2신호가 나와요.
#직전 매수거래의 최고가 아래에서 가격이 상승해 최고가 이상의 시세 발생시 매수진입
이 설명대로 전 피라미딩의 최고가를 돌파하면 b2신호가 나올 줄 알았는데 이해가 잘 안되는 곳에서 신호가 나왔습니다. 직전이 수익일 때만 돌아가는 건 잘 돌아갑니다. 이유가 뭔지 모르겠습니다.
2019-05-03
247
글번호 128355
답변완료
당일청산좀 추가부탁드립니다.
당일날 분할 매수한 종목들의 평단가가 + 이면 종가 청산하고 - 이면 그대로 유지하고 그 다음날까지 매수 계속 진행 하는 식을 추가하고 싶어요.
Input : 투자금액(10000000),Period(20), MultiD(2), N(1),시작일(20190503),시작시간(090000);
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);
}}
2019-05-03
225
글번호 128354
답변완료
부탁드립니다.
예를들면 1분봉 챠트에서 9번째 종가봉이 앞 전 2개봉을 합한 고가보다 높으면 빨강색, 저가보다 낮으면 파란색으로 계속하여 구현되고, 또 24번째 종가봉이 앞 전 2봉을 합한 고가보다 높으면 빨강색, 저가보다 낮으면 파란색으로 계속하여 다시 구현되고, 또 44번째 종가봉이 앞 전 2봉을 합한 고가보다 높으면 빨강색, 저가보다 낮으면 파란색으로 계속하여 다시 구현되고, 53번째 종가봉이 앞 전 2봉을 합한 고가보다 높으면 빨강색, 저가보다 낮으면 파란색으로 계속 구현할 수 있도록 해 주세요, 감사합니다.
2019-05-02
197
글번호 128353
답변완료
수식좀 부탁 드립니다.
* 많은 도움에 고맙습니다.
* 아래 수식 매매 수식으로 수정좀 부탁 드립니다.
상선(HighestSince(0)) 보다 5틱 빠지면 매도
하선(lowestSince(0)) 보다 5틱 오르면 매수
var : HighestSince(0),lowestSince(0);
var1 = trix(10);
var2 = ma((C+H+L)/3,5)+2*std((C+H+L)/3,5);
if crossup(var1,0) Then HighestSince = var2;
if HighestSince > 0 and var2 > HighestSince Then HighestSince = var2;
if CrossDown(var1,0) Then lowestSince = var2;
if lowestSince > 0 and var2 < lowestSince Then lowestSince = var2;
if HighestSince > 0 Then plot1(HighestSince);
if var2 > 0 then plot2(var2);
if lowestSince > 0 then plot3(lowestSince);
* 고맙습 습니다.
2019-05-03
211
글번호 128352
답변완료
함수요청
안녕하세요?
함수요청드립니다.
-종목: 해외선물 크루드 오일
- 적용주기: 1분봉
- 개장(써머타임 적용시 7시, 해지시 8시)후 9시(써머타임 해지시에는 10시)까지의 고점 저점을 잡아서
- 매수: 고점 돌파 완성되면 익봉 시가에 진입
- 매도: 저점 이탈 완성되면 익봉 시가에 진입
- 시간청산: 보유 포지션이 있으면 17시에 청산완료
- 매수와 매도로 이루어진 리버스 전략으로 당일 일중 거래를 하되 17시 이후에는 진입이 없습니다.
2019-05-02
189
글번호 128350
답변완료
수식확인 부탁드립니다
1. 시간필터 부탁드립니다
오전 9시 1분 시작 - 오후 3시 15분 종가 청산 수식 부탁 드립니다
(틱챠트에서 실행이 안됩니다 틱챠트에 실행될수 있는 방법 부탁 드립니다)
2. 예스트레이더에 사용할수 있도록 변경 부탁 드립니다.
Params : FastPeriod(12), SlowPeriod1(26), Signal(9), BaseLine(0);
Vars : diffCOND(False);
MACDV = MACD(C, FastPeriod, SlowPeriod);
MACDs = EMA(MACDV, Signal);
IF MACDs < MACDV And BaseLine < MACDV Then diffCOND = False
Else diffCOND = True;
2019-05-02
206
글번호 128348
답변완료
지표문의입니다.
매번 성실한 답변 감사드립니다.
1분봉기준으로 당일 첫봉에 vi가 발동되면 첫봉의 시작시간이 9시1분이 아니고 9시3분으로 나오는데 이와같은 경우 지표로 표시될수 있도록 지표식 부탁드립니다.
감사합니다.
2019-05-02
209
글번호 128344
답변완료
문의
항생10시 15분을 기준으로 저가에서 100틱 올라오면 100 이라는 글자 나오고 고가에서 100틱 내려가면 -100이라는 글자 나오게 부탁드립니다, 이렇게 해서 +- 300까지 글나오게 부탁드립니다
2019-05-02
184
글번호 128343
답변완료
61317 파동지표식 수정요청
안녕하세요 61317 에서 언급드린 파동수식에서 다음 요청사항이 가능한지 그리고 가능하다면 수식 부탁드립니다
이평선이 고점 또는 저점기준으로 그것을 시작점으로 발생되도록 가능한지요?
즉 예를 들어 고점발생후 그것을시작점으로 이평선 그려지고 또 저점이 발생되면 그것을 시작점으로 이평선이 그려질수있는 수식을 만들고 싶은데요
만약 이것이 어렵다면 고점기준으로 하락의 모습 저점기준으로 상승의 모습을 볼수있는 방법이 있을까요?
부탁드립니다
2019-05-02
217
글번호 128340