
교육 전략으로 특정 실제 성과를 고려하는 것이 가장 좋습니다. “암호화폐 선물을 위한 마틴 전략”은 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 매개변수 이 옵션을 체크하면 선 그리기 라이브러리를 사용하여 실제 거래 페이지에 포지션 가격, 보류 주문 가격, 현재 가격 곡선을 그릴 수 있습니다.
SpecifyPosField 매개변수 각 거래소마다 포지션의 원본 데이터 필드의 이름이 다르므로, 표시되어야 하는 포지션 정보의 원본 필드를 설정하는 데 사용됩니다. 따라서 여기서는 표시할 필드 이름을 지정하기 위해 사용자 지정 매개변수를 디자인합니다. 예를 들어, 내 Binance 실제 계정은 다음과 같습니다.

거래소 인터페이스의 원본 데이터인 위치정보 데이터의 Info 필드를 표시하고 싶습니다.unRealizedProfit속성, 즉 포지션의 실현되지 않은 손익입니다. SpecifyPosField 매개변수를 unRealizedProfit으로 설정할 수 있습니다. 상태 표시줄에 표시됩니다.
이처럼 유사한 디자인을 통해 전략을 통해 비균일한 데이터에 맞춰 출력을 조정하고, 사용자에게 출력 내용을 사용자 정의할 수 있는 옵션을 제공합니다.


표시해야 할 데이터가 한눈에 명확하게 표현된다는 것을 알 수 있습니다. 전략에 따른 거래 진행 상황, 현재 포지션 가격, 손익, 보류 주문 가격을 관찰하는 것이 훨씬 더 편리합니다. 이 전략에는 특정 위험이 있습니다. 자신의 위험 관리에 따라 특정 매개변수를 설정하고 자신의 이익과 손실을 감수하세요. 이 전략은 의사소통과 학습을 위해서만 공개됩니다.