한 계좌에 여러가지 전략을 구현할 경우
전략별로 매수한 종목을 구별할 수 있을까요?
예를 들면,
1번 전략에서는 오늘 매수해서 내일 매도 하는 방식인데,
2번 전략은 오늘 매수, 오늘 매도하는 방식이라면
1번 전략의 오버나잇 전략은 무용지물이 됩니다.
전략별로 매수, 매도가 가능하게 할 수 있는지요?
답변 1
예스스탁
예스스탁 답변
2018-05-25 15:53:29
안녕하세요
예스스탁입니다.
해당 내용은 잔고자체로 구분할 방법이 없습니다.
잔고는 최종보유수량민 있고 수량에 대한 상세내역은 없습니다.
Main.SetUserValue(sName, sValue)
Main.GetUserValue(sName)
위함수들은 내부파일에 이름을 지정해 특정값을 적거나 적혀진 값을 가져오는 함수입니다.
각 전략별로 주문내서 체결된 수량을 내부파일에 적어서
매도시에 해당 전략에서 체결된 수량만큼만 매도가 되게 구현해 보셔야 합니다.
즉 매도할때 잔고수량 전체 청산이 아닌
위 방법이나 엑셀객체등을 이용해 별도로 각 전략별로 체결된 수량을 적어서 보관후에
매도시에 이용하셔야 합니다.
아내 내용 참고하시기 바랍니다.
전략별로 다른이름으로 저장해 이용하시면 됩니다.
var ID,Num,fillsum;
function Main_이벤트
{
if (매수조건)
{
ID = Account1.OrderBuy(~~~);
FillSum = 0;
}
if (매도조건)
{
//내부파일에 A1으로 저장된 값을 가져와 vv에 저장
var vv = Main.GetUserValue("A1")
//vv가 0이상이면
if (vv > 0)
{
//vv만큼만 매도주문
Account1.OrderSell(종목코드,vv,0,1);
//내부파일 A1은 0으로 초기화
Main.SetUserValue("A1", 0);
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == ID)
{
Num = OrderResponse.orderNum;
}
}
function Main_OnNotifyFill(NotifyFill)
{
//체결발생할때마다
if (NotifyFill.orderNum == Num)
{
//체결수량을 누적
FillSum = FillSum + NotifyFill.fillCount;
//누적체결수량을 A1이라는 이름으로 저장
Main.SetUserValue("A1", FillSum);
}
}
즐거운 하루되세요
> cs아빠 님이 쓴 글입니다.
> 제목 : 한계좌에 여러가지 전략을 구현할 때
> 한 계좌에 여러가지 전략을 구현할 경우
전략별로 매수한 종목을 구별할 수 있을까요?
예를 들면,
1번 전략에서는 오늘 매수해서 내일 매도 하는 방식인데,
2번 전략은 오늘 매수, 오늘 매도하는 방식이라면
1번 전략의 오버나잇 전략은 무용지물이 됩니다.
전략별로 매수, 매도가 가능하게 할 수 있는지요?