
В качестве стратегии обучения, конечно, лучше всего учитывать определенные практические достижения. «Стратегия Мартина для криптовалютных фьючерсов» отображается в разделе «Наблюдение» FMZ.COM уже почти полгода. Пройдя через множество взлетов и падений, было обнаружено, что стратегии Мартина и сетки имеют свои риски и недостатки, и консервативные параметры не означают, что их нельзя использовать.


Г-н Мэн гарантирует, что для «изготовления» кривой доходности (ручной головки) не требуется абсолютно никакой перезарядки.
Однако первая версия дизайна стратегии была довольно грубой. В интерфейсе был только один вывод данных по позиции и общему капиталу, а кривая доходности печатала только реализованную прибыль и убыток, не принимая во внимание плавающий убыток. Многие новые студенты жаловались на это и просили оптимизировать отображение.
В этой статье давайте усовершенствуем эту стратегию, которая применяется на практике уже полгода.
Версия политики до обновления записывается на странице примечаний политики.

Это также моя привычка личного развития. Очень удобно записывать каждую деталь разработки стратегии и итерации на FMZ.COM.
Начните обновление!
Сначала давайте оптимизируем отображение “строки состояния”. Студенты, знакомые с документами по разработке FMZ, знают, что данные строки состояния отображаются на FMZ с помощьюLogStatusфункция. Затем мы находим эту точку входа и начинаем проектировать код.

Далее добавьте сюда большой фрагмент кода:
var tblPos = {
"type" : "table",
"title" : "持仓",
"cols" : ["持仓数量", "持仓方向", "持仓均价", "持仓盈亏", "合约代码", "自定义字段 / " + SpecifyPosField],
"rows" : []
}
var descType = ["多头仓位", "空头仓位"]
for (var posIndex = 0 ; posIndex < pos.length ; posIndex++) {
tblPos.rows.push([pos[posIndex].Amount, descType[pos[posIndex].Type], pos[posIndex].Price, pos[posIndex].Profit, pos[posIndex].ContractType, SpecifyPosField == "" ? "--" : pos[posIndex].Info[SpecifyPosField]])
}
var tbl = {
"type" : "table",
"title" : "数据",
"cols" : ["当前总权益", "实际盈亏", "当前价格", "买单价格/数量", "卖单价格/数量"],
"rows" : []
}
var buyOrder = null
var sellOrder = null
for (var orderIndex = 0 ; orderIndex < orders.length ; orderIndex++) {
if (orders[orderIndex].Type == ORDER_TYPE_BUY) {
buyOrder = orders[orderIndex]
} else {
sellOrder = orders[orderIndex]
}
}
var realProfit = currTotalEq - totalEq
if (exchange.GetName() == "Futures_Binance") {
_.each(pos, function(p) {
realProfit += parseFloat(p.Info.unRealizedProfit)
})
}
var t = exchange.GetTicker()
tbl.rows.push([currTotalEq, realProfit, t ? t.Last : "--", (buyOrder.Price + "/" + buyOrder.Amount), (sellOrder.Price + "/" + sellOrder.Amount)])
// 更新图表数据
if (t && showLine) {
_.each(pos, function(p) {
$.PlotLine(descType[p.Type] + "持仓价格", p.Price)
})
$.PlotLine("买单挂单价格", buyOrder.Price)
$.PlotLine("卖单挂单价格", sellOrder.Price)
$.PlotLine("当前价格", t.Last)
}
// 更新状态栏数据
LogStatus("时间:" + _D() + "\n" + "`" + JSON.stringify(tblPos) + "`" + "\n" + "`" + JSON.stringify(tbl) + "`")
Заменить предыдущую нефтьLogStatusВыход
LogStatus(_D(), "当前总权益:", currTotalEq, "持仓:", pos)
Стратегия добавляет 2 параметра:

Параметры showLine Если этот флажок установлен, вы можете использовать библиотеку рисования линий для рисования на реальной торговой странице цены позиции, цены отложенного ордера и кривой текущей цены.
Укажите параметр PosField Он используется для установки исходных полей информации о позиции, которые необходимо отобразить, поскольку названия исходных полей данных позиций различны для каждой биржи. Поэтому здесь мы разрабатываем настраиваемый параметр, чтобы указать имя поля, которое будет отображаться. Например, мой реальный счет Binance:

Я хочу отобразить поле «Информация» данных о местоположении (исходные данные интерфейса обмена)unRealizedProfitАтрибут, то есть нереализованная прибыль и убыток позиции. Вы можете установить параметр SpecifyPosField на unRealizedProfit. Он будет отображаться в строке состояния.
Подобный дизайн позволяет стратегии адаптировать выходные данные к неоднородным данным, предоставляя пользователям возможность настраивать содержимое выходных данных.


Вы можете видеть, что данные, которые необходимо отобразить, понятны с первого взгляда. Гораздо удобнее наблюдать за ходом торговли по стратегии, текущей ценой позиции, прибылью и убытком, а также ценой отложенного ордера. Эта стратегия имеет определенные риски. Пожалуйста, установите конкретные параметры в соответствии с вашим собственным контролем риска и несите собственные прибыли и убытки. Стратегия раскрывается только для общения и обучения.