커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7441
글번호 230811
답변완료
추적매매와 별도목포가격
# 추적청산
input : AtrMult(12), AtrPeriod(14);
var : AtrVal(0), posHigh(0), posLow(0);
# ATR 추적청산
ATRVal = ATR(AtrPeriod) * AtrMult;
PosHigh = Highest(H,BarssinceEntry+1);
PosLow = Lowest(L,BarsSinceEntry+1);
If MarketPosition == 1 Then
sell("ATR1", AtStop, PosHigh - ATRVal);
If MarketPosition == -1 Then
buy("ATR2", AtStop, PosLow + ATRVal);
위수식후 최대수익대비하락이익실하면 다음추적신호안됨니다
나올수있게 수식부탁합니다.
예. 6p이후3p 하락하면 이익실현하고 다음추적신호가나오게 부탁합니다.
목포가수식을부탁합니다
추적에영향이받지않게 추적과별도 수식을부탁합니다
예 6p이후3p 하락하면 이익실현
2015-11-19
172
글번호 92582
답변완료
문의드립니다
1틱차트에서
1초단위로
틱과 틱사이의 시간차를 나타내고 싶습니다
2015-11-19
168
글번호 92576
답변완료
수식 요청 드립니다.
안녕하세요.
아래 기존 시스템에 추가하는 수식에서 첫진입후 수익이 발생할 경우에만 피라미딩 합산목표수익
(외부변수 +0.5PT) 조건만족시 모든 포지션 강제청산 당일 매매종료하는 수식 추가 요청 드립니다.
첫진입후 손실 발생시에는 당일손실제한 등 현재 시스템 유지 입니다.
제 실력이 부족해서 목표수익 청산은 되는데 피라미딩 등 추가진입이 되는 현상이 나타나네요.
감사합니다.
//*************************************************************
input : N(1),NN(2),당일손실(1.2),i증감(0.1),진입수량(1);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0);
var : Bxcond(false),SxCond(false);
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
v1 = 0;
}
dayPL = NP-PreNP;
BCount = 0 ;
SCount = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then
BCount = BCount + 1;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then
SCount = SCount + 1;
}
if Condition1 == false and TotalTrades > TotalTrades[1] Then{
Condition1 = true;
if PositionProfit(1) > 0 Then
v1 = PositionProfit(1);
}
//--------------------------------------------------------------------------------------
if MarketPosition == 1 Then{
ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts);
}
if MarketPosition == -1 Then{
ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts);
}
//--------------------------------------------------------------------------------------
if MarketPosition == 1 and Bxcond == false and IsEntryName("BB") == false Then
Buy("PBB",AtStop,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 and SxCond == false and IsEntryName("BB") == false Then
sell("PSS",AtStop,LatestEntryPrice(0)-i증감,진입수량);
//-----------------------------------------------------------------------------------
#기존수식 손실손절 스위칭
if MarketPosition == -1 and BCount+SCount < N and dayPL > -당일손실 Then
buy("1BX",AtStop,EntryPrice+0.6);
if MarketPosition == 1 and BCount+SCount < N and dayPL > -당일손실 Then
sell("1SX",AtStop,EntryPrice-0.6);
//------------------------------------------------------------------------------------------------------
2015-11-19
168
글번호 92569
답변완료
질문..
질문드립니다
각 코드와 검색식은 5분봉 차트 기준입니다
지표식과 검색식 각각 부탁드립니다
1. 지표식(p는 변수화)
예시)
3일전 2일전 1일전 당일지표
1번코드(UD_var3 > 0) : 만족
2번코드(vol_var1 > p) : 만족
3번코드 : value13,value23 지표로 표현
1,2번 코드가 동시만족을 다 하는 날의 최대양봉고가와 저가를 지표로 표현하는겁니다
위 예시는 3일전에 동시만족을 한것이고 이것이 2일전,1일전도 될수 있겠죠
그러면 그 해당일의 최대양봉고가와 저가를 지표로 표현하는겁니다
만약에 3일전도 만족하고 1일전도 동시만족을 다 했다면 최근에 만족한 1일전 값들이
표현되면 됩니다
2. 검색식
위 지표식으로 구한 최대양봉고가와 현재가의 간격을 비율로서 검색하는 식을 구하고자합니다
예를들어 5%을 변수로 입력후 검색하면
((현재가 - value13)/value13)*100 --> 5% 이내인 종목들을 검색하고자합니다
###################################################################################
var : UD_var1(0),UD_var2(0),UD_var3(0);
var : vol_var1(0),cnt(0),PreDate(0),PreDayV(0);
var : vol_var1(0);
var : Hv(0),LV(0),HC(0),LC(0),HC1(0),LC1(0),HV1(0),LV1(0),UD(0),UD1(0);
1번
UD_var1 = accumn(upvol,dayindex+1);
UD_var2 = accumn(DOWNvol,dayindex+1);
UD_var3 = UD_var1 - UD_var2 ;
2번
if date != date[1] Then
PreDate = sdate[1];
if PreDate > 0 Then{
for cnt = 1 to 1000 {
if stime[cnt] <= stime and sdate[cnt] == PreDate then{
PreDayV = DayVolume[cnt];
cnt = 10000;//if조건 만족하면 for문을 빠져나감
}
}
}
vol_var1 = DayVolume/PreDayV*100 ;
3번
if date != date[1] Then{
var1 = 0;
var2 = 0;
value11 = value1[1]; //전일최대양봉고가
value21 = value2[1]; //전일최대양봉저가
value31 = value3[1]; //전일최대음봉고가
value41 = value4[1]; //전일최대음봉저가
value12 = value11[1]; //2일전최대양봉고가
value22 = value21[1]; //2일전최대양봉저가
value32 = value31[1]; //2일전최대음봉고가
value42 = value41[1]; //2일전최대음봉저가
value13 = value12[1]; //3일전최대양봉고가
value23 = value22[1]; //3일전최대양봉저가
value33 = value32[1]; //3일전최대음봉고가
value43 = value42[1]; //3일전최대음봉저가
}
if C > O and H-L > var1 Then{
var1 = abs(C-O);
value1 = H; //당일최대양봉고가
value2 = L; //당일최대양봉저가
}
if C < O and H-L > var2 Then{
var2 = H-L;
value3 = H; //당일최대음봉고가
value4 = L; //당일최대음봉저가
}
#####################################################################################
2015-11-19
174
글번호 92567
답변완료
일목균형표
기준선 기울기가 상향일때는 매수, 하향일때는 매도하는 수식
부탁드립니다...
2015-11-19
202
글번호 92563
답변완료
추적후이익실현
# 추적청산
input : AtrMult(12), AtrPeriod(14);
var : AtrVal(0), posHigh(0), posLow(0);
# ATR 추적청산
ATRVal = ATR(AtrPeriod) * AtrMult;
PosHigh = Highest(H,BarssinceEntry+1);
PosLow = Lowest(L,BarsSinceEntry+1);
If MarketPosition == 1 Then
sell("ATR1", AtStop, PosHigh - ATRVal);
If MarketPosition == -1 Then
buy("ATR2", AtStop, PosLow + ATRVal);
위수식후 최대수익대비하락이익실하면 다음추적신호안됨니다
나올수있게 수식부탁합니다.
예. 6p이후3p 하락하면 이익실현하고 다음추적신호가나오게 부탁합니다.
2015-11-19
163
글번호 92562
dandy 님에 의해서 삭제되었습니다.
2015-11-19
0
글번호 92559
답변완료
부탁드림니다
data2 > 0 and data3 < 0 파랑 막대기
data2 < 0 and data3 > 0 빨간 막대기
지표로 쓰고 싶습니다,
2015-11-19
180
글번호 92553
답변완료
문의 드립니다.
안녕하세요.
일전에 당일 거래로만 계산한 OBV 10, 20 이평선을 부탁 드렸습니다.
알려주신 수식이 계산한 내용과 달라서 찬찬히 살펴보고 수정을 했습니다.
당일 2번 째 봉부터 계산을 하기 때문에 idx를 -1를 줘서 1부터 시작하게 했구요.
OBVv = OBVv + Volume;
OBV가 계속 누적이 되길래 OBVv = OBVv[1] + Volume; 이렇게 수정했습니다.
문제는 10개의 봉이 진행하고 11번 째 봉에서 부터는 맨 앞의 obv를 탈락시키고 이평값으로 나누어야 하는데 수식을 잘 모르겠습니다.
수식 살펴보시고 수정 부탁 드립니다.
input : P1(10),P2(20);
var : OBVV(0),idx(0),sum(0),mav1(0),mav2(0);
If date != date[1] Then{
OBVV = 0;
sum = 0;
idx = 0;
}
idx = idx+1;
if date == date[1] Then{
If Close[0] > Close[1] Then
OBVv = OBVv + Volume;
If Close[0] < Close[1] Then
OBVv = OBVv - Volume;
}
sum = sum+OBVv;
if idx < P1 Then
mav1 = sum/idx;
Else
mav1 = AccumN(Obvv,P1)/P1;
if idx < P2 Then
mav2 = sum/idx;
Else
mav2 = AccumN(Obvv,P2)/P2;
plot1(OBVv);
plot2(mav1);
plot3(mav2);
==============================================
input : P1(10),P2(20);
var : OBVV(0),idx(0),sum(0),mav1(0),mav2(0);
If date != date[1] Then{
OBVV = 0;
sum = 0;
idx = -1;
}
idx = idx+1;
if date == date[1] Then{
If Close[0] > Close[1] Then
OBVv = OBVv[1] + Volume;
If Close[0] < Close[1] Then
OBVv = OBVv[1] - Volume;
}
sum = sum+OBVv;
if idx < P1 Then
mav1 = obvv/idx;
Else
mav1 = AccumN(Obvv,P1)/P1;
if idx < P2 Then
mav2 = obvv/idx;
Else
mav2 = AccumN(Obvv,P2)/P2;
plot1(OBVv,"OBV");
plot2(mav1,"10이평");
plot3(mav2);
3527 3527 1 3527.00
2930 6457 2 3228.50
1879 8336 3 2778.67
2274 10610 4 2652.50
-1205 9405 5 1881.00
0 9405 6 1567.50
1121 10526 7 1503.71
-1451 9075 8 1134.38
-913 8162 9 906.89
443 8605 10 860.50
834 5912 10 591.20
-886 2096 10 209.60
588 805 10 80.50
------------------------------------------
OBV 10봉전까지 당일 OBV 10 이평
누적OBV
2015-11-19
254
글번호 92552