我如何正确地开立市场订单? - 页 8 123456789 新评论 Gennady Mazur 2017.02.04 12:27 #71 Dmitry Fedoseev: 你不是那个需要暂停的人。 这只是它。 Denis Kirichenko 2017.02.04 16:01 #72 总之,底线,我认为是这样的。 在全球范围内,有两种方式。 1)分析环境(吸纳交易历史,检查未结头寸或头寸的数量)。 2)对交易的分析。 第一种工作速度较慢。但它更可靠。我们需要一个妥协。也许,我们需要看一下战略,并依赖它。 是的,FORTS有一个成熟的勾股器,所以不应该用勾股器工作,而是用 BookEvent 事件。 奇怪的是,瓦西里-索科洛夫 没有就这个问题发表评论。他的观点很有意思... Gennady Mazur 2017.02.04 16:10 #73 Dennis Kirichenko: 总之,底线,我认为是这样的。 在全球范围内,有两种方式。 1)分析环境(吸纳交易历史,检查未结头寸或头寸的数量)。 2)对交易的分析。 第一种工作速度较慢。但它更可靠。我们需要一个妥协。也许,我们需要看一下战略,并依赖它。 是的,FORTS有一个成熟的勾股器,所以不应该用勾股器工作,而是用 BookEvent 事件。 奇怪的是,瓦西里-索科洛夫 没有就这个问题发表评论。他的观点很有意思... 也许很快我就会改用玻璃,但现在....,用老方法。 Gennady Mazur 2017.02.04 16:14 #74 Dennis Kirichenko: 总之,底线,我认为是这样的。 在全球范围内,有两种方式。 1)分析环境(吸纳交易历史,检查未结头寸或头寸的数量)。 2)对交易的分析。 第一种工作速度较慢。但它更可靠。我们需要一个妥协。也许,我们需要看一下战略,并依赖它。 是的,FORTS有一个成熟的勾股器,所以不应该用勾股器工作,而是用 BookEvent 事件。 奇怪的是,瓦西里-索科洛夫 没有就这个问题发表评论。他的观点很有意思... 顺便说一下,我有一个问题:我们能否像使用Tick或Timer一样使用BookEvent 事件? 也就是说,我可以把我的战略完全转移到那里吗? Denis Kirichenko 2017.02.04 16:23 #75 刚想起这个话题... 我曾经为这个订单 工作过,写了CiOnTrade类。class CiOnTrade : public CTrade 这是一项有趣的任务。我和我的客户彼此都很紧张,并且伤透了心。在我的记忆中,主要任务是买入/卖出保证量。如果部分交易量没有得到满足,我们不得不删除这些订单,并以不同的价格出售其余的订单......。 因此,我发现的最佳解决方案是在处理这些状态。而且有这么多的人。enum ENUM_TRADE_STATE { TRADE_STATE_NONE=0, // "ничего" TRADE_STATE_ORDERS=1, // "только ордера" TRADE_STATE_POSITION=2, // "только позиция" TRADE_STATE_ALL=3, // "все" }; 1) "无"--这是初始状态,此时什么都没做。 2) "仅有订单" - 这是下订单时的状态。 3) "仅持仓 "是订单完全执行时的状态。 4) "全部 "是指订单还没有完全执行,市场上已经有一个头寸的状态。 因此,每个州都必须进行处理。是的,顺便说一下,我承认也有中间状态。所以我的课可以改进。 How do I open 轻松快捷开发 MetaTrader 程序的函数库 (第十九部分) Denis Kirichenko 2017.02.04 16:26 #76 Gennady Mazur:顺便说一下,出现了一个问题:BookEvent 事件能否以与Tick或Timer相同的方式使用?,也就是说,你的策略能否完全转移到那里? 是的,但请注意,BookEvent产生事件的频率更高。这就是为什么我们需要一些过滤器来筛除不必要的东西。例如,价格没有变化,只是一些投标的数量发生了变化。 Gennady Mazur 2017.02.04 16:36 #77 Dennis Kirichenko: 是的!但考虑到玻璃更有可能产生事件。因此,你需要一些过滤器来筛除不必要的事件。例如,价格没有变化,但只有一些投标的数量。 我理解,谢谢......在某些情况下,成交量变化 比价格变化更重要,特别是在强势水平附近。 fxsaber 2017.02.04 18:37 #78 Dennis Kirichenko: 底线,我认为,是这样的。在全球范围内,有两种方法: 1)环境分析(吸纳交易历史,检查未结头寸或持仓量); 2)交易分析。第一种工作速度较慢。但它更可靠。必须有一个妥协。也许我们必须看清战略并依靠它。OrderSend+Sleep(0)变量的工作速度并不比OrderSend+OnTradeTransaction慢。我测量了一下。因此,我不使用第二个变体,不用于异步事务。 fxsaber 2017.02.04 18:42 #79 Dennis Kirichenko: 我想,关于交易的信息还没有到来。在这里(红色 标记),你依靠的是运气。她是一位任性的女士 :-))bool OpenSellPosition(string symbol, double volume, string comment="", ulong deviation=10, ENUM_ORDER_TYPE_FILLING filling=ORDER_FILLING_FOK){ MqlTradeRequest Request; MqlTradeResult Results; ZeroMemory(Request); ZeroMemory(Results); Request.price=SymbolInfoDouble(_Symbol,SYMBOL_BID); Request.action=TRADE_ACTION_DEAL; Request.type=ORDER_TYPE_SELL; Request.symbol=symbol; Request.volume=volume; Request.deviation=deviation; Request.comment=comment; Request.type_filling=filling; bool res=false; res=OrderSend(Request,Results); if(res) { if(Results.deal>0) return(true); else return(false); } return(false);}即使有ORDER_STATE_FILLED,Results.order也会有问题--Results.deal为零。在FXOpen-MT5服务器上实现了这种情况的100%重现。我建议在不同的服务器上打开许多演示,实现代码的全部功能。我对MT4圣经是这样做的。这就是为什么子博弈没有问题的原因。 prostotrader 2017.02.05 10:41 #80 fxsaber: OrderSend+Sleep(0)的速度不比OrderSend+OnTradeTransaction慢。我测量了一下。因此,我不使用第二个变体,不用于异步事务。OrderSend+Sleep(0)的变体是暂时的,因为这是开发人员的一个缺点(不要把它作为一个例子:) )。当它被纠正后,只有OrderSend将被保留。 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你不是那个需要暂停的人。
在全球范围内,有两种方式。
1)分析环境(吸纳交易历史,检查未结头寸或头寸的数量)。
2)对交易的分析。
第一种工作速度较慢。但它更可靠。我们需要一个妥协。也许,我们需要看一下战略,并依赖它。
是的,FORTS有一个成熟的勾股器,所以不应该用勾股器工作,而是用 BookEvent 事件。
奇怪的是,瓦西里-索科洛夫 没有就这个问题发表评论。他的观点很有意思...
总之,底线,我认为是这样的。
在全球范围内,有两种方式。
1)分析环境(吸纳交易历史,检查未结头寸或头寸的数量)。
2)对交易的分析。
第一种工作速度较慢。但它更可靠。我们需要一个妥协。也许,我们需要看一下战略,并依赖它。
是的,FORTS有一个成熟的勾股器,所以不应该用勾股器工作,而是用 BookEvent 事件。
奇怪的是,瓦西里-索科洛夫 没有就这个问题发表评论。他的观点很有意思...
总之,底线,我认为是这样的。
在全球范围内,有两种方式。
1)分析环境(吸纳交易历史,检查未结头寸或头寸的数量)。
2)对交易的分析。
第一种工作速度较慢。但它更可靠。我们需要一个妥协。也许,我们需要看一下战略,并依赖它。
是的,FORTS有一个成熟的勾股器,所以不应该用勾股器工作,而是用 BookEvent 事件。
奇怪的是,瓦西里-索科洛夫 没有就这个问题发表评论。他的观点很有意思...
也就是说,我可以把我的战略完全转移到那里吗?
我曾经为这个订单 工作过,写了CiOnTrade类。
因此,我发现的最佳解决方案是在处理这些状态。而且有这么多的人。
{
TRADE_STATE_NONE=0, // "ничего"
TRADE_STATE_ORDERS=1, // "только ордера"
TRADE_STATE_POSITION=2, // "только позиция"
TRADE_STATE_ALL=3, // "все"
};
2) "仅有订单" - 这是下订单时的状态。
3) "仅持仓 "是订单完全执行时的状态。
4) "全部 "是指订单还没有完全执行,市场上已经有一个头寸的状态。
因此,每个州都必须进行处理。是的,顺便说一下,我承认也有中间状态。所以我的课可以改进。
顺便说一下,出现了一个问题:BookEvent 事件能否以与Tick或Timer相同的方式使用?
,也就是说,你的策略能否完全转移到那里?
是的!但考虑到玻璃更有可能产生事件。因此,你需要一些过滤器来筛除不必要的事件。例如,价格没有变化,但只有一些投标的数量。
底线,我认为,是这样的。在全球范围内,有两种方法: 1)环境分析(吸纳交易历史,检查未结头寸或持仓量); 2)交易分析。
第一种工作速度较慢。但它更可靠。必须有一个妥协。也许我们必须看清战略并依靠它。
我想,关于交易的信息还没有到来。在这里(红色 标记),你依靠的是运气。她是一位任性的女士 :-))
{
MqlTradeRequest Request;
MqlTradeResult Results;
ZeroMemory(Request);
ZeroMemory(Results);
Request.price=SymbolInfoDouble(_Symbol,SYMBOL_BID);
Request.action=TRADE_ACTION_DEAL;
Request.type=ORDER_TYPE_SELL;
Request.symbol=symbol;
Request.volume=volume;
Request.deviation=deviation;
Request.comment=comment;
Request.type_filling=filling;
bool res=false;
res=OrderSend(Request,Results);
if(res)
{
if(Results.deal>0) return(true);
else return(false);
}
return(false);
}
即使有ORDER_STATE_FILLED,Results.order也会有问题--Results.deal为零。在FXOpen-MT5服务器上实现了这种情况的100%重现。
我建议在不同的服务器上打开许多演示,实现代码的全部功能。我对MT4圣经是这样做的。这就是为什么子博弈没有问题的原因。
OrderSend+Sleep(0)的速度不比OrderSend+OnTradeTransaction慢。我测量了一下。因此,我不使用第二个变体,不用于异步事务。
OrderSend+Sleep(0)的变体是暂时的,因为这是开发人员的一个缺点(不要把它作为一个例子:) )。
当它被纠正后,只有OrderSend将被保留。