커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7251
글번호 230811
답변완료
문의드립니다
1
기본식에서
피라미딩을 추가하고싶습니다
Var : cnt_total(0);
Var : Entrycnt(0);
Entrycnt = 0;
for cnt_total = 0 to 100
{ if sdate == EntryDate(cnt_total)
Then Entrycnt = Entrycnt+1;}
input : NN(2);
if MarketPosition == 0
and entrycnt < NN
and s1> 60
Then
buy("롱");
if MarketPosition == 0
and entrycnt < NN
and stok1< 40
Then
sell("숏");
if MarketPosition == 1
and S1 <= 50
Then
exitlong("롱청산");
if MarketPosition == -1
and S1 >= 50
Then
ExitShort("숏청산");
매수진입후 진입가 대비 N포인트 상승돌파하면 1계약추가진입
매도진입후 진입가 대비 N포인트 하락돌파하면 1계약추가진입
2
1번식은
1차트에 1시스템식을 적용하여 2계약을 운용하는것이라면
추가1계약을
다른차트에서 적용하고싶습니다
1번식 1차트 1계약
2번식 다른차트 1계약
2018-04-03
294
글번호 117908
답변완료
시스템 수식 문의드립니다....
수고가 많으시죠...
시스템식 문의 드립니다..
이평선 5일, 당일의 고가대비 40틱라인, 당일의 저가대비 40틱라인.
1 이평선5일이 당일의 고가40틱라인을 골든크로스에 매수 데드크로스에 매수청산
2 이평선5일이 당일의 저가40틱라인을 데드크로스에 매도 골든크로스에 매도청산
이상입니다...수고하세요..
2018-04-03
171
글번호 117907
답변완료
선 위치 문제
귀사 도움에 항상 감사합니다.
하기 수식을 적용하니 틱챠트 확대 및 축소시에 봉의 위치가 다르게 표현이 되어서 애로사항이 많습니다.Y축 봉의 위치가 고정이 되도록 해주세요.
첨부파일은 옵션 콜 같은 행사가 입니다
첨부파일 참조하여 확대 축소 할때 봉위치도 변동이 없도록 부탁드립니다,
input : Length(14);
var : TL(0),TH(0),cnt(0),Dcnt(0),preTRange(0),prePlusDM14(0),DMinus(0),MinusDM14(0),TRange1(0),preMinusDM14(0);
Var : Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0),Dplus(0),preADX(0);
Var : CummDMI(0), Return(0);
Array : HH[61](0),LL[61](0),CC[61](0),TR[61](0),DMIv[61](0),ADXv[61](0);
if bdate != bdate[1] Then{
Dcnt = Dcnt+1;
HH[0] = H;
LL[0] = L;
CC[0] = C;
preTRange = TRange[1];
prePlusDM14 = PlusDM14[1];
preMinusDM14 = MinusDM14[1];
for cnt = 1 to 60{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TR[cnt] = TR[cnt-1][1];
DMIv[cnt] = DMIv[cnt-1][1];
ADXv[cnt] = ADXv[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
if CC[1] > 0 Then{
If CC[1] > HH[0] then
TH = CC[1];
else
TH = HH[0];
If CC[1] < LL[0] then
TL = CC[1];
else
TL = LL[0];
TR[0] = TH-TL;
}
If Dcnt == Length+1 Then {
MyRange = Length;
DPlus = 0;
PlusDM14 = 0;
TRange = 0;
DMinus = 0;
MinusDM14 = 0;
TRange1 = 0;
For Counter = 0 To MyRange - 1 {
If HH[Counter] - HH[Counter+1] < 0 Then
PlusDM = 0 ;
Else
PlusDM = HH[Counter] - HH[Counter+1];
If LL[Counter+1] - LL[Counter] < 0 Then
MinusDM = 0;
Else
MinusDM = LL[Counter+1] - LL[Counter];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0;
TRange = TRange + TR[Counter];
PlusDM14 = PlusDM14 + PlusDM;
MinusDM14 = MinusDM14 + MinusDM;
}
If TRange <> 0 Then
DPlus = 100 * PlusDM14 / TRange;
Else
DPlus = 0 ;
If TRange <> 0 Then
DMinus = 100 * MinusDM14 / TRange;
Else
DMinus = 0;
If Dplus + Dminus == 0 Then
DMIv[0] = 0;
Else
DMIv[0] = 100 * AbsValue(Dplus - Dminus) / (Dplus + Dminus);
}
Else If Dcnt > Length+1 Then {
If HH[0] - HH[1] < 0 Then
PlusDM = 0;
Else
PlusDM = HH[0] - HH[1];
If LL[1] - LL[0] < 0 Then
MinusDM = 0;
Else
MinusDM = LL[1] - LL[0];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0 ;
If MyRange > 0 Then {
TRange = preTRange - (preTRange / MyRange) + TR[0];
PlusDM14 = prePlusDM14 - (prePlusDM14 / MyRange) + PlusDM;
MinusDM14 = preMinusDM14 - (preMinusDM14 / MyRange) + MinusDM;
}
If TRange <> 0 Then
DPlus = 100 * PlusDM14 / TRange;
Else
DPlus = 0 ;
If TRange <> 0 Then
DMinus = 100 * MinusDM14 / TRange;
Else
DMinus = 0;
If Dplus + Dminus == 0 Then
DMIv[0] = 0;
Else
DMIv[0] = 100 * AbsValue(Dplus - Dminus) / (Dplus + Dminus);
}
If DMIV[Length] == 0 Then{
CummDMI = 0;
for Counter = 0 To Length-1 Begin
if DMiV[counter] > 0 Then
CummDMI = CummDMI + DMIV[Counter];
End;
ADXv[0] = CummDMI / CurrentBar;
}
Else
ADXv[0] = (ADXv[1] * (Length - 1) + DMIv[0]) / Length;
plot1(ADXv[0]);
plot2(DPlus);
plot3(DMinus);
PlotBaseLine1(3,"매수세력선");
PlotBaseLine2(2,"기준선");
PlotBaseLine3(1,"매도세력선");
2018-04-03
325
글번호 117906
답변완료
예스글로벌 종목들 갯수세기
안녕하세요.
예스글로벌에서
20개로 화면을 분할한 후
20개의 해외선물종목들을 늘어놓은후(예: 나스닥, 원유, 닥스,,,등)
이들 20개 종목중
5일선이 20일선보다 높은 종목들의 갯수(예:20개중 7개 등)
실시간으로 볼수 있도록 하는
기능/방법이 있는지 여쭤봅니다.
감사합니다.
2018-04-03
177
글번호 117905
답변완료
수식작성문의
안녕하세요
옵션이 장중에 시초가보다 0.25 상승시 매수 0.50상승시 또매수 이렇게 계속 매수하고
장중에 시초가 보다 0.25 하락시 매도 0.50 하락시 또매도
이렇게 하루에 누적으로 15개 까지 매수/매도 하는 수식 부탁드립니다
2018-04-03
163
글번호 117904
Dopdop 님에 의해서 삭제되었습니다.
2018-04-03
5
글번호 117900
답변완료
종목 검색식 부탁드립니다.
DMI지표식으로 다음과 같은 종목검색식 부탁드립니다.
1) PDI>MDI
2) ADX: 20이상에서 우상향
3) DMI: 30 이상에서 하락하다가 상승반전
미리 감사드립니다.
2018-04-03
317
글번호 117897
답변완료
문의드립니다.
매번 감사합니다.
1. 기타
코딩 변환 부탁드립니다. 쓰기금지어 인서트는 한글로 바꿨습니다.
inputs:
OverNightStartTime( 0 ),
OverNightEndTime( 830 ),
BreakoutStartTime( 830 ),
BreakoutEndTime( 930 ),
NoEntriesAfterTime( 1400 ),
VolumeAvgLength( 5 ),
VolRatioUP( 1 ) ;
variables:
double OverNightTotalVolume( 0 ),
double OverNightVolumeAverage( 0 ),
double FirstHourHigh( 0 ),
double FirstHourLow( 0 ),
bool OverNightVolTime( false ),
bool BreakoutRangeTime( false ),
vector OverNightVolume( null ) ; ;
once
begin
OverNightVolume = new vector ;
end ;
OverNightVolTime = ( OverNightStartTime
< OverNightEndTime and
Time >= OverNightStartTime and
Time <= OverNightEndTime ) or
( OverNightStartTime >
OverNightEndTime and
( Time >= OverNightStartTime or
Time <= OverNightEndTime ) ) ;
if not OverNightVolTime[1]
and OverNightVolTime then
begin
OverNightTotalVolume = ticks ;
end
else if OverNightVolTime then
begin
OverNightTotalVolume += ticks ;
end ;
if Time[1] < OverNightEndTime
and Time >= OverNightEndTime
and BarStatus( DataNum + 1 ) = 2
then
begin
if OverNightVolume.Count
>= VolumeAvgLength then
OverNightVolumeAverage =
Average( OverNightVolume,
VolumeAvgLength )
* VolRatioUP ;
OverNightVolume.인설트( 0,
OverNightTotalVolume astype double ) ;
end ;
BreakoutRangeTime = Time
>= BreakoutStartTime and
Time <= BreakoutEndTime ;
if not BreakoutRangeTime[1]
and BreakoutRangeTime then
begin
FirstHourHigh = High ;
FirstHourLow = Low ;
end
else if BreakoutRangeTime then
begin
FirstHourHigh =
MaxList( High, FirstHourHigh ) ;
FirstHourLow =
MinList( Low, FirstHourLow ) ;
end ;
if OverNightTotalVolume >
OverNightVolumeAverage and
Time >= BreakOutEndTime and
Time<= NoEntriesAfterTime and
MarketPosition = 0 then
begin
Buy next bar at
FirstHourHigh Stop ;
SellShort next bar at
FirstHourLow Stop ;
end ;
SetExitOnClose ;
Indicator: Cumulative Overnight Volume
// Cumulative Volume Indicator
// TASC JUN 2017
// Daytrading With Night Volume
// Domenico D’Errico
using elsystem ;
using elsystem.collections ;
inputs:
OverNightStartTime( 0 ),
OverNightEndTime( 830 ),
VolumeAvgLength( 5 ),
VolRatioUP( 1 ) ;
variables:
double OverNightTotalVolume( 0 ),
double OverNightVolumeAverage( 0 ),
double FirstHourHigh( 0 ),
double FirstHourLow( 0 ),
bool OverNightVolTime( false ),
bool BreakoutRangeTime( false ),
vector OverNightVolume( null ) ; ;
once
begin
OverNightVolume = new vector ;
end ;
OverNightVolTime = ( OverNightStartTime
< OverNightEndTime and
Time >= OverNightStartTime and
Time <= OverNightEndTime ) or
( OverNightStartTime >
OverNightEndTime and
( Time >= OverNightStartTime or
Time <= OverNightEndTime ) ) ;
if not OverNightVolTime[1]
and OverNightVolTime then
begin
OverNightTotalVolume = ticks ;
end
else if OverNightVolTime then
begin
OverNightTotalVolume += ticks ;
end ;
if Time[1] < OverNightEndTime
and Time >= OverNightEndTime
and BarStatus( DataNum + 1 ) = 2
then
begin
if OverNightVolume.Count
>= VolumeAvgLength then
OverNightVolumeAverage =
Average( OverNightVolume,
VolumeAvgLength )
* VolRatioUP ;
OverNightVolume.인서트( 0,
OverNightTotalVolume astype double ) ;
end ;
if OverNightVolTime then
Plot1( OverNightTotalVolume ) ;
if OverNightTotalVolume
> OverNightVolumeAverage then
SetPlotColor( 1 , Yellow ) ;
Plot2( OverNightVolumeAverage ) ;
2018-04-03
464
글번호 117895
답변완료
수식 문의합니다
안녕하세요
종목검색 수식 문의합니다
주봉캔들 기준
양봉 캔들의 종가가 11일이평선을 상승 돌파 하고,
20일 거래량 이동평균 대비 거래량이 150% 변동률이 발생하고,
7일-9일-13일 이평선이 정배열이고,
위 조건을 만족하는 날이 현재봉 기준 4일전 봉내에서 1회이상 있었으며,
현재가가 7일 이평값 이하 일때
만족하는 종목을 검색하고 싶습니다
수고하세요
2018-04-03
320
글번호 117894