커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3488
글번호 230811
답변완료
추가 매수가 되지 않아요 수식 검토 부탁드리겠습니다.
아래수식으로 구현했는데 최초 1차 매수는 되는데.. 하락시 추가적인 매수가 진행되지 않습니다.
피라미딩도 모든 진입신호 허용 으로 했는데도 안되네요...
한번 체크 부탁드릴께요~~
적용조건은 다음과 같습니다.
예스트레이드(예스스탁)
삼성전자 60분봉
매수조건
600이평 아래시 최초 매수 10주
최초 매수금액에서 -5%하락시 20주 매수
최초 매수금액에서 -10%하락시 30주 매수
최초 매수금액에서 -15%하락시 40주 매수
최초 매수금액에서 -20%하락시 50주 매수
최초 매수금액에서 -25%하락시 60주 매수
그리고 평균매수가의 1% 수익시마다 분할매도되는 수식입니다.
input : p(600);
var : XV(0),Vol(0),cond(False);
var1 = ma(C,P);
if MarketPosition == 0 and CrossDown(C,var1) Then
{
Buy("b1",OnClose,Def,10);
Buy("b2.",AtLimit,C*0.95,20);
Buy("b3.",AtLimit,C*0.9,30);
Buy("b4.",AtLimit,C*0.85,40);
Buy("b5.",AtLimit,C*0.8,50);
Buy("b6.",AtLimit,C*0.75,60);
}
if MarketPosition == 1 Then
{
if lowest(L,BarsSinceEntry) > EntryPrice*0.95 Then
Buy("b2",AtLimit,C*0.95,20);
if lowest(L,BarsSinceEntry) > EntryPrice*0.9 Then
Buy("b3",AtLimit,C*0.9,30);
if lowest(L,BarsSinceEntry) > EntryPrice*0.85 Then
Buy("b4",AtLimit,C*0.85,40);
if lowest(L,BarsSinceEntry) > EntryPrice*0.8 Then
Buy("b5",AtLimit,C*0.8,50);
if lowest(L,BarsSinceEntry) > EntryPrice*0.75 Then
Buy("b6",AtLimit,C*0.75,60);
if CurrentContracts > CurrentContracts[1] Then
{
XV = CurrentContracts;
cond = False;
}
if C >= AvgEntryPrice*(1+1.01) and sTime == 110000 Then
{
if XV >= 100 Then
vol = Floor(XV*0.01); # 계약수가 100개 이상일때 1% 분할매도
else if XV < 100 and XV >= 50 Then
vol = Floor(XV*0.02); # 계약수가 50개~100 일때 2% 분할매도
else if XV < 50 and XV >= 20 Then
vol = Floor(XV*0.05); # 계약수가 20개~50 일때 5% 분할매도
else if XV < 20 and XV >= 10 Then
vol = Floor(XV*0.10); # 계약수가 10개~20 일때 10% 분할매도
Else
vol = Floor(XV*0.50); # 계약수가 10개이하 일때 50% 분할매도
ExitLong("bx",OnClose,Def,"",vol,2);
}
}
Else
cond = False;
----------------------------------------------------------------------------
500이평선 하락시 하락퍼센트마다 진입 버전 2023.09.01
# 하락시 분할매수 전략 // 분할매도
input : 시작일(20230901);
input : p(500);
input : 수익퍼센트(10);
var : XV(0),Vol(0),cond(False);
var1 = ma(C,P);
if Data1(sDate) >= 시작일 Then
{
if MarketPosition == 0 and CrossDown(C,var1) Then
{
Buy("b1",OnClose,Def,10);
Buy("b2.",AtLimit,C*0.95,20);
Buy("b3.",AtLimit,C*0.9,30);
Buy("b4.",AtLimit,C*0.85,40);
Buy("b5.",AtLimit,C*0.8,50);
Buy("b6.",AtLimit,C*0.75,60);
}
if MarketPosition == 1 Then
{
if lowest(L,BarsSinceEntry) > EntryPrice*0.97 Then
Buy("b2",AtLimit,EntryPrice*0.97,15);
if lowest(L,BarsSinceEntry) > EntryPrice*0.94 Then
Buy("b3",AtLimit,EntryPrice*0.94,20);
if lowest(L,BarsSinceEntry) > EntryPrice*0.91 Then
Buy("b4",AtLimit,EntryPrice*0.91,25);
if lowest(L,BarsSinceEntry) > EntryPrice*0.88 Then
Buy("b5",AtLimit,EntryPrice*0.88,30);
if lowest(L,BarsSinceEntry) > EntryPrice*0.85 Then
Buy("b6",AtLimit,EntryPrice*0.85,35);
if lowest(L,BarsSinceEntry) > EntryPrice*0.82 Then
Buy("b7",AtLimit,EntryPrice*0.82,40);
if lowest(L,BarsSinceEntry) > EntryPrice*0.79 Then
Buy("b8",AtLimit,EntryPrice*0.79,45);
if lowest(L,BarsSinceEntry) > EntryPrice*0.76 Then
Buy("b9",AtLimit,EntryPrice*0.76,50);
if lowest(L,BarsSinceEntry) > EntryPrice*0.73 Then
Buy("b10",AtLimit,EntryPrice*0.73,55);
if lowest(L,BarsSinceEntry) > EntryPrice*0.7 Then
Buy("b11",AtLimit,EntryPrice*0.7,60);
if lowest(L,BarsSinceEntry) > EntryPrice*0.67 Then
Buy("b12",AtLimit,EntryPrice*0.67,65);
if lowest(L,BarsSinceEntry) > EntryPrice*0.64 Then
Buy("b13",AtLimit,EntryPrice*0.64,70);
if lowest(L,BarsSinceEntry) > EntryPrice*0.61 Then
Buy("b14",AtLimit,EntryPrice*0.61,75);
if lowest(L,BarsSinceEntry) > EntryPrice*0.58 Then
Buy("b15",AtLimit,EntryPrice*0.58,80);
if lowest(L,BarsSinceEntry) > EntryPrice*0.55 Then
Buy("b16",AtLimit,EntryPrice*0.55,85);
if lowest(L,BarsSinceEntry) > EntryPrice*0.50 Then
Buy("b17",AtLimit,EntryPrice*0.50,90);
if lowest(L,BarsSinceEntry) > EntryPrice*0.45 Then
Buy("b18",AtLimit,EntryPrice*0.45,100);
if lowest(L,BarsSinceEntry) > EntryPrice*0.4 Then
Buy("b19",AtLimit,EntryPrice*0.4,110);
if lowest(L,BarsSinceEntry) > EntryPrice*0.35 Then
Buy("b20",AtLimit,EntryPrice*0.35,120);
if lowest(L,BarsSinceEntry) > EntryPrice*0.3 Then
Buy("b21",AtLimit,EntryPrice*0.3,130);
if lowest(L,BarsSinceEntry) > EntryPrice*0.25 Then
Buy("b22",AtLimit,EntryPrice*0.25,140);
if lowest(L,BarsSinceEntry) > EntryPrice*0.2 Then
Buy("b23",AtLimit,EntryPrice*0.2,150);
if lowest(L,BarsSinceEntry) > EntryPrice*0.15 Then
Buy("b24",AtLimit,EntryPrice*0.15,160);
if lowest(L,BarsSinceEntry) > EntryPrice*0.1 Then
Buy("b25",AtLimit,EntryPrice*0.1,170);
if lowest(L,BarsSinceEntry) > EntryPrice*0.05 Then
Buy("b26",AtLimit,EntryPrice*0.05,180);
if CurrentContracts > CurrentContracts[1] Then
{
XV = CurrentContracts;
cond = False;
}
}
if C >= AvgEntryPrice*(1+수익퍼센트*0.01) and sTime == 110000 Then
{
if XV >= 100 Then
vol = Floor(XV*0.01); # 계약수가 100개 이상일때 1% 분할매도
else if XV < 100 and XV >= 50 Then
vol = Floor(XV*0.02); # 계약수가 50개~100 일때 2% 분할매도
else if XV < 50 and XV >= 20 Then
vol = Floor(XV*0.05); # 계약수가 20개~50 일때 5% 분할매도
else if XV < 20 and XV >= 10 Then
vol = Floor(XV*0.10); # 계약수가 10개~20 일때 10% 분할매도
Else
vol = Floor(XV*0.50); # 계약수가 10개이하 일때 50% 분할매도
ExitLong("bx",OnClose,Def,"",vol,2);
}
}
Else
cond = False;
2023-09-24
906
글번호 171247
답변완료
부탁드립니다
1. 기본차트 콜 종가가 보조차트의 당월물 풋 최고가와 같거나 그 이상이면 기본차트에 빨강색으로, 보조차트 풋 종가가 기본차트 당월물 콜 최고가와 같거나 그 이상이면 기본차트에 파란색으로 구현해 주세요
2, 당일 보조차트 풋의 현재가가 기본차트 콜의 최고가 이상으로 올랐다가 그 이하로 하락하면 그때 파란색으로 구현해 주세요
3. 당일 보조차트 풋의 현재가가 기본차트 콜의 최저가 이하로 하락하면 빨강색으로 구현해 주세요
4. 당일 보조차트가 시가 이상이면서 2.0 이상이면 빨강색으로 3.0 까지만 표시되게, 당일 시가 이하이면서 2.0 이하이면 파란색으로 1.0 까지만 기본차트에 각 표시되게 구현해 주세요
고맙습니다.
2023-08-06
1044
글번호 171246
회원 님에 의해서 삭제되었습니다.
2023-08-07
41
글번호 171245
답변완료
질문 드립니다.
현재 종가에만 원하는 지표를 기록해서 쓰고있습니다.
1. 종가만 사용해서 종목 6개를 사용하는 경우
2. 종가와 , 종가 아래 항목들 다섯개에 제가 원하는 지표를 임의로 기록해서 쓰는 경우
cpu 측면에서 2번이 1번대비 5~6배 유리한지 궁금합니다.
그리고 종가는 c , 미결은 interest 인건 아는데
종가 아래 나머지 항목들을 불러 쓰는 단축어 궁금합니다. 감사합니다.
2023-08-06
869
글번호 171244
chancebo 님에 의해서 삭제되었습니다.
2023-08-05
1
글번호 171243
답변완료
변수값반영 수식 부탁드립니다.
var: fast1 ( body1d < 0.1 * range1d) ;
var: fast2 ( body1d < 0.25 * range1d) ;
var: fast3 ( body1d < 0.5 * range1d) ;
var: fast4 ( body1d < 0.75 * range1d) ;
1. 변수값 fast1,2,3,4 지정
2 if fastXX then buy <- 이 부분에서 fastXX , XX=1~4 까지를 input으로 지정하고싶은데
방법이 있을까요???
2023-08-05
967
글번호 171242
천지고원 님에 의해서 삭제되었습니다.
2023-08-05
16
글번호 171241
천지고원 님에 의해서 삭제되었습니다.
2023-08-05
9
글번호 171240
답변완료
시스템 작성의뢰
수고 하십니다 !
거래량 5 이평선이 25 이상 상승하면 신호로 알려주고 on balance price 지표가 - 28 이하로 내려가고 obv 지표가 -
1800 이하로 하락하고 pvi지표가 99.99 이하로 하락하고 Bostian's Intraday Intensity Index 지표가 -0.01 이하로 하락하고 er bear power 지표가 0.00 이상 상승하고120,240,480,960 ,1920 이동평균선이 역배열이 되고 3840
이평선과 7680 이평선의 간격이 3 틱이상 벌어지고 120 이평선이 240 이평선을 업크로스할때 매수를 하고 30 틱 이상 하락하고 다음 120
이평선이 240 이평선을 업크로스 할때 재 매수를하고 또다시 30틱이상 하락하고 120 이평선이 240 이평선을 업크로스할때 또 재 매수를 하고 50 틱 이상 상승하고 120 이평선이 240 이평선을 다운크로스할때 청산을 한다
2. 거래량 5 이평선이 25 이상 상승하면 신호로 알려주고 on balance price 지표가 31 이상 상승하고 obv 지표가 1080
이상 상승 하고 pvi지표가 100.77 이상 상승 하고 Bostian's Intraday Intensity Index 지표가 0.08 이상 상승하고 er bear power 지표가 - 0.01 이하로 하락 하고
120,240,480,960 ,1920 ,3840 이동평균선이 정배열이 되고 980 이평선과 1920 이평선의 간격이 19 틱이상 벌어지고 120 이평선이 240 이평선을 다운크로스할때 매도를 하고 30 틱 이상 상승 하고 다음 120
이평선이 240 이평선을 다운크로스 할때 재 매도를하고 또다시 30틱이상 상승 하고 120 이평선이 240 이평선을 다운크로스할때 또 재 매도를 하고 50 틱 이상 하락 하고 120 이평선이 240 이평선을 업크로스할때 청산을 한다
2023-08-05
1137
글번호 171239