답변완료
예스스팟
var timer5 = 2; //5초
var 매수금 = 100000;
var OrderList = [];
var MKList = [];
var req;
function Main_OnStart()
{
//1번 타이머, 1초
Main.SetTimer(1, timer5*1000);
// 오늘 매수한 종목 관리 배열 초기화
MKList = [];
}
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 < 151500)
{
//종목검색 수행
Main.ReqPowerSearch("매수조건")
}
if (nEventID == 2)
{
Main.ReqMarketData(OrderList[req]);
}
}
function Main_OnRcvItemList(aItemList, nCount)
{
Main.KillTimer(1);
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(1)),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 반환
}
===============================================
위와 같이 실전매매를 진행중인데요.
1) "매수조건"신호에 따라 사듯이, "매도조건"신호에 따라 팔려고 합니다. 가능하면 부탁드립니다.
2) 한종목당 1회만 매수진입조건인데, 매수신호가 나올때 마다 진입할려면 무엇을 어떻게 바꾸면 될까요? 개별종목 단타라서 분봉신호마다 들어갈려고 합니다.
항상 감사합니다.
답변완료
예스스팟 질문드립니다
var 매수금 = 50000
var OrderList = [];
var MKList = [];
var req;
function Main_OnRcvMarketData(MarketData)
{
if (MarketData.code == OrderList[req])
{
MKList.push(MarketData);
Account1.OrderBuy(MarketData.code,1,0,1);
//Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),0,1);
// Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),MarketData.Ask(1),0);
1. 5만원이내에서 1주를 매도1호가 매수하려면 어떻게 수정하면 될까요?
2. 오전 10시 잔고 시장가로 자동 매도 모두 청산 수식은 어떻게 될까요?
감사합니다