매번 많은 도움 미리 감사드립니다.
아래와 같은 spot 수식 작성 부탁드립니다.
1. 예트 차트 매수신호 발생 즉시,(현재가 < 예트 매수신호 가격+2호가) 이면 바로 spot 매수 주문
2. spot 매수 주문 이후 10초 이내에 주문수량 전부 체결 시 --> 매수 체결 즉시, 실제 체결된 가격에 1호가 더해서 spot 매도 주문
3. spot 매수 주문 이후 10초 이내에 일부 체결 시: 매수 체결 즉시, 미체결 수량은 취소 and 실제 체결된 가격에 1호가 더해서 매수 체결된 수량을 매도
4. spot 매수 주문 이후 10초내에 미체결 시 --> 매수주문 취소
여기서, "매수 체결 즉시" 는 스팟으로 구현이 안되면 0.1초 후로 바꾸어도 괜찮을듯 합니다.
바쁘시더라도 도움 부탁드려요.
감사합니다.
답변 1
예스스탁
예스스탁 답변
2019-04-18 18:33:27
안녕하세요
예스스탁입니다.
아래 내용 참고하셔서 수정보완해 사용하시기 바랍니다.
var BID,Bnum;
//차트에서 신호발생
function Chart1_OnRiseSignal(Signal)
{
//매수신호 발생하고 현재가가 신호가+2틱보다 작으면
if (Signal.signalKind == 1 && MarketData1.current <= Signal.price+MarketData1.GetTickSize(dPrice)*2)
{
//신호수량저장
var vol = Signal.count;
//신호수량으로 현재가 매수
BID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),vol,MarketData1.current, 0);
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == BID)
{
Bnum = OrderResponse.orderNum;
Main.SetTimer(1, 10000);//1번타이머, 10초셋팅
}
}
function Main_OnTimer(nEventID)
{
//1번 타이머 동작
if (nEventID == 1)
{
//타이머 종료
Main.KillTimer(1);
//매수주문 Bnum주문번호 미체결객체 셋팅
Account1.SetUnfill(Bnum);
//미체결 수량이 있으면 주문취소
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(Bnum);
}
//계좌잔고 셋팅
Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0);
//계좌잔고에 수량이 있고 매수포지션이면
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
//평단가+1틱에 전량 매도
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,Account1.Balance.avgUnitCost+MarketData1.GetTickSize(0), 0);
}
}
}
즐거운 하루되세요
> adino30 님이 쓴 글입니다.
> 제목 : 수식 작성 부탁드립니다ㅜㅜ
> 매번 많은 도움 미리 감사드립니다.
아래와 같은 spot 수식 작성 부탁드립니다.
1. 예트 차트 매수신호 발생 즉시,(현재가 < 예트 매수신호 가격+2호가) 이면 바로 spot 매수 주문
2. spot 매수 주문 이후 10초 이내에 주문수량 전부 체결 시 --> 매수 체결 즉시, 실제 체결된 가격에 1호가 더해서 spot 매도 주문
3. spot 매수 주문 이후 10초 이내에 일부 체결 시: 매수 체결 즉시, 미체결 수량은 취소 and 실제 체결된 가격에 1호가 더해서 매수 체결된 수량을 매도
4. spot 매수 주문 이후 10초내에 미체결 시 --> 매수주문 취소
여기서, "매수 체결 즉시" 는 스팟으로 구현이 안되면 0.1초 후로 바꾸어도 괜찮을듯 합니다.
바쁘시더라도 도움 부탁드려요.
감사합니다.