커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8125
글번호 230811
답변완료
두번매매수정
input : HP(5),LP(5),최대수량(100);
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0), Value(0),vol(0);
var : HH(0),LL(0);
HH = max(dayhigh(1),dayhigh(2));
LL = min(daylow(1),daylow(2));
Pivot = (HH+LL+DayClose(1))/3;
R1 = 2*Pivot-LL;
R2 = Pivot+HH-LL;
S1 = 2*Pivot-HH;
S2 = Pivot-HH+LL;
if MarketPosition != 0 Then{
if PositionProfit < 0 Then
Vol = MaxContracts+20;
Else
vol = 50;
}
if MarketPosition == 0 Then{
if PositionProfit(1) < 0 Then
Vol = MaxContracts(1)+20;
Else
vol = 50;
}
if crossup(c,R1) then
buy("b1",OnClose,def,Floor(최대수량*0.5));
if crossup(c,R1-0.05) then
buy("b2",OnClose,def,Floor(최대수량*0.5));
if CrossDown(c,S1) Then
sell("s1",OnClose,def,Floor(최대수량*0.5));
if CrossDown(c,S1-0.05) Then
sell("s2",OnClose,def,Floor(최대수량*0.5));
위수식에서두번매매가연계가잘안되네요
수정부탁합니다
감사합니다
2017-06-01
171
글번호 110043
답변완료
부탁드립니다.
안녕하세요..글번호53479 제가잘못부탁드렸네요.죄송합니다
데이타2에주봉차트를 사용하는데요. 주봉라인부탁드립니다.
주봉의고점라인
주봉의저점라인
주봉의중심라인
주봉의시가라인
수고하세요.
2017-06-01
181
글번호 110035
답변완료
ask
변수적용
buy 수식: 진입1,2차 11틱, 청산1,2차 11틱
sell 수식: 진입1,2차 11틱, 청산1,2차 11틱
진입신호 후 청산신호 없이 눌림과 재돌파하는 경우가 일반적입니다.
하지만, 금일 처럼(2017.6.1 그림1참조)
진입신호 11틱 후 청산신호 11틱이 발생하는 경우 처음 진입신호가 청산신호를 무시하고
살아있으면 그림1처럼 진입하게 됩니다.
진입신호 후 청산신호가 발생하는 경우에는 처음 진입신호는 없어지고 갱신되어야 합니다.
그러면 그림2처럼 들어갈 수 있습니다.
경우에 따라서 진입신호가 3번 이상 갱신이 되는 경우도 왕왕 있기 때문입니다.
위와 같은 오류는 금일 sell수식, buy수식 모두에서 발견되었습니다.
진입 신호 갱신 부탁드립니다.
**********************************
안녕하세요
예스스탁입니다.
1
input : b1(11),b2(13),X1(13),X2(13),진입눌림(4),진입돌파(4),청산눌림(4),청산돌파(4),거래횟수(5);
var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0);
if Bdate != Bdate[1] Then{
T1 = TotalTrades;
E1 = 0;
}
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 Then{
if E1 == 0 and C <= DayHigh-PriceScale*B1 and C[1] < DayHigh-PriceScale*B1 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("s1");
}
}
if TotalTrades > TotalTrades[1] Then
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;
}
}
}
2
input : b1(11),b2(13),X1(13),X2(13),진입눌림(4),진입돌파(4),청산눌림(4),청산돌파(4),거래횟수(5);
var : T1(0),entry(0),LL(0),EH(0),E1(0),H1(0),i1(0),S1(0),L1(0);
if Bdate != Bdate[1] Then{
T1 = TotalTrades;
E1 = 0;
}
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 Then{
if E1 == 0 and C >= daylow+PriceScale*B1 and C[1] < daylow+PriceScale*B1 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{
buy("b1");
}
}
if TotalTrades > TotalTrades[1] Then
LL = L;
if L < LL Then
LL = L;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{
if E1 == 0 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 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{
buy("b2");
}
}
if MarketPosition == 1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EH = H;
E1 = 0;
}
if H > EH Then{
EH = H;
E1 = 0;
}
if E1 == 0 and C <= EH-PriceScale*X1 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{
exitlong("bx1");
E1 = 0;
}
}
}
2024-09-02
288
글번호 110034
오늘도수익 님에 의해서 삭제되었습니다.
2017-06-01
15
글번호 110033
답변완료
소리발생
안녕하세요
아래의 수식을 사용하고 있는데 첨부된 파일의 그림처럼 색상이 변하는곳에서 소리를 발생시키고 싶습니다.
즉 파란색에서 빨간색으로 비뀔때 3초동안 소리를 발생시키고
빨간색에서 파란색으로 바뀔때 3초동안 소리를 발생시키길 원합니다.
input : Period1(5),Period2(20),Period3(60),Length1(5),Length2(20),Length3(60);
var : StMomentum1(0),StMomentum2(0);
StMomentum1 = SMI(Period1,Period2,Period3);
StMomentum2 = SMI(Length1,Length2,Length3);
if StMomentum1 > StMomentum1[1] Then
value1 = 1;
if StMomentum1 < StMomentum1[1] Then
value1 = -1;
if value1 == 1 Then
plot1(var1,"기울기",RED);
else
plot1(var1,"기울기",BLUE);
if StMomentum2 > StMomentum2[1] Then
value1 = 1;
if StMomentum2 < StMomentum2[1] Then
value1 = -1;
if value1 == 1 Then
plot2(var1,"기울기",RED);
else
plot2(var1,"기울기",BLUE);
plot1(StMomentum1);
plot2(StMomentum2);
2017-06-01
203
글번호 110032
회원 님에 의해서 삭제되었습니다.
2017-06-01
0
글번호 110031
회원 님에 의해서 삭제되었습니다.
2017-06-01
0
글번호 110027
답변완료
수식문의
안녕하세요. 항상 궁금증에 정확한 답변을 주셔서 감사드립니다.
질문 내용은
exitlong("1/3매도",OnClose,def,"",floor(CurrentContracts*0.33),1);
위와 같이 일부매도 주문을 낼때 만약 매수가 피라미딩으로 복수로 들어가 있을때
전체 비중의 33%를 매도하라는 주문인데요.
그동안 차트의 모습을 보면 항상 비중매도 주문시 선입선출 방식으로 보여집니다.
가장 먼저 매수한 주문건부터 차례대로 매도주문이 나가는 것을 볼 수 있습니다.
이렇게 되면 평단가가 변하게 됩니다.
제 질문의 요지는
일부매도가 나가더라도 평단가의 변화가 없도록 전체주문건에 대하여 일괄적으로 33%씩 매도주문을 나가게 할 수 있나요?
만약 3건의 매수에 각각 30주씩 매수가 진행되어서, 총 90주의 매수가 진행되었다면,
첫번째 주문에서만 30주가 나가는 것이 아니라,
각각 주문건 마다 10주씩 30주가 매도 나가게끔 하고 싶습니다.
전자와 후자는 평단가에서 다르기 때문에 향후 매도주문시 전혀 다른 방향으로 진행될 겁니다.
부탁드립니다.
2017-06-01
191
글번호 110021
답변완료
지표함수 혼합
안녕하세요?
시스템함수에 지표함수를 넣어
전략차트에 시스템함수를 적용하고 지표함수를 또 따로 적용하지 않고 하나의 스크립트로
작성하고 싶습니다.
그래서 시스템함수를 적용하면 차트에 지표까지 나오게 하고 싶습니다.
가령 시스템함수 A와 지표함수 B를 한개의 시스템으로 한 C함수를 만들고 싶습니다.
##A
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
If CrossUP(value1, value2) Then
{
Buy();
}
If CrossDown(value1, value2) Then
{
Sell();
}
##B
Input : Period1(5), Period2(20);
var : Sma1(0),Sma2(0);
Sma1 = ma(C,Period1);
Sma2 = ma(C,Period2);
Plot1(Sma1, "이동평균1");
Plot2(Sma2, "이동평균2");
2017-06-01
158
글번호 110017