커뮤니티
예스스팟 Q&A
답변완료
1777번 질의 관련입니다
1777번에 올린 스팟식으로 출력대는 내용을 첨부파일로 올렸읍니다. 미완성신호값이 제대로 않나오는데요 다시한번 확인부탁드립니다
혹시 미완성신호가 두개가 동시에 발생될 경우에 이런 문제가 발생하는 건 아닌지요 ?
2018-09-20
3019
글번호 224596
답변완료
PowerSeach 사용시 검색 조건의 관심종목내 검색 기능 개선 요청드립니다.
PowerSeach 사용시 '검색' 조건의 관심종목내 검색 기능 개선 요청드립니다.
1. GAME 이름으로 검색시 '관심종목내 검색'기능으로 제가 미리 만들어놓은 게임주에서만 검색합니다.
2. 메르스 이름으로 검색시 '관심종목내 검색'기능으로 제가 미리 만들어놓은 메르스주에서만 검색합니다.
예스스팟에서 powerseach 명으로 GAME 또는 메르스로 지정하면 '관심종목내 검색'기능이 각 '사용자 검색조건'의 관심종목으로 선정되지 않고 마지막 '관심종목'으로 세팅됩니다.
전략별 검색하고자 하는 관심대상이 정해져 있을때 '사용자 검색조건'이 달라질때도 관심종목 대상도 연동되어 같이 변경되었으면 합니다.
예스스팟 PowerSearch때 관심종목 대상을 지정하게 되면 불필요하게 전체를 대상으로 서치 안해도 되는 이점이 있어 빠르게 검색하고 서버에 부하는 주지 않게 되지 않을까 생각합니다.
2018-09-09
3103
글번호 224590
답변완료
변수명을 "atr+종목코드"형태로 합성하여 사용하고자 합니다.
변수명을 합성하여 사용하고자 합니다.
var atr; 형태에서 종목코드를 추가하여
var atr + 종목코드; 이렇게 만들려고 합니다. 문법적으로 오류가 당연히 나는데요.
어떻게 하면, atr종목코드 형태의 변수를 만들수 있을까요?
2018-09-08
2933
글번호 224589
푸른가마 님에 의해서 삭제되었습니다.
2018-09-07
0
글번호 224588
답변완료
수식 부탁드립니다
항상 감사하게 생각합니다.
엑셀에서 여러종목의 종목명,수량을 가져와서 주문하는 수식을 만들고 있습니다.
아래에서 지정가매수주문에서 매수호가를 매수1호가에 주문하는 것과 미결제분은 10분후에 매도1호가로 정정주문하는 것을 추가하는 내용가르쳐주시면 감사하겠습니다.
function Main_OnStart()
{
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (HHMMSS > 093000 && HHMMSS < 150000 )
{
Main.SetTimer(1,5000);
}
}
function Main_OnTimer(nEventID)
{
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (HHMMSS >= 090000 && nEventID == 1)
{
Main.KillTimer(1);
for (var i = 3; i < Excel1.GetRowCount(1); i++)
{
Account1.OrderBuy(Excel1.GetData(1,"B"+i),Excel1.GetData(1,"C"+i),매수1호가,0);
}
}
}
2018-09-04
3022
글번호 224587
답변완료
신용주문
신용주문 가능 여부를 미리 리턴 받을 수 있는지 궁금합니다.
1. 관심그룹에 종목들을 넣어둔 후에 특정조건을 만족했을 때,
해당 종목이 신용주문이 가능하면 신용주문을 넣고, 불가능하다면 현금주문을 넣도록 코드를 짤 수 있나요?
2. 잔고의 종목코드들을 지정한 후에, 같은 로직으로 매도를 하는데.
해당 종목을 신용으로 매수했으면 신용매도를, 현금으로 매수했으면 현금매도를 하게 코드를 짤 수 있나요?
예제 코드를 써주시면 좋을 거 같습니다. 감사합니다.
2018-09-05
2861
글번호 224586
답변완료
몇가지 질문 있습니다.
안녕하세요.
spot 관련 몇가지 궁금한 점이 있습니다.
1) 1분봉 YT 선물신호를 기준으로 spot 거래를 할 때,
예를들어 YT에서 10시 01분 09초에 거래가 발생하여 01분 완성신호가 되었고
이때 spot에서 주문후 setTimer를 5초,10초,15초로 정정주문 셋팅하였을 경우,
- YT 09초 주문발생에 의하여 spot주문후 14초,19초,24초에 정정이 발생하나요?
- 아니면 spot정정 5초는 무시되고, 9초 주문발생후 --> 10초,15초에 정정
이렇게 되나요?
2) 옵션거래에서 만기주 및 만기전주만 거래를 하고자 할 때,
----> if (Option.GetRemainDays(0, 0) <= 11)
이렇게 조건 수식을 작성하면 되는지요?
이상입니다.
감사합니다 !!
2018-09-03
2863
글번호 224585
ujm 님에 의해서 삭제되었습니다.
2018-08-31
1
글번호 224584
답변완료
엑셀파일에 종목코드 저장시 텍스트 설정이 풀려서 앞자리 0이 사라집니다.
excelNum = Account1.GetTheNumberOfBalances();
// 기존 시트내용 clear, 예스스팟내에서 시트을 만들거나 시트를 삭제 할수 없음으로 기존 데이터를 잘 관리해야 함.
Excel1.Clear(1,"A1","Z200");
// 작성시작
Excel1.SetData(1, "A1","보유종목수");
Excel1.SetData(1, "B1",excelNum);
Excel1.SetData(1, "A2","종목명");
Excel1.SetData(1, "B2","종목코드");
Excel1.SetData(1, "C2","평단가");
Excel1.SetData(1, "D2","보유수량");
Excel1.SetData(1, "E2","현재가");
Excel1.SetData(1, "F2","매도가격");
엑셀파일에 현재 잔고데이타를 저장하고 있습니다.
종목코드 컬럼을 기존에는 엑셀파일에서 텍스트로 지정하여 사용하였기에 종목코드 앞의 0이 그대로 있어 사용하였습니다.
엑셀파일의 기존 내용을 지우는 clear를 사용하고 나서부터는 col를 텍스트로 지정하여도 clear되면서 셀서식이 일반 으로 지정되어 종목코드 앞의 0이 사라집니다.
어떻게 수정하면 될까요? 도움 부탁드립니다.
2018-08-30
2879
글번호 224581
답변완료
트레일링 스탑 적용시 에러(정말 빠른 답변 부탁드립니다.)
안녕하세요.
아래수식을 보아 주시고 제가 이 수식을 오늘 당장 적용해야하므로 가능하시다면 정말 빠르게 답변을 부탁드립니다.
//계좌객체 Account1
function Main_OnStart()
{
Main.SetTimer(1,2000);//5초 단위 체크
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
//총수익 누적할 변수
var sumPL = 0;
var sells = 0;
var buys = 0 ;
var profits = 0 ;
var hh =0 ;
//계좌의 종목수
var num = Account1.GetTheNumberOfBalances();
//종목이 2개 이상일때만
if (num >= 1)
{
//잔고 종목 총손익 계산
for (i = 0; i < num;i++)
{
Account1.SetBalanceIndex(i);
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
sumPL = sumPL + (Account1.Balance.avgUnitCost - Account1.Balance.current)*Account1.Balance.count;
sells=Account1.Balance.count;
}
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
sumPL = sumPL + (Account1.Balance.current - Account1.Balance.avgUnitCost)*Account1.Balance.count;
buys=Account1.Balance.count;
}
}
profits= sumPL*100 - (sells + buys)*2*7.5 ;
if ( profits >hh )
{ hh = profits ;
}
Main.MessageLog(" profits"+ profits+"달러") ;
Main.MessageLog(" hh" + hh+" ") ;
Main.MessageLog(" buys"+ buys+"개") ;
Main.MessageLog(" sells"+ sells+"개") ;
//총손익이 특정값(0)보다 크면 전체 종목 청산
if ( hh > 20 && (profits < ( hh * 0.5 )) )
{
hh = 0 ;
for (i = 0; i < num;i++)
{
Account1.SetBalanceIndex(i);
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count,0,1);
}
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,0,1);
}
}
}
//총손익이 순수익 트레일링 스탑으로 전체종목 청산
}
}
}
에서 profits는 비용까지 계산한 순수한 순수익입니다.
profits가 20달러 이상 된 후에 트레일링 스탑을 profits의 최고가 (즉 hh)에서 50% 떨어지면
강제청산하려고 위에서
profits= sumPL*100 - (sells + buys)*2*7.5 ;
if ( profits > hh )
{ hh = profits ;
}
처럼 구성했습니다.
종목이 2종목이상이므로 순수익으로만 트레일링 스탑을 구성하려고 했습니다.
profits가 고가hh를 오버할 때만 새로운 고가hh가 되어야 하는데요.
Main.MessageLog(" hh" + hh+" ") ; 으로 확인해보면
고가hh 값은 profits값하고 이상하게 항상 동일한 값으로 나옵니다.
수식을 목표한 트레일링스탑이 가능하도록 수정해 주시면 감사드리겠습니다.
2018-08-30
2980
글번호 224580