커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7234
글번호 230811
답변완료
거래
1. 선물 일봉, 주봉의 거래량을 누적시키는 식
2. 당일 첫번째 분봉의 종가
표시하는 식 부탁드립니다.
2018-07-19
224
글번호 120727
답변완료
문의드립니다
주식
매수 진입 이후에
상한가 진입하면 즉시 청산하는식을 추가 하고싶습니다
감사합니다
2018-07-19
227
글번호 120726
답변완료
문의드립니다
문의드립니다.
1. period(n) n개봉의 기간동안의 최고가와 최저가 level을 해당구간에 그림처럼
선 또는 점표시를 할려고 합니다.첨부그림은 n=5를 적용해본 경우이며 직접 작도한 것입니
다.
A. 만약 5번째봉 이후 6번째,7번째봉,..... 들이 최고가와 최저가 범위를 종가상으로
위 또는 아래로 벗어나지 못하면 표시하는 구간은 계속 연장되며, 종가상 돌파하는 봉이
생길때까지입니다.그림에서 1,3번은 7번째봉이, 2,5번은 6번째봉이, 4번은 10번째봉이
해당범위를 벗어난 첫봉의 경우입니다.
B. 같은방향으로 연속해서 표시되어서는 아니되며 그림에서처럼 고가돌파 다음에는 저가돌파
시에만 표시가 됩니다.
2. 종가상 해당기간의 고가를 벗어나는 첫번째봉의 아래에,
저가를 벗어나는 첫번째봉의 위에,
점표시를 부탁드립니다.
2018-07-19
256
글번호 120725
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 프린트 지표
-기준음봉 이전에 양봉이 있었으면 음봉전체길이 출력
2. 아래 코드 예스로 수정좀 부탁드립니다.
Indicator: AccumDistRange
// TASC Aug 2018
// Domenic D’Errico
inputs:
Length( 4 ),
ConsolidationFactor( 0.75 ),
TrendLineColor( Yellow ) ;
variables:
Consolidation( false ),
Range_( 0 ),
Top( 0 ),
Bot( 0 ) ;
Consolidation = false ;
Range_ = Highest( High, Length )
- Lowest( Low, Length ) ;
if Range_ < ConsolidationFactor
* Range_[Length] then
begin
Consolidation = true ;
Top = Highest( High, Length ) ;
Bot = Lowest( Low, Length ) ;
end ;
if Consolidation then
begin
value1 = TL_New( Date, Time, Top, Date[Length],
Time[Length], Top ) ;
TL_SetColor( value1, TrendLineColor);
value1 = TL_New( Date, Time, Bot, Date[Length],
Time[Length], Bot ) ;
TL_SetColor( value1, TrendLineColor ) ;
value1 = TL_New( Date, Time, Bot, Date, Time, Top ) ;
TL_SetColor( value1, TrendLineColor ) ;
value1 = TL_New( Date[Length], Time[Length],
Bot, Date[Length], Time[Length], Top ) ;
tl_setcolor(value1,TrendLineColor);
end ;
if Range_[Length] > 0 then
begin
Plot1( Range_ /Range_[Length],
"RangeRatio", lightgray ) ;
Plot2( ConsolidationFactor,
"ConsolidationFactor", darkgray ) ;
if Range_ / Range_[Length] < ConsolidationFactor then
SetPlotColor( 1, TrendLineColor) ;
end ;
Indicator: AccumDistATR
// TASC Aug 2018
// Domenic D’Errico
inputs:
ATRLength( 4 ),
ATRFactor( 0.75 ),
TrendLineColor( Yellow ) ; ;
var:
Consolidation( false ),
Range_( 0 ),
Top( 0 ),
Bot( 0 ),
ATR( 0 ) ;
Consolidation = false ;
ATR = AvgTrueRange( ATRLength ) ;
if ATR < ATR[ATRLength] * ATRFactor then
begin
Consolidation = true ;
Top = highest( High, ATRLength ) ;
Bot = Lowest( Low, ATRLength ) ;
end ;
If Consolidation then
begin
value1=TL_New( Date, Time, Top,
Date[ATRLength], Time[ATRLength], Top ) ;
TL_SetColor( value1, TrendLineColor ) ;
value1=TL_New( Date, Time, Bot,
Date[ATRLength], Time[ATRLength], Bot ) ;
TL_SetColor( value1, TrendLineColor ) ;
value1=TL_New( Date, Time, Bot, Date, Time, Top ) ;
TL_SetColor( value1, TrendLineColor ) ;
value1=TL_New( Date[ATRLength], Time[ATRLength],
Bot, Date[ATRLength], Time[ATRLength], Top ) ;
TL_SetColor( value1, TrendLineColor ) ;
End;
if ATR[ATRLength] > 0 then
begin
Plot1( ATR / ATR[ATRLength],
"ATRRatio", LightGray ) ;
Plot2( ATRFactor,
"ATRFactor", DarkGray ) ;
if ATR / ATR[ATRLength] < ATRFactor then
SetPlotColor( 1, TrendLineColor) ;
end ;
Indicator: AccumDistADX
// TASC Aug 2018
// Domenic D’Errico
inputs:
ADXLength( 4 ),
ADXTrigger( 30 ),
TrendLineColor( Yellow ) ;
variables:
Consolidation( false ),
Range_( 0 ),
Top( 0 ),
Bot( 0 ),
ADXValue( 0 ) ;
Consolidation=false;
ADXValue = ADX( ADXLength ) ;
If ADXValue < ADXTrigger then
begin
Consolidation = true ;
Top = Highest( High, ADXLength ) ;
Bot = Lowest( Low, ADXLength ) ;
end ;
If Consolidation then
begin
value1 = TL_New( Date, Time, Top,
Date[ADXLength], Time[ADXLength], Top ) ;
TL_SetColor( value1, TrendLineColor ) ;
value1 = TL_New( Date, Time, Bot,
Date[ADXLength], Time[ADXLength], Bot ) ;
TL_SetColor( value1, TrendLineColor ) ;
value1 = TL_New( Date, Time, Bot, Date, Time, Top ) ;
TL_SetColor( value1, TrendLineColor ) ;
value1 = TL_New( Date[ADXLength], Time[ADXLength],
Bot, Date[ADXLength], Time[ADXLength], Top ) ;
TL_SetColor( value1, TrendLineColor ) ;
end ;
Plot1( ADXValue,
"ADX", lightgray ) ;
Plot2( ADXTrigger,
"ADXTrigger", darkgray ) ;
if ADXValue < ADXTrigger then
SetPlotColor( 1, TrendLineColor ) ;
Strategy: AccumDistRange
input:
Length( 4 ),
ConsolidationFactor( 0.75 ),
VolRatio( 1 ),
VolAvg( 4 ),
VolDelay( 4 ),
InitialCapital( 100000 ),
TradeStartDate( 1030101 ) ;
var:
Consolidation( false ),
Range_( 0 ),
Top( 0 ),
Bot( 0 );
Consolidation = false ;
Range_ = Highest( High, Length )
- Lowest( Low, Length ) ;
If Range_ < ConsolidationFactor
* Range_[Length] then
begin
Consolidation = true;
Top = Highest( High, Length ) ;
Bot = Lowest( Low, Length ) ;
end ;
//Signals
if Date >= TradeStartDate
and Close > Top
and Bot > Bot[12]
and Average( volume, VolAvg )[VolDelay] > VolRatio
* Average( volume, VolAvg )[VolAvg+VolDelay] then
Buy ( InitialCapital + NetProfit ) /
Close Shares this bar Close ;
if Close < Bot then
Sell this bar on Close ;
2018-07-19
303
글번호 120724
답변완료
문의 드립니다
더운데 수고가 많으십니다
20이평선이 3회 우상항하고
이후
종가가 밴하단과 데드크로스가 나면 매수해라라는 식은 어떻게 될까요
종가가 볼밴하단과 데드크로스가 날때 20이평선의 상태는 상관이 없습니다
무더위 건강 유의하시고 늘 행복하세요
2018-07-19
227
글번호 120723
답변완료
지표 문의드립니다
수년간 키움만 사용하다 예스로 온지 얼마 안되었습니다만....ㅎㅎ
키움에서 안되는 사진의 지지저항에 꼽혀버려서요...^ ^
4분할 차트가 현재 사용하고 있는 차트인데요....
15이평 기준으로 어떻게 저런 선이 나오는지 암만 대입해봐도 맞는 구석이 없네요
(항셍-새벽,나스닥-낮시간)에는 지지저항선의 움직임이 거의 없더군요...
전문가분께서 보시면 뭔가 알아 내실수 있을까해서 글 남겨봅니다~~
수고 부탁 드리구요~~~더운 여름 다들 성투하시고 건강하세요~~~
2018-07-19
399
글번호 120718
답변완료
문의드립니다.
안녕하세요.
노고에 항상 감사드립니다.
청산 후 재매수 식을 생각하고 있는데,
"마지막 청산 후 현재 봉까지 한 번도 저가가 60일선 아래로 내려가지 않은 경우"
이걸 어떻게 수식으로 표현할 수 있을지 문의드립니다.
감사합니다.
2018-07-19
223
글번호 120717
답변완료
수정부탁합니다.
수고하십니다.
해선 추세선 수식입니다.
아래 수식에서 빨강 파랑색 두가지 색상 추세선을 지울수 없을까요?
시스템이 아닌 지표수식으로 바꿔주시고 녹색추세선만 나오게 부탁합니다.
Input:length(10),추세선연장(5);
#ssssssssssssssssssssssssssssssssss
Input:진입횟수제한(1);
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Var:최종고가(0),최종저가(0),최종변곡점(""),처리구분(""),
sBar(0),TL1(0),TL2(0),TL3(0),
고추세기울기(0),고추세봉개수(0),고추세시작(0),고추세시작IDX(0),고추세최종(0),
저추세기울기(0),저추세봉개수(0),저추세시작(0),저추세시작IDX(0),저추세최종(0);
#ssssssssssssssssssssssssssssssssss
Var:진입횟수(0);
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Var:고1(0),고2(0),고3(0),고4(0),고5(0),고6(0),고7(0),고8(0),고9(0),고10(0),
저1(0),저2(0),저3(0),저4(0),저5(0),저6(0),저7(0),저8(0),저9(0),저10(0),
고1IDX(0),고2IDX(0),고3IDX(0),고4IDX(0),고5IDX(0),
고6IDX(0),고7IDX(0),고8IDX(0),고9IDX(0),고10IDX(0),
저1IDX(0),저2IDX(0),저3IDX(0),저4IDX(0),저5IDX(0),
저6IDX(0),저7IDX(0),저8IDX(0),저9IDX(0),저10IDX(0);
#==========================================#
Condition1 = Highest(C,length) == C and 최종고가 <> C;
Condition2 = Lowest (C,length) == C and 최종저가 <> C;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리
Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
최종고가 = C; // 신규고점을 체크하기 위해 저장
If 최종변곡점 == "저점" Then
{
#ssssssssssssssssssssssssssssssssss
진입횟수 = 0;
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
고9 = 고8; 고9IDX = 고8IDX;
고8 = 고7; 고8IDX = 고7IDX;
고7 = 고6; 고7IDX = 고6IDX;
고6 = 고5; 고6IDX = 고5IDX;
고5 = 고4; 고5IDX = 고4IDX;
고4 = 고3; 고4IDX = 고3IDX;
고3 = 고2; 고3IDX = 고2IDX;
고2 = 고1; 고2IDX = 고1IDX;
고1 = C; 고1IDX = Index;
sBar = Index - 저1IDX; // 추세선 시작점의 위치, n봉전으로 표시
TL1 = TL_New(sDate[sBar],sTime[sBar],저1,sDate[0],sTime[0],고1);
TL_SetSize(TL1,2);
TL_SetColor(TL1,GREEN);
}
Else If 고1 < C Then // 1번 고점보다 높은 고가 출현
{
고1 = C; 고1IDX = Index;
TL_SetEnd(TL1,sDate[0],sTime[0],고1);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
}
/* 고점추세선 */
If 고2IDX[1] <> 고2IDX Then // 고2의 Index값이 변동 없음 즉, 새로운 고점이 생기지 않았음
{
고추세최종 = 0; 고추세기울기 = 0; 고추세시작 = 0; 고추세봉개수 = 0;
If 고2 < 고3 Then
{
고추세기울기 = (고2 - 고3)/(고2IDX - 고3IDX);
고추세시작 = 고3;
고추세시작IDX = 고3IDX;
}
Else If 고2 < 고4 Then
{
고추세기울기 = (고2 - 고4)/(고2IDX - 고4IDX);
고추세시작 = 고4;
고추세시작IDX = 고4IDX;
}
Else If 고2 < 고5 Then
{
고추세기울기 = (고2 - 고5)/(고2IDX - 고5IDX);
고추세시작 = 고5;
고추세시작IDX = 고5IDX;
}
Else If 고2 < 고6 Then
{
고추세기울기 = (고2 - 고6)/(고2IDX - 고6IDX);
고추세시작 = 고6;
고추세시작IDX = 고6IDX;
}
Else If 고2 < 고7 Then
{
고추세기울기 = (고2 - 고7)/(고2IDX - 고7IDX);
고추세시작 = 고7;
고추세시작IDX = 고7IDX;
}
Else If 고2 < 고8 Then
{
고추세기울기 = (고2 - 고8)/(고2IDX - 고8IDX);
고추세시작 = 고8;
고추세시작IDX = 고8IDX;
}
Else If 고2 < 고9 Then
{
고추세기울기 = (고2 - 고9)/(고2IDX - 고9IDX);
고추세시작 = 고9;
고추세시작IDX = 고9IDX;
}
고추세봉개수 = Index - 고추세시작IDX;
고추세최종 = 고추세기울기 * 고추세봉개수 + 고추세시작;
If 고추세최종 > 0 Then
{
TL2 = TL_New(sDate[고추세봉개수],sTime[고추세봉개수],고추세시작,sDate[0],sTime[0],고추세최종);
TL_SetSize(TL2,1);
TL_SetColor(TL2,RED);
}
}
Else If 고추세최종[1] > 0 Then
{
고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작;
TL_SetEnd(TL2,sDate[0],sTime[0],고추세최종);
}
If 저추세최종[1] > 0 Then
{
저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작;
TL_SetEnd(TL3,sDate[0],sTime[0],저추세최종);
}
최종변곡점 = "고점";
#ssssssssssssssssssssssssssssssssss
If 진입횟수 < 진입횟수제한 and
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
고추세최종 > 0 and 고추세최종 < C Then
{
Buy();
}
}
#==========================================#
If 처리구분 == "저점처리" Then
{
최종저가 = C;
If 최종변곡점 == "고점" then
{
#ssssssssssssssssssssssssssssssssss
진입횟수 = 0;
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
저9 = 저8; 저9IDX = 저8IDX;
저8 = 저7; 저8IDX = 저7IDX;
저7 = 저6; 저7IDX = 저6IDX;
저6 = 저5; 저6IDX = 저5IDX;
저5 = 저4; 저5IDX = 저4IDX;
저4 = 저3; 저4IDX = 저3IDX;
저3 = 저2; 저3IDX = 저2IDX;
저2 = 저1; 저2IDX = 저1IDX;
저1 = C; 저1IDX = Index;
sBar = Index - 고1IDX;
TL1 = TL_New(sDate[sBar],sTime[sBar],고1,sDate[0],sTime[0],저1);
TL_SetSize(TL1,2);
TL_SetColor(TL1,GREEN);
}
Else If 저1 > C then
{
저1 = C; 저1IDX = Index;
TL_SetEnd(TL1,sDate[0],sTime[0],저1);
}
/* 저점추세선 */
If 저2IDX[1] <> 저2IDX Then
{
저추세최종 = 0; 저추세기울기 = 0; 저추세시작 = 0; 저추세봉개수 = 0;
If 저2 > 저3 and 저3 > 0 Then
{
저추세기울기 = (저2 - 저3)/(저2IDX - 저3IDX);
저추세시작 = 저3;
저추세시작IDX = 저3IDX;
}
Else If 저2 > 저4 and 저4 > 0 Then
{
저추세기울기 = (저2 - 저4)/(저2IDX - 저4IDX);
저추세시작 = 저4;
저추세시작IDX = 저4IDX;
}
Else If 저2 > 저5 and 저5 > 0 Then
{
저추세기울기 = (저2 - 저5)/(저2IDX - 저5IDX);
저추세시작 = 저5;
저추세시작IDX = 저5IDX;
}
Else If 저2 > 저6 and 저6 > 0 Then
{
저추세기울기 = (저2 - 저6)/(저2IDX - 저6IDX);
저추세시작 = 저6;
저추세시작IDX = 저6IDX;
}
Else If 저2 > 저7 and 저7 > 0 Then
{
저추세기울기 = (저2 - 저7)/(저2IDX - 저7IDX);
저추세시작 = 저7;
저추세시작IDX = 저7IDX;
}
Else If 저2 > 저8 and 저8 > 0 Then
{
저추세기울기 = (저2 - 저8)/(저2IDX - 저8IDX);
저추세시작 = 저8;
저추세시작IDX = 저8IDX;
}
Else If 저2 > 저9 and 저9 > 0 Then
{
저추세기울기 = (저2 - 저9)/(저2IDX - 저9IDX);
저추세시작 = 저9;
저추세시작IDX = 저9IDX;
}
저추세봉개수 = Index - 저추세시작IDX;
저추세최종 = 저추세기울기 * 저추세봉개수 + 저추세시작;
If 저추세최종 > 0 Then
{
TL3 = TL_New(sDate[저추세봉개수],sTime[저추세봉개수],저추세시작,sDate[0],sTime[0],저추세최종);
TL_SetSize(TL3,1);
TL_SetColor(TL3,BLUE);
}
}
Else If 저추세최종[1] > 0 Then
{
저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작;
TL_SetEnd(TL3,sDate[0],sTime[0],저추세최종);
}
If 고추세최종[1] > 0 Then
{
고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작;
TL_SetEnd(TL2,sDate[0],sTime[0],고추세최종);
}
최종변곡점 = "저점";
#ssssssssssssssssssssssssssssssssss
If 진입횟수 < 진입횟수제한 and
#eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
저추세최종 > 0 and 저추세최종 > C Then
{
Sell();
}
}
#==========================================#
If 처리구분 == "" Then
{
If Index - 고1IDX <= 추세선연장 Then
{
If 고추세최종[1] > 0 Then
{
고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작;
TL_SetEnd(TL2,sDate[0],sTime[0],고추세최종);
}
}
Else
{
고추세최종 = 0;
}
If Index - 저1IDX <= 추세선연장 Then
{
If 저추세최종[1] > 0 Then
{
저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작;
TL_SetEnd(TL3,sDate[0],sTime[0],저추세최종);
}
}
Else
{
저추세최종 = 0;
}
If MarketPosition > 0 and TL2[1] == TL2 and
고추세최종 > 0 and 고추세최종[1] <= C[1] and 고추세최종 > C Then
ExitLong();
If MarketPosition < 0 and TL3[1] == TL3 and
저추세최종 > 0 and 저추세최종[1] >= C[1] and 저추세최종 < C Then
ExitShort();
}
#ssssssssssssssssssssssssssssssssss
If ((최종변곡점 == "고점" and MarketPosition == 1) or
(최종변곡점 == "저점" and MarketPosition == -1)) and
MarketPosition[1] != MarketPosition Then
{
진입횟수 = 진입횟수 + 1;
}
2018-07-19
243
글번호 120716
답변완료
문의
해외선물에서
2018년 동안
CME 크루드오일 8월물 일봉 종가와
ICE 브렌트오일 9월물 일봉종가와 차이(크루드오일 - 브렌트오일)를
선차트로 구현하는 식은 어떻게 하면 될까요?
초보라서 열심히 공부중인데 감이 안잡히네요^^
2018-07-18
259
글번호 120715