안녕하세요. 등엔트로피 입니다.
지면이지만 인사는 꼬박꼬박 빼먹지 않는 예의바른 청년이죠.
오늘 부터는 드디어 코드를 직접 작성해 보겠습니다.
인텔리퀀트는 기본적으로 자바 스크립트로 전략을 작성해야 합니다.
자바 스크립트에 대한 자세한 설명은 도움말->자바스크립트를 참고하시면 됩니다.
자바스크립트는 이름에 자바가 들어가지만 사실은 자바랑 별 관련은 없습니다.
문법이 비슷하다고 하지만 사실은 전혀 안 비슷합니다.
그래도 전문 개발자가 아닌 일반인이 쉽게 쓸수 있는 용도로 만든 언어라 그렇게 어렵지는 않습니다.
저 먼 세상으로 가면 클로져에, 람다에, private 등등 별세상이 있지만,
우린 그런거 필요없습니다. 돈만 벌면 그만이죠.
혹시 프로그래밍 언어에 부담이 있다면 TV를 생각해 보시면 됩니다.
우리가 TV를 사면 거기에는 별의별 기능이 다 있습니다.
리플레이가 가능한 TV도 있고, 화면을 두개로 보여주거나, 요즘 스마트 TV는 기능이 훨씬 많죠.
하지만 우린 그딴거 다 필요없습니다.
TV만 보면 되죠. 일부 IT덕후들에게는 필요할지 모르겠지만...
그냥 원하는 TV채널을 볼수 있으면 그걸로 충분하지 않을까요?
누군가 여러분께 TV의 모든 기능을 모르면 TV를 보지 말라고 하면 그냥 가운데 손가락을 보여주면 됩니다. 부끄러워할 필요가 전혀 없죠.
자바스크립트도 마차가지 입니다.
필요한 만큼만 알면 충분합니다.
우리에게 관심있는것은 전략과 수익이지 프로그래머로 취직하는게 아니니까요.
자 그럼 이제 코드를 살펴보겠습니다.
기본적인 뼈대는 아래처럼 생겼습니다.
function initialize() {
}
function onDayClose(now) {
}
네.. 함수 두개가 전부에요.
그중에서 오늘은 initialize()라는 함수에 대해 알아보겠습니다.
이 함수는 사용자가 시뮬레이션 시작을 누르면 '한번' 호출 됩니다.
호출된다는 뜻은 사용자가 이 함수 안에 적은 동작을 실행 한다는 의미죠.
보통은 무언가 초기화를 해야 할 필요가 있을때 initialize()안에서 초기화를 진행합니다.
그게 다에요.. 초기화 할꺼 있으면 여기서 하세요.
물론 뭘 초기화 해야하는지 막막하시겠지만. 오늘은 '초기화 = initialize() '라고 만 기억하시면 됩니다.
끝....
하고 여기서 끝내기에는 X싸고 바로 바지올리는 기분이라 좀더 예를 들어 설명을 해보자면..
계좌를 추가로 생성하거나,
function initialize() {
account1 = IQAccount.addAccount("1234-1234-11", 10000000);
}
뒤에 가면 배우게될 바스켓을 생성하거나.
function initialize() {
basket1 = new Basket(IQAccount.getDefaultAccount(), 20, 5000000);
}
관심있는 ETF종목과 업종지수를 미리 가져오기도 합니다.
function initialize() {
sse = IQStock.getStock('A005930');
kospi = IQIndex.getIndex('001');
}
혹은 위에서 설명한걸 모두 한꺼번에 하기도 하죠.
function initialize() {
account1 = IQAccount.addAccount("1234-1234-11", 10000000);
basket1 = new Basket(IQAccount.getDefaultAccount(), 20, 5000000);
sse = IQStock.getStock('A005930');
kospi = IQIndex.getIndex('001');
}
주의할 점은 initialize() 함수는 하나만 존재해야 합니다.
두개가 존재하면 실행할때 오류가 나면서 실행되지 않습니다.
그럼 진짜 끝.