新的API MetaTrader 4可用 - 页 6 12345678910111213...20 新评论 [删除] 2008.10.06 21:46 #51 yewnix: 我不明白的是... 我可以整天都在做订单发送。 但是我在做订单关闭时遇到了很大的问题。 你能不能举个例子说明这些问题。 我真的不认为是我的.NET包装DLL。 嗨,yewnix! 你可以看一下<程序文件>\TradeZone\TZMT4API\Developer\Short_Sample_MQL4.zip 这个简单的mql代码,一旦你包括<orderproxy.mqh>,就会关闭所有未结订单。 int hAccount = TZ_LogIn(Login, Password, Server, "", "", "", ""); int Total = TZ_OrdersTotal(); for(i=0;i<Total;i++) { TZ_OrderSelect(i,SELECT_BY_POS,MODE_TRADES); TZ_OrderClose(TZ_OrderTicket(), TZ_OrderLots(), TZ_OrderClosePrice(), 3); } 最亲切的问候。 New API MetaTrader 4 基本问题... Gogetter EA [Deleted] 2008.10.06 22:12 #52 TradeZone: 嗨,yewnix!你可以看看C:\Arquivos de programas\TradeZone\TZMT4API\Developer\Short_Sample_MQL4.zip这个简单的mql代码,一旦你包括<orderproxy.mqh>,就会关闭所有未结订单。 int hAccount = TZ_LogIn(Login, Password, Server, "", "", "", ""); int Total = TZ_OrdersTotal(); for(i=0;i<Total;i++) { TZ_OrderSelect(i,SELECT_BY_POS,MODE_TRADES); TZ_OrderClose(TZ_OrderTicket(), TZ_OrderLots(), TZ_OrderClosePrice(), 3); } 最诚挚的问候。 我正在尝试用C#做这个。 我采用了你的函数 并为.NET写了一个dll封装器 即。 double askprice = MT4ApiNet.MarketInfo_MT4(h, "GBPUSD", (int)MT4ApiNet.MarketInfoType.MODE_ASK) MT4ApiNet.OrderSend_MT4(h, "GBPUSD", (int)MT4ApiNet.OrderType.OP_BUY, 1, askprice, 3, (askprice - 0.0050), (askprice + 0.0050), "My Program", 100, 0)。 这完美地工作。这个订单完美地显示出来。 现在......如果我从MetaTrader获得订单#(使用1234作为订单#为例) MT4ApiNet.OrderClose_MT4(h, 1234, 1, MT4ApiNet.OrderClosePrice_MT4(h,1234), 20)。 这并没有取消订单... 即使我循环查看订单,并进行MT4ApiNet.OrderGet_MT4的操作,它仍然不起作用。 New API MetaTrader 4 自动选择经纪公司,以便 Expert Advisor 高效运行 使用非托管导出将 C# 代码运用到 MQL5 [Deleted] 2008.10.06 22:35 #53 参考一下。 在做完OrderClose 后,如果我得到最后一个错误。 MessageBox.Show(MT4ApiNet.ErrorDescription_MT4(MT4ApiNet.GetLastError_MT4(h)) )。 这返回一般的Erro 你能不能至少在Delphi中显示一个适当的OrderClose? 即使在Delphi中,我的代码也会挂起 [Deleted] 2008.10.07 10:46 #54 TradeZone: 嗨,juso。<程序文件>\TradeZone\TZMT4API\Developer\MetaTrader4 API.txt包含您想要的内容。谨致以诚挚的问候。 嗨,TradeZone 谢谢你的及时回复。我最后一次积极进行c++开发是在8年前,那时人们需要有*.h和*.lib的dll才能自然地行使api。如果你有*.h文件而没有*.lib,你仍然可以通过动态解析函数 地址来实现,尽管这个过程比较繁琐。所以,我可以自己创建*.h文件,尽管*.lib仍然没有。也许,有一种简单的方法可以从dll本身创建lib的东西,但我不知道。 请注意 Juso [Deleted] 2008.10.07 22:03 #55 TradeZone, 你能不能发布一个从Delphi应用程序发送的OrderClose_MT4命令的工作样本。 如前所述,我不能让它工作。 谢谢! [Deleted] 2008.10.08 20:41 #56 撞击...撞击...。 [Deleted] 2008.10.09 17:19 #57 好吧,因为我还没有收到这方面的回复,我开始挖掘你的DLL实际上是如何工作的。 其实这是个不错的主意。 加载10个图表,每个图表附加在一个不同的EA上。 这些EA运行并在experts/files目录下创建文件。 DLL将这些文件读回来,在你的程序化应用中显示数据。 EA检查文件是否存在(由DLL调用产生),如果它们存在,则处理交易,然后创建其他文件,以反馈响应数据,然后删除DLL创建的文件,因此我们知道交易已经完成或失败。 如果我没有弄错的话,你从Login_MT4命令返回的Handle只是一个随机生成的目录名称的索引。这样,你就知道要控制哪个终端.exe进程,以及把你生成的文件放在哪里。 我可能对这些都是错的,我只是想解决我一直以来的OrderClose 问题... 然而,与其一遍又一遍地创建文件...我强烈建议使用内存映射(Create / Open Memory Map based on Pair Name_Handle) 顺便说一句,做得很好......只是你可以告诉我关于OrderClose的情况,这样我就不必自己编写EA和Memory Map DLL接口。 各位,这就是我对这个API的分析。 干杯! [删除] 2008.10.09 17:43 #58 各位。 我有一个像这样的集成,工作得很好,并经过测试(不是这个代码)。它是通过一个专家完成的,并通过一个C++/托管C++向一个.NET模块暴露功能。它允许顺利的交易管理,报告错误,提供实时报价,等等。通信是通过TCP进行的,所以它是快速和可靠的。 它将作为一个新的开源交易平台(基于.NET,它可以使用MT4来接收数据或执行订单)的一部分,完全免费开放发布。你可以选择使用该平台,或者仅仅是集成的一小部分--这取决于你。 如果你有兴趣,请举手,我将给你更多的细节。) 该平台计划在几天后推出(约10月15日)。 [Deleted] 2008.10.09 17:47 #59 Peer2k, 很好,我想过用TCP而不是内存映射。 如果你愿意把代码的链接发给我,我不介意看一下。 不过这取决于你 :) 谢谢! yewnix@gmail.com [Deleted] 2008.10.09 17:52 #60 嘿,peer2k,这将是非常酷的,请把细节发到我这里,yuryrub@gmail.com。 12345678910111213...20 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我不明白的是...
我可以整天都在做订单发送。
但是我在做订单关闭时遇到了很大的问题。
你能不能举个例子说明这些问题。
我真的不认为是我的.NET包装DLL。
嗨,yewnix!
你可以看一下<程序文件>\TradeZone\TZMT4API\Developer\Short_Sample_MQL4.zip
这个简单的mql代码,一旦你包括<orderproxy.mqh>,就会关闭所有未结订单。
int hAccount = TZ_LogIn(Login, Password, Server, "", "", "", "");
int Total = TZ_OrdersTotal();
for(i=0;i<Total;i++)
{
TZ_OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
TZ_OrderClose(TZ_OrderTicket(), TZ_OrderLots(), TZ_OrderClosePrice(), 3);
}
最亲切的问候。
嗨,yewnix!
你可以看看C:\Arquivos de programas\TradeZone\TZMT4API\Developer\Short_Sample_MQL4.zip
这个简单的mql代码,一旦你包括<orderproxy.mqh>,就会关闭所有未结订单。
int hAccount = TZ_LogIn(Login, Password, Server, "", "", "", "");
int Total = TZ_OrdersTotal();
for(i=0;i<Total;i++)
{
TZ_OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
TZ_OrderClose(TZ_OrderTicket(), TZ_OrderLots(), TZ_OrderClosePrice(), 3);
}
最诚挚的问候。
我正在尝试用C#做这个。
我采用了你的函数 并为.NET写了一个dll封装器
即。
double askprice = MT4ApiNet.MarketInfo_MT4(h, "GBPUSD", (int)MT4ApiNet.MarketInfoType.MODE_ASK)
MT4ApiNet.OrderSend_MT4(h, "GBPUSD", (int)MT4ApiNet.OrderType.OP_BUY, 1, askprice, 3, (askprice - 0.0050), (askprice + 0.0050), "My Program", 100, 0)。
这完美地工作。这个订单完美地显示出来。
现在......如果我从MetaTrader获得订单#(使用1234作为订单#为例)
MT4ApiNet.OrderClose_MT4(h, 1234, 1, MT4ApiNet.OrderClosePrice_MT4(h,1234), 20)。
这并没有取消订单...
即使我循环查看订单,并进行MT4ApiNet.OrderGet_MT4的操作,它仍然不起作用。
参考一下。
在做完OrderClose 后,如果我得到最后一个错误。
MessageBox.Show(MT4ApiNet.ErrorDescription_MT4(MT4ApiNet.GetLastError_MT4(h)) )。
这返回一般的Erro
你能不能至少在Delphi中显示一个适当的OrderClose?
即使在Delphi中,我的代码也会挂起
嗨,juso。
<程序文件>\TradeZone\TZMT4API\Developer\MetaTrader4 API.txt包含您想要的内容。
谨致以诚挚的问候。
嗨,TradeZone
谢谢你的及时回复。我最后一次积极进行c++开发是在8年前,那时人们需要有*.h和*.lib的dll才能自然地行使api。如果你有*.h文件而没有*.lib,你仍然可以通过动态解析函数 地址来实现,尽管这个过程比较繁琐。所以,我可以自己创建*.h文件,尽管*.lib仍然没有。也许,有一种简单的方法可以从dll本身创建lib的东西,但我不知道。
请注意
Juso
TradeZone,
你能不能发布一个从Delphi应用程序发送的OrderClose_MT4命令的工作样本。
如前所述,我不能让它工作。
谢谢!
好吧,因为我还没有收到这方面的回复,我开始挖掘你的DLL实际上是如何工作的。
其实这是个不错的主意。
加载10个图表,每个图表附加在一个不同的EA上。
这些EA运行并在experts/files目录下创建文件。
DLL将这些文件读回来,在你的程序化应用中显示数据。
EA检查文件是否存在(由DLL调用产生),如果它们存在,则处理交易,然后创建其他文件,以反馈响应数据,然后删除DLL创建的文件,因此我们知道交易已经完成或失败。
如果我没有弄错的话,你从Login_MT4命令返回的Handle只是一个随机生成的目录名称的索引。这样,你就知道要控制哪个终端.exe进程,以及把你生成的文件放在哪里。
我可能对这些都是错的,我只是想解决我一直以来的OrderClose 问题...
然而,与其一遍又一遍地创建文件...我强烈建议使用内存映射(Create / Open Memory Map based on Pair Name_Handle)
顺便说一句,做得很好......只是你可以告诉我关于OrderClose的情况,这样我就不必自己编写EA和Memory Map DLL接口。各位,这就是我对这个API的分析。
干杯!
各位。
我有一个像这样的集成,工作得很好,并经过测试(不是这个代码)。它是通过一个专家完成的,并通过一个C++/托管C++向一个.NET模块暴露功能。它允许顺利的交易管理,报告错误,提供实时报价,等等。通信是通过TCP进行的,所以它是快速和可靠的。
它将作为一个新的开源交易平台(基于.NET,它可以使用MT4来接收数据或执行订单)的一部分,完全免费开放发布。你可以选择使用该平台,或者仅仅是集成的一小部分--这取决于你。
如果你有兴趣,请举手,我将给你更多的细节。)
该平台计划在几天后推出(约10月15日)。
Peer2k,
很好,我想过用TCP而不是内存映射。
如果你愿意把代码的链接发给我,我不介意看一下。
不过这取决于你 :)
谢谢!
yewnix@gmail.com