커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6399
글번호 230811
답변완료
수고많으십니다. 수식작성 검토 부탁드립니다.
수고 많으십니다.
예스트레이더에서 수식작성시 CrossUp을 사용하여 수식을 작성한적이 있는데
예스스팟에서도 아래와 같이 수식작성하면 되는지 궁금합니다.
//포지션이 0이고 단기지표(woo)보다 장기지표(woo1)가 크고 현재가격이 장기지표를
crossUp 할때 매수주문
if (vo1 == 0 && woo < woo1) && (Crossup(MarketData1.current , woo1 ))
{
ID7 = Account1.OrderBuy(MarketData1.code,1 , 0, 1);
}
좋은 하루되세요
감사합니다.
2023-11-01
891
글번호 173631
답변완료
문의드립니다
수고하십니다.
참조봉 macd 오실레이터데드크로스 발생하고난 후
3시5분 매수식 부탁드립니다.
감사합니다
2023-11-01
741
글번호 173629
답변완료
분할매수 문의
안녕하세요 국내주식을 하고 잇구요
문의를 드립니다 (봉은 일봉입니다)
**아래와 같은 식에서 5프로 하강시마다 1개씩 매수를 해서, 10프로 익절시 매도하는데요
질문 1. 금일 1개를 매수하면 시스템상으로( 10프로상승시) 내일 매도를 하는데요. 금일 매수후( 10프로상승시) 금일 매도는안되는지?
질문 2. 만약 금일 1개를 매수한게 다음날 시작가가 20프로가 상승이 되어 잇다면, 그 가격에 익절이 되는가요 아님 10프로만큼만 익절이 되는지요?
부탁드립니다
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
P = LatestEntryPrice(0);
E = E+1;
}
if E < 11 Then
Buy("bb",AtLimit,P*0.95,E);
}
if MarketPosition == 0 Then
ExitLong(" 청산 ",AtLimit,AvgEntryPrice*1.1);
2023-11-01
1093
글번호 173627
답변완료
겹치는 일봉캔들
일봉캔들이 n일동안 겹치는 가격이 생길때를 1로하는 수식
겹치는 가격(시가, 종가)
3일이 겹치면 1
4일이 겹치면 2
5일이 겹치면 3 이런식으로...
기간은 수정할수 있게 n일로 수식 부탁합니다
2023-11-01
984
글번호 173623
답변완료
재문의 드립니다.
당일 발생되는 양봉중, 거래량이 1000 이상이면서, 당일 양봉거래량의 고점을 갱신할것.
동시에 고점 거래량봉은 1봉전 봉대비 2분 이내에 발생된 봉일것.
============================================================================
랭귀지에서 시간은 봉완성 기준으로만 체크가 됩니다.
현재봉 미완성시에 한봉전 대비 2분이내는 거래량 갱신을 체크할수는 없습니다.
if Bdate != Bdate[1] Then
{
var1 = 0;
Var2 = 0;
}
if C > O and V > var1 Then
{
var1 = V;
if Bdate == Bdate[1] and var1[1] > 0 and v > 1000 Then
Var2 =c;
}
if Var2 > 0 Then
Plot1(Var2);
즐거운 하루되세요
=============================================================================
1봉전 봉대비 2분 이내에 발생된 봉의 거래량 갱신은 체크 할 수 없다고 하셨는데요,
VI로 갱신된 거래량은 왜곡이 발생되서,
VI로 생긴 거래량 고점갱신을 피하기 위해 2분 이내로 한것인데요,
그렇다면 위의 조건에 더해서 VI로 생긴 거래량 고점갱신은 고점갱신에 포함되지 않게 지표를 작성하려면 어떻게 해야 할까요?
감사합니다.
2023-11-01
1191
글번호 173613
답변완료
문의드립니다
수고가 많으십니다
참조봉 macd 오실레이터 골든시
본주3시5분 매수식 부탁드립니다.
감사합니다
2023-11-01
912
글번호 173610
답변완료
부틱드립니다
수고하십니다
아래수식은 RSI 다이버전스 수식같으데요 분봉에적응해보면 그림처럼 2번타원형에 선이 나타나는데
1번타원형에는 선이나타나지않는이유? 수식변경과 주석좀 달아주시면 감사히겠습니다
INPUT : RsiPeriod(13),PLPeriod(2),TSLPeriod(7), BandPeriod(34), 표준편차(1.6185);
var :RSIV(0), RSIPL(0), TSL(0), MidBand(0), UpBand(0),DnBand(0) ;
var : TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0);
var : TXi1(0),TXi2(0),TXi3(0),TXi4(0);
RSIV = RSI(RSIPeriod);
RSIPL = ma(RSIV,PLPeriod);
TSL = ma(RSIV,TSLPeriod);
MidBand = ma(RSIV,BandPeriod);
UpBand = MidBand + (표준편차 * std(RSIV, BandPeriod));
DnBand = MidBand - (표준편차 * std(RSIV, BandPeriod));
#
if RSIPL > RSIPL[1] and RSIPL[1] < RSIPL[2] and RSIPL < 50 then
{
var1 = RSIPL[1];
var2 = var1[1];
var3 = L[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 then
var9 = 1;
}
else
var9 = 0;
if var9 == 1 then
{
TL1 = TL_New(var6,var8,var4,var5,var7,var3);
TL_SetSize(TL1, 5);
TL_SetColor(TL1, Black);
TLi1= TL_New_self(var6,var8,var2,var5,var7,var1);
TL_SetSize(TLi1, 5);
TL_SetColor(TLi1, Red);
TX1 = Text_new(var5, var7, L, "★");
Text_SetColor(Tx1,DarkRed);
Text_SetStyle(Tx1,0,0);
TXi1 = Text_New_Self(var5, var7, var1, "★");
Text_SetColor(Txi1,DarkRed);
Text_SetStyle(Txi1,0,0);
}
if CrossUp(RSIPL, DnBand) then
{
TX3 = Text_new(sdate, stime, L, "▲");
Text_SetColor(Tx3,DarkRed);
Text_SetStyle(Tx3,2,0);
TXi3 = Text_New_Self(sdate, stime, RSIPL, "▲");
Text_SetColor(Txi3,DarkRed);
Text_SetStyle(Txi3,2,0);
}
if RSIPL < RSIPL[1] and RSIPL[1] > RSIPL[2] and RSIPL > 50 then
{
var11 = RSIPL[1];
var12 = var11[1];
var13 = H[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 then
var19 = 1;
}
else
var19 = 0;
if var19 == 1 then
{
TL2 = TL_New(var16,var18,var14,var15,var17,var13);
TL_SetSize(TL2, 5);
TL_SetColor(TL2, blue);
TLi2= TL_New_self(var16,var18,var12,var15,var17,var11);
TL_SetSize(TLi2, 3);
TL_SetColor(TLi2, blue);
TX2 = Text_new(var15, var17, H, "★");
Text_SetColor(Tx2,Black);
Text_SetStyle(Tx2,0,1);
TXi2 = Text_New_Self(var15, var17, var11, "★");
Text_SetColor(Txi2,Black);
Text_SetStyle(Txi2,0,1);
}
if CrossDown(RSIPL, UpBand) then
{
TX4 = Text_new(sdate, stime, H, "▼");
Text_SetColor(Tx4,Rgb(0,255,0));
Text_SetStyle(Tx4,2,1);
TXi4 = Text_New_Self(sdate, stime, RSIPL, "▼");
Text_SetColor(Txi4,Rgb(0,255,0));
Text_SetStyle(Txi4,2,1);
}
#
plot1(RSIPL, "RSIPL",Lgreen,def,2);
plot2(TSL,"TSL",DarkRed,def,1);
plot3(MidBand,"MidBand",Yellow,def,1);
plot4(UpBand,"UpBand",White,def,0);
plot5(DnBand,"DnBand",White,def,0);
if CrossUp(RSIPL,DnBand) then
plot6(RSIPL, "상향돌파시점");
if CrossDown(RSIPL, UpBand) then
plot7(RSIPL, "하향이탈시점");
if var9 == 1 then
plot8(RSIPL, "상승다이버전스");
if var19 == 1 then
plot9(RSIPL, "하락다이저번스");
2023-11-01
1233
글번호 173606
답변완료
문의 드립니다
종가가 stocastic slow 50 이하 수식 문의 드립니다.
다른 수식에 포함시킬 때 기존 수식의 input이나 var에 상관없이 중간에 붙여넣기하면 되는 지 알고 싶습니다.
2023-11-01
1101
글번호 173600
답변완료
하이킨아시 전환
input : MaPeriod(2),MaPeriod2(1);
var : maOpen(0),maClose(0),maLow(0),maHigh(0);
var : haOpen(0),haClose(0),haLow(0),haHigh(0);
var : ExtMapBuffer1(0),ExtMapBuffer2(0),ExtMapBuffer3(0),ExtMapBuffer4(0);
var : ExtMapBuffer5(0),ExtMapBuffer6(0),ExtMapBuffer7(0),ExtMapBuffer8(0);
var : r(0),g(0),b(0), TL(0);
if Index == 0 Then
{
maOpen=Open;
maClose=Close;
maLow=Low;
maHigh=High;
}
Else
{
maOpen=(maOpen[1]*(MAperiod-1)+Open)/MAPeriod;
maClose=(maClose[1]*(MAperiod-1)+Close)/MAPeriod;
maLow=(maLow[1]*(MAperiod-1)+Low)/MAPeriod;
maHigh=(maHigh[1]*(MAperiod-1)+High)/MAPeriod;
haOpen=(ExtMapBuffer5[1]+ExtMapBuffer6[1])/2;
haClose=(maOpen+maHigh+maLow+maClose)/4;
haHigh=Max(maHigh, Max(haOpen, haClose));
haLow=Min(maLow, Min(haOpen, haClose));
if (haOpen<haClose) then
{
r=255;
g=10;
b=0;
ExtMapBuffer7=haLow;
ExtMapBuffer8=haHigh;
}
else
{
r=0;
g=191;
b=255;
ExtMapBuffer7=haHigh;
ExtMapBuffer8=haLow;
}
ExtMapBuffer5=haOpen;
ExtMapBuffer6=haClose;
ExtMapBuffer1=WMA(ExtMapBuffer7,MAperiod2);
ExtMapBuffer2=WMA(ExtMapBuffer8,MAperiod2);
ExtMapBuffer3=WMA(ExtMapBuffer5,MAperiod2);
ExtMapBuffer4=WMA(ExtMapBuffer6,MAperiod2);
}
PlotPaintBar(ExtMapBuffer2,ExtMapBuffer1,ExtMapBuffer3,ExtMapBuffer4,"강조",Rgb(r,g,b));
양전환되면 봉 하단에 네모, 음전환되면 봉 상단에 네모 표시, 추가 부탁드립니다.
2023-11-01
1094
글번호 173589