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 |