커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7169
글번호 230811
답변완료
수정 부탁드립니다.
안녕하세요? 답변해주신 아래의 내용에서 수정할 부분이 있어 도움요청드립다.
1. #포지션이 변경되어 새로운 진입포지션 발생시마다 1씩 증가 이 부분을 삭제하고 싶습니다.
2. 교차매매없이 정해진 익절손절에만 청산후, 새로운신호에 진입하고 싶습니다.
1씩증가 저부분을 삭제도 해보았지만 잘 안되네요.
수정부탁드립니다.
감사합니다.
input : 매수음봉틱수(5),매수양봉틱수(5);
input : 매도양봉틱수(5),매도음봉틱수(5);
input : 진입횟수(5);
input : 익절틱수(50),손절틱수(50);
var : entry(0);
#영업일 변경
if bdate != bdate[1] Then
entry = 0;
#포지션이 변경되어 새로운 진입포지션 발생시마다 1씩 증가
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if entry < 진입횟수 and #진입횟수가 지정한 값 이하
MarketPosition >= 0 and #매수나 무포지션 상태
C[1] >= O[1]+매도양봉틱수*PriceScale and #1봉전종가가 1봉전시가+매도양봉틱수 이상
C[0] <= O[0]-매도음봉틱수*PriceScale Then #현재봉 종가가 1봉전시가-매도음봉틱수 이하
sell("s");
if entry < 진입횟수 and #진입횟수가 지정한 값 이하
MarketPosition <= 0 and #매도나 무포지션 상태
C[1] <= O[1]-매수음봉틱수*PriceScale and #1봉전종가가 1봉전시가-매수음봉틱수 이하
C[0] >= O[0]+매수양봉틱수*PriceScale Then #현재봉 종가가 1봉전시가+매수양봉틱수 이상
buy("b");
#목표수익 설정
SetStopProfittarget(PriceScale*익절틱수,PointStop);
#손절매 설정
SetStopLoss(PriceScale*손절틱수,PointStop);
2020-02-27
422
글번호 136417
답변완료
부탁좀 드립니다
수고가 많으십니다
신호발생 캔들에 종가라인이 우측으로 그려지면서 수치를 나타내는 수식을 기존의 수식에 추가하고자 합니다.
다음신호가 나올때 까지 유지되었으면 합니다.
2020-02-27
419
글번호 136404
답변완료
강조
var : month(0);
month = int(date/100)-int(date/10000)*100;
if month != month[1] and month == 1 Then
PlotPaintBar(o,c,"강조",WHITE);
2017년 부터 년초가 제공되않아요
2020-02-27
455
글번호 136403
답변완료
강조
힝 매주 목요일 금요일아니고
3월 6월 9월 12월
두쨰주 목요일
셋쨰주 금요일 안되냐용1
1
var : count(0);
var : month(0);
month = int(date/100)-int(date/10000)*100;
if month != month[1] Then
{
count = 0;
if month%3 == 0 Then
Condition1 = true;
Else
Condition1 = false;
}
if bdate != bdate[1] and DayOfWeek(bdate) == 4 Then
{
count = count+1;
PlotPaintBar(H,L,"강조",MAGENTA);
}
2
var : count(0);
var : month(0);
month = int(date/100)-int(date/10000)*100;
if month != month[1] Then
{
count = 0;
if month%3 == 0 Then
Condition1 = true;
Else
Condition1 = false;
}
if bdate != bdate[1] and DayOfWeek(bdate) == 5 Then
{
count = count+1;
PlotPaintBar(H,L,"강조",MAGENTA);
}
2020-02-27
572
글번호 136402
답변완료
안녕하세요
//Variable:
//cp = 2 (default)
if high[cp] >= highest[2*cp+1](high) then
LH = 1
else
LH=0
endif
if low[cp] <= lowest[2*cp+1](low) then
LL= -1
else
LL=0
endif
if LH=1 then
hil = high[cp]
endif
if LL = -1 then
LOL=low[cp]
endif
return lol coloured(255,0,0) as "LF",hil coloured(0,255,0) as "HF"
수식 변환 문의드립니다. 감사합니다
2020-02-27
537
글번호 136398
답변완료
수식문의드립니다
crossup(rsi(perood1),40)
period1 10
============================
종목검색이 가능하게 수식문의드립니다.
2020-02-27
519
글번호 136392
답변완료
피라미딩 분할 익절
input : up익절1(150),up익절2(200);
if MarketPosition == 1 and EntryPrice+PriceScale*up익절1 Then
exitlong("bx1",AtLimit,def,"",Floor(MaxContracts*0.50),1);
if MarketPosition == 1 and EntryPrice+PriceScale*up익절2 Then
exitlong("bx2",AtLimit);
input : dn익절1(150),dn익절2(200);
if MarketPosition == -1 and EntryPrice-pricescale*dn익절1 Then
exitshort("sx1",AtLimit,def,"",Floor(MaxContracts*0.50),1);
if MarketPosition == -1 and EntryPrice-pricescale*dn익절2 Then
exitshort("sx2",AtLimit);
1.피라미딩 2개 되었을 때 분할익절 수식입니다. 맞는지요?
2.맥스계약비율을 맥스계약수량으로 변경하는 수식도 요청합니다.
2020-02-27
547
글번호 136391
답변완료
봉완성 전에 exit 할수 있을까요?
한시간 봉에서 30분쯤에
시장가격으로 exit 할수 있을까요
매도 함수 메뉴얼을 읽어 보고 아래 같이 해봐도
Sell("") 이후에 아래 두개를 해봐도 모두 다음 봉에서 exit이 되더라구요.
전 전 하이 보다 가격이 올라가버리면 바로 exit 하고 싶은데요.
exitShort("" , AtStop, High[1] );
exitShort("")
조언 부탁 드립니다.
늘 감사합니다!!
2020-02-27
526
글번호 136390
답변완료
수식 부탁드립니다
첫봉 시가기준으로 첫봉부터 진입하여
첫봉 c>o면 매수, 첫봉 c<o면 매도
이후는 첫봉시가기준 cross업 다운 수식입니다
1번 2번 사진에서 보시는거와 같이 잘되다가
중간중간 3번 그림처럼
첫봉에 진입을 안하네요
나스닥 1분봉입니다
수정 부탁드려요~
//써머타임 변수
var : Summer(False),Year(0);
var : V1(0),V2(0),V3(0),V4(0);
var: Tcond(False);
//써머타임 변수
var: fo(0),fc(0);
// 써머타임
if sdate != sdate[1] Then
{
Year = Floor(sdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜
Summer = (sdate > (10000 * Year) + (100 * 3) + v2) And (sdate < (10000 * Year) + (100 * 11) + v4);
}
// 써머타임
// 써머타임 3월~11월
if Summer == true then
{
if sdate == 20190419 then //써머 휴일청산
{
if (sdate != sdate[1] and stime >= 054500) or
(sdate == sdate[1] and stime >= 054500 and stime[1] < 054500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("써머휴일매수청");
if MarketPosition == -1 Then
ExitShort("써머휴일매도청");
}
}
else if sdate == 20190528 or sdate == 20190704 or sdate == 20190705 or sdate == 20190903 then //써머 조기장
{
if (sdate != sdate[1] and stime >= 014500) or
(sdate == sdate[1] and stime >= 014500 and stime[1] < 014500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("써머조기장매수청");
if MarketPosition == -1 Then
ExitShort("써머조기장매도청");
}
}
else
{
if (sdate != sdate[1] and stime >= 054500 ) or
(sdate == sdate[1] and stime >= 054500 and stime[1] < 054500 ) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("써머매수청");
if MarketPosition == -1 Then
ExitShort("써머매도청");
}
}
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and stime >= 070000 and stime[1] < 070000) then
{
fo=O; //당일첫봉의시가
fc=C; //당일첫봉의종가
Tcond = true;
}
}
Else //11월~3월까지
{
if sdate == 20190101 or sdate == 20200101 then //노써머 휴일청산
{
if (sdate != sdate[1] and stime >= 064500) or
(sdate == sdate[1] and stime >= 064500 and stime[1] < 064500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("노써머휴일매수청");
if MarketPosition == -1 Then
ExitShort("노써머휴일매도청");
}
}
else if sdate == 20190122 or sdate == 20190219 or sdate == 20191129 or sdate == 20191130 or sdate == 20191225
or sdate == 20200121 or sdate == 20200218 then //노써머 조기장
{
if (sdate != sdate[1] and stime >= 024500) or
(sdate == sdate[1] and stime >= 024500 and stime[1] < 024500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("노써머조기장매수청");
if MarketPosition == -1 Then
ExitShort("노써머조기장매도청");
}
}
else
{
if (sdate != sdate[1] and stime >= 064500 ) or
(sdate == sdate[1] and stime >= 064500 and stime[1] < 064500 ) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("노써머매수청");
if MarketPosition == -1 Then
ExitShort("노써머매도청");
}
}
if (sdate != sdate[1] and stime >= 080000) or
(sdate == sdate[1] and stime >= 080000 and stime[1] < 080000) then
{
fo=O; //당일첫봉의시가
fc=C; //당일첫봉의종가
Tcond = true;
}
}
// 써머타임
//--------- 진입 로직 ---------//
If Tcond == true Then
{
if CrossUp(c,fo) Then
buy();
if Crossdown(c,fo) Then
sell();
}
2020-02-27
522
글번호 136389