답변완료
문의드립니다.
노고에 감사드립니다.
현물 적용입니다.
1.한 종목의 융자매수와 현금매수가 다르게 나타나기 때문에 종목코드기준으로
서로 다른 종목이 3종목 이상 있을 경우,
잔고에 있지 않은 새로운 종목은 더 이상 매수하지 않고자 합니다.
- 기존 잔고에 매수되어 있는 종목의 경우는 계속해서 매수합니다.
2. 아래1. 수식을 적용하는데 매수는 되는데 매도가 되지 않습니다.
예스스팟의 주문상태부분에
"16935해당 잔고가 없습니다" 라고 나옵니다.
가원장과 원장의 차이 때문일까하여 timer 설정에도 변화가 없습니다.
잘못된 사항에 대하여 고견 부탁드립니다.
3. 아래2. 수식을 적용하는데 있어 매수는 되는데 매도가 되지 않습니다.
예스스팟의 주문상태부분에
"융자합매도 주문은 미체결,체결 조회창을 이용하시기 바랍니다."라고 나옵니다.
융자합 매도를 하면 대출일(loandate)가 필요 없을 듯 하여 적용하였지만, 작동하지 않습니다.
수정할 사항에 대하여 고견 부탁드립니다.
------아래.1 ------
var Position;
var BID;
var Bnum;
var BuyFill;
var LOANDATE;
function Main_OnStart()
{
Main.MessageLog("시작");
Position = 0;
}
function C1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1 )
{
Position = 1;
BID = A1.OrderBuy(Signal.code, Signal.count,0, 1, 1);
Main.MessageLog("매수진입");
BuyFill = 0;
}
if (Position == 1 && Signal.signalKind == 2 )
{
if (BuyFill == 1)
{
A1.Refresh();
Main.SetTimer(1, 3000);
Main.KillTimer(1);
A1.OrderSell(Signal.code, Signal.count ,0, 1, 1,LOANDATE);
Main.MessageLog("매수청산실행");
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (Position == 1 && OrderResponse.orderID == BID)
{
Bnum = OrderResponse.orderNum;
}
}
function Main_OnNotifyFill(NotifyFill)
{
if (Position == 1 && NotifyFill.orderNum == Bnum)
{
BuyFill = 1;
LOANDATE = NotifyFill.loanDate;
}
}
--------아래.2------
var Position;
var BID;
var Bnum;
var BuyFill;
function Main_OnStart()
{
Main.MessageLog("시작");
Position = 0;
}
function C1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1 )
{
Position = 1;
BID = A1.OrderBuy(Signal.code, Signal.count,0, 1, 1);
Main.MessageLog("매수진입");
BuyFill = 0;
}
if (Position == 1 && Signal.signalKind == 2 )
{
if (BuyFill == 1)
{
A1.Refresh();
Main.SetTimer(1, 3000);
Main.KillTimer(1);
A1.OrderSell(Signal.code, A1.Balance.count,0, 1, 9,0);
Main.MessageLog("매수청산실행");
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (Position == 1 && OrderResponse.orderID == BID)
{
Bnum = OrderResponse.orderNum;
}
}
function Main_OnNotifyFill(NotifyFill)
{
if (Position == 1 && NotifyFill.orderNum == Bnum)
{
BuyFill = 1;
}
}
2016-03-14
2530
글번호 223852
답변완료
수식요청드립니다.
안녕하세요.
오버포지션 시스템 신호을 예스스팟을 이용 당일청산 데이시스템 매매로 전환하는 시스템 수식입니다.
코스피 200 연결선물이용한 5분봉 오버형 피라미딩적용 시스템신호을 예스스팟을이용 동일방향 동일갯수로
장시작 시초가에 진입 하고, 장중신호 동일갯수 방향전환, 15:00 당일청산, 데이전환 시스템 요청드립니다.
(예 1일 장중 매수진입 누적수량 3개일경우 -> 당일 15:00 3개청산 -> 전일 매수신호 유지일경우
-> 2일시초가 매수3개진입 -> 오버 매수신호 유지일경우 당일 15:00 3개청산 -> 3일 시초가 매수3개진입
-> 오버 장중 매도신호 4개 전환시 매도 4개 진입 -> 오버 매도신호 유지일경우 당일 15:00 4개청산
-> 3일 시초가 매도 4개진입 -> 장중에는 오버형과 동일신호 동일갯수 전환진입)
장중에는 연결선물 오버형 신호, 수량으로 진입 및 스위칭 하고, 장시작 진입은 오버형 시스템과 동일방향
동일갯수로 시초가에 진입하고, 당일정산은 15:00 에 전체청산하는 예스스팟 시스템 입니다.
추가수식 주석요청 드립니다.
감사합니다.
# 아래 예스스팟 기본시스템 수식으로 변경요청드립니다.
//차트에서 신호발생
function Chart1_OnRiseSignal(Signal)
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
//매수포지션 청산신호 발생
if (Signal.signalKind == 2)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 진입신호 발생
if (Signal.signalKind == 3)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 포지션 청산신호 발생
if (Signal.signalKind == 4)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
}
2016-03-05
2406
글번호 223850
답변완료
코스피 200지수 추종하여 코덱스 레버리지/인버스 매매 시스템 질문
안녕하세요. 이제막 시스템 트레이딩에 입문한 초보 투자자입니다.
제가 여쭤볼것은 위 제목과 같이 구현을 하고자 하는데,
구현이 가능한지와 정말 죄송하지만 간단히 작성하는 힌트라도 주시면
감사하겠습니다. 정말 감사드립니다.
1. 조건 : 코스피 200지수를 모니터링하여, 특정조건 만족시 인버스, 레버리지 선택 매수후 당일 청산
2. 코스피 200지수 모니터링 조건 : 장 시작후 10분동안 시가, 종가를 저장하여
i) 10분후, 코스피 200 지수의 시가 > 종가
코덱스 인버스 11분봉 시가에 계좌 총액의 60% 매수, 2시 50분 전부 매도
(2시50분 매도 실패 경우, 장마감호가에 전부 매도)
ii) 10분후, IF 시가 < 종가
코덱스 레버리지 11분봉의 시가에 계좌 총액 60% 매수, 2시 50분 전부 매도
(2시50분 매도 실패 경우, 장마감호가에 전부 매도)
간단한것 같으면서도, 손도 못대고 있습니다. 일단 코스피 200지수를 모니터링하고,
그 신호를 바탕으로 코덱스 레버리지, 인버스 ETF 를 매수/매도 하는게 가능한가요?
읽어주셔서 감사드리며, 좋은 하루 보내십쇼!
2016-03-01
2390
글번호 223844