写点什么

现货合约量化交易系统开发机器人策略

  • 2023-02-09
    广东
  • 本文字数:1842 字

    阅读完需:约 6 分钟

现货合约量化交易系统开发机器人策略

量化交易机器人是一个软件程序,可以根据对市场数据的解释来发布买卖订单。他们通过监控市场上的价格走势,并根据一套事先设置好的规则作出反应来做出这些决策。量化交易软件开发:132 开 4277 发 2558.


在策略设定好之后,机器人智能分配每一次进单条件,严格执行交易策略,交易策略,根据当前行情,实时进行云大数据调整。同时支持百种交易同时执行交易策略,每一个品种立线程,自动管理报价深度,策略计算,实时查看交易情况,实时执行。


策略执行代码参考如下:

/*backtest

period: 1h

basePeriod: 1m

exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]

args: [["v_input_float_1",500],["v_input_string_1",2],["v_input_float_2",0.01],["v_input_int_1",20],["v_input_int_2",500],["RunMode",1,358374],["MinStock",0.001,358374]]

*/

strategy(overlay=true)

varip beginPrice = 0

var spacing = input.float(-1, title="间距价格")

var dir = input.string("long", title="方向", options = ["long", "short", "both"])

var amount = input.float(-1, title="下单量")

var numbers = input.int(-1, title="网格数量")

var profit = input.int(-1, title="盈利价差") / syminfo.mintick

if spacing == -1 and amount == -1 and numbers == -1 and profit == -1

runtime.error("参数错误")

if not barstate.ishistory and beginPrice == 0

beginPrice := close

findTradeId(id) =>

ret = "notFound"

for i = 0 to strategy.opentrades - 1

if strategy.opentrades.entry_id(i) == id

ret := strategy.opentrades.entry_id(i)

ret

// 实时 K 线阶段

if not barstate.ishistory

// 检索网格

for i = 1 to numbers

// 做多

direction = dir == "both" ? "long" : dir

plot(beginPrice-i*spacing, direction+str.tostring(i), color.green)

if direction == "long" and beginPrice-i*spacing > 0 and beginPrice-i*spacing < close and findTradeId(direction+str.tostring(i)) == "notFound"

strategy.order(direction+str.tostring(i), strategy.long, qty=amount, limit=beginPrice-i*spacing)

strategy.exit("exit-"+direction+str.tostring(i), direction+str.tostring(i), qty_percent=100, profit=profit)

// 做空

direction := dir == "both" ? "short" : dir

plot(beginPrice+i*spacing, direction+str.tostring(i), color.red)

if direction == "short" and beginPrice+i*spacing > close and findTradeId(direction+str.tostring(i)) == "notFound"

strategy.order(direction+str.tostring(i), strategy.short, qty=amount, limit=beginPrice+i*spacing)

strategy.exit("exit-"+direction+str.tostring(i), direction+str.tostring(i), qty_percent=100, profit=profit)

接下来的代码:

strategy(overlay=true)

varip beginPrice = 0

var spacing = input.float(-1, title="间距价格")

var dir = input.string("long", title="方向", options = ["long", "short", "both"])

var amount = input.float(-1, title="下单量")

var numbers = input.int(-1, title="网格数量")

var profit = input.int(-1, title="盈利点数") / syminfo.mintick

strategy(overlay=true): 用来设置脚本的一些选项,overlay=true,就是给参数 overlay 赋值 true,让画图时,画在图表的主图上(K 线图就是主图,可以这么简单理解)。

varip beginPrice = 0: 用关键字 varip 声明了一个变量 beginPrice 初始赋值为 0,这个值是用作网格的初始价格。

var spacing = input.float(-1, title="间距价格"): 设置一个策略参数,参数名字叫“间距价格”,就是每个网格点的间距,设置 100 就是价格每过 100,交易一次。

var dir = input.string("long", title="方向", options = ["long", "short", "both"]): 设置了一个策略参数,名字叫“方向”,这个参数是一个带下拉框的选项,可以选择 long,short,both。分别表示网格只做多、只做空、多空都做。

var amount = input.float(-1, title="下单量"): 设置一个参数,用来控制每次网格点交易时的交易量。

var numbers = input.int(-1, title="网格数量"): 网格点的数量,设置 20 就是一个方向 20 个网格点。

var profit = input.int(-1, title="盈利价差") / syminfo.mintick: 设置一个参数,控制每个网格点的持仓盈利到多少价差就平仓。

用户头像

技术开发咖 2020-10-28 加入

区块链开发技术观察员

评论

发布
暂无评论
现货合约量化交易系统开发机器人策略_量化_薇電13242772558_InfoQ写作社区