커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5538
글번호 230811
답변완료
수식 부탁드립니다
키움 수식인데 변환부탁드립니다
수식1
수식이름 : 볼륨1
eavg(볼륨(),short)-eavg(볼륨(),long)
수식2
수식이름 : signal
eavg(eavg(볼륨(),short)-eavg(볼륨(),long),signal)
지표저건설정
short : 9
long : 26
signal : 5
사용자함수
볼륨
sum(if(c>o,(c-o)*v,if(c<o,(c-o)*v,((h-l)/2)*v)))
입니다 변환좀 부탁드립니다~~
2020-12-31
709
글번호 145041
답변완료
수식변경 문의합니다.
2020년 한해 예스스탁 가족 여러분들 수고 많으셨습니다. 항상 어려운 수식에 부딪쳤을때 도와주셔서 감사, 또 감사드립니다. 새해에도 복 많이 받으시고 번창하시길 기원합니다.
문의내용 : 아래 지표식을 시스템식으로 변경 부탁합니다.
변수설정 :
1. 매매시작일시 : 시스템이 작동하는 일자를 임의로 설정(20210104)
2. 진입금지시간 : 시스템이 진입하지 않도록 임의의 시간 이후로 설정(143000)
3. 피라미딩적용 : 피라미딩 적용 시 진입가 보다 낮은 신호에서만 재진입
4. 이득청산적용 : 평균 진입가 보다 수익이 발생하고 신호발생시만 청산
5. 매매횟수제한 : 0으로 설정 시 무제한 매매, 1로 설정하면 1회만 진입, 청산..2로 설정하면 2회...3은 3회..
6. 매도신호적용 : 매수와 반도로 주식에서도 매도신호가 피라미딩 될 수 있도록 신호발생
지표식
var : Period(5), Period1(3), Period2(3), StoK(0),StoD(0), TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0);
StoK = StochasticsK(Period,Period1);
StoD = StochasticsD(Period,Period1,Period2);
if StoK > StoK[1] and StoK[1] < StoK[2] and StoK < 50 then { //스토캐스틱 상승반전
var1 = StoK[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);
TLi1= TL_New_self(var6,var8,var2,var5,var7,var1);
TX1 = Text_new(var5, var7, L, "매수★");
TL_SetSize(TL1, 2);
TL_SetColor(TL1, Red);
TL_SetSize(TLi1, 2);
TL_SetColor(TLi1, Red);
Text_SetColor(Tx1,Magenta);
Text_SetStyle(Tx1,0,0);
}
if StoK < StoK[1] and StoK[1] > StoK[2] and StoK > 50 then {//스토캐스틱 하락반전
var11 = StoK[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);
TLi2= TL_New_self(var16,var18,var12,var15,var17,var11);
TX2 = Text_new(var15, var17, H, "매도★");
TL_SetSize(TL2, 2);
TL_SetColor(TL2, blue);
TL_SetSize(TLi2, 2);
TL_SetColor(TLi2, blue);
Text_SetColor(Tx2,Lcyan);
Text_SetStyle(Tx2,0,1);
}
Plot1(StoK, "StochasticsK");
Plot2(StoD, "StochasticsD");
PlotBaseLine1(20, "기준선20");
PlotBaseLine2(80, "기준선80");
PlotBaseLine3(50, "기준선50");
if var9 == 1 then
plot3(stoK, "상승다이버전스");
if var19 == 1 then
plot4(stoK, "하락다이저번스");
2020-12-31
733
글번호 145040
답변완료
시스템 수식 부탁드립니다.
노고에 먼저 감사드립니다. 시스템 수식부탁드립니다.
- 볼린져밴드 설정 (20, 2)
- 매도진입 조건: 가격이 볼린져밴드 상한선을 터치 (=가격이 동일)할 때 매도진입
- 매수진입 조건: 가격이 볼린져밴드 하한선을 터치할 때 매수진입
- 익절조건: 가격이 볼린져밴드 중심선을 터치할 때 익절청산
- 손절조건: 진입기준으로 손절포인트 임의설정
- 거래시간대 설정 (가령, 00:00~24:00)
- 1계약 진입
- 진입조건을 만족하더라도 진입한 계약이 청산(= 익절 또는 손절)될 때까지는 추가진입금지
- 당일 누적손실금액이 50만원에 도달시 당일 추가거래 종료
- 당일 누적이익금액이 100만원에 도달시 당일 추가거래 종료
2020-12-31
692
글번호 145039
답변완료
추가수식부탁드립니다.
안녕하세요..글번호70217에 30분봉차트에 전전봉종가라인부탁드립니다.
plotno 67 30분봉의 전전봉종가라인
(예)9/00 ~ 9/30 분봉의종가라인은 10/00 ~ 10/30까지
9/31 ~ 10/00분봉의종가라인은 10/30 ~ 11/00까지
plotno 68 현재가라인부탁드립니다.
새해복많이받으세요....꾸벅
2021-01-04
750
글번호 145038
답변완료
매도 부분에 관해 질문올립니다.
안녕하세요 시스템에서 매도에 관한 질문좀 올릴게요
아래는 제가 쓰고있는 하나의 매도식입니다.
#A1.3진입
if CurrentContrActs > CurrentContrActs[1] And LAtestEntryNAme(0) == "A1.3" Then
{
A1.3Price = LAtestEntryPrice(0);
A1.3high = H;
}
if A1.3high > 0 And H > A1.3high Then
A1.3high = H;
if A1.3Price > 0 Then
{
ExitLong("A1.3.1",AtLimit,A1.3Price*1.16,"A1.3");
if A1.3high >= A1.3Price*1.01 Then
ExitLong("A1.3.2",AtStop,A1.3high*0.93,"A1.3");
ExitLong("A1.3.3",AtStop,A1.3Price*0.97,"A1.3");
여기서 몇가지좀 추가하고싶은데요
고가와 종가에 따른 매도부분을 수정하고싶습니다.
C[1] . Highest(H,2)[2] 조건에 따라 달라지게 만들고 싶습니다
즉, 익절부분은 4개로
-Highest(H,2)[2]이 12이상 and C[1]이 14미만 일때는 A1.3Price*1.16 익절
-Highest(H,2)[2]이 12이상 and C[1]이 14이상 16미만 일때는 A1.3Price*1.14 익절
-Highest(H,2)[2]이 12이상 and C[1]이 16이상 18미만 일떄는 A1.3Price*1.12 익절
-Highest(H,2)[2]이 12미만 일때는 A1.3Price*1.12 익절
슬라이딩 부분은 2개로
-매수후 고가가 4프로이상 6프로미만인 경우는 (=A1.3high >= A1.3Price*1.04 and A1.3high < A1.3Price*1.06)
시세가 A1.3high 대비 0.96퍼센트 보다 낮으면 매도
-매수후 고가가 6프로이상인 경우는 (=A1.3high >= A1.3Price*1.06)
시세가 (A1.3high-C[1])*0.3+C[1] 보다 낮으면 매도
손절부분은 2개로
-Highest(H,2)[2]이 12이상 일때는 0.96
-Highest(H,2)[2]이 12이하 일때는 0.97
이렇게 수정을 하고싶습니다.
신호명은 아무거나 임의로 작성해주셔도됩니다
(위에 작성된 것처럼 식좀 써주세요 ㅜ.ㅜ 완전초보라..
제가 수정 및 대입을 하기가 힘드네요)
감사합니다
2021-01-01
894
글번호 145037
답변완료
시스템 수식 문의 드립니다.
3분봉 기준으로
오전 10시 종가가 당일 시가보다 크면 매수, 13시 기준 시가보다 크면 홀딩 시가보다 낮으면 손절, 홀딩시 당일 14시 45분에 청산하려고 합니다.
이에 대한 수식을 어떻게 짜면 될까요?
부탁드립니다^^
2020-12-31
821
글번호 145036
답변완료
시스템질문
안녕하세요~
<질문1>
아래수식에서
매수 4,5,6의 매수에 있어 매수1,2,3이 한봉에 2개이상 매수되는경우
작동을 안하는것 같은데요 수정부탁드립니다
<질문2>
아래수식에서
매수3가 매수되었을때만 매수4,매수5,매수6이 중복 매수되지 않도록 되어있는데요
매수1, 매수2, 매수3 어떤것이 매수되더라도
매수된값들을 체크하여 최저가로 매수된 가격을 기준으로
매수4, 매수5, 매수6가 순차적으로 매수되도록 변경하고 싶습니다
*매수는 매수조건이 동일가격에서 만족되더라도 항상 중복매수되지 않도록부탁드립니다
감사합니다~
INPUT : 매수(0), 매도조건(1);
var : cond(False),LP(0);
var1 = ma(C,3);
var2 = ma(C,5);
var3 = ma(C,10);
var4 = ma(C,60);
value1 = 0;
if value1 == 0 and C < Var4 and CrossDown(c,var3) and cond == False Then
{
if MarketPosition == 0 or (MarketPosition == 1 and C < LP and Condition1 == False) Then
{
value1 = 1;
Buy("매수3");
}
}
if value1 == 0 and C < var4 and CrossDown(c,var2) and cond == False Then
{
if MarketPosition == 0 or (MarketPosition == 1 and C < LP and Condition1 == False) Then
{
value1 = 1;
Buy("매수2");
}
}
if value1 == 0 and C < Var4 and CrossDown(c,var1) and cond == False Then
{
if MarketPosition == 0 or (MarketPosition == 1 and C < LP and Condition1 == False) Then
{
value1 = 1;
Buy("매수1");
}
}
if MarketPosition == 1 Then
{
if 매수 == 1 Then
Cond = true;
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수1" Then
{
LP = LatestEntryPrice(0);
Condition1 = true;
}
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수2" Then
{
LP = LatestEntryPrice(0);
Condition2 = true;
}
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수3" Then
{
LP = LatestEntryPrice(0);
Condition3 = true;
}
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수4" Then
{
LP = LatestEntryPrice(0);
Condition4 = true;
}
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수5" Then
{
LP = LatestEntryPrice(0);
Condition5 = true;
}
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수6" Then
{
LP = LatestEntryPrice(0);
Condition6 = true;
}
if Condition3 == true Then
{
if Condition4 == False Then
Buy("매수4",AtLimit,LP*0.97);
if Condition4 == true and Condition5 == False Then
Buy("매수5",AtLimit,LP*0.95);
if Condition4 == true and Condition5 == true and Condition6 == False Then
Buy("매수6",AtLimit,LP*0.90);
}
if 매도조건 == 1 Then
{
ExitLong("bx1",AtLimit,AvgEntryPrice*1.05,"",Floor(MaxContracts*0.2),1);
ExitLong("bx2",AtLimit,AvgEntryPrice*1.08,"",Floor(MaxContracts*0.5),1);
ExitLong("bx3",AtLimit,AvgEntryPrice*1.10);
}
if 매도조건 == 2 Then
{
ExitLong("bx",AtLimit,AvgEntryPrice*1.15);
}
}
Else
{
Condition1 = False;
Condition2 = False;
Condition3 = False;
}
2021-01-01
731
글번호 145035
러블리 님에 의해서 삭제되었습니다.
2020-12-31
170
글번호 145034
답변완료
수식 문의드립니다.
안녕하세요
항상 많은 도움 감사드리며... 연말을 맞이하여 하나 더 질문 드립니다 ㅠㅠ
일봉차트에서
data2는 주봉, data3은 월봉으로 설정하고,
최근 월봉 거래량이 1000000 이상인 종목이면서
주봉 거래량이 500000 이상인 종목을 검색하는 식 문의드립니다.
참조데이터 사용이 불가능하다면...
일봉 최근 10개봉에서 거래량이 1000000을 넘으면서
거래총액이 10억이 넘는 종목들을 검색하는 식과
시장가 매수식 부탁드립니다.
연말 잘 보내시고~ 새로운 한해 잘 맞이하시길 바래요~!
2020-12-31
752
글번호 145033