커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6047
글번호 230811
답변완료
수정 의뢰드립니다
안녕하세요!
아래의 수식은 일간의 고,저,종가를 이용하여 만든 피봇지표입니다.
이수식을 가능하다면 주간과 월간의 고,저,종가를 이용하여 만든 피봇지표로 각각 수정을 부탁드립니다!
항상 노고에 감사드립니다!
input : 수치표시(1);
Var : preHigh(0), preLow(0), preClose(0), HighV(0), LowV(0);
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0);
Var : TX1(0), TX2(0), TX3(0), TX4(0), TX5(0);
if BarInterval <= 60 and DataCompress < 3 Then {
if sTime-sTime[1] > 4000 or sTime-sTime[1] < 0 Then {
preHigh = HighV[1];
preLow = LowV[1];
preClose = C[1];
HighV = H;
LowV = L;
}
if H > highV Then
HighV = H;
if L < LowV Then
LowV = L;
Pivot = (preHigh+preLow+preClose)/3;
R1 = 2*Pivot-preLow;
R2 = Pivot+preHigh-preLow;
S1 = 2*Pivot-preHigh;
S2 = Pivot-preHigh+preLow;
Plot1(Pivot, "피봇포인트", GRAy, 0, 1);
Plot2(R1, "1차저항", RED, 0,1);
Plot3(R2, "2차저항", PINk, 0,1);
Plot4(S1, "1차지지", GREEN, 0, 1);
Plot5(S2, "2차지지", LGREEN, 0, 1);
if 수치표시 == 1 and sTime-sTime[1] > 4000 or sTime-sTime[1] < 0 Then {
TX1 = Text_New(sdate, stime, Pivot, "▶PV : "+Numtostr(Pivot,2));
Text_SetStyle(TX1, 1, 2);
Text_setColor(TX1, GRAY);
TX2 = Text_New(sdate, stime, R1, "▶R1 : "+Numtostr(R1,2));
Text_SetStyle(TX2, 1, 2);
Text_setColor(TX2, red);
TX3 = Text_New(sdate, stime, R2, "▶R2 : "+Numtostr(R2,2));
Text_SetStyle(TX3, 1, 2);
Text_setColor(TX3, red);
TX4 = Text_New(sdate, stime, S1, "▶S1 : "+Numtostr(S1,2));
Text_SetStyle(TX4, 1, 2);
Text_setColor(TX4, GREEN);
TX5 = Text_New(sdate, stime, S2, "▶S2 : "+Numtostr(S2,2));
Text_SetStyle(TX5, 1, 2);
Text_setColor(TX5, GREEN);
}
}
---------------------------------------------
아래 함수가 잘 못 되었다고 계속 에러가 뜨네요! 확인 좀 부탁드립니다!
input : N(numeric);
var : cnt(0);
array : MO[99](0);
if index() == 0 then
MO[1] = O;
if index() > 0 then{
if date > date[1]+30 then{
MO[0] = O;
for cnt = 1 to 98{
MO[cnt] = MO[cnt-1][1];
}
}
}
MonthOpen = MO[N];
Input : N(numeric);
var : cnt(0);
array : MH[99](0);
if index() == 0 then
MH[0] = H;
if date > date[1]+30 then{
MH[0] = H;
for cnt = 1 to 20{
MH[cnt] = MH[cnt-1][1];
}
}
if H > MH[0] then{
MH[0] = H;
}
MonthHigh = MH[N];
Input : N(numeric);
var : cnt(0);
array : ML[99](0);
if index() == 0 then
ML[0] = L;
if index() > 0 then{
if date > date[1]+30 then{
ML[0] = L;
for cnt = 1 to 20{
ML[cnt] = ML[cnt-1][1];
}
}
}
if L < ML[0] then{
ML[0] = L;
}
MonthLow = ML[N];
input : N(numeric);
var : cnt(0);
array : MC[99](0);
if date > date[1]+30 then{
for cnt = 1 to 98{
MC[cnt] = MC[cnt-1][1];
}
}
MC[0] = C;
Monthclose = MC[N];
--------
WeekOpen
input:n(numeric);
var:j(0),요일(0);
array:weekO[100](0);
요일 = DayOfWeek(date);
if date[1] < date and 요일[1] >= 요일 then {
for j = 99 downto 1 {
weekO[j] = weekO[j-1];
}
weekO[0] = o;
}
WeekOpen = weekO[n];
WeekHigh
Input : N(numeric);
var : cnt(0);
array : WH[99](0);
if DayOfWeek(date) < DayOfWeek(date)[1] then{
WH[0] = H;
for cnt = 1 to 20{
WH[cnt] = WH[cnt-1][1];
}
}
if H > WH[0] then{
WH[0] = H;
}
WeekHigh = WH[N];
WeekLow
Input : N(numeric);
var : cnt(0);
array : WL[99](0);
if DayOfWeek(date) < DayOfWeek(date)[1] then{
WL[0] = L;
for cnt = 1 to 20{
WL[cnt] = WL[cnt-1][1];
}
}
if L < WL[0] then{
WL[0] = L;
}
WeekLow = WL[N];
WeekClose
input : N(numeric);
var : cnt(0);
array : WC[99](0);
if DayOfWeek(date) < DayOfWeek(date)[1] then{
for cnt = 1 to 98{
WC[cnt] = WC[cnt-1][1];
}
}
WC[0] = C;
Weekclose = WC[N];
---------
2022-12-21
1342
글번호 164781
답변완료
수식부탁드립니다---------------------
//mc가 당일 최저점에서 5%상승한지점을 plot22로 표시하고 싶슴니다 수식 부탁드립니다.
//*********************************************************************************
Input : Period(10), P(2),소리내기(0),차트시간(090000);
var : UPchennel(0),UPline(0),Dnline(0),DNchennel(0),mc(0),opd(0);
UPchennel = ma(H,period)*(1+P/100);
UPline = ma(H,period);
dnline = ma(L,period);
DNchennel = ma(L,period)*(1-P/100);
mc = c;
Plot1(UPchennel, "상한채널");
Plot2(UPline, "상한선");
Plot3(dnline, "하한선");
Plot4(DNchennel, "하한채널");
plot5(mc,"변동성지수");
if dnline > dnline[1] Then{
plot6(mc,"상승");
}
if dnline < dnline[1] Then{
plot7(mc,"하락");
}
if CrossDown(mc,dnline) Then{
plot8(dnline+0.03,"진입고려");
if 소리내기 == 1 then {
PlaySound("C:₩Users₩Windows 10₩Desktop₩sound₩bubbles.wav");
}
}
//if sTime == 090000 Then{
//plot9(dnline,"장시작");
//}
if stime >= 차트시간 and stime <= 차트시간+100 then{
plot20(dnline,"시작");
}
opd= (opend(0));
plot21(opd,"장시작" );
2022-12-21
1395
글번호 164780
답변완료
봉 평균 수식 부탁드립니다.
현재봉 이전 4개/19개/59개의봉의 평균값을 구하여 차트의 한쪽켠에 숫자가 나타나게 하는 방법좀 알려주세요 그리고 숫자의 색깔을 구별할수 있게 수식 부탁드리겠습니다.
2022-12-21
1123
글번호 164779
답변완료
수식추가
input : P1(45),D1(2.3);
input : P2(22),D2(1.8);
input : P(20);
var1 = BollBandDown(P1,D1);
Var2 = BollBandDown(P2,D2);
Var3 = ma(C,P);
if Bdate != Bdate[1] Then
{
Condition1 = False;
Condition2 = False;
}
if Condition1 == False and CountIf(L > var1,2) == 2 and c > var3 Then
Buy("b1",AtLimit,var1);
if Condition2 == False and CountIf(L > var2,2) == 2 and c < Var3 Then
Buy("b2",AtLimit,var2);
안녕하세요
위식에서 매도식추가갸 부탁드립니다
2022-12-21
1127
글번호 164774
답변완료
수식 작성 부탁드립니다
1. 지표
data1에 아래의 수식을 사용합니다
data2에서 동일한 수식을 사용할려고 합니다.
factor(5), AtrPeriod(20) 의 외부변수등 facto2r(5), AtrPeriod2(20)로변경하여
시스템작성시 중복되 않게 작성 부탁드립니다
input : ntime(30),factor(5), AtrPeriod(20);
var : S1(0),D1(0),TM(0),TF(0),HH(0),LL(0),C1(0);
var : src(0), AtrV(0),ATRv1(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0);
var : prevSuperTrend(0), superTrend(0), direction(0),alpha(0),source(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
HH = H;
LL = L;
C1 = C[1];
ATRV1 = ATRV[1];
prevSuperTrend = superTrend[1];
prevLowerBand = lowerBand[1];
prevUpperBand = upperBand[1];
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
src = (HH+LL)/2;
if C1 > 0 Then
{
alpha = 1 / AtrPeriod ;
source = max(HH - LL, abs(HH - C1), abs(LL - C1));
ATrV = alpha * source + (1 - alpha) * ATrV1;
upperBand = src + factor * AtrV;
lowerBand = src - factor * AtrV;
if lowerBand > prevLowerBand or C1 < prevLowerBand Then
lowerBand = lowerBand;
Else
lowerBand = prevLowerBand;
if upperBand < prevUpperBand or C1 > prevUpperBand Then
upperBand = upperBand;
Else
upperBand = prevUpperBand;
if prevSuperTrend == prevUpperBand Then
{
if C > upperBand Then
direction = -1;
Else
direction = 1;
}
Else
{
if C < lowerBand Then
direction = 1;
Else
direction = -1;
}
if direction == -1 Then
superTrend = lowerBand;
Else
superTrend = upperBand;
Plot1(C,"종가");
}
}
2.
시스템 식에서 BBup = BollBandUp(Period,MultiD); 상단밴드 이격도 95 하향돌파시
즉시 청산이되도록 수식 부탁드립니다.
추가로 상단밴드에서 5틱 하락시 청산되도록 수식 부탁 드립니다.
감사합니다.
2022-12-21
1207
글번호 164773
답변완료
수식 질문드립니다.
포지션 잡고있고, 손실을 1.6pt 기록중인데
중간에 수식에 의해서 손절이 1.1pt 로 바뀌면 어떻게 되나요?
즉시 손절이 나가나요? 아니면 1.1pt 손실점에서 손절이 나가나요?
var : 손절(1.92),익절(2.42);
SetStopEndofday(EndTime);
SetStopProfittarget(익절,PointStop);
SetStoploss(손절,PointStop);
2022-12-21
1227
글번호 164761
답변완료
문의드립니다.
1.
피봇 1차 저항선을 5틱이상 돌파, 상승한 이후 하락하여 피봇 1차 지지선을 10틱이상 붕괴할때 매도
피봇 1차 지지선을 5틱이상 붕괴, 하락한 이후 상승하여 피봇 1차 저항선을 10틱이상 돌파할때 매수
2. 국내선물 3분봉 매매에서 5, 20선 골든/데드클로스 매매를 할때 매수신호 조건이 완성되더라도 참고에서 프로그램순매수가 직전 10봉중에서 6봉이상이 음봉이면 신호가 안나오게 할 수 있는지 문의드립니다. 매도는 그 반대입니다.
만일 이부분 구현이 안된다면 프로그램순매수금액의 시초기준 고점(저점)대비 20% 감소(증가)시 신호가 안나오게 만들고 싶습니다.
노고에 늘 감사드립니다~
2022-12-21
1416
글번호 164760
답변완료
수식
안녕하세요.
봉의 몸통이 0.4이상인 봉의 고가,저가,시가,종가 부탁드립니다.
당일 발생분은 당일 챠트에만 나오도록 부탁드립니다.
감사합니다.
2022-12-21
1346
글번호 164758
답변완료
분봉에서 거래대금을 소환하고 싶습니다.
가령 예를 들자면
1일전 거래대금 총합이나
5일동안 거래대금 평균을
분봉에서 구현하고 싶습니다.
보니까 dayvolume(N)은 있으나 daymoney(N)는 없더라구요.
감사합니다.
2022-12-21
1363
글번호 164757