相关文章:https://www.fmz.com/bbs-topic/5533 B站视频链接:https://www.bilibili.com/video/BV1Wk4y1k7zz/
/* - 交互命令字符串格式 action:amount action: buy , sell , long , short , cover_long , cover_short, spk , bpk - 交易所类型 eType变量取值: 0 spot , 1 futures - TV文档链接 https://www.tradingview.com/pine-script-docs/en/v4/Quickstart_guide.html https://cn.tradingview.com/chart/8xfTuX7F/ - TV webhook 发送请求 https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"action:amount"] - 引用类库 引用数字货币交易类库 */ // 参数 // var IsMarketOrder = false // var QuotePrecision = 2 // var BasePrecision = 2 // 期货参数 // var Ct = "" // 全局变量 var BUY = "buy" var SELL = "sell" var LONG = "long" var SHORT = "short" var COVER_LONG = "cover_long" var COVER_SHORT = "cover_short" var SPK = "spk" var BPK = "bpk" function main() { // 清空日志,如不需要,可以删除 LogReset(1) // 设置精度 exchange.SetPrecision(QuotePrecision, BasePrecision) // 识别期货还是现货 var eType = 0 var eName = exchange.GetName() var patt = /Futures_/ if (patt.test(eName)) { Log("添加的交易所为期货交易所:", eName, "#FF0000") eType = 1 if (Ct == "") { throw "Ct 合约设置为空" } else { Log(exchange.SetContractType(Ct), "设置合约:", Ct, "#FF0000") } } else { Log("添加的交易所为现货交易所:", eName, "#32CD32") } var lastMsg = "" var acc = _C(exchange.GetAccount) while(true) { var cmd = GetCommand() if (cmd) { // 检测交互命令 lastMsg = "命令:" + cmd + "时间:" + _D() var arr = cmd.split(":") if (arr.length != 2) { Log("cmd信息有误:", cmd, "#FF0000") continue } var action = arr[0] var amount = parseFloat(arr[1]) if (eType == 0) { if (action == BUY) { var buyInfo = IsMarketOrder ? exchange.Buy(-1, amount) : $.Buy(amount) Log("buyInfo:", buyInfo) } else if (action == SELL) { var sellInfo = IsMarketOrder ? exchange.Sell(-1, amount) : $.Sell(amount) Log("sellInfo:", sellInfo) } else { Log("现货交易所不支持!", "#FF0000") } } else if (eType == 1) { var tradeInfo = null var ticker = _C(exchange.GetTicker) if (action == LONG) { exchange.SetDirection("buy") tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount) } else if (action == SHORT) { exchange.SetDirection("sell") tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount) } else if (action == COVER_LONG) { exchange.SetDirection("closebuy") tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount) } else if (action == COVER_SHORT) { exchange.SetDirection("closesell") tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount) } else if (action == SPK) { // 卖出平多仓,卖出开空仓 exchange.SetDirection("closebuy") var tradeInfo1 = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount) exchange.SetDirection("sell") var tradeInfo2 = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount) tradeInfo = [tradeInfo1, tradeInfo2] } else if (action == BPK) { // 买入平空仓,买入开多仓 exchange.SetDirection("closesell") var tradeInfo1 = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount) exchange.SetDirection("buy") var tradeInfo2 = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount) tradeInfo = [tradeInfo1, tradeInfo2] } else { Log("期货交易所不支持!", "#FF0000") } if (tradeInfo) { Log("tradeInfo:", tradeInfo) } } else { throw "eType error, eType:" + eType } acc = _C(exchange.GetAccount) } var tbl = { type : "table", title : "状态信息", cols : ["数据"], rows : [] } tbl.rows.push([JSON.stringify(acc)]) LogStatus(_D(), eName, "上次接收到的命令:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`") Sleep(1000) } }
superon 看了一晚上还是没看懂,能不能代写一下 聯繫一下V:maybeyeah
zz791377920 这个支持哪些交易所?
zz791377920 现货交易数量填的10,下单的时候变成金额10u,这是哪里的设置问题吗?
刘哲1 为什么上来就报错,ReferenceError: 'QuotePrecision' is not defined at main (__FILE__:13)
kukerzzz 问一下合约交易里面只能设置数量吗,如果每次都满仓交易该如何写
15937556103 老师 能不能发一个关于合约的完整策略
15937556103 /upload/asset/203b175e3c2c22ac9681c.png 为什么一直都是这样
tobey2022 你好,能在单个机器人上放多个交易对吗?然后的预警的URL增加交易对名称,一个机器人运行多个交易对的预警
le7mars long,short,cover_long,cover_SHORT,是要分别添加webhook吗
sbwffg198212 这是什么意思啊,期货交易所不支持,我想要做币安的永续合约BTC_USDT 要怎么设置啊
sbwffg198212 这是什么意思啊,期货交易所不支持,我想要做币安的永续合约BTC_USDT 要怎么设置啊
sbwffg198212 /upload/asset/1cd7a606f646b8c0d32be.png
反向Q 老哥,可否出一期关于如何添加和设置期货合约的教学视频,最好说的详细一些。
sug210 /upload/asset/125e8fed0f51ab1f8122e.jpg 用spk指令报错
夜空 如何解决TV发出警报,FMZ偶尔接收不到信号的问题?特别是TV的两个策略在同一时间点给FMZ两个机器人发出信号,时不时有一个机器人接收不到。 而且已经注册了两个TV账号来发送,还是会出现这个问题,不过FMZ托管的服务器是同一个。 /upload/asset/1796a4b1725a66d015a9f.png /upload/asset/179ca7beaa5e8f9dd79cf.png
半岛未凉 spk ,bpk后面要加数量吗? 如TV信号有多次报警开多单后,能一次性平前面开多单的总数量,空单一样。代码怎么样写
melo23 合约 倍数 在哪里选择
发明者量化-小小梦 看下策略参数,如果你添加的是期货交易所对象,要设置合约。否则机器人不知道要操作什么合约。
Richie 您好 提醒错误 ct 合约设置为空是为什么?
发明者量化-小小梦 都可以,但是参数、TV上的webhook 设置可能要根据做的品种调整。
发明者量化-小小梦 现货市价单的买单,下单量是金额。
发明者量化-小小梦 估计你那里弄错了,在按照API 文档检查下。策略是可以正常运行的。
刘哲1 重新换了key也不行,是不是必须复制完整策略才能调起来
发明者量化-小小梦 code 1 是API KEY 错了,检查下.
刘哲1 现在我在平台内测试是能下单,但是用扩展api一调就报错,返回,code:1,data:[],我是用链接直接访问的,类似于浏览器打开链接
发明者量化-小小梦 不要只复制代码,复制完整的策略。
发明者量化-小小梦 TV发送的信号,里面写下单多少,策略就下单多少。如果要梭哈之类的,需要改策略。
发明者量化-小小梦 这个策略本身就是一个完整的例子,可以跑期货,你命令用错了, 检查下。
发明者量化-小小梦 可以跑期货的,你webhook回调里用的命令错了,要用期货的命令, 仔细看代码。
tobey2022 好的,已经在众包板块发布了信息,期望你的成果和合作,thanks.
发明者量化-小小梦 这个不修改了,可以众包板块发布信息,有开发者会接单。
tobey2022 可以直接发给你修改吗?因为其它人可能还要熟悉一段时间,
发明者量化-小小梦 平台上有众包板块,可以在里面发布需求。
tobey2022 @小小梦,能否修改一版这样的策略,如果可行的话,当然可以付费购买,期望你的成果和回复,thanks.
发明者量化-小小梦 可以,但是需要修改这个策略。
发明者量化-小小梦 没太明白你的意思。。
le7mars 我按照long、short、coverlong、covershort设了四个警报,但是由于本身的是strategy不是study,这四个指令每次都是同时触发……
le7mars 怎么区分?用long或 short区分?
发明者量化-小小梦 报警webhook的URL里区分就可以了。
le7mars 发现问题了,只能接收tradingview指标的交易警报,但是我写的strategy,设置了4个不同的警报,但是貌似无法识别,当信号产生时,四个信号同时开单。。。。
发明者量化-小小梦 TV上报警发送请求 ``` https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"action:amount"] ``` 其中action这个地方你写什么指令,机器人就收到什么指令。例如: ``` https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"long:1"] ```
发明者量化-小小梦 先看下FMZ 初级教程, 要操作期货交易所账号, 先配置期货交易所。然后机器人上添加期货交易所对象。
sbwffg198212 /upload/asset/1ccc5603d54593dcba809.png
sbwffg198212 我就是改了这些地方,大神帮我看下哪里不对啊,我不会 添加期货交易所对象,参数上设置合约,永续是swap, 币本位是XXX_USD, U本位是XXX_USDT。
发明者量化-小小梦 添加期货交易所对象,参数上设置合约,永续是swap, 币本位是XXX_USD, U本位是XXX_USDT。
发明者量化-小小梦 检查下是不是没有持仓的情况下去调用 SPK了。
发明者量化-小小梦 可以用FMZ平台文库中介绍的TV直连方式,https://www.fmz.com/digest-topic/5969 。
发明者量化-小小梦 杠杆值在交易所可以设置好。或者在策略代码里面下单之前```exchange.SetMarginLevel() ```设置杠杆值
发明者量化-小小梦 跑合约交易所,要设置合约,否则不知道要操作什么合约。
发明者量化-小小梦 ``` https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"action:amount"] ``` action 写成 spk ,bpk
夜空 我想知道针对SPK和BPK,TV那边怎么设置