답변완료
스팟식 문의드립니다.
1.아래는 게시판에 있는 스팟식입니다. 종목검색후 자동매매로 연결하는데... 종목검색후 예수금의 10%가 아니라 1%씩 진입되도록 수정부탁드립니다. 그리고 진입종목중에서 A조건 만족시 청산하는 스팟식도 추가부탁드립니다.
2. 그리고 특정 진입청산식을 가지고 10분/20분30분/일봉에서 진입청산되도록 수식이 가능한가요?
3. 아래 수식에 아래에 3번 질문 있습니다. 부탁드립니다!
수식은 아래 흐름으로 동작합니다.
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);
}
}
3. 아래는 장전 동시호가에 주문들어가는 스팟식인데요. 계좌잔고를 확인하고 선물이 매수포지션이면 풋등가옵션 1개 매수, 선물이 매도포지션이면 콜등가옵션 1개 매수 들어가도록 수식 부탁드립니다.
#스크립트 객체설정
#계좌객체 추가 - 속성에서 객체명 Account1로 지정하고 계좌번호 지정
#종목객체 추가 - 속성에서 주문할 종목지정
#스팟 시작시에 타이머 셋팅
function Main_OnStart()
{
Start = 0;
Main.SetTimer(1, 1000);
}
function Main_OnTimer(nEventID)
{
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
//8시 58분이 되면
if (Start == 0 && nEventID == 1 && HHMMSS >= 85800)
{
Strat = 1;
Main.KillTimer(1);
//종목객체 MarketData1로 지정한 종목 시강가로 1주 매수
Account1.OrderBuy(MarketData1.code, 1,0,1)
}
}
2014-11-21
1450
글번호 223228