Finance

선물 망둥어(틱띠기)

steloflute 2013. 2. 27. 23:30

http://tradejs.org/example/option/fumang

 

선물 망둥어(틱띠기)

이 코드는 trade.js를 활용하시는 예시입니다. trade.js는 자바스크립트 언어를 이용하여 여러분만의 전략을 만들고, 테스트하고, 트레이딩 하실 수 있습니다.

샘플 개요

선물이 급등할 때, 옵션종목이 함께 오르지 않는 종목이 있다면 매수하는 전략입니다. 아주 작은 시간차를 이용하므로 2틱 정도의 수익이 발생하면 바로 청산합니다.

예제 코드

var account;
var fuLinkChart;
var futureLast5Tick = new Array();
var enterCode = '';
var enterPrice = 0;
function onLoad() {
account = accounts.get('9876-5432-33');
options.subscribe(0); //옵션 최근월물 종목들을 요청한다.
futures.subscribe(0); //선물 최근월물을 요청한다.
//연결선물은 실제로 없는 종목이므로 커스텀 차트로 만든다.
fuLinkChart = charts.addCustomChart('00000', 1);
}
//최근5틱 평균을 가져오는 함수
function Average5Tick() {
if (futureLast5Tick.length < 5) //5틱이 안되면 0을 리턴
return 0;
var total = 0;
for (var tick in futureLast5Tick) {
total += tick;
}
return total / 5;
}
function onFutureUpdate(future) {
fuLinkChart.feedData(future.close); //연결선물 커스텀 차트에 데이터를 입력한다.
var fuMA5 = fuLinkChart.getMA(candlePart.close, 5); //차트의 5이평을 구한다.
//갑자기 선물이 오르면
if (Average5Tick() + 0.3 < future.close //5틱 평균보다 순간적으로 0.3 이상 튀면
|| fuMA5 + 0.7 < future.close } //1분봉 5이평보다 0.7 이상 튀면
enterNotJumpedOption(true); //콜 매수
}
futureLast5Tick.push(future.close); //마지막틱 저장
if (futureLast5Tick.length > 5) {
futureLast5Tick.splice(0,1); //최근 5틱만 기억하자.
}
}
function onOptionUpdate(option) {
if (option.code == enterCode) { //진입한 종목이면.
if (enterPrice + 0.02 < option.close) { //2틱 오르면 수익 청산.
exitOption();
}
if (enterPrice - 0.01 > option.close) { //1틱 내리면 손절.
exitOption();
}
}
}
//아직 선물과 함께 급등(급락)하지 않은 종목을 찾아서 매수
function enterNotJumpedOption(rise) {
//옵션 종목들 중에서 급등(급락)하지 않은 종목을 찾아서 진입 해야 하지만
//여기서는 단순히 가격에 2에 가까운 종목을 매수
account(options.getCallNearPrice(2).code, 10, 0); //가격이 2에 가까운 콜옵션 10계약 매수
enterCode = options.getCallNearPrice(2).code;
enterPrice = options.getCallNearPrice(2).close;
clock.setTimer(1, 5);//5초 후에도 안 팔리면 청산
}
function exitOption() {
account.sell(enterPrice, 10, 0);
enterPrice = '';
clock.killTimer(1); //타이머 종료
}
//5초마다 타이머 발생
function onTimer(id) {
if (enterCode != '') {
var option = options.get(enterCode);
if (enterPrice >= option.close) { //5초후에도 가격이 같거나 이하라면
exitOption();
}
}
}

샘플 코드의 한계

위 샘플코드는 trade.js의 이해를 돕기 위한 간단한 샘플입니다. 실전에서 사용하기에는 예외처리등 많은 추가 작업이 필요합니다. 또한 이 전략은 수익을 보장하지 않습니다.

 

 

 

 

'Finance' 카테고리의 다른 글

Bitcoin Mining Explained  (0) 2013.04.22
Bitcoin wiki  (0) 2013.04.22
[트레이딩] 증시 이기는 `마법의 공식`을 찾다  (0) 2013.01.03
(잡지) 한국선물협회, 선물시장 2005.10  (0) 2012.11.26
KOSPI, KOSDAQ, KOSPI200 지수 티커  (0) 2012.10.24