커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6377
글번호 230811
답변완료
순매수/순매도 체결량 지표 문의
순매수/순매도 체결량 관련 지표수식 입니다.국내 선물과 주식 차트에서는 구현이 되는것 같은데 해외선물(나스닥 등)에서는 구현이 안됩니다. 방법이 있을까요?
//upvol"상승형 체결거래량";
//DownVol"하락형 체결거래량"
input: 막대굵기(1);
var: sumPL(0);
if sdate!=sdate[1]Then
{
sumPL = 0;
}
else
{
sumPL = sumPL + (upvol-downVol);
If sumPL>0 Then
Plot1(sumPL,"순매수체결량",RGB(255,0,0),def,막대굵기);
Else
Plot1(sumPL,"순매수체결량",RGB(0,0,255),def,막대굵기);
}
plotBaseLine1(0,"기준선0");
2023-07-16
1538
글번호 170640
답변완료
문장 좀 추가 부탁 드립니다.
* 편안하고 무탈한 한주 되십시요.
* 아래 수식에서 문장좀 요청 드립니다.
* 너무 잦은 매매신호가 발생합니다.
## <아래문장>
Input : Period1(4), Period2(10);
Input : hh(10), gg(10);
var : Sma1(0),Sma2(0);
Sma1 = ma(C,Period1);
Sma2 = ma(C,Period2);
Plot1(Sma1, "이동평균1");
Plot2(Sma2, "이동평균2");
if CrossUp(Sma1,Sma2)
<조건추가>
10봉안에 CrossDown 이든 CrossUp 이든 신호가 있으면
직전 가격 보다 10틱 이상 차이가 안나면 신호 무시
Then VAR = C ;
즉 10봉(변수: hh(10)) 안에 CrossDown 또는 CrossUp 신호가 있으면
직전 신호 가격(C) 보다 10틱(변수: gg(10)) 보다 작으면 신호 무시
아니면 신호 발생
* 늘 고맙 습니다. 수고하십시요.
2023-07-17
1199
글번호 170639
요타 님에 의해서 삭제되었습니다.
2023-07-15
0
글번호 170638
답변완료
수평선이 나오지를 않아요.
안녕하세요?
Data2에 대한 수식으로 변경해 보았는데 data1에서와 같이 수평선이 제대로 나오지를 않네요.
수정 좀 부탁드립니다.
var : J1(0,Data2),J2(0,Data2),J3(0,Data2),J4(0,Data2),TL1(0),선두께(0);
var : V1(0,Data2),V2(0,Data2);
var : tx1(0,Data2),tx2(0,Data2);
J1=ma(Data2(V),240)/ma(Data2(V),60)/100;
J2=ma(Data2(V),60)/ma(Data2(V),240)/100;
J3=ma(Data2(V),60)/ma(Data2(V),20)/100;
J4=ma(Data2(V),20)/ma(Data2(V),60)/100;
If CrossUp(J1,J2) Then
{
V1 = Data2(C);
tx1 = Text_New_Self(Data2(sDate),Data2(sTime),v1,NumToStr(v1,2));
Text_SetStyle(tx1,0,2);
PlaySound("C:₩EugeneYesTrader₩Bin10₩data₩Sound₩@거래량이평선교차진입.wav");
}
If CrossDown(J1,J2) Then
{
V2 = Data2(C);
tx2 = Text_New_Self(Data2(sDate),Data2(sTime),v2,NumToStr(v2,2));
Text_SetStyle(tx2,0,2);
PlaySound("C:₩EugeneYesTrader₩Bin10₩data₩Sound₩@거래량이평선교차진입.wav");
}
if v1 > 0 Then
Plot1(v1,"상향돌파",RgB(128,0,0));
if v2 > 0 Then
Plot2(v2,"하향이탈",LBluE);
Text_SetLocation(tx1,Data2(NextBarSdate),Data2(NextBarStime),v1);
Text_SetLocation(tx2,Data2(NextBarSdate),Data2(NextBarStime),v2);
2023-07-15
1318
글번호 170637
답변완료
문의드립니다
안녕하세요
종목검색기 관련하여 문의드립니다
만약 일봉에서 만든 종목검색식을 분봉에서 적용하려면 수식 수정없이 그냥 분봉 (해당주기, 3분봉이나 5분봉,15분봉으로) 주기만 바꿔주면 되나요? (유첨 이미지 처럼)
수식의 일부를 변경하거나 기타 다른 설정을 수정하지 않아도 되나요? 주의할 사항등이 있다면 좀 알려주세요.. 수고하세요
2023-07-15
1514
글번호 170636
답변완료
추가식
Inputs : Period(20), Sence(1.5), CC_DN(Yellow);
input : BBP(20),dv(2);
Vars:
VLineUp(0),
VLineDn(0),
HHighest(0),
LLowest(0),
JustChanged(FALSE),
VLine(0), DBN(0);
Array:
Highs[35](0),
Lows[35](0),
RRange[35](0),
UpWave[1](FALSE),
DnWave[1](FALSE);
var :T(0);
var : BBup(0),BBmd(0),BBdn(0);
If STime == 180000 Then
DBN = 0;
DBN = DBN + 1;
Var1 = Period;
Var2 = Var1 - 1;
Var3 = Var1 - 2;
Var5 = Sence;
Var6 = H-L;
JustChanged = FALSE;
if CurrentBar <= Var2 then begin
Highs[CurrentBar] = Close;
Lows[CurrentBar] = Close;
RRange[CurrentBar] = (H-L) /2;
end;
if CurrentBar == Var1 then begin
if Highs[Var2] >= Highs[Var3] then begin
UpWave[1] = TRUE;
HHighest = Highs[Var2];
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
#Plot1(VLineUp,"VLineUp");
end;
if Highs[Var2] < Highs[Var3] then begin
DnWave[1] = TRUE;
LLowest = Lows[Var2];
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
#Plot2(VLineDn,"VLineDn");
end;
end;
if CurrentBar > Var1 then begin
if DnWave[1] and Close > VLineDn then begin
DnWave[1] = FALSE;
UpWave[1] = TRUE;
JustChanged = TRUE;
HHighest = Close;
LLowest = 0;
end;
if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin
UpWave[1] = FALSE;
DnWave[1] = TRUE;
JustChanged = TRUE;
LLowest = Close;
HHighest = 0;
end;
if JustChanged == FALSE then begin
if Close > HHighest then
HHighest = Close;
else if Close < LLowest then
LLowest = Close;
end;
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
if UpWave[1] then T =1;#Plot1(VLineUp,"VLineUp", Red);
else if DnWave[1] then T = -1;#Plot1(VLineDn,"VLineUp", CC_DN);
end;
if T == 1 and T[1] != 1 Then
Buy();
if MarketPosition == 1 Then
{
if T == -1 Then
ExitLong();
if CrossDown(C,bbmd) and C < O Then
ExitLong();
}
if T == -1 and T[1] != -1 Then
sell();
안녕하세요
위식에 macd 추가해 주세요
macd 추가
macd + 매수
macd _ 매도
2023-07-15
1843
글번호 170635
답변완료
문의드립니다
input : short1(0),long1(0),sig1(0)
input : evPeriod(0),Per(0)
.
.
.
var : evup(0),evdn(0)
.
.
.
evup = EnvelopeUp(evPeriod,Per)
evdn = EnvelopeDown(evPeriod,Per)
if MarketPosition <= 0 and CrossUp(macdv1,0) Then
{
Buy("b");
}
If CrossDown(macdv1, 0) Then
{
ExitLong("s");
}
if MarketPosition == 1 Then
{
if macdv1 < 0 Then
{
ExitLong("E4",AtLimit,evup*0);
}
}
if MarketPosition == 0 and CountIf(macdv1<0,BarsSinceExit(1)) < 1 Then
{
if IsExitName("E4",1) == true Then
Buy("b4",AtLimit,ExitPrice(1)*0);
}
1. CrossUp(macdv1,0) 매수하여 엔벨로프 상단을 돌파하면 매도하는 수식에 중점을 둔 식입니다. 반대로 CrossDown(macdv1, 0) 이후 엔벨로프 하단을 돌파하면 매수하는 수식을 추가하고 싶어서요.
예) 주가가 엔벨로프 하단을 돌파하고 -20%일때 매수
매수이후 {if IsExitName("E4",1) == true Then Buy("b4",AtLimit,ExitPrice(1)*0)} 식처
럼 지정한 이름이 "00"로 끝날시 매수값에서 +30%에 매도
2. MarketPosition <= 0, MarketPosition == 1, MarketPosition == 0 이 친구들이 하는 역활이 무엇인가요? 카운터를 위해 지정하주는 수식인가요? 설명 좀 부탁 드리겠습니다.
감사합니다.
2023-07-16
1382
글번호 170634
답변완료
5일 이평선 매수 청산
안녕하세요.
아래 수식에서
5일 이평선값 위에서는 임의의 조건 수식(A) 에 의해 매수진입과 매수청산만 하고
5일 이평선값 아래에서는 임의의 조건 수식(B) 에 의해 매도진입과 매도청산만 하는
조건식 부탁드립니다.
If LemaV > LemaV[1] and LmacdOsc > LmacdOsc[1] then {
if emaV > emaV[1] and macdOsc > MacdOsc[1] Then
Buy("123");
}
if MP == 1 and MP[1] <> 1 then Begin
StopPrice = high - ma(range,100)*mult;
end;
If MP == 1 then begin
Sell ("456",AtStop,stopprice + 1 );
2023-07-15
1280
글번호 170633
답변완료
문의 드립니다!
안녕하세요!
아래 수식은 당일 시초부터 종가까지 계속 누적된 자료가 출력되는걸로 알고있는데요
이 수식을 다음과같이 수정 부탁드립니다
1, 당일 시초 시작이후 30분단위로 끊어서 그때마다 다시 처음부터 누적된 자료로 출력
즉, 1) 09시에 시작된후 09시 30분까지 누적자료 출력후,
2) 09시 30분 현재의 가격(data2-data3)를 기준으로해서 다시 새롭게 09시 30분부터 10시 00분까지의
누적자료 출력
3) 이런과정이 종가까지 30분마다 반복
2, 아래 수식의 지표를 선으로 나타낼때 선의 진행방향에 따라 선의 색상을 다른색으로 표현
즉, 상방일때는 빨강, 하방일때는 파랑색으로 표시
감사합니다!
-------------------------------------------------------------------------------
input : ndate(20230101);
var : sum(0,Data1),cond(False,Data1);
if data1(sDate >= ndate) Then
Cond = true;
if Cond == true Then
{
sum = sum+(Data2(c) - data3(c))/100;
if sum > 0 Then
plot1(sum,"1",magenta);
Else
plot1(sum,"1",magenta);
}
2023-07-15
1087
글번호 170632