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 |
- 수입됐어요
交易类库구매나 판매 등에 대해 고민하지 않고 편리하게 전략을 수립할 수 있습니다. - 코드를 읽으면서, 선언되지 않은 변수가 혼란스러울 때, 그룹으로 가서 답하라.
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 = “张三”;
<unk> 장 삼<unk>이라는 이름을 <unk>에 붙인다는 것은 비교와 동일하게 착각하기 쉽죠
비교할 때==두 개의 동인수,
예를 들어 보죠.“张三”==“李四”<unk>은 <unk>이 아니었기 때문에“张三”==“李四”왜 그럴까요?
관련 API
데모를 작성하기 전에 우리는 아래의 정책에 사용되는 API와 템플릿의 출력 기능을 <unk>아봤습니다. 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에서 배울 수 있습니다.
이 프로젝트의 도표는 손으로 그려진 것입니다. 도구가 없는 그림입니다.
우리의 전략을 단계적으로 구축하는 것
모든 전략 프로그램 출입구에는main()함수, 즉 전략은 main 함수에서 시작된다.
확정 제안
이제 30줄의 간단한 전략이 끝났습니다!
Running! 전략이 실행되고 있습니다.
그리고 많은 오픈소스 전략이 있습니다. 많은 발명가들과 함께 발전할 수 있는 방법이죠.
官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。
동영상 교육
http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html
참고 자료
$.GetAccount 是FMZ 模板的导出函数(模板就是可复用的代码,参看API 文档上模板的描述)。 $.GetAccount是这个模板:https://www.fmz.com/strategy/10989 的导出函数。
上面的策略只是代码部分,没有策略参数设置,完整的策略可以在策略广场搜索30行均线策略。
就是2条均线,快线上穿慢线 一般是买入信号,上涨概率较大(程序自动买入操作)。 快线下穿慢线一般是卖出信号,下跌概率较大(程序自动卖出)。通过这样反复操作 在行情上升趋势中可以攫取利润。
- 1








