수식 자료(예스트레이더 자동매매 코드)(예스트레이더 자동매매 당일청산 코드)

 

책 XXXP 수식 자료(예스트레이더 자동매매 코드)




var timer5 = 2; //2초

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 < 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;

}

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 반환

}


=======================================================================================

p100:수식 자료(예스트레이더 자동매매 코드)

=======================================================================================


책 XXXP 수식 자료(예스트레이더 자동매매 당일청산 코드)






var timer5 = 2; // 2초

var 매수금 = 100000;

var 손절 = 0.95;

var 익절 = 1.05;

var OrderList = [];

var MKList = [];

var req;

function Main_OnStart()

{

//1번 타이머, 2초

Main.SetTimer(1, timer5*1000);

// 오늘 매수한 종목 관리 배열 초기화

MKList = [];

//스팟 시작시 잔고평가금액

V1 = Account1.GetBalanceETCinfo(100);

}

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 >= 090005 && HHMMSS < 151500)

{

//종목검색 수행

Main.ReqPowerSearch("변동성 돌파전략")

}

if (nEventID == 1)

{

//계좌보유종수

var num = Account1.GetTheNumberOfBalances();

//9시~15시 15분 사이

if (HHMMSS >= 090000 && HHMMSS < 151500)

{

//보유종목이 1개 이상

if (num >= 1)

{

//계좌평가금액이 스팟시작시 평가금액대비 5% 이상이면 전종목 전량매도

if (Account1.GetBalanceETCinfo(100) >= V1*익절)

{

//1번 타이머 종료

Main.KillTimer(1);

//계좌리스트의 순서대로

for (var i = 0; i < num; i++)

{

//잔고를 셋팅

Account1.SetBalance(i);

//수량이 있고 5%수익이거나 5% 손실이면 시장가 매도

if (Account1.Balance.count > 0)

{

Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1);

}

}

}

else //아니면 개별종목 5%익절, -5%손절 체크

{

//계좌리스트의 순서대로

for (var i = 0; i < num; i++)

{

//잔고를 셋팅

Account1.SetBalance(i);

//수량이 있고 5%수익이거나 5% 손실이면 시장가 매도

if (Account1.Balance.count > 0 &&

(Account1.Balance.current >= Account1.Balance.avgUnitCost*익절 ||

Account1.Balance.current <= Account1.Balance.avgUnitCost*손절))

{

Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1);

}

}

}

}

}

//15시 15분이후이면

if (HHMMSS >= 151500)

{

//1번 타이머 종료

Main.KillTimer(1);

//계좌리스트의 순서대로

for (var i = 0; i < num; i++)

{

//잔고를 셋팅

Account1.SetBalance(i);

//수량이 있고 5%수익이거나 5% 손실이면 시장가 매도

if (Account1.Balance.count > 0)

{

Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1);

}

}

}

}

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 반환

}









=======================================================================================

p120:수식 자료(예스트레이더 자동매매 당일청산 코드)

=======================================================================================

댓글

이 블로그의 인기 게시물

히브리인, 이스라엘인, 유대인 성경 속 이름에 숨겨진 소름 돋는 비밀

작은 틈이 무너뜨린다 왜 우리는 ‘사소한 분열’을 극도로 경계해야 하는가

작은 틈이 무너뜨린다 왜 성경은 ‘분열의 시작’을 그렇게 경고하는가