커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1691
글번호 230811
답변완료
지표가 표시가 안돼요 ㅜㅡㅜ
지표에
볼린저밴드 360선이 표시가 안되는데
왜그런가요 ㅜㅡㅜ
그리고 혹시
200일 최고 거래량 터진 종목 검색하는
수식도 만들어 주실수 있나요 항상 감사드려요 ㅜㅡㅜ
2021-05-08
1143
글번호 148821
답변완료
추가 설명좀 부탁합니다
안녕하세요
게시글 72335
그래서 질문드립니다
아래 식에서 보면
bl
bx
차이점을 알고 싶습니다
그리고
고점대비 청산에서 매수1 매도1 에서만 작도 되고요
진입해서 수익권의 고점 대비로 수정좀 부탁합니다
if MarketPosition == 1 Then
{
ExitLong("bx5",AtLimit,EntryPrice+PriceScale*완전청산,"",5,1);
ExitLong("bl1",AtStop,EntryPrice-PriceScale*손절1,"매수1");
ExitLong("bl2",AtStop,EntryPrice-PriceScale*손절2,"매수2");
ExitLong("btr",AtStop,Highest(H,BarsSinceEntry)-PriceScale*고점대비);
}
Else
Lcnt = 0;
if MarketPosition == -1 Then
{
ExitShort("sx5",AtLimit,EntryPrice-PriceScale*완전청산,"",5,1);
ExitShort("sl1",AtStop,EntryPrice+PriceScale*손절1,"매도1");
ExitShort("sl2",AtStop,EntryPrice+PriceScale*손절2,"매도2");
ExitShort("str",AtStop,lowest(L,BarsSinceEntry)+PriceScale*고점대비);
}
Else
Hcnt = 0;
2021-05-07
1557
글번호 148820
답변완료
시스템 이상 검토의뢰
수고 하십니다 !
input : P1(1),P2(1920);
var : mav1(0),mav2(0);
mav1 = ma(C,P1);
mav2 = ma(C,P2);
if mav1 < mav2 -PriceScale*80 Then
Buy("이평수");
sell("bs",AtStop,EntryPrice-PriceScale*12);
if mav1 > mav2 +PriceScale*80 Then
Sell("이평도");
Buy("sb",AtStop,EntryPrice+PriceScale*12);
처음 매수를 해서 반대쪽으로 12 틱 이 되면 손절 을 하고 매도 를 체결하고 나면
12 틱이 또 반대로 되기전 까지는 매매가 체결되면 안되는 데 체결되자 마자
또 반대쪽 매매가 체결 되니까요 처음 매매 에서 반대쪽 매매가 체결되면 12 틱 이
반대로 진행되거나 익절 청산 이 될때까지는 다른 수식 이 적용 안되게 수식을
꼭 부탁 드립니다 # 거래내역 표시에 stop 으로 표시안되고 exit long,shot 으로
표시 되면서 수식 대로 실행 이 안되고 1틱이나 같은 가격에 청산되고 체결되고
하네요
***** 수고 하세요 *****
2021-05-10
1434
글번호 148819
답변완료
추가부탁드립니다(72234질문)
감사히 잘 보았습니다.
그런데 매봉 생성될때마다 수량이 표시가 되어서 봉 보는데 조금 불편합니다.
제가 원하는것은 3시 45분체결량이 3시 35분 가격과 비교해서 종가봉위에 그 체결량을 표시하고 싶습니다.(매수세가 강했나 매도세가 강했나를 알고싶은겁니다). 만일 당일마지막봉이 완성이 안되어서 당일것은 익일 시초에 표시되도 괜찮습니다. 즉 익일 매봉 생성될때마다 표시할필요는없고 하루에 한번만 종가위에 표시하고 싶습니다.
ex) ▲1234 , ▼2345 ...이렇게 차트마지막봉위에 한번만 그려지게하고 싶습니다.
색깔과 텍스트크기도 임의로 바꿀수있게 해주시면 감사하겠습니다
2021-05-07
1458
글번호 148818
답변완료
지표를 이용한 매수매도를 하고 싶은데요
예스트레이더코인을 깔아서 코인 자동매매를 해보려 하는데요
너무 깜깜이라 도움을 요청드려봅니다
저는 cci 와 스토캐스틱 슬로우 지표 신호두개를 동시에 사용하고 싶은데요
두개의 지표가 동시에 과매도 지점에 들어섰을시 매수
두개의 지표가 동시에 과열 지점에서 매도하고 싶습니다
또 거래가 손실이던 이익이던 한번 종료된후 세시간정도의 인터벌 휴식시간후
다시 동작이 되었으면 합니다
도움을 주시면 감사하겠습니다
2021-05-07
1399
글번호 148817
답변완료
수식작성
input : StartTime(220000),EndTime(035000),진입횟수(5),익절틱수(40),손절틱수(25);
var : Tcond(false),entry(0);
if StartTime < EndTime Then
{
SetStopEndofday(EndTime);
}
Else
{
if sDate != sDate[1] Then
SetStopEndofday(EndTime);
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
if StartTime > EndTime Then
SetStopEndofday(0);
Tcond = true;
entry = 0;
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if Tcond == true Then
{
if MarketPosition == 0 and C > O and entry < 진입횟수 Then
{
Buy("b");
}
if MarketPosition == 0 and C < O and entry < 진입횟수 Then
{
Sell("s");
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
----------------------
진입신호후 buy , sell 둘 다 -30틱에 주문이 되는 수식어를 포함 하고자 합니다.
미리 감사 드립니다.
2021-05-07
1206
글번호 148798
답변완료
시스템 이상 검토의뢰
수고 하십니다 !
Input : Period1(1), Period2(5), Period3(30), Period4(60), Period5(120),period6(240), Period7(480), Period8(960),period9(1920);
var : sma1(0),sma2(0),sma3(0),sma4(0),sma5(0),sma6(0),sma7(0),sma8(0),sma9(0);
sma1 = ma(C,period1);
sma2 = ma(C,period2);
sma3 = ma(C,period3);
sma4 = ma(C,period4);
sma5 = ma(C,period5);
sma6 = ma(C,period6);
sma7 = ma(C,period7);
sma8 = ma(C,period8);
sma9 = ma(C,period9);
var : t(0),s(0);
if MarketPosition <= 1 and sma1 < sma2 and sma2 < sma3 and sma3 < sma4 and sma4 < sma5 and sma5 < sma6 and sma6 < sma7 and sma7 < sma8 and sma8 < sma9 Then
{
t = -1;
s = c;
}
if MarketPosition >= -1 and sma1 > sma2 and sma2 > sma3 and sma3 > sma4 and sma4 > sma5 and sma5 > sma6 and sma6 > sma7 and sma7 > sma8 and sma8 > sma9 Then
{
t = 1;
s = c;
}
if t == -1 Then
Buy ("b");
if t == 1 Then
Sell("s");
if MarketPosition == 1 Then
{
sell("bs",AtStop,EntryPrice-PriceScale*10);
if Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*15 Then
ExitLong("bx",AtStop,Highest(H,BarsSinceEntry)-PriceScale*10);
}
if MarketPosition == -1 Then
{
Buy("sb",AtStop,EntryPrice+PriceScale*10);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*15 Then
ExitShort("sx",AtStop,lowest(L,BarsSinceEntry)+PriceScale*10);
}
위 수식 대로라면 0,1 같은 청산 이 나오면 안되는데 자꾸 나오네요 원인 이 무엇인가 검토하고
수정 좀 꼭 부탁 드립니다
***** 수고 하세요 *****
2021-05-07
1296
글번호 148793
답변완료
수식수정 문의
1. 상방 진입조건에 60선위에 5가 상방 변곡시 진입인데.
이때 조건을
1) 진입 시점 이전에 60과 240 이 데드이후에 60선이 5파이상이거나(상승변곡이 3번 이상)
2) 60선이 쌍바닥이 나왔을때
- (쌍바닥의 정의는 :
1)이평선이 꺽였을때의 지점의 이평선 가격을 비교
2)저점이 더 낮아진 쌍바닥이더라도 5틱 이내 or 국내선물 기준 0.15pt 이내는 쌍바닥으로 정의합니다)
3)60선이 턴한 지점간의 즉, 쌍바닥간의 봉의 개수는 30개 이상 나야함
이 조건을 추가하고 싶습니다
///////////////////////////////////////////
var : Period1(3),Period2(10),Period3(30),Period4(120),X5(0),X20(0),X60(0),XP(0),X(0),Y(0),Z(0),Q(0),Mav1(0), Mav2(0),Mav3(0),Mav4(0);
Input : Left(3),right(3);
var : B5(0),BP60(0),B20(0),B60(0),S5(0),S20(0),S60(0),SP60(0),Bcnt5(0),Bcnt20(0),Bcnt60(0),BcntP60(0), Scnt5(0), Scnt20(0), Scnt60(0),ScntP60(0),H1(0),H2(0),L1(0),L2(0);
InPUT : 진입시작시간(090000), 매매종료시간(153000);
if Bdate != Bdate[1] Then
{
Condition1 = False;
Condition2 = False;
}
Var26 = ema(Ema(Ema(c,period1),period1),period1); //ma(c,period1); //5선
Var27 = ema(Ema(Ema(c,period2),period2),period2); //20선
Var28 = ema(Ema(Ema(c,period3),period3),period3); //60선
Var29 = ema(Ema(Ema(c,period4),period4),period4); //240선
if CrossUp(Var26,Var27) Then
X5 = 1; //5-20 cross
if CrossDown(Var26,Var27) Then
X5 = -1;
if CrossUp(Var27,Var28) Then
X20 = 1; //20-60 cross
if CrossDown(Var27,Var28) Then
X20 = -1;
if CrossUp(Var28,Var29) Then
X60 = 1; //60-240 cross
if CrossDown(Var28,Var29) Then
X60 = -1;
if CrossUp(Var26,Var28) Then
XP = 1; //5-60 cross
if CrossDown(Var26,Var28) Then
XP = -1;
if Var26 > var26[1] Then
X = 1;
if Var26 < var26[1] Then
X = -1;
if Var27 > var27[1] Then // X5 : 5-20 Cross X : 5선
Y = 1; // X20 : 20-60 Cross Y : 20선
if Var27 < var27[1] Then // X60 : 60-240 cross Z : 60선
Y = -1; // XP : 5-60 cross
if Var28 > var28[1] Then
Z = 1;
if Var28 < var28[1] Then
Z = -1;
if X == 1 and X != X[1] and Bdate == Bdate[1] Then
Condition1 = true;
if X == -1 and X != X[1] and Bdate == Bdate[1] Then
Condition2 = true;
//////////////////////상방기준//////////////////
if XP == 1 and X == 1 and Condition1 == true Then //5-60 정배열 & 5상승
{
if X != X[1] Then //5선이 상승변곡 이면 B = 1
{
BP60 = 1;
} //5선이 상승변곡 & 20선 상승 & 5선 20선위 & 몸통이 5 BC 면 B =2
if BP60 == 1 and Y == 1 and Var26 > Var27 and C > O and (C+O)/2 >= var26 Then
{
BP60 = 2;
}
}
else
BP60 = 0;
if sDate == 20210429 and sTime < 92000 Then
MessageLog("%.2f",BP60);
//////////////////////하방기준//////////////////
if XP == -1 and X == -1 and Condition2 == true Then
{
if X!= X[1] Then
{
SP60 = 1;
}
if SP60 == 1 and Y == -1 and Var26 < Var27 and C < O and (C+O)/2 < var26 Then
{
SP60 = 2;
}
}
else
SP60 = 0;
//////////////////////////상방시그널/////////////////
if sTime >= 진입시작시간 and sTime <= 매매종료시간 and
XP == 1 Then
{
if XP != XP[1] Then
BcntP60 = 0;
if BP60 == 2 and BP60 != BP60[1] Then
{
BcntP60 = BcntP60+1;
if BcntP60 <= 1 Then
Buy("BP60");
}
}
////////////////////////하방 시그널//////////////////
if sTime >= 진입시작시간 and sTime <= 매매종료시간 and
XP == -1 Then
{
if XP != XP[1] Then
ScntP60 = 0;
if SP60 == 2 and SP60 != SP60[1] Then
{
ScntP60 = ScntP60+1;
if ScntP60 <= 1 Then
Sell("SP60");
}
}
if MarketPosition == 1 Then
{
if X5 == 1 and CountIf(X5 == -1,BarsSinceEntry) == 0 and
X == -1 and CountIf(X == -1 and X != X[1],BarsSinceEntry) >= 2 and (C+O)/2 <= Var27 then
ExitLong("콜청1",AtMarket);
if X5 == -1 and X == -1 and CountIf(X == -1 and X != X[1],BarsSinceEntry) >= 1 and (C+O)/2 <= Var27 Then
ExitLong("콜정2",AtMarket);
}
if MarketPosition == -1 Then
{
if X5 == -1 and CountIf(X5 == 1,BarsSinceEntry) == 0 and
X == 1 and CountIf(X == 1 and X != X[1],BarsSinceEntry) >= 2 and (C+O)/2 >= Var27 Then
ExitShort("풋청1",AtMarket);
if X5 == 1 and X == 1 and CountIf(X == 1 and X != X[1],BarsSinceEntry) >= 1 and (C+O)/2 >= Var27 Then
ExitShort("풋정2",AtMarket);
}
2021-05-07
1211
글번호 148792
답변완료
수식 문의
1. 입력한 시간에
data2 양봉 and data3 양봉 and data4 음봉 then
buy();
- 09시 입력결과와 13시 입력결과를 비교코자 함
2. 입력한 시간부터
data2 연속양봉 2개 and data3 연속양봉 3개 and data4 연속음봉 4개 then
buy();
- 09시 입력결과와 13시 입력결과를 비교코자 함
3. 해외선물 수식
- 데이트레이딩용
- 금일 오전 9시부터 익일 오전8시까지 거래할 수 있는 시간 수식 부탁드립니다.
2021-05-07
1183
글번호 148791