커뮤니티
예스스팟 Q&A
답변완료
예스스팟 자동주문
아래는 현재 제가 쓰고있는 예스스팟입니다.
현재는 같은종목은 매수치 않게 되어 있는데
이것을 계좌에 있더라도 중복매수되게 고치고 싶습니다.
수정부탁드립니다.
======================================================================
var timer5 = 2; //5초
var 매수금 = 100000;
var OrderList = [];
var MKList = [];
var req;
function Main_OnStart()
{
//1번 타이머, 1초
Main.SetTimer(1, timer5*1000);
// 오늘 매수한 종목 관리 배열 초기화
MKList = [];
Main.MessageList("START");
}
function Main_OnTimer(nEventID)
{
var d = new Date();
YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate();
HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (nEventID == 1 && HHMMSS > 090000 && HHMMSS < 150000)
{
//종목검색 수행
Main.ReqPowerSearch("60분봉 급소2")
}
if (nEventID == 2)
{
Main.ReqMarketData(OrderList[req]);
}
}
function Main_OnRcvItemList(aItemList, nCount)
{
Main.KillTimer(1);
Main.MessageList("Main_OnRcvItemList:",nCount);
OrderList = [];
if (nCount >= 1)
{
if (MKList.length == 0)
{
OrderList = aItemList;
}
else
{
for (var a = 0; a < nCount; a++)
{
var Add = true;
for (var b = 0; b < MKList.length; b++)
{
if (aItemList[a] == MKList[b].code)
{
Add = false;
}
}
if (Add == true && !IsStockInAccount(aItemList[a]))
{
OrderList.push(aItemList[a]);
}
}
}
}
if (OrderList.length == 0)
{
Main.SetTimer(1, timer5*1000);
}
else
{
req = 0;
Main.ReqMarketData(OrderList[req]);
}
}
function Main_OnRcvMarketData(MarketData)
{
if (MarketData.code == OrderList[req])
{
MKList.push(MarketData);
// 계좌에 같은 종목이 있는지 확인
if (!IsStockInAccount(MarketData.code))
{
// 계좌에 없는 경우에만 매수
//Account1.OrderBuy(MarketData.code,1,0,1);
Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(3)),0,1);
// Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),MarketData.Ask(1),0);
//지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다.
Main.MessageList(MarketData.code + " 주식을 매수합니다.");
}
else
{
Main.MessageList( MarketData.code + " 주식은 이미 계좌에 있으므로 매수하지 않습니다.");
}
req = req+1;
if (req < OrderList.length)
{
var aa = Main.ReqMarketData(OrderList[req]);
if (aa == -1)
{
Main.SetTimer(2, 15000);
}
}
else
{
Main.SetTimer(1, timer5*1000);
}
}
}
function IsStockInAccount(stockCode) {
// 계좌에 해당 종목이 있는지 확인하는 함수
var numberOfBalances = Account1.GetTheNumberOfBalances();
for (var i = 0; i < numberOfBalances; i++) {
Account1.SetBalance(i);
if (stockCode == Account1.Balance.code) {
return true; // 계좌에 같은 종목이 있으면 true 반환
}
}
return false; // 계좌에 같은 종목이 없으면 false 반환
}
2024-08-08
807
글번호 226071
ksks 님에 의해서 삭제되었습니다.
2024-08-07
3
글번호 226070
답변완료
ai code program
yl로 코드 작성에 알맞는 국내외 ai로 코드를 완성하는 ai 무유료 프로그램들?
2024-08-06
614
글번호 226069
답변완료
book discovery
'「한권으로 끝내는 시스템 트레이딩`」 책을 구하는 방법?
2024-08-06
531
글번호 226068
답변완료
파워종목검색에서 총거래대금? 거래대금? 무슨 차이일까요?
파워종목검색에서 총거래대금, 거래대금이 나뉘어져 있는데, 둘간 차이가 무엇일까요?
2024-07-30
559
글번호 226061
답변완료
정정주문 테스트 하다가 발생한 에러
var ID;
var Number;
function Main_OnStart()
{
ID = A1.OrderSell(MarketData1.code, 1, MarketData1.Ask(9),0);
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == ID )
{
Number = OrderResponse.orderNum;
Main.SetTimer(1, 60000);
}
}
function Main_OnTimer(nEventID)
{
if ( nEventID ==1 )
{
ID = A1.OrderReplacePrice(Number,MarketData1.Ask(10));
Main.KillTimer(1);
}
}
function Main_OnNotifyFill(NotifyFill)
{
if (NotifyFill.orderNum == Number)
Main.KillTimer(1);
}
해외선물 유가로 했는데 호가유형 구분값 오류라고 하는데 이게 무엇일까요?
2024-07-26
693
글번호 226060
답변완료
Option.GetATMCallRecent(-1) 테스트중 행사가 변경 이유 문의
예스스팟 모의 테스트 하는 데 갑자기 콜옵션 행사가 다른게 잡혀서 문의드립니다.
372.5 -> 370
왜그런걸까요?
function C1_OnRiseSignal(Signal)
{
if ( Signal.signalKind == 1)
{
Main.OrderBuy( A1.number,Option.GetATMCallRecent(-1),1, 0, 1);
}
if ( Signal.signalKind == 3 )
{
Main.OrderSell(A1.number,Option.GetATMCallRecent(-1), 1, 0, 1);
}
Main.MessageLog(Signal.signalKind);
}
2024-07-26
664
글번호 226059
답변완료
MarketData.GetPrevClose(1) 의미 확인 부탁드려요
MarketData의 prevClose와 GetPrevClose(1)은 같은게 아닌가요?
전일 종가, 전일봉 종가..
두 값이 다르게 나와서 문의드려요.
특히나 GetPrevClose는 값이 영 이상하네요.ㅠ
각각의 의미, 차이 문의드립니다
2024-07-26
614
글번호 226058
1000djr 님에 의해서 삭제되었습니다.
2024-07-25
1
글번호 226057
답변완료
예스스팟 객체 업데이트 요청(ReqDeposit, GetBalanceETCinfo)
한국투자증권 사용중입니다.
1.
계좌객체 중
ReqDeposit(currency)에 통화코드 업데이트 요청 드립니다.
예수금현황 통화코드와 currency 파라미터가 다릅니다.
TOT_USD도 필요해서 스팟에 추가부탁드립니다.
수정제안 : TOT -> TOT_KRW, TOT_USD
2.
계좌객체 중
GetBalanceETCinfo(nKind)에 nKind 내용 업데이트 요청 드립니다.
nKind에 적혀있는 설명과 실제로 조회되는 내용이 다릅니다.
예를들면 11번 주문가능금액 조회하면 다른 값이 출력됩니다. 수정부탁드립니다.
2024-07-25
651
글번호 226056