커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6171
글번호 230811
답변완료
수식문의
안녕하세요.
1앞전봉의 윗몸통보다 10틱이상크면매수 아래몸통보다 10틱이상적으면 매도하는식부탁합니다.
2.그리고 앞전봉 몸통틱수가 50틱이상 움직일때만 적용되는식도 부탁합니다
2018-03-17
169
글번호 117479
답변완료
질문드립니다.
var : BLcnt(0),SLcnt(0),추격횟수(0), 피라미딩매수(0);
if Bdate != Bdate[1] Then{
BLcnt = 0;
SLcnt = 0;
}
if TotalTrades > TotalTrades[1] and MarketPosition(1) == 1 and IsExitName("StopLoss",1) == true Then
BLcnt = BLcnt+1;
if TotalTrades > TotalTrades[1] and MarketPosition(1) == -1 and IsExitName("StopLoss",1) == true Then
SLcnt = SLcnt+1;
손실횟수제한 로직입니다.
문제는 피라미딩로직을 넣기전에는 잘 작동하였으나,
피라미딩이 작동되고부터는 본 제한로직이 잘 작동하지않습니다. 가령 진입제한이 나오지않아야하는데 나온다거나.. 분명 강조식으로 페인트바되는것을 확인하였으나, 실제 시스템에서 진입은 이루어지지않습니다. stoploss가 나오지않았는데말이지요. 매수조건입니다.(매도조건도 첨부한 로직과 구조는 동일합니다.)
if stime >= 080000 or stime < 040000 Then{
If MarketPosition == 0 then
if 시그널 and BLcnt < 2 Then
Buy("매수",AtStop,Close,DEF);
If MarketPosition == 1 Then{
If 조건 Then{
Buy("추가매수",AtStop,Close,DEF);}
If crossup(조건) Then
exitlong("피라미딩7청산",AtMarket,DEF,"추가매수");
}
저렇게 피라미딩7청산이 이루어지고나면, 이후 매도 신호가 나오지않습니다. 이유가뭘까요.. 반대로 매도후 매수신호가 무시되는것도 마찬가지구요. 청산신호의 오류일까요 exitlong, short함수랑은 관계가없는듯한데.. totaltrade인지.. 감이 안잡힙니다.
또 피라미딩 로직을 제거하면 정상작동하니 말이지요
2018-03-18
197
글번호 117478
파워 님에 의해서 삭제되었습니다.
2018-03-16
72
글번호 117477
자라도 님에 의해서 삭제되었습니다.
2018-03-16
0
글번호 117476
답변완료
감사합니다 진심 어린 감사드려요
1,st002340 님이 수식 입니다----- 수정부탁드려봅니다
2, period (20) (60) (120) 추가하여 수정 부탁드려요
3, 아래수식에대한 설명도 부탁드립니다
input :Period(120), Type(1);
Vars : sHH(0), sLL(0), lHH(0), lLL(0),Price(0),v0(0);
Price = C;
If Type == 1 Then
V0 = ma(Price, Period);
Else
V0 = ema(Price, Period);
If Price > V0 Then
Begin
sHH = H;
sLL = L;
End
Else
Begin
sHH = sHH;
sLL = sLL;
End;
If Price < V0 Then
Begin
lHH = H;
lLL = L;
End
Else
Begin
lHH = lHH;
lLL = lLL;
End;
If CurrentBar > 1 And lHH[1] > 0 And lLL[1] > 0 And sHH[1] > 0 And sLL[1] > 0 Then
Begin
Plot1(sHH, "사용X");
Plot2(sLL, "하락추세용");
Plot3(lHH, "상승추세용");
Plot4(lLL, "사용X");
End;
2018-03-16
204
글번호 117475
답변완료
피라미딩 안됨
수정 수식에서
선언되지 않은 input : pyra(0.8)을 추가하여 시뮬레이션 했음에도 피라미딩이 안됩니다.
(별첨1)
질문 57082 건 피라미딩 수식
if MarketPosition == 1 Then
buy("bb",AtStop,LatestEntryPrice(0)+Pyra); 에서
buy를 sell로 +pyra를 -pyra로 바꾼 것인데 저도 이렇게 했더니
안되서 문의드렸던 것입니다.
다시 살펴주시면 고맙겠습니다.
**********************
안녕하세요
예스스탁입니다.
input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000);
var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{
T1 = TotalTrades;
E1 = 0;
HH = H;
}
if stime >= 시작시간 then{
if H > HH Then
HH = H;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 Then{
if E1 == 0 and C <= HH-PriceScale*B1 and C[1] < HH-PriceScale*B1 Then{
E1 = 1;
L1 = L;
i1 = index;
V1 = HH; //시작점 종가
}
if E1 == 1 and index > i1 then{
if L < L1 Then
L1 = L;
#고가가 시작봉종가보다 작을 때만 눌림체크
if H <= V1 and H >= L1+PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = L1;
}
}
//시작점 종가보다 높은 가격이 발생하면 초기화
if E1 >= 1 and H > V1 Then{
E1 = 0;
HH = H;
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{
sell("s1");
}
}
if TotalTrades > TotalTrades[1] Then{
E1 = 0;
HH = H;
}
if H > HH Then
HH = H;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{
if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{
E1 = 1;
L1 = L;
i1 = index;
}
if E1 == 1 and index > i1 then{
if L < L1 Then
L1 = L;
if H >= L1+PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = L1;
}
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{
sell("s2");
E1 = 0;
}
}
if MarketPosition == -1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EL = L;
E1 = 0;
}
if L < EL Then{
EL = L;
E1 = 0;
}
if E1 == 0 and C >= EL+PriceScale*X1 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{
ExitShort("sx1");
E1 = 0;
}
}
}
if MarketPosition == -1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EL = L;
E1 = 0;
}
if L < EL Then{
EL = L;
E1 = 0;
}
if E1 == 0 and C >= EL+PriceScale*X2 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{
ExitShort("sx2");
E1 = 0;
}
}
}
if MarketPosition == 1 and MaxContracts < 5 Then
sell("ss",AtStop,LatestEntryPrice(0)-Pyra);
}
즐거운 하루되세요
> 좌오비우오비 님이 쓴 글입니다.
> 제목 : 피라미딩 추가
> 아래 sell 수식에 피라미딩을 추가하고 싶습니다.
* 0.8포인트씩 하락할 때마다 피라미딩
* input
- pyra : 0.80
- 피라미딩누적한도 : 5개
항상 고맙습니다
***********************************
input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000);
var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{
T1 = TotalTrades;
E1 = 0;
HH = H;
}
if stime >= 시작시간 then{
if H > HH Then
HH = H;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 Then{
if E1 == 0 and C <= HH-PriceScale*B1 and C[1] < HH-PriceScale*B1 Then{
E1 = 1;
L1 = L;
i1 = index;
V1 = HH; //시작점 종가
}
if E1 == 1 and index > i1 then{
if L < L1 Then
L1 = L;
#고가가 시작봉종가보다 작을 때만 눌림체크
if H <= V1 and H >= L1+PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = L1;
}
}
//시작점 종가보다 높은 가격이 발생하면 초기화
if E1 >= 1 and H > V1 Then{
E1 = 0;
HH = H;
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{
sell("s1");
}
}
if TotalTrades > TotalTrades[1] Then{
E1 = 0;
HH = H;
}
if H > HH Then
HH = H;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{
if E1 == 0 and C <= HH-PriceScale*B2 and C[1] < HH-PriceScale*B2 Then{
E1 = 1;
L1 = L;
i1 = index;
}
if E1 == 1 and index > i1 then{
if L < L1 Then
L1 = L;
if H >= L1+PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = L1;
}
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파 Then{
sell("s2");
E1 = 0;
}
}
if MarketPosition == -1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EL = L;
E1 = 0;
}
if L < EL Then{
EL = L;
E1 = 0;
}
if E1 == 0 and C >= EL+PriceScale*X1 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{
ExitShort("sx1");
E1 = 0;
}
}
}
if MarketPosition == -1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EL = L;
E1 = 0;
}
if L < EL Then{
EL = L;
E1 = 0;
}
if E1 == 0 and C >= EL+PriceScale*X2 Then{
E1 = 1;
H1 = H;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if H > H1 Then
H1 = H;
if L <= H1-PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = H1;
}
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파 Then{
ExitShort("sx2");
E1 = 0;
}
}
}
}
2018-03-16
227
글번호 117469
답변완료
문의드립니다
한국투자증권 언어편집기 신호겁색 rsi
Input : RPeriod(14), SignalPeriod(9);
var : SValue(0), Signal(0), BuyCond(FALSE);
SValue = RSI(RPeriod, Close);
Signal = EMA(SValue,SignalPeriod);
BuyCond = SValue Cross Above Signal;
// 신호검색
IF BuyCond Then
Begin
Find(1);
End;
10봉전 신호 검색은 어떻게 합니까
2018-03-16
233
글번호 117468
답변완료
문의드립니다.
아래 검색식은 장중에는 검색이 안되는건가요??
어제 저녁만해도 검색이 잘 됐는데 장중에는 결과값이 안나옵니다.
input : ntime(93000);
var1 = ma(C,20);
var2 = ma(C,60);
var3 = ma(C,120);
if sdate != sdate[1] Then
Condition1 = false;
if ((sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime)) and
var1 > var2 and var2 > var3 Then
Condition1 = true;
if Condition1 == true then
find(1);
2018-03-16
179
글번호 117457
답변완료
문의
국선 차트에 보조지표 스토케스틱
10,3,3 일때 stok 가 stod 를 상향할때 빨간점
하향할때 파란점 처럼 그려지게 부탁합니다
점이 찍히는 자리를 구해야 된다면 5이평선따라 그릴수있게 부탁합니다.
2018-03-16
239
글번호 117454