var timer5 = 2; // 2초
var 매수금 = 100000;
var OrderList = [];
var MKList = [];
var req;
// 종목 제한 수 (변수로 설정)
var 종목제한수 = 1;
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 < 151800) {
// 종목검색 수행
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.slice(0, 종목제한수); // 한정된 수만 가져오기
} 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]);
// 제한 수를 넘는 경우 break
if (OrderList.length >= 종목제한수) {
break;
}
}
}
}
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 반환
}
----------------------------------------------------------------
자동매도 할쑤있게 코드 추가 부탁드림미다 건강하세요
답변 2
예스스탁
예스스탁 답변
2025-02-13 09:32:05.0
안녕하세요
예스스탁입니다.
1
자동매도라고만 언급하시면 어떤 내용으로 매도하고자 하시는지 알수 없습니다.
좀더 자세한 매도조건을 올려주셔야 합니다.
2
만약 손익절을 하는 내용이면 스팟수식에 추가하지 않으셔도 됩니다.
해당스팟으로 매수만 하고 스탑주문창을 이용해서 손익절되게 설정하셔도 됩니다.
즐거운 하루되세요
> 뽀스뽀스 님이 쓴 글입니다.
> 제목 : 자동매도 코드 추가 부탁드려요
> var timer5 = 2; // 2초
var 매수금 = 100000;
var OrderList = [];
var MKList = [];
var req;
// 종목 제한 수 (변수로 설정)
var 종목제한수 = 1;
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 < 151800) {
// 종목검색 수행
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.slice(0, 종목제한수); // 한정된 수만 가져오기
} 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]);
// 제한 수를 넘는 경우 break
if (OrderList.length >= 종목제한수) {
break;
}
}
}
}
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 반환
}
----------------------------------------------------------------
자동매도 할쑤있게 코드 추가 부탁드림미다 건강하세요
뽀스뽀스
2025-02-14 18:49:10.0
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 자동매도 코드 추가 부탁드려요
>
안녕하세요
예스스탁입니다.
1
자동매도라고만 언급하시면 어떤 내용으로 매도하고자 하시는지 알수 없습니다.
좀더 자세한 매도조건을 올려주셔야 합니다.
2
만약 손익절을 하는 내용이면 스팟수식에 추가하지 않으셔도 됩니다.
해당스팟으로 매수만 하고 스탑주문창을 이용해서 손익절되게 설정하셔도 됩니다.
즐거운 하루되세요
> 뽀스뽀스 님이 쓴 글입니다.
> 제목 : 자동매도 코드 추가 부탁드려요
> var timer5 = 2; // 2초
var 매수금 = 100000;
var OrderList = [];
var MKList = [];
var req;
// 종목 제한 수 (변수로 설정)
var 종목제한수 = 1;
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 < 151800) {
// 종목검색 수행
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.slice(0, 종목제한수); // 한정된 수만 가져오기
} 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]);
// 제한 수를 넘는 경우 break
if (OrderList.length >= 종목제한수) {
break;
}
}
}
}
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 반환
}
----------------------------------------------------------------
자동매도 할쑤있게 코드 추가 부탁드림미다 건강하세요
자동매수 조건처럼 자동매도 조건을 추가할수 있게 해주세요 코드 추가 부탁드려요 퍼센트로 매도 하는것 말고요 부탁드림미다 건강하세요