В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
在最近的几次构建中(包括458),在两台机器中的一台上一直观察到两个测试器的问题。
1) 代理人启动错误。
EM 0 Core 1 11:44:11 Agent进程开始了
QN 0 Core 1 11:44:11 连接到127.0.0.1:3000
KI 0 核心 1 11:44:15 已连接
HO 2 Core 1 11:44:17 tester agent同步错误
GM 2 Core 1 11:44:17断开连接
LK 0 Core 1 11:44:17 连接关闭
CQ 0 Tester 11:44:14 MetaTester 5 build 450 (16 May 2011)
MP 0 服务器 11:44:14:14 MetaTester 5在127.0.0.1:3000开始。
LI 0 启动 11:44:14 初始化完成
MR 2 127.0.0.1 11:44:18 关闭插座
EI 0 127.0.0.1 11:44:18 登录(构建450)。
EJ 0 测试员 11:44:19 测试员代理关闭
2) 当进入代理标签时,终端没有反应(沙漏),大约30秒。
有一种假设是,问题与单核处理器 或缺乏远程(遥控)代理 有关。
事实上,458的构建已经发布了。
所以是的...但问题仍然存在。
2011.05.27 19:19:57 Core 2 慢速代理失败。
2011.05.27 19:19:57 Core 2 connection closed
2011.05.27 19:19:57 Core 2 太慢的代理。繁忙时间为3703ms,平均时间为915ms
2011.05.27 19:19:55 Core 1 slow agent failed
2011.05.27 19:19:55 Core 1 connection closed
2011.05.27 19:19:55 Core 2 通用同步完成。
2011.05.27 19:19:54 Core 1 too slow agent.繁忙时间为3672ms,平均时间为915ms
2011.05.27 19:19:53 iRU1 慢速代理失败
2011.05.27 19:19:53 iRU1 连接关闭
2011.05.27 19:19:53 Core 2 authorized (agent build 458)
2011.05.27 19:19:53 Core 2 已连接。
2011.05.27 19:19:53 iRU1 太慢的代理。繁忙时间为3672ms,平均时间为915ms
所以是的...但问题仍然存在。
请澄清以下细微差别。
1. 发送额外交易时对SL/TP的检查/处理算法。通过实例澄清。
注意:所有交易请求都有ORDER_FILLING_AON参数;已经有一个多头头寸。
情景一。我想买更多(当然,是为了相同的符号)。我发送了一个带有额外交易量的交易,并调整了SL/TP。如果请求被成功执行,结果将是:额外的手数+更新的SL/TP?
情景二。我想卖掉。我提交了一个较小手数的交易,没有指定SL/TP(SL/TP=0)。剩余的头寸将被减少手数+取消SL/TP?
情景三。与第2种情况相同,只是试图设置SL/TP限制(明知不可能的多头头寸)。结果呢?
2.检查交易量的算法。用一个例子说明。
"最小批量/最小批量步骤 "的组合是否会有任何变化?
注:所有交易请求都有ORDER_FILLING_CANCEL或ORDER_FILLING_RETURN 参数;已经有一个1.0的长仓;最小手数=0.1;最小步数=0.01。
情景1.我试图退出市场(用相同规模的反向交易关闭现有头寸)。市场是一个新闻市场,所以我尝试至少撤回一点(ORDER_FILLING_CANCEL或ORDER_FILLING_RETURN),因为整个金额有重新报价。因此,为了完全平仓,我需要发送0.01手的交易,而我不能这样做--最小手数是0.1。也就是说,我是否应该先增加0.09手以获得0.1,然后尝试关闭它(已经有了ORDER_FILLING_AON)?
情景二。当一个交易已经部分结束,并且剩余的头寸量小于最小步骤(部分完成在0.999手,而0.001手仍然 "挂着")。会不会有这样的情况出现?
P.S. 理想情况下,我希望看到一些统一的秩序设置逻辑,可以 "关闭 "所有理论上可能的案例。我在文档中找不到它,也许我错过了...
库中没有错误。使用该类处理指标数据有两个微妙之处(帮助中可能没有完全描述)。
1.为了使指标数据通过班级获得,班级应该从指标中复制这些数据。要做到这一点,如果你有一丝怀疑数据发生了变化,就调用Refresh(int)方法。在你的情况下。
2.为了使指标数据通过类有足够的 "深度",你需要设置缓冲区大小(默认情况下,缓冲区大小为256)。要做到这一点,在创建对象后,调用BufferResize(int)方法。在你的情况下。
对不起,如果这很混乱。我将回答其他问题。
界面设置的灵活性-- 有一个建议是使mt5对用户更加灵活,在显示符号名称的设置方面,更具体的是--能够重命名任何即不--不是gbpusd--而是...。- 例如 - 不是gbpusd,而是......英镑,"以及引入分离的面板,如 - 货币和向下箭头,金属,股票,什么不会是所有的一堆,在酒吧,分离甚至可以添加迷你图标,如货币,一个英镑的标志或一个小的绿色纸张,金属 - 以及黄金小酒吧,等等。:)
如果你能改变背景,在符号列表中的符号下,以及颜色shifft,那就更好了,例如一个主要的亮点是黑色背景和白色字体,中等,蓝色和白色,完全不重要,因为有白底黑字...
你能不能至少给我一个使用标准库 的指标的最简单的代码,因为缺乏文档和例子,我无法理解它是如何工作的。例如,当Tenkan sen>kijun sen并且在云层之上时,它在每个条形下画出绿色箭头,当Tenkan sen<kijun sen并且在云层之下时,画出红色箭头。
papaklass:
算法2。
1.以最小允许量的倍数平仓。你说的0.99手的例子是不可能的,因为最小手数是0.1手。其他市场参与者将其订单设定为0.1手的倍数。所以你的例子是不可能的。
2.见第1点。
所以你想说的是,如果在订单执行 后,头寸量变得小于最小值,那么这个订单将被拒绝。
在MQ服务器上,步长=最小批量=0.01。还有其他例子,步长<最小批量?要检查终端的行为。
你不能指望开发商提供任何答案。
你能不能至少给我一个使用标准库 的指标的最简单的代码,因为缺乏文档和例子,我无法理解它是如何工作的。例如,当Tenkan sen>kijun sen并且在云层之上时,它在每个条形下画出绿色箭头,当Tenkan sen<kijun sen并且在云层之下时,画出红色箭头。
这个使用bibla工作的例子--只需建立tenkan线
从这里开始,你将更容易通过类比增加4个缓冲区,并对它们进行分析(对于箭头)。
注意:除了上面显示的方法外,至少还有两种取指标缓冲值的方法。图中所示的不是唯一可能的方案