커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4734
글번호 230811
답변완료
부탁 드립니다.
항상 도움 주셔서 깊이 감사 드립니다.
질문1)
경보창을 그림과 같이 위로 올릴수 있는지요?
질문2)
경보창이 뜨고 나서
일정시간(예:1초)후에 사라지고 난뒤
다시 뜰수 있는지요?
미리 감사드리오며
노고에 경배 올립니다.
input : P1(8),P2(20);
var1 = ma(c,P1);
var2 = ma(c,P2);
if var1 > var2 Then{
PlaySound("C:₩eFriend Global YesTrader₩efriendglobalyestrader₩data₩Sound₩mesu.wav");
ALERT("골든_매수 %.2F",C);
}
if var1 < var2 Then{
PlaySound( "C:₩eFriend Global YesTrader₩efriendglobalyestrader₩data₩Sound₩medo.wav");
ALERT("데드_매도 %.2F",C);
}
plot1(var1,"p1_이평");
plot2(var2,"p2_이평");
2015-11-05
213
글번호 92093
답변완료
문의드립니다
N분뒤의 (데이타1 종가 - 데이타2 종가 ) 값과
현재의 (데이타1 종가 - 데이타2 종가 ) 값의 차이를 지표를 나타내고 싶습니다
2015-11-05
150
글번호 92092
답변완료
문의드립니다
챠트에서 추세선을 그어서
그선에서 매수 매도하는 시스템식을
만들고 싶습니다
늘 고맙습니다
2015-11-05
141
글번호 92091
답변완료
시스템식 부탁드립니다.
안녕하세요..
일봉참조 3분봉매매를 하다보니 장종료시간대에서는 매수,매도가 잘 이루어지지 않는 경우가 가끔 발생해서 이시간대에서는 신호(매수,매도)가 발생하지 않도록 하고 싶습니다.
다음 시스템식에서 14:42~15:03 이시간에서는 매매(매수,매도)가 이루어지지 않도록
시스템식 부탁드립니다.
항상 답변에 감사드립니다.
즐거운 하루되세요. 감사합니다.
-------------------------------------------------------------------------------
input : 전략식시작일자(20151028), 전략식시작시간(090000), 전략총매수금액(5000);
input : 전략식종료일자(20151231);
input : 갭하락(5), 시장보정계수(5),일봉이평기간(120),이평보정계수(5);
input : P(10), 매수위치1차(10), 매수위치2차(7), 매수위치3차(14);
input : 매수위치보정(1);
input : 매도위치1차(7), 매도위치2차(14);
input : 매수비중1차(30), 매수비중2차(35), 매수비중3차(35);
input : 매도비중1차(50), 매도비중2차(50);
input : 전략식진입횟수(100);
input : 타점보유일수(5);
var : sum(0),mav(0),cnt(0),eup(0),edn(0),Didx(0),LatestEntryDidx(0),Ecnt(0);
var : TimeCond(false),Xcond1(false),Xcond2(false),Loss(0),LatestEntrylow(0);
var : Period(0),매수1차(0);
var : cum1(0),cum2(0),ma1(0),ma2(0);
# 일자수 계산
if date != date[1] Then
Didx = Didx+1;
# 일봉 120이평 계산(전일기준,전전일기준)
cum1 = 0;
cum2 = 0;
for cnt = 1 to 일봉이평기간{
cum1 = cum1+DayClose(cnt);
cum2 = cum2+DayClose(cnt+1);
}
# 전일기준 일봉 120일이평
ma1 = cum1/일봉이평기간;
# 전전일기준 일봉 120일이평
ma2 = cum2/일봉이평기간;
#기본값은 기간은 P, %는 매수위치1차
Period = P;
매수1차 = 매수위치1차;
#갭하락이면
#기간은 기존Period값+시장보정계수
#%는 기존 매수1차값에 + 시장보정계수
if dayopen < DayClose(1)*(1-갭하락/100) Then{
Period = Period + 시장보정계수;
매수1차 = 매수1차 + 시장보정계수;
}
#이평하락이면
#기간은 기존Period값+이평보정계수
#%는 기존 매수1차값에 + 이평보정계수
if ma1 < ma2 and DayClose(일봉이평기간+1) > 0 Then{
Period = Period + 이평보정계수;
매수1차 = 매수1차 + 이평보정계수;
}
#당일포함 일봉 Period개의 종가를 누적
sum = 0;
for cnt = 0 to Period-1{
sum = sum+DayClose(cnt);
}
#누적값을 Period로 나누어 평균값 산출
mav = sum/Period;
#상단계산
Eup = mav+mav*(매수1차/100);
#하단계산
Edn = mav-mav*(매수1차/100);
#지정일 지정시간이 되면 TimeCond는 True(그전에는 false)
if sdate == 전략식시작일자 and (stime == 전략식시작시간 or (stime > 전략식시작시간 and stime[1] < 전략식시작시간 )) then
TimeCond = true;
if sdate > 전략식종료일자 Then
TimeCond = false;
#TimeCond가 True가 된 후
if TimeCond == true then{
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "1차매수" Then
Ecnt = Ecnt+1;
#무포지션 상태에서 매수위치1차에 도달하면 매수
if MarketPosition == 0 and Ecnt < 전략식진입횟수 Then
buy("1차매수",atlimit,Edn*(1+매수위치보정/100),Floor((전략총매수금액*10000/c)*(매수비중1차/100)));
#첫매수이후
if MarketPosition == 1 Then{
#최근 진입시점의 일자수 저장
if CurrentContracts > CurrentContracts[1] Then{
LatestEntryDidx = Didx;
LatestEntrylow = L;
}
#1차매수 발생 후 매수위치2차에 도달하면 매수
if MaxEntries == 1 Then
buy("2차매수",atlimit,Edn[BarsSinceEntry]*(1-매수위치2차/100),Floor((전략총매수금액*10000/c)*(매수비중2차/100)));
#1차매수 발생 후 매수위치3차에 도달하면 매수
if MaxEntries == 2 Then
buy("3차매수",atlimit,Edn[BarsSinceEntry]*(1-매수위치3차/100),Floor((전략총매수금액*10000/c)*(매수비중3차/100)));
#1차매도가 한번 발생하면 더이상 발생못하도록 Xcond1은 true
if LatestExitName(0) == "1차매도" then
Xcond1 = true;
#2차매도가 한번 발생하면 더이상 발생못하도록 Xcond2는 true
if LatestExitName(0) == "2차매도" then
Xcond2 = true;
#Xcond1이 false일때
#진입이후 최저가에서 매도위치1차 만큼 상승하면 일부 청산
if Xcond1 == false Then
exitlong("1차매도",Atlimit,lowest(L,BarsSinceEntry)*(1+매도위치1차/100),"",Floor(MaxContracts*(매도비중1차/100)),1);
#Xcond2가 false일
#진입이후 최저가에서 매도위치2차 만큼 상승하면 전량청산
if Xcond2 == false Then
exitlong("2차매도",Atlimit,lowest(L,BarsSinceEntry)*(1+매도위치2차/100));
#최근 진입후 3일이상 경과(현재 일자수가 최근진입시점의 일자수보다 3이상증가)
if Didx >= LatestEntryDidx+타점보유일수 and Xcond1 == false and CurrentContracts == CurrentContracts[1] Then{
#최근 진입이후 3일되었을때의 최근진입일 포함3일 최저가 계산
if date != date[1] and Didx == LatestEntryDidx[BarsSinceEntry]+3 Then{
Loss = daylow(1);
for cnt = 1 to 타점보유일수 {
if daylow(cnt) < Loss Then
Loss = daylow(cnt);
}
}
#Loss값 이하로 가격하락하면 전량 청산
exitlong("손절",AtStop,Loss);
}
#최종 매수일 포함 3일경과되면 다음날 시가에 매도
if Didx == LatestEntryDidx+(타점보유일수-1) and stime == 150000 Then{
exitlong("익절2",AtMarket);
}
# 1차매도가 발생한 상황
# 가장 최근 진입일의 당일최저가보다 낮은 시세 발생하면 전량청산
# if L < LatestEntrylow and Xcond1 == false Then
# LatestEntrylow = L;
# if Xcond1 == true and CurrentContracts == CurrentContracts[1] Then{
# exitlong("익절1",AtStop,LatestEntrylow);
# }
}
else{ #매수포지션이 아니면 false로 초기화
Xcond1 = false;
Xcond2 = false;
}
}
2015-11-05
149
글번호 92090
답변완료
44817 답변에 대한 질문에 답변 부탁드립니다.
안녕하세요.
답변 주신대로 적용해 보았는데, 아무 것도 보이지를 않습니다.
답변 부탁 드립니다.
2015-11-05
150
글번호 92089
답변완료
해외 선물 당일 청산 문의
Input : 시작시간(180000), 종료시간(053000);
...
If (sTime >= 시작시간) Or (sTime <= 종료시간) Then
{
// 청산
...
// 진입
...
// 종료 시간까지 청산이 안되었을 경우 청산함
SetStopEndofday(종료시간);
}
시작과 종료시간을 유동적으로 가져 갈려고 입력을 받아서 쓰고 있습니다.
해외 선물 매매시 종료 시간까지 포지션을 가지고 있으면
청산을 하려고 합니다.
저렇게 하면 안되는데 다른 방법이 있나요?
2015-11-05
147
글번호 92088
답변완료
문의드립니다
분봉에서 특정지수를 입력해서
아래서 위로 통과하면 매수
위에서 아래로 통과하면 매도
하는 시스템식 부탁드립니다
특정지수는 변수로 변경가능하도록 부탁드립니다
챠트에 수평으로 표시 가능하면 좋겠습니다
2015-11-05
166
글번호 92083
회원 님에 의해서 삭제되었습니다.
2015-11-05
15
글번호 92082
2wnwn 님에 의해서 삭제되었습니다.
2015-11-05
4
글번호 92081