Строго упрощенная линейная стратегия 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);
}
}
- Эта стратегия имеет только одну основную функцию main () и не имеет никаких других модулей. В основной функции есть только один цикл.
- Я опубликовал комментарий к этой стратегии в группе QQ, чтобы ученики, которые изучают ее впервые, могли просмотреть комментарии.
- Если вы не являетесь членом официальной группы QQ, пожалуйста, присоединяйтесь: 309368835 Изобретатель количественного обмена EA ((original BotVS)).
- Для тех, кто не владеет языком JavaScript, здесь мы просто расскажем о грамматике, чтобы они не могли понять код.
Заявление переменной
Ключевые словаvar+ Название переменной, например.var name = “小明”
Цикл
while(循环条件){
// 将会重复执行的代码
}
Код в {} выполняется повторно, если условие цикла истинно. Если условие цикла ложно, то выходит из цикла.
Условное разделение
if (判断条件){
// 执行代码
} else {
// 执行代码
}
Это очень просто, если перевести это как если (истинно) (выполнить этот код) (выполнить этот код)
Присвоение
Один.=Номер - это присвоение, например
name = “张三”;
Вместо того, чтобы называть это имя, можно легко перепутать его с сравнением.
Для сравнения:==Два равных числа.
Пример.“张三”==“李四”Ясно, что Чан Са не Ли Чжи.“张三”==“李四”Это не так.
Соответствующие API
Перед демонстрацией и написанием стратегии мы просмотрели API и шаблоны, используемые в стратегии, а также их экспортируемые функции. В Inventor Quantification есть подробная документация API и источники шаблонов.
- Функция $.GetAccount: шаблонная экспортная функция, используемая для получения информации об учетных записях биржи
- Функция Log: API, используемая для вывода информации в журналы, отображения значений и т. д.
- Функция $.Cross: шаблонная экспортная функция, используемая для обнаружения пересечения среднелинейных показателей
- Функция $.Buy: функция экспорта шаблона, используемая при покупке
- Функция $.Sell: функция экспорта шаблона, используемая для операций по продаже
- Функция LogProfit: API, используемая для вывода прибыли, функция может добавлять другую информацию из второго параметра
- Функция Sleep: API, позволяющая приостановить программу на некоторое время, параметры - миллисекунды.
Код стратегии также использует библиотечные функции Javascript, методы объектов.
- Math.abs() функция: возвращает абсолютные значения
- Функция toFixed () для объекта Number: сохранить число с меньшим числом в четырех или пяти окружностях. Обратите внимание, что функция возвращается как строка
- parseFloat Глобальная функция: возвращает число плавающих точек.
Подробнее о JavaScript можно узнать на сайте: JavaScript Number Objects http://www.w3school.com.cn/jsref/jsref_obj_number.asp
Процессный график программы, нарисованный вручную, без использования инструментов.
Шаг за шагом мы строим нашу стратегию.
Все входы в стратегические программы должны быть:main()Функция, то есть стратегия, начинается с main функции.
Твердое предложение
Это было сделано с помощью простой 30-строчной стратегии, которая включала в себя развертывание кода на хостинг-роботе, а затем настройку на хостинг-роботе.
Стратегия Running! запущена, покупайте операцию ☺☺☺
Благодаря Inventor Quantify, для создания такого упрощенного кода, существует множество открытых стратегий для изучения и улучшения Inventor Quantify, а также для продвижения вместе со многими другими специалистами.
官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。
Вспомогательные видеоуроки
http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html
Справочная информация
$.GetAccount 是FMZ 模板的导出函数(模板就是可复用的代码,参看API 文档上模板的描述)。 $.GetAccount是这个模板:https://www.fmz.com/strategy/10989 的导出函数。
上面的策略只是代码部分,没有策略参数设置,完整的策略可以在策略广场搜索30行均线策略。
就是2条均线,快线上穿慢线 一般是买入信号,上涨概率较大(程序自动买入操作)。 快线下穿慢线一般是卖出信号,下跌概率较大(程序自动卖出)。通过这样反复操作 在行情上升趋势中可以攫取利润。
- 1








