贸易交易时 - 页 5 123456789 新评论 prostotrader 2016.12.04 21:00 #41 Anatoli Kazharski: 是的,这就对了。只是还没有以这种方式测试。试试吧...由以下人员添加case TRADE_TRANSACTION_DEAL_ADD: if (trans.order != my_order_ticket) { if(trans.symbol==Symbol()) { if(проверяем магик) { //Сработал SL или TP } } }break; Andrey Dik 2016.12.04 21:02 #42 prostotrader:这种方法有什么问题?case TRADE_TRANSACTION_DEAL_ADD: if (trans.order != my_order_ticket) { //Сработал SL или TP }break;因为最后已知的SL和TP位置可能与交易价格 不一致,而且将没有任何东西可以与之比较。 而且你不喜欢分享你的密码,但你却非常高兴地看着别人的密码......这并不总是有效。int G_LastTicket = 0; //Последний известный тикетdouble G_LastSLlevel = 0.0; //Последний известный уровень SLdouble G_LastTPlevel = 0.0; //Последний известный уровень TP//——————————————————————————————————————————————————————————————————————————————void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции const MqlTradeRequest &request, // структура запроса const MqlTradeResult &result) // структура ответа{ if(trans.type == TRADE_TRANSACTION_DEAL_ADD) { if(PositionsAny (G_Symbol)) { G_LastSLlevel = GetSLlevel (G_Symbol); G_LastTPlevel = GetTPlevel (G_Symbol); Print ("SLlevel: " + G_LastSLlevel); Print ("TPlevel: " + G_LastTPlevel); } if(trans.deal != G_LastTicket) { if(trans.price == G_LastSLlevel) Print ("Сработал SL"); if(trans.price == G_LastTPlevel) Print ("Сработал TP"); } }} OnTradeTransaction MetaEditor build 1490 mql5语言的特点、微妙之处以及技巧 Anatoli Kazharski 2016.12.04 21:02 #43 prostotrader: 试试吧... 我肯定会在某个时候试一试。有机会我会试一试,谢谢。我现在正忙于其他任务。 fxsaber 2016.12.04 21:04 #44 prostotrader:这种方法有什么问题? 应存储my_order_ticket prostotrader 2016.12.04 21:05 #45 fxsaber: 你必须保留my_order_ticket你甚至知道你在说什么吗?my_order_ticket - 这个订单有一个地方可以住,如果你 有 而且你有义务保持它们。 Andrey Dik 2016.12.04 21:06 #46 fxsaber: 你必须存储my_order_ticket不仅如此。 prostotrader 2016.12.04 21:08 #47 Anatoli Kazharski: 我有机会会试一试。谢谢。(笑)。我现在正忙于其他任务。 祝你有一个好的代码! fxsaber 2016.12.04 21:18 #48 Andrey Dik:不仅如此。是的,实际上是建议维护和存储实际环境本身,将其与OnTradeTransaction产生的东西进行比较。这不是一个解决方案。 prostotrader 2016.12.04 21:25 #49 fxsaber:是的,实际上是建议维护和存储实际环境本身,将其与OnTradeTransaction产生的东西进行比较。这不是一个解决方案。你只是没有密切关注这个话题。:)最初的话题发起人写道。"我如何在OnTradeTransaction()中知道SL/TP已经触发?"解决办法应该是什么?你根本不可能记住或检查任何东西,除了职位本身,前提是你没有操作任何其他命令case TRADE_TRANSACTION_DEAL_ADD: if (!PositionSelect(Symbol()) { //Сработал SL или TP }break; Andrey Dik 2016.12.04 21:30 #50 prostotrader:你只是没有密切关注这个话题。:)最初的话题发起人写道。你才是那个相当不专心的人,我不是话题的发起人。你还应该显示这样的代码。//——————————————————————————————————————————————————————————————————————————————void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции const MqlTradeRequest &request, // структура запроса const MqlTradeResult &result) // структура ответа{ } 好吧,有什么不对--谁需要它,自己完成它,不喜欢它--有一个Joba!是这样吗? 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,这就对了。只是还没有以这种方式测试。
试试吧...
由以下人员添加
if (trans.order != my_order_ticket)
{
if(trans.symbol==Symbol())
{
if(проверяем магик)
{
//Сработал SL или TP
}
}
}
break;
这种方法有什么问题?
if (trans.order != my_order_ticket)
{
//Сработал SL или TP
}
break;
因为最后已知的SL和TP位置可能与交易价格 不一致,而且将没有任何东西可以与之比较。
而且你不喜欢分享你的密码,但你却非常高兴地看着别人的密码......
这并不总是有效。
double G_LastSLlevel = 0.0; //Последний известный уровень SL
double G_LastTPlevel = 0.0; //Последний известный уровень TP
//——————————————————————————————————————————————————————————————————————————————
void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции
const MqlTradeRequest &request, // структура запроса
const MqlTradeResult &result) // структура ответа
{
if(trans.type == TRADE_TRANSACTION_DEAL_ADD)
{
if(PositionsAny (G_Symbol))
{
G_LastSLlevel = GetSLlevel (G_Symbol);
G_LastTPlevel = GetTPlevel (G_Symbol);
Print ("SLlevel: " + G_LastSLlevel);
Print ("TPlevel: " + G_LastTPlevel);
}
if(trans.deal != G_LastTicket)
{
if(trans.price == G_LastSLlevel)
Print ("Сработал SL");
if(trans.price == G_LastTPlevel)
Print ("Сработал TP");
}
}
}
试试吧...
这种方法有什么问题?
你必须保留my_order_ticket
你甚至知道你在说什么吗?
my_order_ticket - 这个订单有一个地方可以住,如果你 有
而且你有义务保持它们。
你必须存储my_order_ticket
我有机会会试一试。谢谢。(笑)。我现在正忙于其他任务。
不仅如此。
是的,实际上是建议维护和存储实际环境本身,将其与OnTradeTransaction产生的东西进行比较。
这不是一个解决方案。
是的,实际上是建议维护和存储实际环境本身,将其与OnTradeTransaction产生的东西进行比较。
这不是一个解决方案。
你只是没有密切关注这个话题。:)
最初的话题发起人写道。
"我如何在OnTradeTransaction()中知道SL/TP已经触发?"
解决办法应该是什么?
你根本不可能记住或检查任何东西,除了职位本身,前提是
你没有操作任何其他命令
if (!PositionSelect(Symbol())
{
//Сработал SL или TP
}
break;
你只是没有密切关注这个话题。:)
最初的话题发起人写道。
你才是那个相当不专心的人,我不是话题的发起人。
你还应该显示这样的代码。
void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции
const MqlTradeRequest &request, // структура запроса
const MqlTradeResult &result) // структура ответа
{
}
好吧,有什么不对--谁需要它,自己完成它,不喜欢它--有一个Joba!是这样吗?