커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6138
글번호 230811
답변완료
문의드립니다.
안녕하십니까..
오일 23:30분 종가기준
+ 0.2에 매수
- 0.2에 매도 진입
+- 0.5에 익절 또는 손절코자 합니다.
익일 02:00에는 전량 청산코자 합니다.
늘 감사합니다...
2018-06-28
201
글번호 120140
답변완료
이평선 색상변화에 따른 신호발생
20일 이동평균선이 상승하면 적색, 하락하면 청색으로 색상이 변화되고 색상이 변화되는 지점에 매수(적색), 매도(청색) 신호가 발생되도록 수식를 만들어 주시기 부탁합니다. 수식은 이메일 jrpk 0153 @ daum.net 으로 보내주시기 부탁합니다.
2018-06-28
616
글번호 120139
답변완료
수식 요청드립니다.
수고 많으십니다.
시스템 수식 요청 드립니다.
<매수>
1. 20일선이 우상향
2. 캔들이 5일선 밑에서 시작
3. 시가 +1틱에서 진입
<매도>
1. 20일선이 우하향
2. 캔들이 5일선 위에서 시작
3. 시가 -1틱에서 진입
그리고 20일선 우상향할때 빨간색, 우하향할때 파란색으로 해주세요
그리고 매매 시간대는 16:00~02:00 으로 설정부탁드립니다.
감사합니다.
2018-06-28
243
글번호 120137
답변완료
함수요청
안녕하세요?
홍콩 항셍선물 5분봉으로 거래 중입니다.
거래 중에 진입 봉에서 청산이 되면 당일 매매는 중지하고자 합니다.
함수 수정요청드립니다.
감사합니다.
Vars : SP(0,data1), TickSize(0,data1);
Vars : fstHH(0,data1), fstLL(0,data1), sndHH(0,data2), sndLL(0,data2);
var : v1(0,data2),v2(0,data2);
SP = MarketPosition;
TickSize = PriceScale;
v1 = data2(H);
v2 = data2(L);
IF v1[10] > 0 Then
Begin
fstHH = data1(Highest(H, 5));
fstLL = data1(Lowest(L, 5));
sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]);
sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]);
End;
IF MarketPosition == 0 and data2(C) > sndHH[1] Then Buy("B", AtStop, fstHH - TickSize);
IF MarketPosition == 0 and data2(C) < sndLL[1] Then Sell("S", AtStop, fstLL - TickSize);
2018-06-28
225
글번호 120136
답변완료
옵션 만기일 스팟 청산로직 부탁드립니다.
옵션만기일에
계좌 잔고를 확인하여 취하고 있는 모든 포지션을
오후 15:18분에 모두 청산하는 스팟 수식 부탁드립니다.
감사합니다.
2018-06-28
243
글번호 120133
답변완료
지표식 부탁드립니다.
<아래>는 메타트레이더5에서 공개된 지표식인데, 예.트에 맞게 부탁드려도 될런지요?
아니면 제가 제대로 이해를 했는지는 모르겠습니다만, 이것이 의미하는
다음내용으로 작성 가능한지 검토부탁드립니다.
< 다음 >
-요청 지표식: 엔벨로프
-중심 이평선: 21일 지수이평선.
( 21일 수치는 외부변수값 P1으로 부탁드립니다.)
-엔벨로프 상하한선 : 60 일간의 종가를 95% 포함 가능하게 자동조절.
(60일 수치는 외부변수값 N으로 부탁드립니다.)
-엔벨로프 수정주기: 일봉기준은 1주일에 한번 수정.(주봉기준은 1달에 한번 수정)
<메타트레이더에 적용되는 지표식>
Elder Auto Envelopes - indicator for MetaTrader 5.
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
#property copyright "www.forex-tsd.com"
#property link "www.forex-tsd.com"
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_plots 4
#property indicator_label1 "Ema"
#property indicator_type1 DRAW_COLOR_LINE
#property indicator_color1 clrDeepSkyBlue,clrSandyBrown
#property indicator_width1 2
#property indicator_label2 "Fast ema"
#property indicator_type2 DRAW_LINE
#property indicator_color2 clrGray
#property indicator_label3 "Upper band"
#property indicator_type3 DRAW_LINE
#property indicator_style4 STYLE_DASHDOTDOT
#property indicator_color3 clrDimGray
#property indicator_label4 "Lower band"
#property indicator_type4 DRAW_LINE
#property indicator_style3 STYLE_DASHDOTDOT
#property indicator_color4 clrDimGray
//
//
//
//
//
enum enPrices
{
pr_close, // Close
pr_open, // Open
pr_high, // High
pr_low, // Low
pr_median, // Median
pr_typical, // Typical
pr_weighted, // Weighted
pr_haclose, // Heiken ashi close
pr_haopen , // Heiken ashi open
pr_hahigh, // Heiken ashi high
pr_halow, // Heiken ashi low
pr_hamedian, // Heiken ashi median
pr_hatypical, // Heiken ashi typical
pr_haweighted, // Heiken ashi weighted
pr_haaverage // Heiken ashi average
};
input int EmaPeriod = 21;
input int FastEmaPeriod = 13;
input enPrices Price = pr_close;
input double DeviationsFactor = 2.7; // Original was 2.7 best for stock markets
input int DeviationsPeriod = 100;
//
//
//
//
//
double slowEma[];
double slowEmaColor[];
double fastEma[];
double envelopeUp[];
double envelopeDn[];
//+------------------------------------------------------------------+
//| |
//|------------------------------------------------------------------|
//
//
//
//
//
int OnInit()
{
SetIndexBuffer(0,slowEma ,INDICATOR_DATA);
SetIndexBuffer(1,slowEmaColor,INDICATOR_COLOR_INDEX);
SetIndexBuffer(2,fastEma ,INDICATOR_DATA);
SetIndexBuffer(3,envelopeUp ,INDICATOR_DATA);
SetIndexBuffer(4,envelopeDn ,INDICATOR_DATA);
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//
double work[][2];
#define _percp 0
#define _devs 1
//
//
//
//
//
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime& time[],
const double& open[],
const double& high[],
const double& low[],
const double& close[],
const long& tick_volume[],
const long& volume[],
const int& spread[])
{
if (ArrayRange(work,0) != rates_total) ArrayResize(work,rates_total);
//
//
//
//
//
for (int i=(int)MathMax(prev_calculated-1,0); i<rates_total && !IsStopped(); i++)
{
double price = getPrice(Price,open,close,high,low,i,rates_total);
double ema = iEma(price,EmaPeriod,i,rates_total,0);
double bullp = MathAbs(high[i]-ema);
double bearp = MathAbs(low[i] -ema);
double maxp = MathMax(bullp,bearp);
work[i][_percp] = maxp/ema;
work[i][_devs] = work[(int)MathMax(i-1,0)][_devs];
//
//
//
//
//
MqlDateTime curTime,prevTime; TimeToStruct(time[i],curTime); TimeToStruct((int)MathMax(i-1,0),prevTime);
if (curTime.day_of_week<prevTime.day_of_week || _Period>PERIOD_W1)
{
double avg = 0;
double sum = 0;
for (int k=0; k<DeviationsPeriod && (i-k-1)>=0; k++) avg += work[i-k-1][_percp];
avg /= DeviationsPeriod;
for (int k=0; k<DeviationsPeriod && (i-k-1)>=0; k++) sum += (work[i-k-1][_percp]-avg)*(work[i-k-1][_percp]-avg);
//
//
//
//
//
work[i][_devs] = MathSqrt(sum/DeviationsPeriod);
}
//
//
//
//
//
slowEma[i] = ema;
envelopeUp[i] = ema*(1+(DeviationsFactor*work[i][_devs]));
envelopeDn[i] = ema*(1-(DeviationsFactor*work[i][_devs]));
if (FastEmaPeriod>0)
{
fastEma[i] = iEma(price,FastEmaPeriod,i,rates_total,1);
if (fastEma[i]>slowEma[i]) slowEmaColor[i] = 0;
if (fastEma[i]<slowEma[i]) slowEmaColor[i] = 1;
}
}
return(rates_total);
}
//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//
double workHa[][4];
double getPrice(enPrices price, const double& open[], const double& close[], const double& high[], const double& low[], int i, int bars)
{
//
//
//
//
//
if (price>=pr_haclose && price<=pr_haaverage)
{
if (ArrayRange(workHa,0)!= bars) ArrayResize(workHa,bars);
//
//
//
//
//
double haOpen;
if (i>0)
haOpen = (workHa[i-1][2] + workHa[i-1][3])/2.0;
else haOpen = open[i]+close[i];
double haClose = (open[i] + high[i] + low[i] + close[i]) / 4.0;
double haHigh = MathMax(high[i], MathMax(haOpen,haClose));
double haLow = MathMin(low[i] , MathMin(haOpen,haClose));
if(haOpen <haClose) { workHa[i][0] = haLow; workHa[i][1] = haHigh; }
else { workHa[i][0] = haHigh; workHa[i][1] = haLow; }
workHa[i][2] = haOpen;
workHa[i][3] = haClose;
//
//
//
//
//
switch (price)
{
case pr_haclose: return(haClose);
case pr_haopen: return(haOpen);
case pr_hahigh: return(haHigh);
case pr_halow: return(haLow);
case pr_hamedian: return((haHigh+haLow)/2.0);
case pr_hatypical: return((haHigh+haLow+haClose)/3.0);
case pr_haweighted: return((haHigh+haLow+haClose+haClose)/4.0);
case pr_haaverage: return((haHigh+haLow+haClose+haOpen)/4.0);
}
}
//
//
//
//
//
switch (price)
{
case pr_close: return(close[i]);
case pr_open: return(open[i]);
case pr_high: return(high[i]);
case pr_low: return(low[i]);
case pr_median: return((high[i]+low[i])/2.0);
case pr_typical: return((high[i]+low[i]+close[i])/3.0);
case pr_weighted: return((high[i]+low[i]+close[i]+close[i])/4.0);
}
return(0);
}
//
//
//
//
//
double workEma[][2];
double iEma(double price, double period, int r, int totalBars, int instanceNo=0)
{
if (ArrayRange(workEma,0)!= totalBars) ArrayResize(workEma,totalBars);
//
//
//
//
//
double alpha = 2.0 / (1.0+period);
if (r<1)
workEma[r][instanceNo] = price;
else workEma[r][instanceNo] = workEma[r-1][instanceNo]+alpha*(price-workEma[r-1][instanceNo]);
return(workEma[r][instanceNo]);
}
이상입니다.
2018-06-28
466
글번호 120126
답변완료
문위드립니다
20 이동 평균선 기준으로 매수,매도흫 하고싶습니다
보통은 종가위에 완성봉이면 바로 매수신호 뜨는데,,,
20이평 위에 완성봉기준으로 2개가 있을때 매수신호발생,,완성봉 기준으로 2개가
20이평 아래면 매도신호 발생
봉하나로 이평을 왓다갖다 계속신호가 나와서 그래요 ㅜㅜ
부탁드립니다
2018-06-28
210
글번호 120124
답변완료
추가부탁드립니다
58186번 2, 120일선추가 체크활수있게해주세요 잘 부탁드립니다
2018-06-28
193
글번호 120123
답변완료
포인트를 가격(원)으로 변경
아래 조건을 선물에 사용하고 있습니다.
주식선물에 사용할 수 있도록 단위를 가격(원)으로 변경바랍니다.
***************************************************************************
input : 손절(20),익절(20),TR(20),최소가격변화포인트(0.5), 봉갯수(50);
if MarketPosition == -1 then
{
ExitShort("sl1",AtStop,EntryPrice+PriceScale*손절);
ExitShort("sp1",AtLimit,EntryPrice-PriceScale*익절);
ExitShort("str1",AtStop,Lowest(l,BarsSinceEntry)+PriceScale*TR);
}
SetStopInactivity(최소가격변화포인트,봉갯수,PointStop);
2018-06-28
211
글번호 120122