커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3233
글번호 230811
답변완료
물타기 계산기 지표
감사합니다
수수료와 거래세를 포함한 물타기 계산기 지표 부탁드립니다.
예) 1차매수 3만, 2차매수 2만5천이라면
수수료와 거래세를 포함한 평균단가, 장부가, 손익단가, 손익률을 구하는 지표를 만들고 싶습니다
#수식 주석도 첨부 부탁드립니다
2024-05-02
896
글번호 179096
답변완료
CCI과매도 과매수 시스템식의 수정 부탁드립니다.
CCI과매도 과매수 시스템식입니다.
Input : Period(9);
Var : value(0);
value = CCI(Period);
# 매수/매도청산
If CrossUp(value,-100) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value,100) Then
{
Sell();
}
위의 식에서 매수는 09시 15분 ~ 12시20분까지만 하고,
매도는 금일 15시 30분까지 무조건 모두 청산하는 식을 알고 싶습니다.
2024-05-02
787
글번호 179095
답변완료
문의드립니다.
늘 고맙습니다.
복많이 받으실겁니다.
1. 위에 그림은 좌측 노란색에서 진입이 됐는데 우측상단 노란색에서 청산이 됐습니다.
# 의도했던 로직은 동그라미 부분에서 청산이었습니다.
# 며칠전 가르쳐주신 문장을 다시 적고 해석을 해보겠습니다. 오류수정 부탁드립니다.
# 아직 적어주신 문장도 해석능력이 부족합니다. 이해 부탁드립니다. 주석을 달아주시면 더욱 좋겠습니다.
if MarketPosition == 1 Then
{ #1 진입후 100캔들의 고점을 돌파했다면 Condition1에 참을 할당하고 var1에 진입이후 경과된 봉갯수 할당
if H > highest(H,100)[1] Then
{
Condition1 = true;
var1 = BarsSinceEntry;
}
#1이 참이고 60이평 이탈시 청산. *** 고점 돌파후 60이평 데드면 청산. 동그라미 두번째에서 청산되어야 됩니다..
if Condition1 == true Then #2
{
if CrossDown(c,ma(c,60)) Then
ExitLong("시험청산1");
}
#1이 참이고 20평 이탈시엔 20이평 이탈을 Value2에 할당하고, value1에는 진입이후 경과된 봉갯수 할당하고
if CrossDown(c,ma(C,20)) Then
{
Value2 = Value2+1;
value1 = BarsSinceEntry;
*** 원래 의도 : 20이평 데드후 60이평을 데드 하지 않고 다시 고점을 돌파한다면 이후 20이평 데드시 청산한다.
# *** 여기 문장은 잘 해석이 안됩니다. 20이평 데드가 2번이상이고 20이평 데드때 진입이후 봉갯수가 고점돌파때의 진입이후 봉갯수보다 적고(많아야 되는 것 아닌지요?), var1과 value2를 비교하는 것은 무슨 의미인지 잘 모르겠습니다.
if Value2 >= 2 and value1[1] < var1 and var1 < Value2 Then
ExitLong("시험청산2");
}
2. 가르쳐주시는 거에 비해 너무 진도가 못나가고 있습니다.
몇 줄 안되는데도 도저히 해결을 못해서 또 올립니다.
똑같은 방법으로 만든거 같은데 매도는 원하는 자리에서 신호가 나오는데요.
매수는 이상하게도 하나가 영 이상한데서 신호가 나옵니다.
이것저것 바꿔봐도 그자리만 고집하네요.
# 일이 발생되는 순서대로 적었습니다. 인덱스는 제대로 쓰고 있는건지 모르겠습니다.
코드 흐름에 뭐가 잘못된건가요?
var:HH(0),LL(0),진폭(0);
HH = highest(H,P);
LL = lowest(L,P);
진폭=HH-LL;
f 이평500>이평360 && 이평360>이평120 &&
CrossDown(이평60,이평360)
Then
{
B1=1;
Bi1=Index;
}
if b1>=1 and CrossUp(이평3,이평500) Then
b1=0;
if b1==1 && bi1>0 && Index>bi1+2 && L>=Lowest(L,100)[1] Then
{
b1=2;
bi2=Index;
}
if b1==2 && bi2>0 && Index>bi2+2 && CrossUp(이평3,이평60) Then
{
b1=3;
Bi3=Index;
b1저점=진폭*0.1+LL;
}
{
if b1==3 && bi3>0 && Index<bi3+500 && Condition1 == False Then
Buy("이유모르는매수",AtLimit,b1저점);
}
3. cond에 "쌍봉조건"을 저장해놓고 사용하고 싶습니다. for문이나 index 이용해서 만들어보려는데 아직 어렵네요.
쌍봉조건=조건1 and 조건2 and 조건3 and 조건4;
현재봉으로부터 과거봉으로 돌아가면서 써보면요.
조건1. 현재캔들은 60이평 아래에 있다.
조건2. 당일고점을 찍었다.
조건3. 캔들의 저가가 60이평을 2회이상 이탈했다.
조건4. 당일고점을 찍었다.
# 아래의 식이 맞나요? 맞더라도 뭔가 추가해줘야 될 게 있을 거 같고 어설프네요.
var:cnt(0),고점돌파위치(0),데드위치60(0),이전고점돌파위치(0),쌍봉1(false);
쌍봉1 =
고점돌파위치=-1;
for cnt=0 to 100
{
if H[cnt]==highest(h,100) then{
고점돌파위치=cnt;
cnt=999;
}
}
데드위치60 = -1;
for cnt=고점돌파위치 to 100
{
if countif(crossdown(L,이평60),???)>1 then { # 저가가 2회이상 60이평 아래로 내려갔었다?????
데드위치60 = cnt;
cnt=999;
}
}
이전고점돌파위치=-1;
for cnt=데드위치60 to 100
{
if if H[cnt]==highest(h,100) then{
이전고점돌파위치=cnt;
이전고점돌파봉=C; #60이평 찍으러 내려오기전 최고점 찍은 캔들정보 저장.
cnt=999;
}
}
if 고점돌파위치<21 and # 고점찍은 자리가 현재봉전 20캔들내에 있고
데드위치60 < 고점돌파위치+20 and #60이평 데드난 자리가 고점찍은 자리로부터 20캔들내에 있고
이전고점돌파위치<데드위치60+20 then #60이평 데드 20캔들전내에 고점돌파가 있었다면
# 위 조건들을 만족하고 현재 종가가 60이평 아래에 있다면 쌍봉만족.
if C<이평60 then
쌍봉1 = true;
4. 차트에 글상자, 중요표시 등을 해놓고 다시 로그인을 하게 되면 그게 남아있지 않습니다.
다른 이름으로 저장하기를 하고 다시 불러와도 삭제되어 나오는데요. 그대로 불러올 방법이 있나요?
2024-05-03
888
글번호 179094
회원 님에 의해서 삭제되었습니다.
2024-07-29
150
글번호 179090
답변완료
부탁 드립니다
도움에 감사 드립니다.
첨부한 그림과 같이 부탁 드립니다.
2024-05-02
885
글번호 179089
답변완료
부탁드립니다
1. 현재 종가가 양봉이면서 가장 직전 음봉의 고가보다 높으면 파란색으로, 현재 종가가 음봉이면서 가장 직전 양봉의 저가보다 낮으면 빨강색으로 구현해 주세요
2. 현재가를 기준으로 현재 종가가 양봉이면서 최근 4시간이내 최고가와 가까우면 파란색으로, 현재 종가가 음봉이면서 최근 4시간이내 최저가와 가까우면 빨강색으로 구현해 주세요
고맙습니다.
2024-05-01
616
글번호 179088
답변완료
문의드립니다
전일거래량 과 당일 거래량의차이가 120일동안에 가장큰 종목을 찾고싶습니다
또 1일전,2일전,3일전,4일전,5일전 ...... 20일전... 계속 이렇게 검색할수있도록 수식을 만들어주셨으면 고맙겠습니다
2024-05-01
719
글번호 179087
답변완료
수식추가
Inputs : Period(20), Sence(1.5), CC_DN(Yellow);
Vars:
VLineUp(0),
VLineDn(0),
HHighest(0),
LLowest(0),
JustChanged(FALSE),
VLine(0), DBN(0),T(0);
Array:
Highs[35](0),
Lows[35](0),
RRange[35](0),
UpWave[1](FALSE),
DnWave[1](FALSE);
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;
else if DnWave[1] then
T = -1;
end;
Input : BBP(20), MultiD(2);
var : BBmd(0),BBup(0),BBdn(0);
BBmd = ma(C,Period);
BBup = BollBandUp(BBP,MultiD);
BBdn = BollBandDown(BBP,MultiD);
if CrossDown(C,BBup) and t == -1 Then
sell();
if crossup(C,BBdn) and t == 1 Then
buy();
안녕하세요
위식에추가 부탁드림니다.
hp선추가
매수 기존식 + hp선위에서는 매수.
손절청산 hp선 하향돌파시.
매도 기존식 + hp선아래에서 매도.
손절청산 hp선 상향돌파시.
첨부hp선 자유게시판 2071
2024-05-02
706
글번호 179086
답변완료
키움 신호인데 예스로부탁드립니다
M10 = ma(C, 10);
M = Macd(12, 26);
Ms = eavg(M, 9);
Dp = Diplus(14);
Dm = DiMinus(14);
S = StochasticsSlow(12, 5);
CC = CCi(9);
SR = ((RSI(14)- lowest(RSI(14),7)) / (highest(RSI(14),7)-(lowest(RSI(14),7))))*-1;
R = ROC(12);
M_b = BarsSince(H>M10 && C==O && C<M10);
D_b = BarsSince(CrossUP(Dp, Dm) && Dp<=30);
Macd_b = BarsSince(CrossUP(M, Ms));
S_b = BarsSince(CrossUP(S, 20));
CC_b = BarsSince(CrossUP(CC, 0));
SR_b = BarsSince(SR==-1 && SR(1)!=-1);
R_b = BarsSince(CrossUP(R, 0));
조건 =
M_b > Max(D_b, Macd_b) &&
Min(D_b, Macd_b) > Max(S_b, CC_b, SR_b) &&
Min(S_b, CC_b, SR_b) > R_b;
조건 && !조건(1)
강조수식도 함께 부탁드릴게요
감사합니다
고맙습니다
2024-05-01
934
글번호 179085