커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1642
글번호 230811
답변완료
문의드립니다.
안녕하세요.
피라미딩 진입을 합니다.
1치 대양봉:
무포지션에서 음봉 뒤에 최초 양봉이 생기고 다시 연속으로 양봉일 때
즉 음봉뒤 양봉이 2개 연속일때(최초 양봉 종가< 2번째 양봉종가 만족)
1차 대양봉이라고 하고 이 때의 최초 양봉 시가를 1차 대양봉 시가 1A 라고
정의합니다.
2차 대양봉 시가 2A 와 1차 1단계 진입
1차 조건이 유효한 상태에거 최초 양봉이 생기고 다시 연속으로 양봉일 때
즉 음봉뒤 양봉이 2개 연속일때(최초 양봉 종가< 2번째 양봉종가 만족)
2차 대양봉이라고 하고 이 때의 양봉 시가를 2차 대양봉 시가 2A 라고
정의합니다.
이 때 2차 대양봉 시가 2A > 1차 대양봉 시가 1A
를 만족하면 1차 매수 진입합니다.
3차 대양봉 시가 3A 와 2차 2단계 진입
2차 조건이 유효한 상태에거 최초 양봉이 생기고 다시 연속으로 양봉일 때
즉 음봉뒤 양봉이 2개 연속일때(최초 양봉 종가< 2번째 양봉종가 만족)
3차 대양봉이라고 하고 이 때의 양봉 시가를 3차 대양봉 시가 3A 라고
정의합니다.
이 때 3차 대양봉 시가 3A > 2차 대양봉 시가 2A
를 만족하면 2차 매수 진입합니다.
3차, 4차,5차 ~ 8차 까지 같은 방식으로 진입합니다.
기본 청산:
어느 단계에서든지 매수후에 최근에 발생한 봉 7개봉을 봅니다.
현재봉이 음봉아고 음봉의 종가가 최근의 7개봉 중에서 양봉의 시가를
2개이상 하방으로 깨면 전부 청산합니다.
손절:
1차 매수후에 30틱 손실이면 손절합니다.1차는 기본청산 에 더해서 손절이
있습니다
2차 매수 후 부터는 손절이 없습니다. 2차부터는 기본청산만 합니다.
매도: 반대논리로 부탁드립니다.
2022-10-07
1001
글번호 162788
답변완료
잔고 종목의 포지션 확인
아래 답변 감사합니다.
잔고함수의 특정종목의 잔고를 확인하는 GetPositionQuantity 함수가 있는데,
해당 함수는 getaccount함수와 같이 장초반의 값으로 하루종일 고정되나요? 아니면, 매수매도가 일어나면
그에 따라 다른 값을 매분 달리 읽어주나요?
---------------------------------
안녕하세요
예스스탁입니다.
1
수식은 모두 독립적으로 동작합니다.
다른 수식이나 다른차트에 적용된 수식과 정보를 주고 받지 못합니다.
2
랭귀지의 모든 포지션과 성과함수는 해당 차트의 신호상 내용입니다.
3
포지션 체크하신다면 잔고함수를 이용하시는 방법뿐이 없습니다.
즐거운 하루되세요
> 건곤대 님이 쓴 글입니다.
> 제목 : 다른종목 포지션상태
> 안녕하세요.
실전에서 하나의 계좌에 두개 종목을 각각의 차트에서 운영중입니다.
A차트에(A종목) 진입하려고 할때, B종목의 포지션이 0 인것을 확인하고 진입신호를 발생시키고 싶습니다. (예수금 부족으로 거부안나도록)
방법이 있을까요? marketpostion도 해당차트의 종목에만 적용이 되는것 같고
잔고함수를 사용해서 체크해야 하는지요?
아니면, 그냥 수식을 잘 작성해서 B종목의 포지션이 확실히 청산되었을때만 진입신호를 발생시키는 수 밖에 없는건가요?
2022-10-06
1239
글번호 162787
답변완료
부탁드립니다
수고하십니다
아래수식을 변수값을 바꿔서 사용할수 있게 수식부탁드립니다
Input : data2(292.5),data3(292.5);
Input : data4(data2+2.5),data5(data3+2.5);
var : cond21(false,data2),V2(0,data2);
var : cond41(false,data4),V4(0,data4);
if data2(sdate != sdate[1]) Then{
cond21 = false;
}
if data4(sdate != sdate[1]) Then{
cond41 = false;
}
if cond21 == false and abs(data2(L)-data3(H)) <= 0.5 or abs(data2(L)-data3(H)) <= 0.01 Then{
cond21 = true;
V2 = (data2(l)+data3(h))/2;
}
if cond21 == false and abs(data2(H)-data3(L)) <= 0.5 or abs(data2(L)-data3(H)) <= 0.01 Then{
cond21 = true;
V2 = (data2(h)+data3(l))/2;
}
if cond21 == true and CrossUp(data2(high),data3(low-0.01)) Then{
V2 = (data2(high)+data3(low))/2;
}
if cond21 == true and CrossDown(data2(Low),data3(High+0.01)) Then{
v2 = (data2(Low)+data3(High))/2;
}
if cond21 == true and CrossUp(data3(high),data2(low-0.01)) Then{
V2 = (data3(high)+data2(low))/2;
}
if cond21 == true and CrossDown(data3(Low),data2(High+0.01)) Then{
V2 = (data3(Low)+data2(High))/2;
}
/////////////////////////////////////////////////////////////////
if cond41 == false and abs(data4(L)-data5(H)) <= 0.5 or abs(data4(L)-data5(H)) <= 0.01 Then{
cond41 = true;
V4 = (data4(l)+data5(h))/2;
}
if cond41 == false and abs(data4(H)-data5(L)) <= 0.5 or abs(data4(H)-data5(L)) <= 0.01 Then{
cond41 = true;
V4 = (data4(l)+data5(h))/2;
}
if cond41 == true and CrossUp(data4(high),data5(low-0.01)) Then{
V4 = (data4(high)+data5(low))/2;
}
if cond41 == true and CrossDown(data4(Low),data5(High+0.01)) Then{
V4 = (data4(Low)+data5(High))/2;
}
if cond41 == true and CrossUp(data5(high),data4(low-0.01)) Then{
V4 = (data5(high)+data4(low))/2;
}
if cond41 == true and CrossDown(data5(Low),data4(High+0.01)) Then{
V4 = (data5(Low)+data4(High))/2;
}
if stime >= 090000 and stime <= 151500 Then{
plot1(V2);
plot2(V4);
}
2022-10-06
948
글번호 162778
답변완료
중간선 쌍봉 매도 수정
input : P(15),쌍봉상(1),쌍봉하(1),쌍바닥상(2),쌍바닥하(1);
var : T(0),ll(0),TL(0),hh(0);
var1 = highest(H,P);
var2 = Lowest(L,P);
var3 = (var1+var2)/2;
if Var3 > Var3[1] Then
T = 1;
if Var3 < Var3 [1] Then
T = -1;
if T == 1 Then
{
if T != T[1] Then
{
hh = h;
value1 = ll[1];
value2 = value1[1];
value3 = value2[1];
if value1 <= value2+PriceScale*쌍바닥상 and value1 >= value2-PriceScale*쌍바닥하 and value2 > 0 Then
{
}
}
Else
{
if hh > 0 and h > hh Then
hh = h;
}
}
if T == -1 Then
{
#최저가 계산
if T != T[1] Then
{
ll = l;
value4 = HH[1];
value5 = value4[1];
value6 = value5[1];
if value4 <= value5+PriceScale*쌍봉상 and value4 >= value5-PriceScale*쌍봉하 and value5 > 0 Then
{
Sell();
}
}
Else
{
if ll > 0 and l < ll Then
ll = l;
}
}
if MarketPosition == 1 and t == 1 Then
ExitShort();
[재문의]
쌍봉에 매도, 양전환시 매도청산.
차트에 화살표가 없네요.
2022-10-06
1044
글번호 162774
답변완료
시가선 문의
안녕하세요? 항상 수고 많으십니다.
1분 또는 틱챠트에 매30분 간격으로 실시간 30분 시가선 부탁드립니다.
감사합니다.
2022-10-06
973
글번호 162770
답변완료
다른종목 포지션상태
안녕하세요.
실전에서 하나의 계좌에 두개 종목을 각각의 차트에서 운영중입니다.
A차트에(A종목) 진입하려고 할때, B종목의 포지션이 0 인것을 확인하고 진입신호를 발생시키고 싶습니다. (예수금 부족으로 거부안나도록)
방법이 있을까요? marketpostion도 해당차트의 종목에만 적용이 되는것 같고
잔고함수를 사용해서 체크해야 하는지요?
아니면, 그냥 수식을 잘 작성해서 B종목의 포지션이 확실히 청산되었을때만 진입신호를 발생시키는 수 밖에 없는건가요?
2022-10-06
957
글번호 162766
답변완료
문의드립니다.
선물차트 기준으로 문의드립니다.
1. 1개 캔들의 몸통안에(시가와 종가사이에) -티론중간선(기간값50)과 삼각가중평균선(100선)-
이 모두 들어있는 캔들을 검색하고자 합니다. 검색이 불가하다면 강조로 하고자 합니다.
수식을 어떻게 작성해야 하는지요?
tirone levels의 기간값과 삼각가중평균선의 기간값은 수정가능하게 부탁드립니다.
그리고 검색이나 강조의 색상도 수정가능하게 부탁드립니다.(색상수정이 불가하다면 형광색으로 부탁드립니다.)
2. 위 1번에서 검색(또는 강조)된 캔들이 만약 100틱차트의 캔들이라면 이 캔들에 해당하는 50틱차트에서의 캔들을 검색 또는 강조할 수 있는지요? 가능하다면 수식을 부탁드립니다.
항상 감사드립니다. 수고하세요!!!
2022-10-06
924
글번호 162765
답변완료
수식문의드립니다
안녕하세요.
상승하고있는 5이평과 20이평이 0.5%이내로 근접한것을 검색해보는
수식을 부탁드립니다. (5이평과 20이평이 값의차이가 0.5%이내인것) 감사합니다.
2022-10-06
1040
글번호 162764
답변완료
문의
항상감사합니다.
[고+저/2부탁드립니다].
input : 타주기분(00);
var : S1(0),D1(0),TM(0),TF(0),tx1(0),tx2(0),tx3(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%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
var1 = O;
Var2 = H;
Var3 = L;
tx1 = text_new(sDate,sTime,var1,"시:"+NumToStr(var1,2));
tx2 = text_new(sDate,sTime,var2,"고:"+NumToStr(var2,2));
tx3 = text_new(sDate,sTime,var3,"저:"+NumToStr(var3,2));
Text_SetStyle(tx1,2,1);
Text_SetStyle(tx2,2,1);
Text_SetStyle(tx3,2,0);
}
if h > Var2 Then
Var2 = h;
if l < Var3 Then
Var3 = l;
Plot1(var1,"시");
Plot2(var2,"고");
Plot3(var3,"저");
Text_SetLocation(tx1,sDate,sTime,var1);
Text_SetString(tx2,"고:"+NumToStr(var2,2));
Text_SetLocation(tx2,sDate,sTime,var2);
Text_SetString(tx3,"저:"+NumToStr(var2,2));
Text_SetLocation(tx3,sDate,sTime,var3);
}
2022-10-06
1091
글번호 162763