예스스탁
예스스탁 답변
2015-03-25 15:13:13
안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
var EntryMoney;
var ItemList,Count;
//스팟시작
function Main_OnStart()
{
//타이머설정
Main.SetTimer(1, 300000);//간격(300초 5분)
EntryMoney = 100000;
}
function Main_OnTimer(nEventID)
{
//타이머동작하면 사용자검색조건 실행
if (nEventID == 1)
{
Main.ReqPowerSearch("Stest");
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;
//잔고종목이 검색종목에 없으면 시장가로 전량 매도
var num = Account1.GetTheNumberOfBalances();
for(var i = 0; i < num; i++)
{
//잔고종목셋팅
Account1.SetBalance(i);
//검색종목들과 잔고종목의 종목코드 비교
//같은 종목코드 있으며뉴 true 아니면 false
var cond = false;
for(var j = 0; j < Count; i++)
{
if (Account1.Balance.code == ItemList[j])
{
cond = true;
}
}
//false이면 매도
if (cond == false)
{
Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,0,1);
}
}
//잔고셋팅해서 보유종목이 아니면
Account1.SetBalanceItem(ItemList[0],0);
Main.MessageList(ItemList,Count,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. 검색 종목당 특정금액(100,000만원...)씩 진입. 100,000원 이상이면 1주씩 진입.
2. 검색 종목과 계좌잔고 비교하여 검색 종목에 없는 잔고종목은 시장가로 자동 청산.
3. 작년부터 코스피도 10주단위 진입이 없어지고 1주단위씩 진입이 가능한 걸로 아는데 1주단위로 계산하여 진입하게만 해주십시오.
안녕하세요
예스스탁입니다.
아래식 참고하셔서 수정보완해 사용하시기 바랍니다.
주문을 위해서는 검색뿐만 아니라 주문가격지정을 위해 해당 종목의 시세데이타도 필요합니다.
그러므로 종목검색 후에 종목객체를 생성해서 주문을 집행하게 됩니다.
수식은 아래 흐름으로 동작합니다.
5분단위로 사용자검색조건 실행하고
검색이 완료되어 검색된 종목이 있으면 잔고에 없는 종목에 한해서
1초단위로 해당종목의 종목객체를 생성해서 매도5호가로 주문을 집행합니다.
예수금은 스팟시작시에 예수금을 가져와 10%의 금액으로 주문합니다.
스크립트 객체화면에는 계좌객체(Account1)만 추가하시면 됩니다.
var EntryMoney;
var ItemList,Count;
//스팟시작
function Main_OnStart()
{
//타이머설정
Main.SetTimer(1, 300000);//간격(300초 5분)
EntryMoney = Math.floor(Account1.GetBalanceETCinfo(0)*10);
}
function Main_OnTimer(nEventID)
{
//타이머동작하면 사용자검색조건 실행
if (nEventID == 1)
{
Main.ReqPowerSearch("Stest");
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(ItemList,Count,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;
//1주 단위일 경우
if (Ob.tradeUnit == 1)
EntryVol = Math.floor(EntryMoney/Ob.current);
//10주 단위일 경우
if (Ob.tradeUnit == 10)
EntryVol = Math.floor(Math.floor(Math.floor(EntryMoney/Ob.Ask(5))/10)*10);
if (EntryVol > 0)
{
Account1.OrderBuy(Ob.code,EntryVol,Ob.Ask(5),0);
Main.RemoveMarketData(Ob);
}
}
즐거운 하루되세요
> 큰상 님이 쓴 글입니다.
> 제목 : 글번호 [668] 종목 검색후 자동 매매관련 문의 입니다.
> 수고하십니다.
[668] 종목 검색후 자동 매매관련 하여 5분 마다 검색하여 종목이 있을 시
금일 예수금 가능금액으로 10등분 하여 매수 할 수 있는 방법이 있는지 궁금합니다.
있다면 수식을 부탁드립니다.
예스스탁
예스스탁 답변
2015-03-25 15:44:40
> 무명 님이 쓴 글입니다.
> 제목 : Re : Re : 수식 문의 드립니다.
> Error : Stest 파일을 열 수 없습니다라는 메시지가 뜹니다. 해결방법 좀 부탁드려요.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 문의 드립니다.
>
안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
var EntryMoney;
var ItemList,Count;
//스팟시작
function Main_OnStart()
{
//타이머설정
Main.SetTimer(1, 300000);//간격(300초 5분)
EntryMoney = 100000;
}
function Main_OnTimer(nEventID)
{
//타이머동작하면 사용자검색조건 실행
if (nEventID == 1)
{
Main.ReqPowerSearch("Stest");
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;
//잔고종목이 검색종목에 없으면 시장가로 전량 매도
var num = Account1.GetTheNumberOfBalances();
for(var i = 0; i < num; i++)
{
//잔고종목셋팅
Account1.SetBalance(i);
//검색종목들과 잔고종목의 종목코드 비교
//같은 종목코드 있으며뉴 true 아니면 false
var cond = false;
for(var j = 0; j < Count; i++)
{
if (Account1.Balance.code == ItemList[j])
{
cond = true;
}
}
//false이면 매도
if (cond == false)
{
Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,0,1);
}
}
//잔고셋팅해서 보유종목이 아니면
Account1.SetBalanceItem(ItemList[0],0);
Main.MessageList(ItemList,Count,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. 검색 종목당 특정금액(100,000만원...)씩 진입. 100,000원 이상이면 1주씩 진입.
2. 검색 종목과 계좌잔고 비교하여 검색 종목에 없는 잔고종목은 시장가로 자동 청산.
3. 작년부터 코스피도 10주단위 진입이 없어지고 1주단위씩 진입이 가능한 걸로 아는데 1주단위로 계산하여 진입하게만 해주십시오.
안녕하세요
예스스탁입니다.
아래식 참고하셔서 수정보완해 사용하시기 바랍니다.
주문을 위해서는 검색뿐만 아니라 주문가격지정을 위해 해당 종목의 시세데이타도 필요합니다.
그러므로 종목검색 후에 종목객체를 생성해서 주문을 집행하게 됩니다.
수식은 아래 흐름으로 동작합니다.
5분단위로 사용자검색조건 실행하고
검색이 완료되어 검색된 종목이 있으면 잔고에 없는 종목에 한해서
1초단위로 해당종목의 종목객체를 생성해서 매도5호가로 주문을 집행합니다.
예수금은 스팟시작시에 예수금을 가져와 10%의 금액으로 주문합니다.
스크립트 객체화면에는 계좌객체(Account1)만 추가하시면 됩니다.
var EntryMoney;
var ItemList,Count;
//스팟시작
function Main_OnStart()
{
//타이머설정
Main.SetTimer(1, 300000);//간격(300초 5분)
EntryMoney = Math.floor(Account1.GetBalanceETCinfo(0)*10);
}
function Main_OnTimer(nEventID)
{
//타이머동작하면 사용자검색조건 실행
if (nEventID == 1)
{
Main.ReqPowerSearch("Stest");
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(ItemList,Count,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;
//1주 단위일 경우
if (Ob.tradeUnit == 1)
EntryVol = Math.floor(EntryMoney/Ob.current);
//10주 단위일 경우
if (Ob.tradeUnit == 10)
EntryVol = Math.floor(Math.floor(Math.floor(EntryMoney/Ob.Ask(5))/10)*10);
if (EntryVol > 0)
{
Account1.OrderBuy(Ob.code,EntryVol,Ob.Ask(5),0);
Main.RemoveMarketData(Ob);
}
}
즐거운 하루되세요
> 큰상 님이 쓴 글입니다.
> 제목 : 글번호 [668] 종목 검색후 자동 매매관련 문의 입니다.
> 수고하십니다.
[668] 종목 검색후 자동 매매관련 하여 5분 마다 검색하여 종목이 있을 시
금일 예수금 가능금액으로 10등분 하여 매수 할 수 있는 방법이 있는지 궁금합니다.
있다면 수식을 부탁드립니다.
예스트레이더 로그인할 때 위의 스팟식 스크립트 객체화면에서 계좌객체 Account1로 지정한 계좌의 비밀번호를 입력확인하고 접속하면 지정한 타이머간격 후에 예스트레이더가 멈춰버립니다. 종목객체를 생성하면서 멈춰버리는지? 장마감후라 실제 주문이 안나가 져서 그런건지? 모르겠지만, 검색종목수를 줄여도 마찬가집니다.
Account1로 지정한 계좌의 비밀번호를 입력하지 않고 로그인하면 정상적으로 파워종목검색을 리턴합니다. 해결방법 좀 부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Re : Re : 전화로 답변드렸습니다.
>
> 무명 님이 쓴 글입니다.
> 제목 : Re : Re : 수식 문의 드립니다.
> Error : Stest 파일을 열 수 없습니다라는 메시지가 뜹니다. 해결방법 좀 부탁드려요.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 문의 드립니다.
>
안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
var EntryMoney;
var ItemList,Count;
//스팟시작
function Main_OnStart()
{
//타이머설정
Main.SetTimer(1, 300000);//간격(300초 5분)
EntryMoney = 100000;
}
function Main_OnTimer(nEventID)
{
//타이머동작하면 사용자검색조건 실행
if (nEventID == 1)
{
Main.ReqPowerSearch("Stest");
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;
//잔고종목이 검색종목에 없으면 시장가로 전량 매도
var num = Account1.GetTheNumberOfBalances();
for(var i = 0; i < num; i++)
{
//잔고종목셋팅
Account1.SetBalance(i);
//검색종목들과 잔고종목의 종목코드 비교
//같은 종목코드 있으며뉴 true 아니면 false
var cond = false;
for(var j = 0; j < Count; i++)
{
if (Account1.Balance.code == ItemList[j])
{
cond = true;
}
}
//false이면 매도
if (cond == false)
{
Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,0,1);
}
}
//잔고셋팅해서 보유종목이 아니면
Account1.SetBalanceItem(ItemList[0],0);
Main.MessageList(ItemList,Count,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. 검색 종목당 특정금액(100,000만원...)씩 진입. 100,000원 이상이면 1주씩 진입.
2. 검색 종목과 계좌잔고 비교하여 검색 종목에 없는 잔고종목은 시장가로 자동 청산.
3. 작년부터 코스피도 10주단위 진입이 없어지고 1주단위씩 진입이 가능한 걸로 아는데 1주단위로 계산하여 진입하게만 해주십시오.
안녕하세요
예스스탁입니다.
아래식 참고하셔서 수정보완해 사용하시기 바랍니다.
주문을 위해서는 검색뿐만 아니라 주문가격지정을 위해 해당 종목의 시세데이타도 필요합니다.
그러므로 종목검색 후에 종목객체를 생성해서 주문을 집행하게 됩니다.
수식은 아래 흐름으로 동작합니다.
5분단위로 사용자검색조건 실행하고
검색이 완료되어 검색된 종목이 있으면 잔고에 없는 종목에 한해서
1초단위로 해당종목의 종목객체를 생성해서 매도5호가로 주문을 집행합니다.
예수금은 스팟시작시에 예수금을 가져와 10%의 금액으로 주문합니다.
스크립트 객체화면에는 계좌객체(Account1)만 추가하시면 됩니다.
var EntryMoney;
var ItemList,Count;
//스팟시작
function Main_OnStart()
{
//타이머설정
Main.SetTimer(1, 300000);//간격(300초 5분)
EntryMoney = Math.floor(Account1.GetBalanceETCinfo(0)*10);
}
function Main_OnTimer(nEventID)
{
//타이머동작하면 사용자검색조건 실행
if (nEventID == 1)
{
Main.ReqPowerSearch("Stest");
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(ItemList,Count,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;
//1주 단위일 경우
if (Ob.tradeUnit == 1)
EntryVol = Math.floor(EntryMoney/Ob.current);
//10주 단위일 경우
if (Ob.tradeUnit == 10)
EntryVol = Math.floor(Math.floor(Math.floor(EntryMoney/Ob.Ask(5))/10)*10);
if (EntryVol > 0)
{
Account1.OrderBuy(Ob.code,EntryVol,Ob.Ask(5),0);
Main.RemoveMarketData(Ob);
}
}
즐거운 하루되세요
> 큰상 님이 쓴 글입니다.
> 제목 : 글번호 [668] 종목 검색후 자동 매매관련 문의 입니다.
> 수고하십니다.
[668] 종목 검색후 자동 매매관련 하여 5분 마다 검색하여 종목이 있을 시
금일 예수금 가능금액으로 10등분 하여 매수 할 수 있는 방법이 있는지 궁금합니다.
있다면 수식을 부탁드립니다.
예스스탁
예스스탁 답변
2015-03-26 14:14:08
> 무명 님이 쓴 글입니다.
> 제목 : Re : Re : Re : Re : 재 문의합니다.
> 예스트레이더 로그인할 때 위의 스팟식 스크립트 객체화면에서 계좌객체 Account1로 지정한 계좌의 비밀번호를 입력확인하고 접속하면 지정한 타이머간격 후에 예스트레이더가 멈춰버립니다. 종목객체를 생성하면서 멈춰버리는지? 장마감후라 실제 주문이 안나가 져서 그런건지? 모르겠지만, 검색종목수를 줄여도 마찬가집니다.
Account1로 지정한 계좌의 비밀번호를 입력하지 않고 로그인하면 정상적으로 파워종목검색을 리턴합니다. 해결방법 좀 부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Re : Re : 전화로 답변드렸습니다.
>
> 무명 님이 쓴 글입니다.
> 제목 : Re : Re : 수식 문의 드립니다.
> Error : Stest 파일을 열 수 없습니다라는 메시지가 뜹니다. 해결방법 좀 부탁드려요.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 문의 드립니다.
>
안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
var EntryMoney;
var ItemList,Count;
//스팟시작
function Main_OnStart()
{
//타이머설정
Main.SetTimer(1, 300000);//간격(300초 5분)
EntryMoney = 100000;
}
function Main_OnTimer(nEventID)
{
//타이머동작하면 사용자검색조건 실행
if (nEventID == 1)
{
Main.ReqPowerSearch("Stest");
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;
//잔고종목이 검색종목에 없으면 시장가로 전량 매도
var num = Account1.GetTheNumberOfBalances();
for(var i = 0; i < num; i++)
{
//잔고종목셋팅
Account1.SetBalance(i);
//검색종목들과 잔고종목의 종목코드 비교
//같은 종목코드 있으며뉴 true 아니면 false
var cond = false;
for(var j = 0; j < Count; i++)
{
if (Account1.Balance.code == ItemList[j])
{
cond = true;
}
}
//false이면 매도
if (cond == false)
{
Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,0,1);
}
}
//잔고셋팅해서 보유종목이 아니면
Account1.SetBalanceItem(ItemList[0],0);
Main.MessageList(ItemList,Count,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. 검색 종목당 특정금액(100,000만원...)씩 진입. 100,000원 이상이면 1주씩 진입.
2. 검색 종목과 계좌잔고 비교하여 검색 종목에 없는 잔고종목은 시장가로 자동 청산.
3. 작년부터 코스피도 10주단위 진입이 없어지고 1주단위씩 진입이 가능한 걸로 아는데 1주단위로 계산하여 진입하게만 해주십시오.
안녕하세요
예스스탁입니다.
아래식 참고하셔서 수정보완해 사용하시기 바랍니다.
주문을 위해서는 검색뿐만 아니라 주문가격지정을 위해 해당 종목의 시세데이타도 필요합니다.
그러므로 종목검색 후에 종목객체를 생성해서 주문을 집행하게 됩니다.
수식은 아래 흐름으로 동작합니다.
5분단위로 사용자검색조건 실행하고
검색이 완료되어 검색된 종목이 있으면 잔고에 없는 종목에 한해서
1초단위로 해당종목의 종목객체를 생성해서 매도5호가로 주문을 집행합니다.
예수금은 스팟시작시에 예수금을 가져와 10%의 금액으로 주문합니다.
스크립트 객체화면에는 계좌객체(Account1)만 추가하시면 됩니다.
var EntryMoney;
var ItemList,Count;
//스팟시작
function Main_OnStart()
{
//타이머설정
Main.SetTimer(1, 300000);//간격(300초 5분)
EntryMoney = Math.floor(Account1.GetBalanceETCinfo(0)*10);
}
function Main_OnTimer(nEventID)
{
//타이머동작하면 사용자검색조건 실행
if (nEventID == 1)
{
Main.ReqPowerSearch("Stest");
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(ItemList,Count,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;
//1주 단위일 경우
if (Ob.tradeUnit == 1)
EntryVol = Math.floor(EntryMoney/Ob.current);
//10주 단위일 경우
if (Ob.tradeUnit == 10)
EntryVol = Math.floor(Math.floor(Math.floor(EntryMoney/Ob.Ask(5))/10)*10);
if (EntryVol > 0)
{
Account1.OrderBuy(Ob.code,EntryVol,Ob.Ask(5),0);
Main.RemoveMarketData(Ob);
}
}
즐거운 하루되세요
> 큰상 님이 쓴 글입니다.
> 제목 : 글번호 [668] 종목 검색후 자동 매매관련 문의 입니다.
> 수고하십니다.
[668] 종목 검색후 자동 매매관련 하여 5분 마다 검색하여 종목이 있을 시
금일 예수금 가능금액으로 10등분 하여 매수 할 수 있는 방법이 있는지 궁금합니다.
있다면 수식을 부탁드립니다.