avatar of 发明者量化-小小梦 发明者量化-小小梦
집중하다 사신
4
집중하다
1271
수행원

30줄의 코드로 양적 투자의 세계로 안내합니다

만든 날짜: 2016-04-06 10:17:26, 업데이트 날짜: 2020-01-13 15:17:11
comments   13
hits   7394

30줄의 순환률 전략으로 순환 수익 시스템을 구축합니다.

맞습니다. 30줄의 코드입니다. 30줄의 코드만 쓰면 전체적인 내용을 볼 수 있습니다.

정책 변수는 다음과 같습니다.

매개변수 설명하다 유형 기본값
FastPeriod 시장 진입 라인 주기 숫자형 (number) 3
SlowPeriod 시장에 진입하는 느린 라인 주기 숫자형 (number) 7
EnterPeriod 시장 진입 관찰 기간 숫자형 (number) 3
ExitFastPeriod 시외 고속 라인 주기 숫자형 (number) 3
ExitSlowPeriod 시내의 느린 라인 주기 숫자형 (number) 7
ExitPeriod 시외 관찰 기간 숫자형 (number) 1
PositionRatio 위치 비율 숫자형 (number) 0.8
Interval 설문조사 주기 (초) 숫자형 (number) 10

30줄의 코드로 양적 투자의 세계로 안내합니다

  • 수입됐어요交易类库구매나 판매 등에 대해 고민하지 않고 편리하게 전략을 수립할 수 있습니다.
  • 코드를 읽으면서, 선언되지 않은 변수가 혼란스러울 때, 그룹으로 가서 답하라.
function main() {
    var STATE_IDLE  = -1;
    var state = STATE_IDLE;
    var opAmount = 0;
    var initAccount = $.GetAccount();
    Log(initAccount);
    while (true) {
        if (state === STATE_IDLE) {
            var n = $.Cross(FastPeriod, SlowPeriod);
            if (Math.abs(n) >= EnterPeriod) {
                opAmount = parseFloat((initAccount.Stocks * PositionRatio).toFixed(3));
                var obj = n > 0 ? $.Buy(opAmount) : $.Sell(opAmount);
                if (obj) {
                    opAmount = obj.amount;
                    state = n > 0 ? PD_LONG : PD_SHORT;
                    Log("开仓详情", obj, "交叉周期", n);
                }
            }
        } else {
            var n = $.Cross(ExitFastPeriod, ExitSlowPeriod);
            if (Math.abs(n) >= ExitPeriod && ((state === PD_LONG && n < 0) || (state === PD_SHORT && n > 0))) {
                var obj = state === PD_LONG ? $.Sell(opAmount) : $.Buy(opAmount);
                state = STATE_IDLE;
                var nowAccount = $.GetAccount();
                LogProfit(nowAccount.Balance - initAccount.Balance, '钱:', nowAccount.Balance, '币:', nowAccount.Stocks, '平仓详情:', obj, "交叉周期", n);
            }
        }
        Sleep(Interval*1000);
    }
}
  • 이 전략은 하나의 메인 함수 (function main) 만을 가지고 있으며, 다른 함수 모듈이 없습니다. 메인 함수 (function main) 안에는 하나의 루크가 있습니다.
  • 이 전략에 대한 코드의 코멘트를 QQ 그룹에 올렸는데, 처음 공부하는 학생들이 코멘트를 볼 수 있습니다.
  • 여기 공식 QQ 그룹에 가입하지 않은 분들은 가입하시기 바랍니다: 309368835 발명가 양자 EA 통신 (원래의 BotVS) ᅲ.ᅲ.
  • 자바스크립트 기반이 없는 학생들의 배려를 위해 간단한 문법으로 설명합니다.

변수 선언

키워드를 사용하세요var+ 변수 이름, 예를 들어var name = “小明”

순환

while(循环条件){
    // 将会重复执行的代码
}

순환 조건이 TRUE라면 반복적으로 {} 내의 코드를 실행한다. 순환 조건이 FALSE라면 순환에서 빠져나간다.

조건부 분기

if (判断条件){
    // 执行代码
} else {
    // 执行代码
}

아주 간단하게 번역하면, 만약 (true) { execute this code}

가치 부여

하나=예를 들어,

name = “张三”;

장 삼이라는 이름을 에 붙인다는 것은 비교와 동일하게 착각하기 쉽죠 비교할 때==두 개의 동인수, 예를 들어 보죠.“张三”==“李四”은 이 아니었기 때문에“张三”==“李四”왜 그럴까요?

관련 API

데모를 작성하기 전에 우리는 아래의 정책에 사용되는 API와 템플릿의 출력 기능을 아봤습니다. Inventor Quantum에는 API 문서와 템플릿 소스 코드의 자세한 설명이 있습니다.

  • $.GetAccount 함수: 거래소 계정 정보를 얻기 위한 템플릿 수출 함수
  • 로그 함수: 로그에 정보를 출력하고, 수치를 표시하는 API
  • $.Cross 함수: 템플릿 내보내기 함수, 평선 지표의 교차 상황을 탐지하기 위한 함수
  • $.Buy 함수: 구매 동작을 위한 템플릿 수출 함수
  • $.Sell 함수: 팔기 작업을 위한 템플릿 내보내기 함수
  • LogProfit 함수: API, 수익을 출력하기 위한 함수, 함수는 두 번째 변수에서 다른 정보를 추가할 수 있다
  • Sleep 함수: API, 프로그램을 잠시 정지하게 한다. 파라미트는 밀리초이다.

정책 코드는 JavaScript의 라이브러리 함수, 객체 메소드를 사용합니다.

  • Math.abs() 함수: 변수의 절대값을 반환
  • Number 객체의 toFixed() 함수: 매개 변수에 따라 소숫자 사각지대를 유지한다. 주의, 함수는 문자열로 반환된다.
  • parseFloat 범용 함수: 스트링 변수를 플래잉 포인트 수로 반환한다.

자바스크립트의 관련 내용은 자바스크립트 번호 객체 http://www.w3school.com.cn/jsref/jsref_obj_number.asp에서 배울 수 있습니다.

이 프로젝트의 도표는 손으로 그려진 것입니다. 도구가 없는 그림입니다.

30줄의 코드로 양적 투자의 세계로 안내합니다

우리의 전략을 단계적으로 구축하는 것

모든 전략 프로그램 출입구에는main()함수, 즉 전략은 main 함수에서 시작된다.

30줄의 코드로 양적 투자의 세계로 안내합니다

30줄의 코드로 양적 투자의 세계로 안내합니다

30줄의 코드로 양적 투자의 세계로 안내합니다

30줄의 코드로 양적 투자의 세계로 안내합니다

30줄의 코드로 양적 투자의 세계로 안내합니다

확정 제안

이제 30줄의 간단한 전략이 끝났습니다! Running! 전략이 실행되고 있습니다.

30줄의 코드로 양적 투자의 세계로 안내합니다

그리고 많은 오픈소스 전략이 있습니다. 많은 발명가들과 함께 발전할 수 있는 방법이죠.

官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。

동영상 교육

http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html

참고 자료