답변완료
자체 DB 연결의 가공된 주가를 이용한 시스템트레이딩 개발 문의
안녕하십니까?
주가 및 참조지표를 가공하여 별도로 자체 DB를 구축하였습니다.
자체 DB의 데이타를 차트로 구현하거나 기술적지표등을 통해 조건검색 후 시스템트레이딩에 적용하고자 합니다.
자체 데이타로 차트를 구현하는 방법으로 DATAMANAGER를 활용하는 방법이 있으나, 해당 기능은 종목을 하나씩 개별적으로 등록하여야 하고, 업데이트가 자동으로 되지 않아 현실적으로 적용하기 어려울 것으로 이해하고 있습니다.
이에 귀측에 문의한 바, 예스스팟을 통해 자체 DB에 연결하여 사용할 수 있다는 설명을 들었습니다.
저는 자문사에 재직중인데, 예스스팟을 통해 앞서 언급한 방식의 시스템트레이딩을 구현 하고자 합니다. 귀측에서 이에 협조가 가능한지 문의드리며, 무료 지원이 아니더라도 적절한 수준내의 유료 방식으로도 고려할 수 있으므로 검토부탁드립니다.
문의는 010-4665-6627로 주시면 됩니다.
감사합니다.
2016-04-21
2414
글번호 223887
답변완료
스팟은 활성화가 너무 안된거 같아요 ....... 답변까지 한달
전략실행해보고 수정하려고 해도 너무 오래걸려서 전략아이디어가 사라져 버려요
스팟식을 최초에 실행시키면 지정한 계좌의 모든 종목에 대해
내부적으로 종목객체를 생성하고 해당 종목들의 시세변화를 감시해
최초매입가의(2% : 목표가)수익시 매도
매수는 장종료후 일봉예비신호로 150000이후 주문 미체결시 취소후
다음날 장개시전에 다시주문 미체결되고 신호가의 2% 도달시 주문취소
매수체결후 하락시 추가매수(아래예시)
매도는 계좌잔고 및 실시간 가격변화로 최초매입가의 +2%수익시 매도
여기저기 짜집기를 하면서 만들다보니 필요없는 부분도 있는것 같읍니다.
불필요한건 삭제하고 간결하게 부탁드립니다.
아래식은 파워종목검색하여 일봉 예비신호시 종가매수주문입니다.
수정좀 부탁드립니다. 아울러 아래 내용을 추가하고자 하는데
부탁드립니다.스크립트 메세지에 에러는 없는데 주문이 안되네요
지정시간 150500 전에도 계속 주문이 나갑니다.(스팟실행시 이시간(150500) 이 되어야만 1번만 주문이 나가야 하는데)
타이머 이벤트에서 false => true 변경했는데도 거래가 될때마다 계속나가내요
수정할때 수량말고 금액기준으로(예 100만원 / 단가 = 수량) 주문 부탁합니다.
객체 차트,계좌는 지정했습니다.
1. 일봉예비신호로 주문을 넣고 채결이 안될시 다음날 장시작전에 주문을 다시내는 방법도
추가할수 있을까요?
2. 매수주문 넣고 체결이 안되고 목표수익가(신호가격의 +2%) 달성하면 매수주문취소하고,
목표가 미달성하고 신호가이하로 하락시는 매수유효
매수진입하여 보유한 종목이 2%수익이면 매도 하는 전략인데
매수진입하여 2%수익이 안되고 하락하여 손실시 처음매수한 가격( 1주가격이 2,000원)의 10% 하락(1주 가격이 1,800원 까지 하락시 처음에
진입한 금액의 10%(예로 100주* 2000원 이면 20만원의 10% 인 2만원) 2만원어치(1주가 격1,800 원을 2만원어치)
처음 매수가의 20% 하락한 1,600원 까지 하락시 20만원 의 10% 2만원 추가매수,,단 매도는 평균가격이 아닌 최초진입가인 2,000원 + 2% 수익에 전량매도
추가 매수 ((((여기서 추가매수는 똑같이 -10% , -20% , -30% -40% .....-90% 까지 계속하락시 똑같은 방법으로 추매는 진행합니다. 단 매도는 처음 진입가격 2000원 +2% 매도이고요))))
추가매수한 평균 가격이 아닌 처음진입한 가격(2천원의 2%수익이 도달시매도)
3. 파워종목검색을 통한 차트신호시 매매이므로 잔고에 보유중인 종목이 진입신호가 발생시
종목무시 이렇게 가능할까요?(보유종목이면 2% 수익이 안난상태이므로 하락시 추가로 매수를 해야하므로 조건검색이 되어서 종목이 검색되어진다해도 진입신호무시)
계좌에 미보유한 종목은 차트의 매수 진입신호에 진입하고 매도는 차트의 매도신호가 나오더라도 2% 수익이 안되면 무시하고 무조건 2% 수익이 달성해야만 매도
///////////////////////////////////////////////////////////////////////
//스팟 시작할때 파워종목검색의 사용자검색조건 실행
var cond;
function Main_OnStart()
{
Main.ReqPowerSearch("DMI스팟");//사용자검색조건명 지정
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
cond = false;
if (HHMMSS < 150500)
{
Main.SetTimer(1, 5000);
}
}
function Main_OnTimer(nEventID)
{
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (nEventID == 1 && cond == false && HHMMSS >= 150500)
{
cond = true;
var Incom = C1.GetIncompleteSignal();
}
}
//종목검색 완료(aItemList : 종목리스트), (nCount : 종목수)
function Main_OnRcvItemList(aItemList, nCount)
{
// 확장챠트의 생성과 적용될 시스템의 세부 설정
var TradeSet = new SystemTradeInfo(TRADE_FIXCOUNT,
1, // 거래수량
123456789, // 자산
1, // 단위수량
0, 0, CALCMETHOD_PERCENT, // 진입/청산 수수료
0, 0, CALCMETHOD_POINT, // 진입/청산 슬리피지
PYRAMIDING_ENTRY, // 피라미딩 설정여부
1000, // 최대진입수량
20); // 최대진입횟수
//확장 챠트는 최대 25개까지만 가능
for (var i = 0; i < Math.min(nCount,100); i++)
{
//생성할 차트 셋팅
var C1 = new ReqChartItem(aItemList[i], 1, CHART_PERIOD_DAILY, 499,CHART_REQCOUNT_BAR,false, false);
//차트에 적용할 시스템명 및 설정
var S1 = new SystemInfo("DMI스팟",YL_TYPE_NORMAL,null,TradeSet,null);
Main.ReqChartEx(C1,S1);
}
}
//확장챠트에서 발생한 신호에 의해 주문을 넣는 단계
function Main_OnRiseIncompleteSignal(ChartEx, IncompleteSignal)
{
//buy신호 발생
if (IncompleteSignal.signalKind == 1)
{
// 매수주문
A1.OrderBuy(IncompleteSignal.code, IncompleteSignal.count , IncompleteSignal.price, 0);
}
//Exitlong신호 발생
if (IncompleteSignal.signalKind == 2)
{
// 매도주문
A1.OrderSell(IncompleteSignal.code, IncompleteSignal.count , IncompleteSignal.price, 0);
}
}
2016-05-16
2294
글번호 223881