커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4366
글번호 230811
답변완료
수식작성문의
안녕하세요
옵션이 장중에 시초가보다 0.25 상승시 매수 0.50상승시 또매수 이렇게 계속 매수하고
장중에 시초가 보다 0.25 하락시 매도 0.50 하락시 또매도
이렇게 하루에 누적으로 15개 까지 매수/매도 하는 수식 부탁드립니다
2018-04-03
136
글번호 117904
Dopdop 님에 의해서 삭제되었습니다.
2018-04-03
5
글번호 117900
답변완료
종목 검색식 부탁드립니다.
DMI지표식으로 다음과 같은 종목검색식 부탁드립니다.
1) PDI>MDI
2) ADX: 20이상에서 우상향
3) DMI: 30 이상에서 하락하다가 상승반전
미리 감사드립니다.
2018-04-03
275
글번호 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
327
글번호 117895
답변완료
수식 문의합니다
안녕하세요
종목검색 수식 문의합니다
주봉캔들 기준
양봉 캔들의 종가가 11일이평선을 상승 돌파 하고,
20일 거래량 이동평균 대비 거래량이 150% 변동률이 발생하고,
7일-9일-13일 이평선이 정배열이고,
위 조건을 만족하는 날이 현재봉 기준 4일전 봉내에서 1회이상 있었으며,
현재가가 7일 이평값 이하 일때
만족하는 종목을 검색하고 싶습니다
수고하세요
2018-04-03
285
글번호 117894
답변완료
수식부탁드립니다
아래 파동선에서 고점과 고점, 저점과 저점을 연결하는 추세선을 넣고 싶습니다.
그리고 가능하다면 최대 3개까지 지난 추세선을 Plot으로 표시하고싶습니다.
항상 감사합니다
Var : length(0);
length= 24;
Var : j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0);
var : TL1(0),TL2(0),T(0),Text1(0),처리구분("");
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 0, 0);
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2));
Text_SetStyle(Text1, 2, 0);#(Text1, 2, 0);
}
}
if 처리구분 == "고점처리" Then TL_SetColor(TL1,RED);
if 처리구분 == "저점처리" Then TL_SetColor(TL1,blue);
TL_SetSize(TL1,3);
If 처리구분 == "고점처리" Then T = 1;
If 처리구분 == "저점처리" Then T = -1;
//////////////////////////////////////////////////////////////////////////////////////
2018-04-03
273
글번호 117890
답변완료
수식 문의합니다
안녕하세요
시스템 신호 수식 문의합니다
주봉캔들 기준
양봉 캔들의 종가가 11일이평선을 상승 돌파 하고,
20일 거래량 이동평균 대비 거래량이 150% 변동률이 발생하고,
7일-9일-13일 이평선이 정배열이,
위 조건을 만족하는 날이 현재봉 기준 4일전 봉내에서 1회이상 있었으면
7일 이평값에서 30% 매수
9일 이평값에서 30% 매수
11일 이평값에서 40% 매수
청산주문
1차....10% 수익시....50% 청산
2차....20% 수익시....30% 청산
3차....30% 수익시... 20% 청산
단, 상승돌파 캔들 다음 봉부터 4번째 봉까지만 매수진입을 허용하고,
5번째 봉부터는 정배열이라 할지라도 진입하지 않는다.
재 진입은 위 조건들을 다시 만족하면 허용한다
수고하세요
2018-04-03
306
글번호 117887
답변완료
지표 변환 문의 드립니다
아래는 Meta Trader 4라는 프로그램의 지표인데요 예스스탁 사용자 지표로의 변환이 가능할런지요?
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Aqua
#property indicator_color2 Red
#property indicator_color3 Red
#property indicator_color4 Yellow
#property indicator_levelcolor SlateGray
#property indicator_level1 0
#property indicator_level2 0
//----
extern int period=9;
extern int shift=0;
extern int method=0;
extern int price=0;
extern double deviation=1.5;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexStyle(3,DRAW_LINE);
SetIndexBuffer(3,ExtMapBuffer4);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit, counted_bars=IndicatorCounted();
double ima, std;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0; i<limit; i++)
{
ima=iMA(NULL,0,period,shift,method,price,i);
std=deviation*iStdDev(NULL,0,period,shift,method,price,i);
ExtMapBuffer1[i]=0;
ExtMapBuffer2[i]=std;
ExtMapBuffer3[i]=-std;
ExtMapBuffer4[i]=Close[i]-ima;
}
//----
return(0);
}
//+------------------------------------------------------------------+
2018-04-03
320
글번호 117883
답변완료
변수조절
아래 수식에 대해
진입가격 제한 수식과 거래횟수 조절 수식을 추가해주시고 input에 반영해주십시요
input : 최대(320), 최소(300),거래횟수(1)
- 진입시 320 초과 진입중지
- 진입시 300 미만 진입중지
- 거래횟수 조절
항상 고맙습니다.
***************************************************************
input: 진입(092700);
if date != date[1] then {
var1 = 0;
var2 = 0;
}
#장시작후 9시 27분 까지
if stime < 진입 then
{
#양봉갯수
if C > O then
var1 = var1 + 1;
#음봉갯수
if C < O then
var2 = var2 + 1;
}
#9시27분봉에 양봉갯수가 음봉갯수보다 많으면 매수
if (stime >= 진입 and stime[1] < 진입) and var1 > var2 then
buy();
#9시27분봉에 음봉갯수가 영봉갯수보다 많으면 매도
if (stime >= 진입 and stime[1] < 진입) and var1 < var2 then
sell();
2018-04-03
279
글번호 117881