커뮤니티

수식 부탁드립니다.

프로필 이미지
무명
2015-05-29 04:52:02
1721
글번호 223489
답변완료
아래 스팟식은 검색종목이 잔고에 없으면 매수주문하는 식입니다. 아래 스팟식을 날이 바뀌거나 주가 바뀌거나(선택가능하게 부탁) 재차 검색되면 5번까지 피라미딩 진입되도록 수식 업그레이드 부탁드립니다. 이게 어렵다면 날이 바뀌거나 주가 바뀌거나(선택가능하게 부탁) 재차 검색되면 검색종목 잔고가 500000이 될때까지 진입되게 부탁드려요. var EntryMoney; var ItemList,Count; //스팟시작 function Main_OnStart() { //타이머설정 Main.SetTimer(1, 600000);//간격(3600초 60분) EntryMoney = 100000; } function Main_OnTimer(nEventID) { //타이머동작하면 사용자검색조건 실행 if (nEventID == 1) { Main.ReqPowerSearch("Box-30"); Req = 0; } if (nEventID == 2 && Req < Count) { Main.ReqMarketData(ItemList[Req], 0, 0); Req = Req+1; Main.MessageList(ItemList[Req-1],Req); } } //종목검색이 완료 function Main_OnRcvItemList(aItemList, nCount) { //검색종목수가 1개 이상이면 if (nCount >= 1) { ItemList = aItemList; Count = nCount; //잔고셋팅해서 보유종목이 아니면 Account1.SetBalanceItem(ItemList[0],0); Main.MessageList(Count,ItemList,Account1.Balance.count); if (Account1.Balance.count == 0) { //종목객체 생성 요청 Req = 1; Main.ReqMarketData(ItemList[0], 0, 0); Main.SetTimer(2, 1000);//간격(1초) } } } //요청한 종목객체가 생성되면 function Main_OnRcvMarketData(MarketData) { var Ob = MarketData; var EntryVol = 0; //현재가가 EntryMoney 미만이면 수량계산 이상이면 1주 if (Ob.current < EntryMoney) EntryVol = Math.floor(EntryMoney/Ob.current); else EntryVol = 1; if (EntryVol > 0) { Account1.OrderBuy(Ob.code,EntryVol,Ob.Ask(5),0); Main.RemoveMarketData(Ob); } }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-06-03 19:34:13

안녕하세요 예스스탁입니다. 일자나 주단위 횟수제한은 수식으로 어렵습니다. 해당종목 잔고의 평단가와 수량을 곱해 금액으로 500,000까지 될수 있게 수정했습니다. var EntryMoney; var ItemList,Count; //스팟시작 function Main_OnStart() { //타이머설정 Main.SetTimer(1, 600000);//간격(3600초 60분) } function Main_OnTimer(nEventID) { //타이머동작하면 사용자검색조건 실행 if (nEventID == 1) { Main.ReqPowerSearch("Box-30"); Req = 0; } if (nEventID == 2 && Req < Count) { Main.ReqMarketData(ItemList[Req], 0, 0); Req = Req+1; Main.MessageList(ItemList[Req-1],Req); } } //종목검색이 완료 function Main_OnRcvItemList(aItemList, nCount) { //검색종목수가 1개 이상이면 if (nCount >= 1) { ItemList = aItemList; Count = nCount; //잔고셋팅해서 보유종목이 아니면 Account1.SetBalanceItem(ItemList[0],0); Main.MessageList(Count,ItemList,Account1.Balance.count); if (Account1.Balance.count == 0) { //종목객체 생성 요청 Req = 1; Main.ReqMarketData(ItemList[0], 0, 0); Main.SetTimer(2, 1000);//간격(1초) } } } //요청한 종목객체가 생성되면 function Main_OnRcvMarketData(MarketData) { var Ob = MarketData; var EntryVol = 0; //현재가가 EntryMoney 미만이면 수량계산 이상이면 1주 if (EntryVol > 0) { Account1.SetBalanceItem(Ob.code,0); EntryMoney = Math.min(100000,(500000-Account1.Balance.avgUnitCost*Account1.Balance.count)); if (Ob.current < EntryMoney) EntryVol = Math.floor(EntryMoney/Ob.current); else EntryVol = 1; Account1.OrderBuy(Ob.code,EntryVol,Ob.Ask(5),0); Main.RemoveMarketData(Ob); } } 즐거운 하루되세요 > 무명 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다. > 아래 스팟식은 검색종목이 잔고에 없으면 매수주문하는 식입니다. 아래 스팟식을 날이 바뀌거나 주가 바뀌거나(선택가능하게 부탁) 재차 검색되면 5번까지 피라미딩 진입되도록 수식 업그레이드 부탁드립니다. 이게 어렵다면 날이 바뀌거나 주가 바뀌거나(선택가능하게 부탁) 재차 검색되면 검색종목 잔고가 500000이 될때까지 진입되게 부탁드려요. var EntryMoney; var ItemList,Count; //스팟시작 function Main_OnStart() { //타이머설정 Main.SetTimer(1, 600000);//간격(3600초 60분) EntryMoney = 100000; } function Main_OnTimer(nEventID) { //타이머동작하면 사용자검색조건 실행 if (nEventID == 1) { Main.ReqPowerSearch("Box-30"); Req = 0; } if (nEventID == 2 && Req < Count) { Main.ReqMarketData(ItemList[Req], 0, 0); Req = Req+1; Main.MessageList(ItemList[Req-1],Req); } } //종목검색이 완료 function Main_OnRcvItemList(aItemList, nCount) { //검색종목수가 1개 이상이면 if (nCount >= 1) { ItemList = aItemList; Count = nCount; //잔고셋팅해서 보유종목이 아니면 Account1.SetBalanceItem(ItemList[0],0); Main.MessageList(Count,ItemList,Account1.Balance.count); if (Account1.Balance.count == 0) { //종목객체 생성 요청 Req = 1; Main.ReqMarketData(ItemList[0], 0, 0); Main.SetTimer(2, 1000);//간격(1초) } } } //요청한 종목객체가 생성되면 function Main_OnRcvMarketData(MarketData) { var Ob = MarketData; var EntryVol = 0; //현재가가 EntryMoney 미만이면 수량계산 이상이면 1주 if (Ob.current < EntryMoney) EntryVol = Math.floor(EntryMoney/Ob.current); else EntryVol = 1; if (EntryVol > 0) { Account1.OrderBuy(Ob.code,EntryVol,Ob.Ask(5),0); Main.RemoveMarketData(Ob); } }