【实战】MT4天地网格交易策略

一文读懂网格交易

所谓网格交易法(grid trading method),也称鱼网交易,秉持的原则是“仓位策略比择时策略更重要 ” 。是利用市场震荡行情获利的一种主动交易策略,其本质是利用投资标的在一段震荡行情中价格在网格区间内的反复运动以进行加仓减仓的操作以达到投资收益最大化的目的。 通俗点讲就是根据建立不同数量. 不同大小的网格,在突破网格的时候建仓,回归网格的时候减仓,力求能够捕捉到价格的震荡变化趋势,达到盈利的目的。

网格交易是围绕基准价,每当价格下跌时,在触发点位执行买入操作;每当上升时,在触发点位执行卖出操作,通过分档操作来控制收益和风险。相较于定投等策略,网格交易也是一种程序行为,就像渔网一样,利用市场波动在网格范围内低买高卖,通过反复循环差价赚取利润。

看懂这张图,你就理解了网格交易。
网格交易收益图示例(来源:云财经)

网格交易是否能一直赚钱

答案是否定的。从对网格交易的原理描述中我们不难看出,网格交易法盈利的核心是“均值回归”,在震荡行情中,网格策略会有非常好的表现。但网格交易只适用于震荡行情,并不是圣杯,只是大家常用的一个交易策略而已。在单边趋势的行情中,可能会带来严重的亏损,因此还是要慎重选择。

什么是MT4的天地网格交易策略

天地网格交易策略就是带有上下限的网格策略。在FinalTrader MT4中,已经集成了一个天地网格策略,您只需要设定好区间最高价和最低价,确定好要细分的网格数,即可开始运行策略。策略会计算每个小网格低买高卖的价格,自动挂单,自动交易。
一旦突破了上下限,策略会自动止损,防止亏损进一步扩大。只要价格一直在你设定的区间内波动,就会不断地低吸高抛自动赚取波动带来的收益。而且我们交易的是正规国内期货品种,建立的双向网格,多空波动都能获利。

FinalTrader MT4网格交易

无需编写任何代码,FinalTrader MT4已自带了网格交易,只需按一下按钮即可使用,方便快捷。目前策略免费开源,更多详细的用法欢迎进群讨论或发我私信。
温馨提示,一旦确定使用了网格交易,就不要轻易更改或取消。任何策略的执行都是需要时间来验证的,要等破网或者确认单边趋势形成的情况下再取消。以免频繁操作带来损失。

更多有用信息

网格交易
正面看法的人认为它特别适合普通投资者,因为制定好策略,买卖清晰,盈亏可预期,不需要懂技术分析,也不用看消息面,可以说是一种稳定而保险的交易策略。

而负面看法的人,却认为它交易频次高耗费精力、资金利用率低收益有限、害怕单边行情,长期被套太难熬等,不适合普通投资者使用。

那么网格交易到底如何?是否适合普通投资者使用,该怎么使用?又怎么克服它自身的缺陷呢?

简单地说,网格交易是一种在特定的价格区间中执行低买高卖的自动化策略。策略会计算每个小网格低买高卖的价格,自动挂单,随着市场波动,不断地低吸高抛赚取波动带来的收益。网格交易作为量化交易的一种,在传统金融投资市场应用多年,是一种成熟有效的交易策略。

我们知道,从市场趋势而言,市场80%以上的时间都是处于震荡中,为数众多的投资者都不懂技术分析,也很少去研究背后逻辑,更多的是凭感觉,追涨杀跌,一通操作下来发现亏损的时候更多。

在这种震荡的行情下,网格交易就显示出它的优越性了,网格交易只需要设定区间最高价和最低价,确定好要细分的网格数,即可开始运行策略。后续市场不管如何走,坚定的执行策略,在交易区间内,借助价格的不断波动,自动化地低吸高抛。

网格交易策略的建立

那么该如何做好网格交易?你需要做好下面这几件事情:

第一件,寻找好的投资标的。这是网格交易策略成功的基础,什么是好的投资标的?因为网格交易策略追求的不是行情持续上涨,而是行情不断的波动,哪怕标的不涨,只要在一定的区间内不停波动,收益率也会很可观。

第二件,寻找好的投资时机。笔者认为并不是任何时候都适用网格交易,一定要在市场震荡的时候才用。怎么确定现在市场是单边行情还是震荡行情,就需要自己有一定的功力了。FinalTrader常用的一个无脑方法是,最近几天是单边,接下来就还是单边。最近几天是震荡,接下来就还是震荡。仅供参考。

第三件,确定网格上下限和间距密度。有两个含义,一个是确定网格的最高价和最低价,一个是确定网格数量。最高价与最低价的选择可以参考一段时间内行情的高、低点,例如可以选择这轮大行情的起始点为最低价,这轮行情的高点为最高价。或者近期波动剧烈,就范围大一些,波动小就范围小一些或不做。
确定最高价和最低价之后,将它等分,间距不易过大也不易过小,通常在10-20格左右。后续行情无论怎么变化,都严格按照确定好的价位操作,不要随意变动。

最后,网格下单的手数最好都是等比例的,每次建议不要超过总资金量的5%左右。具体手数可在FinalTrader里设置。

其他人对网格交易策略的建议
所有的交易策略都不是完美的,都会有各自的缺点,网格交易也不例外,因此不要一直使用或者盲目迷信。网格交易的缺点主要有:害怕单边行情导致破网,资金利用率较低,交易频繁需要较多时间和精力等。针对这些缺点,可以进行以下优化:

单边行情主要是指:跌破最低价出现亏损、突破最高价卖飞踏空。针对跌破低价的情况,能做的主要是控制仓位,保持好心态,不要因为心态问题而出现胡乱操作;另外可以用其他闲钱进行定投,然后等反弹再分批卖出,继续执行网格策略。针对突破高价的情况,可以提前预留一部分低价的筹码当做底仓,采用底仓+网格的策略组合,并且根据市场的变动调整底仓的规模:价格越高,底仓规模越小;价格越低,底仓规模越大。最后,如果出现极端行情或者大环境严重恶化,应该要分批止损。

针对“资金利用率较低”的缺点,目前还没有十分有效的方法,可以尝试在行情出现较大下跌时,抓住机会大额买入,但这其实是违背了网格交易“逐步买入,分散风险”原则的,可能会出现价格再跌手中已无资金的情况。所以如果想要网格交易的稳定收益,就要接受它的一些缺点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,网格交易策略是一种基于价格波动的交易策略,它是通过在价格上下方设置一定的间隔来进行交易的。当价格上升到一定水平时,EA会在上方设置卖出单,并在下方设置买入单,以期望在价格波动中获得利润。 下面是一个基本的网格交易策略EA的示例: ```python import MetaTrader5 as mt5 import time # 设置网格交易策略EA的参数 symbol = "EURUSD" grid_size = 20 # 网格大小 grid_spacing = 50 # 网格间距 lot_size = 0.01 # 每笔交易的手数 # 连接MetaTrader 5客户端 mt5.initialize() account_info = mt5.account_info() print(f"账户余额:{account_info.balance}") # 获取当前价格 symbol_info = mt5.symbol_info(symbol) last_price = mt5.symbol_info_tick(symbol).ask # 初始化网格 buy_orders = [] sell_orders = [] for i in range(-(grid_size//2), (grid_size//2)+1): buy_price = last_price - i*grid_spacing sell_price = last_price + i*grid_spacing buy_order = {"type": mt5.ORDER_TYPE_BUY_LIMIT, "symbol": symbol, "price": buy_price, "lot": lot_size} sell_order = {"type": mt5.ORDER_TYPE_SELL_LIMIT, "symbol": symbol, "price": sell_price, "lot": lot_size} buy_orders.append(buy_order) sell_orders.append(sell_order) # 开始网格交易 while True: # 获取当前价格 symbol_info = mt5.symbol_info(symbol) last_price = mt5.symbol_info_tick(symbol).ask # 更新网格 for i in range(len(buy_orders)): if buy_orders[i]["price"] < last_price - grid_spacing: # 关闭过期的买入单 if mt5.order_send(mt5.ORDER_TYPE_CLOSE_BY, buy_orders[i]["symbol"], buy_orders[i]["lot"], buy_orders[i]["price"], slippage=5) == -1: print("关闭买入单失败") # 更新买入单价格 buy_orders[i]["price"] = last_price - (grid_size-i)*grid_spacing buy_orders[i]["ticket"] = mt5.order_send(buy_orders[i]["type"], buy_orders[i]["symbol"], buy_orders[i]["lot"], buy_orders[i]["price"], slippage=5) if buy_orders[i]["ticket"] == -1: print("开启买入单失败") if sell_orders[i]["price"] > last_price + grid_spacing: # 关闭过期的卖出单 if mt5.order_send(mt5.ORDER_TYPE_CLOSE_BY, sell_orders[i]["symbol"], sell_orders[i]["lot"], sell_orders[i]["price"], slippage=5) == -1: print("关闭卖出单失败") # 更新卖出单价格 sell_orders[i]["price"] = last_price + (grid_size-i)*grid_spacing sell_orders[i]["ticket"] = mt5.order_send(sell_orders[i]["type"], sell_orders[i]["symbol"], sell_orders[i]["lot"], sell_orders[i]["price"], slippage=5) if sell_orders[i]["ticket"] == -1: print("开启卖出单失败") time.sleep(1) ``` 上述代码中,我们首先连接了MetaTrader 5客户端,并设置网格交易策略EA的参数。然后,我们获取了当前价格,并初始化了网格。接着,我们在一个无限循环中不断更新网格,如果价格超出了某一网格的范围,我们就关闭过期的订单并打开新的订单。 需要注意的是,这只是一个简单的网格交易策略EA示例,实际的交易策略需要根据市场情况进行调整和优化。此外,MetaTrader 5中还有许多其他的交易函数和指标,可以用于开发更加复杂的交易策略

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值