커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6142
글번호 230811
답변완료
수식 부탁드립니다.
77566 추가 문의 드립니다.
1. 사진의 전환비율에의한 분홍점선과 하늘색점선의 중심값을 표시하고 싶어요(노랑색)
2. 현재 수식은 손절을 33pt 고정으로 되어있는데,
사진의 빨강색 네모 구간에서 처럼 33pt보다 분홍색점선이 먼저오면,
이평선 아래라 매수신호가 안 나오지만 손절만 되게 할 수 있나요?
3. 당일손절(60)도 추가해 주세요..
============================================================
Input:전환비율(5);
input : StartTime(090100),EndTime(055500),P(60);
Input :익절(21),손절(33),당일수익(40);
Var : N1(0),dayPl(0),Tcond(false),Xcond(false);
Var : j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분("");
var : TL1(0),Text1(0),ADXV1(0),tl2(0),tl3(0),tx2(0),tx3(0),t(0),Emav(0);
Array:고[10,4](0),저[10,4](0);
HH = H;
LL = L;
Emav = Ema(L,P);
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
고[1,3] = sDate;
고[1,4] = sTime;
저[1,1] = LL;
저[1,2] = 0;
저[1,3] = sDate;
저[1,4] = sTime;
}
If Index > 0 Then
{
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0;
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1] * (1 + (전환비율/100)) < HH and hiBar == 0;
Condition2 = 고[1,1] * (1 - (전환비율/100)) > LL and loBar == 0;
처리구분 = "";
If Condition1 and Condition2 Then // 고점과 저점 조건 동시 만족
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
T = 1;
If 최종꼭지점 == "저점" Then
{
TL_SetEnd(TL2,저[1,3],저[1,4],고[1,1]* (1 - (전환비율/100)) );
Text_SetLocation(TX2,저[1,3],저[1,4],고[1,1]* (1 - (전환비율/100)) );
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,RED);
TL2 = TL_New(고[1,3],고[1,4],고[1,1]*(1-(전환비율/100)) ,NextBarSdate,NextBarStime,고[1,1]*(1-(전환비율/100)) );
TL_SetColor(TL2,Cyan);
TL_SetStyle(TL2,3);
Tx2 = Text_New(NextBarSdate,NextBarStime,고[1,1]*(1-(전환비율/100)),NumToStr(고[1,1]*(1-(전환비율/100)),2));
Text_SetColor(Tx2,Cyan);
}
Else If 고[1,1] < HH[hiBar] Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
TL_SetBegin(TL2,고[1,3],고[1,4],고[1,1]* (1-(전환비율/100)) );
Text_SetString(TX2,NumToStr(고[1,1]*(1-(전환비율/100)),2));
}
최종꼭지점 = "고점";
}
If 처리구분 == "저점처리" Then
{
t = -1;
If 최종꼭지점 == "고점" Then
{
TL_SetEnd(TL3,고[1,3],고[1,4],저[1,1]* (1 + (전환비율/100)) );
Text_SetLocation(TX3,고[1,3],고[1,4],저[1,1]* (1 + (전환비율/100)) );
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,BLUE);
TL3 = TL_New(저[1,3],저[1,4],저[1,1]* (1 + (전환비율/100)) ,NextBarSdate,NextBarStime,저[1,1]* (1 + (전환비율/100)) );
TL_SetColor(TL3,Magenta);
TL_SetStyle(TL3,3);
TX3 = Text_New(NextBarSdate,NextBarStime,저[1,1]*(1+(전환비율/100)),NumToStr(저[1,1]*(1+(전환비율/100)),2));
Text_SetColor(TX3,Magenta);
}
Else If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
TL_SetBegin(TL3,저[1,3],저[1,4],저[1,1]* (1 + (전환비율/100)) );
Text_SetString(TX3,NumToStr(저[1,1]*(1+(전환비율/100)),2));
}
최종꼭지점 = "저점";
}
TL_SetEnd(TL2,NextBarSdate,NextBarStime,고[1,1]* (1 - (전환비율/100)) );
Text_SetLocation(TX2,NextBarSdate,NextBarStime,고[1,1]* (1 - (전환비율/100)) );
TL_SetEnd(TL3,NextBarSdate,NextBarStime,저[1,1]* (1 + (전환비율/100)) );
Text_SetLocation(TX3,NextBarSdate,NextBarStime,저[1,1]* (1 + (전환비율/100)) );
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
Xcond = false;
N1 = NetProfit;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dsp",1) == true) then
Xcond = true;
}
if Tcond == true and Xcond == false then
{
if MarketPosition >= 0 and T == 1 and L > 고[1,1]* (1 - (전환비율/100)) and C < Emav Then
Sell("s",AtStop,고[1,1]* (1 - (전환비율/100)));
if MarketPosition <= 0 and T == -1 and H < 저[1,1]* (1 + (전환비율/100)) and C > Emav Then
Buy("b",AtStop,저[1,1]* (1 + (전환비율/100)));
}
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
}
SetStopProfittarget(익절,PointStop);
SetStopLoss(손절,PointStop);
2022-06-11
1257
글번호 159772
답변완료
수식문의
그림과 같은 라인을 설정하고자 합니다
KP200 선물 연결 챠트에 옵션 행사가 2.5 point차이의 라인과 1.25 point 차이의
행사가 변경 라인을 그리고 싶습니다
수식을 부탁 드립니다
2022-06-12
1339
글번호 159771
답변완료
수식 부탁 드립니다!
[매수조건 : 1) and 2)]
1) 3분봉 기준 5mav가 10mav 이상
2) 1분봉 기준 종가가 60mav 이상
[매수청산] : 상기 1), 2) 조건 중 하나 이상 불만족시
[매도조건 : 1) and 2)]
1) 3분봉 기준 5mav가 10mav 이하
2) 1분봉 기준 종가가 60mav 이하
[매도청산] : 상기 1), 2) 조건 중 하나 이상 불만족시
2022-06-10
1409
글번호 159766
답변완료
PositionProfit
안녕하세요~~
3년 기간으로 시스템시뮬레이션중입니다.
1. PositionProfit(1)사용시 리턴값은 매일 장시작시 초기화 되나요?
2. 모든 포지션함수 및 전략성과함수는 매일 장시작시 초기화 되나요?
2022-06-10
1251
글번호 159765
답변완료
부탁 드립니다
var : t(0),s(0);
var1 = ma(C,5);
Var2 = ma(c,20);
Var3 = ma(C,35);
if var1 > Var2 and Var2 >= var3 Then
{
if C >= O*1.04 Then
{
t = 1;
s = 0;
}
if t == 1 and CrossDown(c,var1) Then
s = s+1;
if s >= 2 and C > O and C >= O[1] Then
Find(1);
}
Else
{
t = 0;
s = 0;
}
77603 번에 문의 드렸는데요.
여기서
이평 조건만 삭제 좀 부탁 드립니다.
2022-06-10
1180
글번호 159758
답변완료
수식 추가 부탁드립니다.
안녕하십니까
작성하여 주신 아래 수식 매수조건 추가 부탁드립니다.
var : T(0), mav(0);
var1 = ma(c,5);
Var2 = ma(v,5);
Var3 = ma(v,20);
mav = ma(C,60);
if Bdate != Bdate[1] or TotalTrades > TotalTrades[1] Then
{
T = 0;
}
if MarketPosition == 0 Then
{
if var1 < var1[1] Then
T = 1;
if T == 1 and
C > DayOpen and
mav > mav[1] and
var1 >= var1[1]*1.0002 and
var2 >= var3*1.77 and
C <= DayClose(1)*1.20 and
C >= DayClose(1)*0.80 Then
{
T = 2;
Buy("b");
}
}
#if MarketPosition == 1 Then
#{
# if var1 < var1[1] Then
# ExitLong();
#}
SetStopProfittarget(4,PercentStop);
SetStopLoss(3,PercentStop);
SetStopEndofday(151500);
현재조건
# 1. 개장 후 5일 가격 이평선 하락
# 1번 조건 만족 후
# 2. 5일 가격이평선 직전보다 n%이상 상승 AND
# 3. 5일 거래량이평 수치가 20일 거래량 이평 수치보다 n% 이상 수치가 높아질때 and
4. 일봉 양봉 and
5. 20일 이평 상승
#1번 조건이 우선 만족된 후에 2~5번 조건이 만족 될때 매수
추가요청
위 조건이 만족되어 매수 신호가 발생한 시점에 20일 이격도 수치를 확인하여, 105보다 작으면 바로 매수
105이상이면 이격도 100이하로 떨어질 때 매수
(위 수식은 1분봉에 적용)
잘부탁드립니다.
감사합니다.
2022-06-10
1269
글번호 159754
답변완료
수식 문의
아래 수식은, 당일 시초가 부터 뽑은 평균가격을
이평선으로 표현하고, 그 이평선에 밴드를 입힌 지표 입니다.
아래 수식을 24시간 열리는 해외시장에 맞게
당일 시초가~종가 대신, 임의로 입력한
시작 시간 ~ 종료시간 까지로 수정하고싶습니다.
부탁드리겠습니다.
감사합니다.
input : period(20),Dv(2);
var: sumC(0),Cma(0),CBBUp(0),CBBDn(0),Cstd(0);
var: Sumi(0);
if date != date[1] then{
sumC = 0;
Sumi = 0;
}
sumC = sumC+c;
Sumi = sumi+1;
Cma = sumC/Sumi;
Cstd = std(Cma, Sumi);
CBBUp = Cma + (Dv* Cstd);
CBBDn = Cma - (Dv* Cstd);
plot1(CBBup,"CBBup");
plot2(CBBdn,"CBBdn");
plot3(Cma,"Cma");
2022-06-10
1174
글번호 159753
배움이 님에 의해서 삭제되었습니다.
2022-06-10
84
글번호 159752
답변완료
수식 부탁드립니다.
1. 매수진입조건
- 1봉전, 2봉전, 3봉전에는 종가가 볼린저밴드 중심선 아래에 있다가,
- 당일 종가가 볼린저밴드 중심선 돌파 양봉 발생시
4계약 진입
1.1 청산조건
- 당일이나 1봉전 고가가 볼린저밴드 상단 돌파후, 당일 종가가
볼린저밴드 안으로 들어오면 1계약 청산
- 다시 상승하여 1봉전 고가나 당일 고가가 볼린저밴드 상단 돌파후 당일 볼밴 안으로
들어오면 2계약 청산
- 나머지 1계약은 최근 고가대비 -7% 하락시 청산
1.2 손절조건: 진입후 -10% 하락시 모두 청산,
1.3 손절조건 두번쨰는, 종가가 볼린저밴드 중심선 이탈시 모두 청산 후 매도 4계약 진입
2. 매도진입조건
- 1봉전, 2봉전, 3봉전에는 종가가 볼린저밴드 중심선 위에 있다가,
- 당일 종가가 볼린저밴드 중심선 이탈, 음봉발생시
4계약 진입
2.1 청산조건
- 당일이나 1봉전 저가가 볼린저밴드 하단 이탈후, 당일 종가가
볼린저밴드 안으로 들어오면 1게약 청산
- 다시 하락하여 1봉전 저가나 당일 저가가 볼린저밴드 하단 이탈후 당일 볼밴 안으로
들어오면 2계약 청산
- 나머지 1계약은 최근 저가대비 +7% 상승시 청산
2.2 손절조건: 진입후 +10% 상승시 모두 청산,
2.3 손절조건 두번째는, 종가가 볼린저밴드 중심선 돌파시 모두 청산 후 매수4계약 진입
2022-06-10
1368
글번호 159751