커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4335
글번호 230811
답변완료
주식계좌와 선물계좌가 동시에 운영 가능한가요?
하이투자증권 이용하고 있고요.
예스 트레이더 켜서
주식 종목에 대한 전략실행차트를 실행해두고,
동시세 선물 종목에 대한 전략실행차트를 실행해두면,
알아서 주식 종목은 주식계좌에 있는 돈으로 거래를 하고,
선물 종목은 선물계좌에 있는 돈으로 거래를 하는건가요?
아니면 다른 설정이 필요한가요?
감사합니다.
새해 복 많이 받으세요!!
2018-01-02
146
글번호 115377
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
손익비는 떨어 뜨리지만 승률은 떨어 뜨리지 않으면서 피라미딩을 하려고 하는데요.
그러러면
-(진입포지션 - 스탑지점)의 수익금(혹은 수익률)이
-2차 포지션의 손실금(2차 진입지점-스탑지점) + 설정 슬리피지(1틱)+수수료(0.004) +최소수익으로 설정해놓은 금액(2틱) 보다는 커야 할 듯 합니다.
-3차로 들어가려면 1차 2차까지 들어간 진입 포지션의 수익금이
-3차 진입포지션의 손실금(3차 진입지점-스탑지점)+설정 슬리피지(1틱)+수수료(0.004)+최소수익보다는 커야할 것이고 나머지 4차 5차도 같은 방식이어야 할 듯 합니다.
이걸 어떤 방식으로 구현할 수 있을까요?
청산지점은 아래 청산 수식을 쓰려고 합니다.
input: TsValue(1);
var: Hvalue(0),Lvalue(0);
If MarketPosition() == 1 Then {
Hvalue = Highest(H,BarsSinceEntry+1);
ExitLong("trailstop_EL", Atstop, Hvalue-TsValue*PriceScale);
}
If MarketPosition() == -1 Then {
Lvalue = Lowest(L,BarsSinceEntry+1);
ExitShort("trailStop_Es", Atstop, Lvalue + TsValue*PriceScale);
}
2. 기타
외부변수 진입금액, 제한 금액
-진입 전봉보다 0.5틱 더 크면 진입금액만큼 매수 진입(ATSTOP)
-전봉이 수익이면 진입수량*2 추가
-'' 손실이면 진입금액으로 돌아감
-진입금액은 제한금액이상으로 늘리지는 않음.
3. 아래와 같이 buysetup으로 고가 저장을 한 뒤 돌파로 수식을 짤 때 buysetup이 된 다음봉 이상 에서만(buysetup봉에서는 진입하지 않도록) 진입이 되도록 하려면 어떻게 고쳐야 하나요.
어느 부분을 고친건지 간단한 주석 부탁드립니다.
Inputs: rt(0.6),틱수(10);
var : ChUp(0), ChDn(0);
var : buybase(0),buysetup(false),Buyindex(0);
var : Sellbase(0),Sellsetup(false),Sellindex(0);
ChUp = dayopen + ((dayhigh(1) - daylow(1)) * rt);
ChDn = dayopen - ((dayhigh(1) - daylow(1)) * rt);
If crossup (Close, ChUp) then{
buysetup = true;
buybase = H;
Buyindex = index;
}
if C < CHDn Then
buySetup = false;
If crossdown (Close, ChDn) then{
Sellsetup = true;
Sellbase = L;
Sellindex = index;
}
if C > CHup Then
SellSetup = false;
if buysetup == true and MarketPosition == 0 then{
buy("매수",AtStop,buybase+PriceScale*틱수);
}
if Sellsetup == true and MarketPosition == 0 then{
sell("매도",AtStop,Sellbase-PriceScale*틱수);
}
}
4. 기타
답변해주신 것 듣고 시뮬레이션은 아래 식으로만 하는 중인데요. 이제 시뮬레이션 결과가 좋아서 실전에서 같은 봉에서도 발생할 수 있도록 하게 하려면 아래 수식을 어떻게 바꾸어야 하는지요.
input: TsValue(1);
var: Hvalue(0),Lvalue(0);
If MarketPosition() == 1 Then {
Hvalue = Highest(H,BarsSinceEntry+1);
ExitLong("trailstop_EL", Atstop, Hvalue-TsValue*PriceScale);
}
If MarketPosition() == -1 Then {
Lvalue = Lowest(L,BarsSinceEntry+1);
ExitShort("trailStop_Es", Atstop, Lvalue + TsValue*PriceScale);
}
5. 전에 짜주신 일정봉 지나서 손익라인 닿으면 즉시 청산 식인데요. 이걸 일정봉 지난 뒤 손익분기라인 아래(매수면 아래 매도면 위) 있으면 즉시 청산으로 수정 부탁드립니다. 혹시 이미 포함돼 있는 건가요?
input : 최소기다리는봉(10),슬리피지틱수(1),수수료율(0.01);
if MarketPosition == 1 and BarsSinceEntry >= 최소기다리는봉 Then{
var1 = EntryPrice+PriceScale*슬리피지틱수+EntryPrice*(수수료율/100);
if NextBarOpen <= var1 Then
exitlong("bx1",AtLimit,var1);
Else
exitlong("bx2",AtStop,var1);
}
if MarketPosition == -1 and BarsSinceEntry >= 최소기다리는봉 Then{
var1 = EntryPrice-PriceScale*슬리피지틱수-EntryPrice*(수수료율/100);
if NextBarOpen >= var1 Then
ExitShort("sx1",AtLimit,var1);
Else
ExitShort("sx2",AtStop,var1);
}
2018-01-03
162
글번호 115376
답변완료
수식 부탁드립니다
일봉 기준 며칠전의 며칠을 input : N(며칠)
로하고 그 며칠전에 검색식의 점을 Plot하는 수식 부탁드립니다.
조건검색식 아닙니다.
2018-01-02
158
글번호 115375
답변완료
문의드립니다.
Input : P1(5);
var : a1(0);
a1=ma(c,p1);
if CrossUp(c,a1) Then
var1=c;
if CrossUp(c,var1[1]) then
Find(1);
종가가 5일선을 상향돌파하면 var1은 종가다. 1봉전 종가가 직전 var1[1]을 돌파하면 검색해라.
라고 쓴거같은데 잘못쓴건가요?
사진처럼 전혀 엉뚱한 종목들이 다 검색됩니다. 중외제약은 돌파한적도 없는데 검색이 되네요.
사진의 가격띠처럼 46850원이 돌파되면 검색이 되야하는데 뭐를 잘못한 건가요?
혹시나해서 봉갯수도 100개로주고 직전 var1[1]이 아니라 var1[2]나 3으로해도 결과가 엉뚱하게 나오네요.
2018-01-01
186
글번호 115374
개냥이 님에 의해서 삭제되었습니다.
2018-01-01
0
글번호 115373
매일 님에 의해서 삭제되었습니다.
2018-01-01
4
글번호 115372
답변완료
두 지점을 연결하는 연장선을 그리려 합니다.
두가지 질문이 있습니다.
1.
원유선물에서 두 지점을 연결하는 연장선을 지표로 작성해서 표시해봤는데 진행하는 방향인 오른쪽 말고 왼쪽으로 표시는 없애면 좋겠습니다.
나름 해본다고 했는데 그래도 나오더군요.
도움 주시면 고맙겠습니다.
Input : StartDate(20171227), StartTime(210026), StartValue(59.29), EndDate(20171228), EndTime(013219), EndValue(59.35);
TL_New(StartDate,StartTime,StartValue,EndDate,EndTime,EndValue);
var1 = TL_New(StartDate,StartTime,StartValue,EndDate,EndTime,EndValue) ;
TL_SetExtRight(var1,true);
TL_SetExtLeft(var1,False);
var2 = TL_GetValue(var1,sdate,stime);
plot1(var2);
2.
그리고 첨부1에서처럼 타주기 참조를 하려는데 첨부한 파일처럼 짧은 주기의 차트와 같이 표시되는 곳에서 큰 주기 차트는 일정 간격으로 표시되어 있는데 짧은 주기의 차트의 봉 데이터가 없는 곳에서는 봉 간격이 달라지네요. 불러오거나 표시할 수 있는 봉 데이터 갯수가 제한이 있어서 원하는 만큼 표시가 안되는것 같기는 하지만 이러다보니 제가 하려는 전략이나 지표적용하는데 정확하게 안되서 문제가 있네요.
3.
첨부2에서 예를 들면 헤드앤 숄더라고
매수방향으로 가다가 매도로 진입을 시도를 한다면
고점과 저점 사이를 연결하면서 5번이 만들어지고 이평선을 뚫고 내려갈때 해당 패턴이 만들어졌다고 가정하면
이런 패턴이 눈으로 보기에 모양은 나와도 그 사이에 봉의 구성이 여러가지인지라
패턴 구성을 일일히 만들어주는 방법도 있지만 이런건 비효율적일수도 있는데
예를 들면 1-2로 눌린 구간처럼 눌린 구간의 크기와 봉의 갯수를 변수로 정해놓고
5번에서 완성된 후에 이평선에 터치한다고 했을때
효과적으로 수식을 구성하려면 대략적으로 어떻게 하는것이 좋을까요?
3번째 첨부한것을 보면 매수시 추세가 나오고 M자형 파동이 나오고 만일 매도시라면 W 자형 파동이 나올 경우라면
저점과 고점을 만드는 기준이 고점이 홀수개라면 중간봉 그리고 짝수개 예를 들어 4개라면 중간값을 반올림해서 3번째 봉 이런식으로 지정하고 첫번째 고점을 만들고 일정틱 및 봉 개수 이상 눌리기 시작하면 첫번째 저점을 표시해주고 이런식으로 해보려고 하는데 눌리는 폭과 봉 개수는 종목마다 다른지라 변수로 지정해보려고 합니다.
자료도 찾아보고 했지만 비슷한것도 없고 저도 공부를 해야하는지라
100% 다 작성해주지 않으셔도 되니대략 어떻게 수식 작성하는지에 대해서도 알려주시면 최대한 해보고 안되면 다시 질문드려보겠습니다.
4.
위에것과 연계된 질문일 수 있지만 고점과 저점을 연결하는 선을 그려줄때 고점 저점간의 일정틱이상, 일정 틱수 이상으로 해서 그려주는 것에 대한 문의를 드린것에 대한 답변인데 원하는대로 잘 그려지지 않아서 다시 문의드려봅니다.
지난번에 해주신 내용은 다음과 같습니다.
input : left(3),Right(3),n(10),x(20);
if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 and
(var2 == 0 or (var2 > 0 and index > var22+n and H[right] > var2+PriceScale*x)) then{
var1 = H[right];
var11 = index;
}
if SwingLow(1,L,Left,Right,Left+Right+1) != -1 and
(var1 == 0 or (var1 > 0 and index > var11+n and L[right] < var1-PriceScale*x)) then{
var2 = L[right];
var22 = index;
}
plot1(var1);
plot2(var2);
2018-01-02
289
글번호 115371
답변완료
질문입니다.
주가지수선물에서 거래하는 시스템을 작성하였습니다.
이 시스템은 오버나잇을 하는 시스템입니다.
여기에 추가할 사항이 있어서 질문합니다.
질문1-1.
새로운 주가 시작되고 그주의 총손실이 X포인트를 넘어가면,
현재 포지션(매수or매도)을 정리합니다.
청산은 봉완성시로 하고 싶습니다.
그리고 그 주는 더이상 거래를 진행하지 않습니다. 포지션이 없는 상태로말이죠.
그 이후 다음주가 시작되면 시스템을 다시 작동시켜 거래하고,
이 역시도 주중 총손실 X포인트의 관리를 받게 만들고 싶습니다.
질문1-2.
질문1-1과 비슷하지만 주중 총손실이 아닌,
총손실 기간을 1일로 하면 코딩이 어떻게 바뀌는지 궁금합니다.
즉, 1일 총손실이 X포인트를 넘어가면,
있는 포지션을 정리하고, 당일은 진입하지 않고, 다음거래일부터 시스템을 시작하는 것이죠.
질문1-3.
역시 질문1-1과 비슷한데 주중 총손실이 아닌,
2주간 총손실이 X포인트가 넘어갈때,
진입 포지션을 정리하고, 해당 2주간은 진입하지 않고,
다음 새로운 2주가 시작되었을때 시스템을 시작하도록 하고싶습니다.
질문2.
질문1과 비슷합니다.
현재 거래일을 포함하여 Y일간의 총손실포인트가 Z포인트를 넘어간다면,
해당 포지션(매수or매도)을 정리합니다.
시간이 흘러 Y일간 총손실포인트가 Z포인트 이내로 들어온다면,
시스템을 제계시킵니다.
질문3.
선물승수가 바뀌었습니다.
바뀐 승수를 적용한 선물 상,하한가 수익,손실 청산 수식이 궁금합니다.
질문4.
2018년 선물만기일 14:00:00에 청산하는 수식을 부탁드립니다.
답변부탁드리겠습니다.
2018-01-02
173
글번호 115370
답변완료
진입수량 조절 문의
본래 진입식이 1번식이며 수량 조절을 위해서 2,3,4번 식으로 변형해본 결과
성과에서 꽤 차이가 나는 현상이 나타납니다
1번 식과 동일한 성과가 나오면서 진입수량 조절을 할 수 있는 방법이 있는지 문의드립니다
설정창 진입수량 방법 조절이 아닌 로직 내에서 조절하는 방법 문의드립니다
1번
if condition2 and Condition3 then Sell("S");
2번
if condition2 and Condition3 then Sell("S",atmarket,def,1);
3번
if condition2 and Condition3 then Sell("S",onclose,def,1);
4번
if condition2 and Condition3 then Sell("S",atstop,def,1);
2017-12-31
187
글번호 115369