策略源码
// 定义对象
var e = exchange
e.SetContractType('XBTUSD')
var LastBarTime = 0
Idle = -1
status = Idle
// 链接交易所, 获取相关信息
function UpdateInfo() {
var account = exchange.GetAccount()
records = exchange.GetRecords()
ticker = exchange.GetTicker()
balance = account.Stocks
Bar = records[records.length - 1]
}
// 指标计算获取
function Get_MA() {
var MA = TA.MA(records, 30)
MA_close = MA[MA.length - 1]
}
// 开平仓规则
function onTick() {
if (LastBarTime !== Bar.Time) { // K线结束后进行交易
if (status === Idle) {
if (Bar.Close > MA_close) {
exchange.SetDirection("buy")
exchange.Buy(ticker.Sell, Amount)
status = PD_LONG
}
if (Bar.Close < MA_close) {
exchange.SetDirection("sell")
exchange.Sell(ticker.Buy, Amount)
status = PD_SHORT
}
}
if (status === PD_LONG) {
if (Bar.Close < MA_close) {
exchange.SetDirection("closebuy")
exchange.Sell(ticker.Buy, Amount)
exchange.SetDirection("sell")
exchange.Sell(ticker.Buy, Amount)
status = PD_SHORT
}
}
if (status === PD_SHORT) {
if (Bar.Close > MA_close) {
exchange.SetDirection("closesell")
exchange.Buy(ticker.Sell, Amount)
exchange.SetDirection("buy")
exchange.Buy(ticker.Sell, Amount)
status = PD_LONG
}
}
LastBarTime = Bar.Time
}
}
function main() {
// 主函数, 不停循环
while (1) {
// 链接交易所, 获取相关信息
UpdateInfo()
// 指标计算获取
Get_MA()
// 开平仓规则
onTick()
// 打印balance
LogStatus(balance)
// 轮询sleep时间
Sleep(5 * 1000)
}
}
相关推荐
全部留言
rootme
豆总漂亮
2021-05-20 17:54:01
FMZ_JH
标志位 status = PD_SHORT 用的巧妙,均线上 买入 不动 ; 均线下 平多 开空,妙!
2020-10-20 15:16:39
扁豆子
欸嘿嘿, fmz大佬们demo写得好, 还有挺多官方demo里面的一些小技巧的妙用, 慢慢发掘蛮多惊喜~
2020-10-20 15:23:37
FMZ_JH
程序精简一看就是高手,先看看再说!
2020-10-20 13:58:48